Bug 1223573 - Part 4. Build system changes for Loop as a system add-on. r=mikedeboer,r=glandium
☠☠ backed out by c95f8e8955b0 ☠ ☠
authorMark Banner <standard8@mozilla.com>
Fri, 27 Nov 2015 18:57:40 +0000
changeset 308615 d6754894897cbf3eafe0f15fb2f4389024a814dd
parent 308614 1b4d6308002e3c2eacdfa3aae296b39dd328c096
child 308616 21ebe3534e582f99d5ddb7b69ecc915c48f6903c
push id5513
push userraliiev@mozilla.com
push dateMon, 25 Jan 2016 13:55:34 +0000
treeherdermozilla-beta@5ee97dd05b5c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmikedeboer, glandium
bugs1223573
milestone45.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1223573 - Part 4. Build system changes for Loop as a system add-on. r=mikedeboer,r=glandium
.hgignore
browser/components/moz.build
browser/extensions/loop/.eslintignore
browser/extensions/loop/.eslintrc-gecko
browser/extensions/loop/content/modules/.eslintrc
browser/extensions/loop/install.rdf.in
browser/extensions/loop/jar.mn
browser/extensions/loop/moz.build
browser/extensions/loop/run-all-loop-tests.sh
browser/extensions/moz.build
browser/installer/package-manifest.in
browser/themes/linux/jar.mn
browser/themes/osx/jar.mn
browser/themes/windows/jar.mn
testing/marionette/client/marionette/tests/unit-tests.ini
--- a/.hgignore
+++ b/.hgignore
@@ -75,19 +75,25 @@
 ^media/libstagefright/android$
 
 # Tag files generated by GNU Global
 GTAGS
 GRTAGS
 GSYMS
 GPATH
 
-# Unit tests for Loop
+# Various items for Loop
 ^browser/components/loop/standalone/content/config\.js$
-^browser/components/loop/standalone/node_modules/
+^browser/extensions/loop/.*/node_modules/
+^browser/extensions/loop/.*\.module-cache
+^browser/extensions/loop/test/coverage/desktop
+^browser/extensions/loop/test/coverage/shared_standalone
+^browser/extensions/loop/test/visual-regression/diff
+^browser/extensions/loop/test/visual-regression/new
+^browser/extensions/loop/test/visual-regression/refs
 
 # Git clone directory for updating web-platform-tests
 ^testing/web-platform/sync/
 
 # Android Gradle artifacts.
 ^mobile/android/gradle/.gradle
 
 # XCode project cruft
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -6,17 +6,16 @@
 
 DIRS += [
     'about',
     'customizableui',
     'dirprovider',
     'downloads',
     'extensions',
     'feeds',
-    'loop',
     'migration',
     'newtab',
     'places',
     'pocket',
     'preferences',
     'privatebrowsing',
     'search',
     'sessionstore',
--- a/browser/extensions/loop/.eslintignore
+++ b/browser/extensions/loop/.eslintignore
@@ -1,30 +1,34 @@
 # This file currently uses a non-standard (and not on a standards track)
 # if statement within catch.
-modules/MozLoopWorker.js
+content/modules/MozLoopWorker.js
 # This file currently uses es7 features eslint issue:
 # https://github.com/eslint/espree/issues/125
-modules/MozLoopAPI.jsm
+content/modules/MozLoopAPI.jsm
+# Need to fix the configuration for this.
+bootstrap.js
+# Need to drop the preprocessing (bug 1212428)
+content/preferences/prefs.js
 # Libs we don't need to check
-content/libs
-content/shared/libs
+content/panels/vendor
+content/shared/vendor
 standalone/content/libs
 standalone/node_modules
 # Libs we don't need to check
 test/shared/vendor
 # Coverage files
 test/coverage
 test/node_modules
 # These are generated react files that we don't need to check
-content/js/conversation.js
-content/js/conversationViews.js
-content/js/panel.js
-content/js/roomViews.js
-content/js/feedbackViews.js
+content/panels/js/conversation.js
+content/panels/js/conversationViews.js
+content/panels/js/panel.js
+content/panels/js/roomViews.js
+content/panels/js/feedbackViews.js
 content/shared/js/textChatView.js
 content/shared/js/linkifiedTextView.js
 content/shared/js/views.js
 standalone/content/js/standaloneRoomViews.js
 standalone/content/js/webapp.js
 ui/ui-showcase.js
 # Don't need to check the built tree
 standalone/dist
--- a/browser/extensions/loop/.eslintrc-gecko
+++ b/browser/extensions/loop/.eslintrc-gecko
@@ -2,19 +2,20 @@
 // This is applied on top of the basic .eslintrc for gecko specific directories
 // e.g. the modules directory.
 {
   "ecmaFeatures": {
     "arrowFunctions": true,
     "blockBindings": true,
     "destructuring": true,
     "generators": true,
+    "objectLiteralShorthandMethods": true,
     "restParams": true,
     "spread": true,
-    "objectLiteralShorthandMethods": true,
+    "templateStrings": true,
   },
   "globals": {
     // Gecko + Loop Globals.
     "Chat": false,
     "ChromeWorker": false,
     "CommonUtils": false,
     "Components": false,
     "convertToRTCStatsReport": false,
--- a/browser/extensions/loop/content/modules/.eslintrc
+++ b/browser/extensions/loop/content/modules/.eslintrc
@@ -1,3 +1,3 @@
 {
-  "extends": "../.eslintrc-gecko"
+  "extends": "../../.eslintrc-gecko"
 }
new file mode 100644
--- /dev/null
+++ b/browser/extensions/loop/install.rdf.in
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+#filter substitution
+
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+  <Description about="urn:mozilla:install-manifest">
+    <em:id>loop@mozilla.org</em:id>
+    <em:bootstrap>true</em:bootstrap>
+    <em:version>0.1</em:version>
+    <em:type>2</em:type>
+
+    <!-- Target Application this extension can install into,
+         with minimum and maximum supported versions. -->
+    <em:targetApplication>
+      <Description>
+        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+        <em:minVersion>45.0a1</em:minVersion>
+        <em:maxVersion>@FIREFOX_VERSION@</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+
+    <!-- Used for unit tests only. -->
+    <em:targetApplication>
+      <Description>
+        <em:id>xpcshell@tests.mozilla.org</em:id>
+        <em:minVersion>0</em:minVersion>
+        <em:maxVersion>10</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+
+    <!-- Front End MetaData -->
+    <em:name>Firefox Hello</em:name>
+    <em:description>Web sharing for Firefox</em:description>
+    <em:creator>Mozilla</em:creator>
+  </Description>
+</RDF>
--- a/browser/extensions/loop/jar.mn
+++ b/browser/extensions/loop/jar.mn
@@ -1,136 +1,164 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-browser.jar:
+[.] chrome.jar:
+% content loop %content/ contentaccessible=yes
+% skin loop classic/1.0 %skin/linux/ os=Linux
+% skin loop classic/1.0 %skin/osx/ os=Darwin
+% skin loop classic/1.0 %skin/windows/ os=WINNT
+% skin loop-shared classic/1.0 %skin/shared/
+% override chrome://loop/skin/menuPanel.png       chrome://loop/skin/menuPanel-yosemite.png       os=Darwin osversion>=10.10
+% override chrome://loop/skin/menuPanel@2x.png    chrome://loop/skin/menuPanel-yosemite@2x.png    os=Darwin osversion>=10.10
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-yosemite.png         os=Darwin osversion>=10.10
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-yosemite@2x.png      os=Darwin osversion>=10.10
+% override chrome://loop/skin/menuPanel.png       chrome://loop/skin/menuPanel-aero.png           os=WINNT osversion=6
+% override chrome://loop/skin/menuPanel.png       chrome://loop/skin/menuPanel-aero.png           os=WINNT osversion=6.1
+% override chrome://loop/skin/menuPanel@2x.png    chrome://loop/skin/menuPanel-aero@2x.png        os=WINNT osversion=6
+% override chrome://loop/skin/menuPanel@2x.png    chrome://loop/skin/menuPanel-aero@2x.png        os=WINNT osversion=6.1
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-XP.png               os=WINNT osversion<6
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-aero.png             os=WINNT osversion=6
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-aero.png             os=WINNT osversion=6.1
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-win8.png             os=WINNT osversion=6.2
+% override chrome://loop/skin/toolbar.png         chrome://loop/skin/toolbar-win8.png             os=WINNT osversion=6.3
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-XP@2x.png            os=WINNT osversion<6
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-aero@2x.png          os=WINNT osversion=6
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-aero@2x.png          os=WINNT osversion=6.1
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-win8@2x.png          os=WINNT osversion=6.2
+% override chrome://loop/skin/toolbar@2x.png      chrome://loop/skin/toolbar-win8@2x.png          os=WINNT osversion=6.3
+  skin/  (skin/*)
+  content/modules/ (content/modules/*)
+* content/preferences/prefs.js (content/preferences/prefs.js)
+
   # Desktop html files
-  content/browser/loop/conversation.html            (content/conversation.html)
-  content/browser/loop/panel.html                   (content/panel.html)
+  content/panels/conversation.html                 (content/panels/conversation.html)
+  content/panels/panel.html                        (content/panels/panel.html)
 
-  # Desktop libs (see bottom of this file for TokBox sdk assets)
-  content/browser/loop/libs/l10n.js                 (content/libs/l10n.js)
+  # Desktop vendor (see bottom of this file for TokBox sdk assets)
+  content/panels/vendor/l10n.js                    (content/panels/vendor/l10n.js)
 
   # Desktop script
-  content/browser/loop/js/conversation.js           (content/js/conversation.js)
-  content/browser/loop/js/conversationAppStore.js   (content/js/conversationAppStore.js)
-  content/browser/loop/js/otconfig.js               (content/js/otconfig.js)
-  content/browser/loop/js/panel.js                  (content/js/panel.js)
-  content/browser/loop/js/roomStore.js              (content/js/roomStore.js)
-  content/browser/loop/js/roomViews.js              (content/js/roomViews.js)
-  content/browser/loop/js/feedbackViews.js          (content/js/feedbackViews.js)
+  content/panels/js/conversation.js                (content/panels/js/conversation.js)
+  content/panels/js/conversationAppStore.js        (content/panels/js/conversationAppStore.js)
+  content/panels/js/otconfig.js                    (content/panels/js/otconfig.js)
+  content/panels/js/panel.js                       (content/panels/js/panel.js)
+  content/panels/js/roomStore.js                   (content/panels/js/roomStore.js)
+  content/panels/js/roomViews.js                   (content/panels/js/roomViews.js)
+  content/panels/js/feedbackViews.js               (content/panels/js/feedbackViews.js)
 
   # Desktop styles
-  content/browser/loop/css/panel.css                (content/css/panel.css)
+  content/panels/css/panel.css                     (content/panels/css/panel.css)
 
   # Shared styles
-  content/browser/loop/shared/css/reset.css         (content/shared/css/reset.css)
-  content/browser/loop/shared/css/common.css        (content/shared/css/common.css)
-  content/browser/loop/shared/css/conversation.css  (content/shared/css/conversation.css)
+  content/shared/css/reset.css                     (content/shared/css/reset.css)
+  content/shared/css/common.css                    (content/shared/css/common.css)
+  content/shared/css/conversation.css              (content/shared/css/conversation.css)
 
   # Shared images
-  content/browser/loop/shared/img/helloicon.svg                 (content/shared/img/helloicon.svg)
-  content/browser/loop/shared/img/icon_32.png                   (content/shared/img/icon_32.png)
-  content/browser/loop/shared/img/icon_64.png                   (content/shared/img/icon_64.png)
-  content/browser/loop/shared/img/spinner.svg                   (content/shared/img/spinner.svg)
+  content/shared/img/helloicon.svg                 (content/shared/img/helloicon.svg)
+  content/shared/img/icon_32.png                   (content/shared/img/icon_32.png)
+  content/shared/img/icon_64.png                   (content/shared/img/icon_64.png)
+  content/shared/img/spinner.svg                   (content/shared/img/spinner.svg)
   # XXX could get rid of the png spinner usages and replace them with the svg
   # one?
-  content/browser/loop/shared/img/spinner.png                   (content/shared/img/spinner.png)
-  content/browser/loop/shared/img/spinner@2x.png                (content/shared/img/spinner@2x.png)
-  content/browser/loop/shared/img/sad_hello_icon_64x64.svg      (content/shared/img/sad_hello_icon_64x64.svg)
-  content/browser/loop/shared/img/chatbubble-arrow-left.svg     (content/shared/img/chatbubble-arrow-left.svg)
-  content/browser/loop/shared/img/chatbubble-arrow-right.svg    (content/shared/img/chatbubble-arrow-right.svg)
-  content/browser/loop/shared/img/facemute-14x14.png            (content/shared/img/facemute-14x14.png)
-  content/browser/loop/shared/img/facemute-14x14@2x.png         (content/shared/img/facemute-14x14@2x.png)
-  content/browser/loop/shared/img/hangup-inverse-14x14.png      (content/shared/img/hangup-inverse-14x14.png)
-  content/browser/loop/shared/img/hangup-inverse-14x14@2x.png   (content/shared/img/hangup-inverse-14x14@2x.png)
-  content/browser/loop/shared/img/mute-inverse-14x14.png        (content/shared/img/mute-inverse-14x14.png)
-  content/browser/loop/shared/img/mute-inverse-14x14@2x.png     (content/shared/img/mute-inverse-14x14@2x.png)
-  content/browser/loop/shared/img/svg/glyph-email-16x16.svg     (content/shared/img/svg/glyph-email-16x16.svg)
-  content/browser/loop/shared/img/svg/glyph-facebook-16x16.svg  (content/shared/img/svg/glyph-facebook-16x16.svg)
-  content/browser/loop/shared/img/svg/glyph-help-16x16.svg      (content/shared/img/svg/glyph-help-16x16.svg)
-  content/browser/loop/shared/img/svg/glyph-link-16x16.svg      (content/shared/img/svg/glyph-link-16x16.svg)
-  content/browser/loop/shared/img/svg/glyph-user-16x16.svg      (content/shared/img/svg/glyph-user-16x16.svg)
-  content/browser/loop/shared/img/svg/exit.svg                  (content/shared/img/svg/exit.svg)
-  content/browser/loop/shared/img/svg/audio.svg                 (content/shared/img/svg/audio.svg)
-  content/browser/loop/shared/img/svg/audio-hover.svg           (content/shared/img/svg/audio-hover.svg)
-  content/browser/loop/shared/img/svg/audio-mute.svg            (content/shared/img/svg/audio-mute.svg)
-  content/browser/loop/shared/img/svg/audio-mute-hover.svg      (content/shared/img/svg/audio-mute-hover.svg)
-  content/browser/loop/shared/img/svg/video.svg                 (content/shared/img/svg/video.svg)
-  content/browser/loop/shared/img/svg/video-hover.svg           (content/shared/img/svg/video-hover.svg)
-  content/browser/loop/shared/img/svg/video-mute.svg            (content/shared/img/svg/video-mute.svg)
-  content/browser/loop/shared/img/svg/video-mute-hover.svg      (content/shared/img/svg/video-mute-hover.svg)
-  content/browser/loop/shared/img/svg/settings.svg              (content/shared/img/svg/settings.svg)
-  content/browser/loop/shared/img/svg/settings-hover.svg        (content/shared/img/svg/settings-hover.svg)
-  content/browser/loop/shared/img/svg/sharing.svg               (content/shared/img/svg/sharing.svg)
-  content/browser/loop/shared/img/svg/sharing-active.svg        (content/shared/img/svg/sharing-active.svg)
-  content/browser/loop/shared/img/svg/sharing-pending.svg       (content/shared/img/svg/sharing-pending.svg)
-  content/browser/loop/shared/img/svg/sharing-hover.svg         (content/shared/img/svg/sharing-hover.svg)
-  content/browser/loop/shared/img/svg/media-group.svg           (content/shared/img/svg/media-group.svg)
-  content/browser/loop/shared/img/svg/media-group-left-hover.svg (content/shared/img/svg/media-group-left-hover.svg)
-  content/browser/loop/shared/img/svg/media-group-right-hover.svg (content/shared/img/svg/media-group-right-hover.svg)
-  content/browser/loop/shared/img/audio-call-avatar.svg         (content/shared/img/audio-call-avatar.svg)
-  content/browser/loop/shared/img/beta-ribbon.svg               (content/shared/img/beta-ribbon.svg)
-  content/browser/loop/shared/img/check.svg                     (content/shared/img/check.svg)
-  content/browser/loop/shared/img/icons-10x10.svg               (content/shared/img/icons-10x10.svg)
-  content/browser/loop/shared/img/icons-14x14.svg               (content/shared/img/icons-14x14.svg)
-  content/browser/loop/shared/img/icons-16x16.svg               (content/shared/img/icons-16x16.svg)
-  content/browser/loop/shared/img/movistar.png                  (content/shared/img/movistar.png)
-  content/browser/loop/shared/img/movistar@2x.png               (content/shared/img/movistar@2x.png)
-  content/browser/loop/shared/img/vivo.png                      (content/shared/img/vivo.png)
-  content/browser/loop/shared/img/vivo@2x.png                   (content/shared/img/vivo@2x.png)
-  content/browser/loop/shared/img/02.png                        (content/shared/img/02.png)
-  content/browser/loop/shared/img/02@2x.png                     (content/shared/img/02@2x.png)
-  content/browser/loop/shared/img/telefonica.png                (content/shared/img/telefonica.png)
-  content/browser/loop/shared/img/hello_logo.svg                (content/shared/img/hello_logo.svg)
-  content/browser/loop/shared/img/telefonica@2x.png             (content/shared/img/telefonica@2x.png)
-  content/browser/loop/shared/img/ellipsis-v.svg                (content/shared/img/ellipsis-v.svg)
-  content/browser/loop/shared/img/empty_conversations.svg       (content/shared/img/empty_conversations.svg)
-  content/browser/loop/shared/img/empty_search.svg              (content/shared/img/empty_search.svg)
-  content/browser/loop/shared/img/animated-spinner.svg          (content/shared/img/animated-spinner.svg)
-  content/browser/loop/shared/img/avatars.svg                   (content/shared/img/avatars.svg)
-  content/browser/loop/shared/img/firefox-avatar.svg            (content/shared/img/firefox-avatar.svg)
-  content/browser/loop/shared/img/pause-12x12.svg               (content/shared/img/pause-12x12.svg)
-  content/browser/loop/shared/img/play-12x12.svg                (content/shared/img/play-12x12.svg)
-  content/browser/loop/shared/img/stop-12x12.svg                (content/shared/img/stop-12x12.svg)
+  content/shared/img/spinner.png                   (content/shared/img/spinner.png)
+  content/shared/img/spinner@2x.png                (content/shared/img/spinner@2x.png)
+  content/shared/img/sad_hello_icon_64x64.svg      (content/shared/img/sad_hello_icon_64x64.svg)
+  content/shared/img/chatbubble-arrow-left.svg     (content/shared/img/chatbubble-arrow-left.svg)
+  content/shared/img/chatbubble-arrow-right.svg    (content/shared/img/chatbubble-arrow-right.svg)
+  content/shared/img/facemute-14x14.png            (content/shared/img/facemute-14x14.png)
+  content/shared/img/facemute-14x14@2x.png         (content/shared/img/facemute-14x14@2x.png)
+  content/shared/img/hangup-inverse-14x14.png      (content/shared/img/hangup-inverse-14x14.png)
+  content/shared/img/hangup-inverse-14x14@2x.png   (content/shared/img/hangup-inverse-14x14@2x.png)
+  content/shared/img/mute-inverse-14x14.png        (content/shared/img/mute-inverse-14x14.png)
+  content/shared/img/mute-inverse-14x14@2x.png     (content/shared/img/mute-inverse-14x14@2x.png)
+  content/shared/img/glyph-email-16x16.svg         (content/shared/img/glyph-email-16x16.svg)
+  content/shared/img/glyph-facebook-16x16.svg      (content/shared/img/glyph-facebook-16x16.svg)
+  content/shared/img/glyph-help-16x16.svg          (content/shared/img/glyph-help-16x16.svg)
+  content/shared/img/glyph-link-16x16.svg          (content/shared/img/glyph-link-16x16.svg)
+  content/shared/img/glyph-user-16x16.svg          (content/shared/img/glyph-user-16x16.svg)
+  content/shared/img/exit.svg                      (content/shared/img/exit.svg)
+  content/shared/img/audio.svg                     (content/shared/img/audio.svg)
+  content/shared/img/audio-hover.svg               (content/shared/img/audio-hover.svg)
+  content/shared/img/audio-mute.svg                (content/shared/img/audio-mute.svg)
+  content/shared/img/audio-mute-hover.svg          (content/shared/img/audio-mute-hover.svg)
+  content/shared/img/video.svg                     (content/shared/img/video.svg)
+  content/shared/img/video-hover.svg               (content/shared/img/video-hover.svg)
+  content/shared/img/video-mute.svg                (content/shared/img/video-mute.svg)
+  content/shared/img/video-mute-hover.svg          (content/shared/img/video-mute-hover.svg)
+  content/shared/img/settings.svg                  (content/shared/img/settings.svg)
+  content/shared/img/settings-hover.svg            (content/shared/img/settings-hover.svg)
+  content/shared/img/sharing.svg                   (content/shared/img/sharing.svg)
+  content/shared/img/sharing-active.svg            (content/shared/img/sharing-active.svg)
+  content/shared/img/sharing-pending.svg           (content/shared/img/sharing-pending.svg)
+  content/shared/img/sharing-hover.svg             (content/shared/img/sharing-hover.svg)
+  content/shared/img/media-group.svg               (content/shared/img/media-group.svg)
+  content/shared/img/media-group-left-hover.svg    (content/shared/img/media-group-left-hover.svg)
+  content/shared/img/media-group-right-hover.svg   (content/shared/img/media-group-right-hover.svg)
+  content/shared/img/audio-call-avatar.svg         (content/shared/img/audio-call-avatar.svg)
+  content/shared/img/beta-ribbon.svg               (content/shared/img/beta-ribbon.svg)
+  content/shared/img/check.svg                     (content/shared/img/check.svg)
+  content/shared/img/icons-10x10.svg               (content/shared/img/icons-10x10.svg)
+  content/shared/img/icons-14x14.svg               (content/shared/img/icons-14x14.svg)
+  content/shared/img/icons-16x16.svg               (content/shared/img/icons-16x16.svg)
+  content/shared/img/movistar.png                  (content/shared/img/movistar.png)
+  content/shared/img/movistar@2x.png               (content/shared/img/movistar@2x.png)
+  content/shared/img/vivo.png                      (content/shared/img/vivo.png)
+  content/shared/img/vivo@2x.png                   (content/shared/img/vivo@2x.png)
+  content/shared/img/02.png                        (content/shared/img/02.png)
+  content/shared/img/02@2x.png                     (content/shared/img/02@2x.png)
+  content/shared/img/telefonica.png                (content/shared/img/telefonica.png)
+  content/shared/img/hello_logo.svg                (content/shared/img/hello_logo.svg)
+  content/shared/img/telefonica@2x.png             (content/shared/img/telefonica@2x.png)
+  content/shared/img/ellipsis-v.svg                (content/shared/img/ellipsis-v.svg)
+  content/shared/img/empty_conversations.svg       (content/shared/img/empty_conversations.svg)
+  content/shared/img/empty_search.svg              (content/shared/img/empty_search.svg)
+  content/shared/img/animated-spinner.svg          (content/shared/img/animated-spinner.svg)
+  content/shared/img/avatars.svg                   (content/shared/img/avatars.svg)
+  content/shared/img/firefox-avatar.svg            (content/shared/img/firefox-avatar.svg)
+  content/shared/img/pause-12x12.svg               (content/shared/img/pause-12x12.svg)
+  content/shared/img/play-12x12.svg                (content/shared/img/play-12x12.svg)
+  content/shared/img/stop-12x12.svg                (content/shared/img/stop-12x12.svg)
 
   # Shared scripts
-  content/browser/loop/shared/js/actions.js             (content/shared/js/actions.js)
-  content/browser/loop/shared/js/store.js               (content/shared/js/store.js)
-  content/browser/loop/shared/js/activeRoomStore.js     (content/shared/js/activeRoomStore.js)
-  content/browser/loop/shared/js/dispatcher.js          (content/shared/js/dispatcher.js)
-  content/browser/loop/shared/js/linkifiedTextView.js   (content/shared/js/linkifiedTextView.js)
-  content/browser/loop/shared/js/loopapi-client.js      (content/shared/js/loopapi-client.js)
-  content/browser/loop/shared/js/models.js              (content/shared/js/models.js)
-  content/browser/loop/shared/js/mixins.js              (content/shared/js/mixins.js)
-  content/browser/loop/shared/js/otSdkDriver.js         (content/shared/js/otSdkDriver.js)
-  content/browser/loop/shared/js/views.js               (content/shared/js/views.js)
-  content/browser/loop/shared/js/textChatStore.js       (content/shared/js/textChatStore.js)
-  content/browser/loop/shared/js/textChatView.js        (content/shared/js/textChatView.js)
-  content/browser/loop/shared/js/urlRegExps.js          (content/shared/js/urlRegExps.js)
-  content/browser/loop/shared/js/utils.js               (content/shared/js/utils.js)
-  content/browser/loop/shared/js/validate.js            (content/shared/js/validate.js)
+  content/shared/js/actions.js                     (content/shared/js/actions.js)
+  content/shared/js/crypto.js                      (content/shared/js/crypto.js)
+  content/shared/js/store.js                       (content/shared/js/store.js)
+  content/shared/js/activeRoomStore.js             (content/shared/js/activeRoomStore.js)
+  content/shared/js/dispatcher.js                  (content/shared/js/dispatcher.js)
+  content/shared/js/linkifiedTextView.js           (content/shared/js/linkifiedTextView.js)
+  content/shared/js/loopapi-client.js              (content/shared/js/loopapi-client.js)
+  content/shared/js/models.js                      (content/shared/js/models.js)
+  content/shared/js/mixins.js                      (content/shared/js/mixins.js)
+  content/shared/js/otSdkDriver.js                 (content/shared/js/otSdkDriver.js)
+  content/shared/js/views.js                       (content/shared/js/views.js)
+  content/shared/js/textChatStore.js               (content/shared/js/textChatStore.js)
+  content/shared/js/textChatView.js                (content/shared/js/textChatView.js)
+  content/shared/js/urlRegExps.js                  (content/shared/js/urlRegExps.js)
+  content/shared/js/utils.js                       (content/shared/js/utils.js)
+  content/shared/js/validate.js                    (content/shared/js/validate.js)
 
   # Shared libs
 #ifdef DEBUG
-  content/browser/loop/shared/libs/react-0.13.3.js    (content/shared/libs/react-0.13.3.js)
+  content/shared/vendor/react-0.13.3.js            (content/shared/vendor/react-0.13.3.js)
 #else
-  content/browser/loop/shared/libs/react-0.13.3.js    (content/shared/libs/react-0.13.3-prod.js)
+  content/shared/vendor/react-0.13.3.js            (content/shared/vendor/react-0.13.3-prod.js)
 #endif
-  content/browser/loop/shared/libs/lodash-3.9.3.js    (content/shared/libs/lodash-3.9.3.js)
-  content/browser/loop/shared/libs/backbone-1.2.1.js  (content/shared/libs/backbone-1.2.1.js)
-  content/browser/loop/shared/libs/classnames-2.2.0.js      (content/shared/libs/classnames-2.2.0.js)
+  content/shared/vendor/lodash-3.9.3.js            (content/shared/vendor/lodash-3.9.3.js)
+  content/shared/vendor/backbone-1.2.1.js          (content/shared/vendor/backbone-1.2.1.js)
+  content/shared/vendor/classnames-2.2.0.js        (content/shared/vendor/classnames-2.2.0.js)
 
   # Shared sounds
-  content/browser/loop/shared/sounds/ringtone.ogg       (content/shared/sounds/ringtone.ogg)
-  content/browser/loop/shared/sounds/connecting.ogg     (content/shared/sounds/connecting.ogg)
-  content/browser/loop/shared/sounds/connected.ogg      (content/shared/sounds/connected.ogg)
-  content/browser/loop/shared/sounds/terminated.ogg     (content/shared/sounds/terminated.ogg)
-  content/browser/loop/shared/sounds/room-joined.ogg    (content/shared/sounds/room-joined.ogg)
-  content/browser/loop/shared/sounds/room-joined-in.ogg (content/shared/sounds/room-joined-in.ogg)
-  content/browser/loop/shared/sounds/room-left.ogg      (content/shared/sounds/room-left.ogg)
-  content/browser/loop/shared/sounds/failure.ogg        (content/shared/sounds/failure.ogg)
-  content/browser/loop/shared/sounds/message.ogg        (content/shared/sounds/message.ogg)
+  content/shared/sounds/ringtone.ogg               (content/shared/sounds/ringtone.ogg)
+  content/shared/sounds/connecting.ogg             (content/shared/sounds/connecting.ogg)
+  content/shared/sounds/connected.ogg              (content/shared/sounds/connected.ogg)
+  content/shared/sounds/terminated.ogg             (content/shared/sounds/terminated.ogg)
+  content/shared/sounds/room-joined.ogg            (content/shared/sounds/room-joined.ogg)
+  content/shared/sounds/room-joined-in.ogg         (content/shared/sounds/room-joined-in.ogg)
+  content/shared/sounds/room-left.ogg              (content/shared/sounds/room-left.ogg)
+  content/shared/sounds/failure.ogg                (content/shared/sounds/failure.ogg)
+  content/shared/sounds/message.ogg                (content/shared/sounds/message.ogg)
 
   # Partner SDK assets
-  content/browser/loop/libs/sdk.js                                                    (content/shared/libs/sdk.js)
-  content/browser/loop/sdk-content/js/dynamic_config.min.js                   (content/shared/libs/sdk-content/js/dynamic_config.min.js)
+  content/shared/vendor/sdk.js                     (content/shared/vendor/sdk.js)
+  content/sdk-content/js/dynamic_config.min.js     (content/shared/vendor/sdk-content/js/dynamic_config.min.js)
--- a/browser/extensions/loop/moz.build
+++ b/browser/extensions/loop/moz.build
@@ -1,27 +1,26 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+FINAL_TARGET = 'dist/bin/browser/features/loop@test.mozilla.org'
+
+FINAL_TARGET_FILES += [
+ 'bootstrap.js'
+]
+
+DIST_FILES += [
+  'install.rdf.in'
+]
+
 JAR_MANIFESTS += ['jar.mn']
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell/xpcshell.ini']
 
 BROWSER_CHROME_MANIFESTS += [
     'test/mochitest/browser.ini',
 ]
 
-EXTRA_JS_MODULES.loop += [
-    'content/shared/js/crypto.js',
-    'content/shared/js/utils.js',
-    'modules/LoopRooms.jsm',
-    'modules/LoopRoomsCache.jsm',
-    'modules/MozLoopAPI.jsm',
-    'modules/MozLoopPushHandler.jsm',
-    'modules/MozLoopService.jsm',
-    'modules/MozLoopWorker.js',
-]
-
 with Files('**'):
     BUG_COMPONENT = ('Loop', 'Client')
--- a/browser/extensions/loop/run-all-loop-tests.sh
+++ b/browser/extensions/loop/run-all-loop-tests.sh
@@ -7,30 +7,30 @@ if [ "$1" == "--help" ]; then
   exit 0;
 fi
 
 # Causes script to abort immediately if error code is not checked.
 set -e
 
 # Main tests
 
-LOOPDIR=browser/components/loop
+LOOPDIR=browser/extensions/loop
 ESLINT=standalone/node_modules/.bin/eslint
 if [ -x "${LOOPDIR}/${ESLINT}" ]; then
   echo 'running eslint; see http://eslint.org/docs/rules/ for error info'
   (cd ${LOOPDIR} && ./${ESLINT} --ext .js --ext .jsm --ext .jsx .)
   if [ $? != 0 ]; then
     exit 1;
   fi
   echo 'eslint run finished.'
 fi
 
 # Build tests coverage.
 MISSINGDEPSMSG="\nMake sure all dependencies are up to date by running
-'npm install' inside the 'browser/components/loop/test/' directory.\n"
+'npm install' inside the 'browser/extensions/loop/test/' directory.\n"
 (
 cd ${LOOPDIR}/test
 if ! npm run-script build-coverage ; then
   echo $MISSINGDEPSMSG && exit 1
 fi
 )
 
 ./mach xpcshell-test ${LOOPDIR}/
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -1,10 +1,11 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
+    'loop',
     'pdfjs',
     'shumway',
 ]
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -671,16 +671,17 @@
 @RESPATH@/chrome/toolkit.manifest
 @RESPATH@/chrome/recording.manifest
 @RESPATH@/chrome/recording/*
 #ifdef MOZ_GTK
 @RESPATH@/browser/chrome/icons/default/default16.png
 @RESPATH@/browser/chrome/icons/default/default32.png
 @RESPATH@/browser/chrome/icons/default/default48.png
 #endif
+@RESPATH@/browser/features/*
 
 ; [Webide Files]
 @RESPATH@/browser/chrome/webide@JAREXT@
 @RESPATH@/browser/chrome/webide.manifest
 @RESPATH@/browser/@PREF_DIR@/webide-prefs.js
 
 ; DevTools
 @RESPATH@/browser/chrome/devtools@JAREXT@
--- a/browser/themes/linux/jar.mn
+++ b/browser/themes/linux/jar.mn
@@ -42,22 +42,16 @@ browser.jar:
   skin/classic/browser/searchbar.css
   skin/classic/browser/Security-broken.png
   skin/classic/browser/setDesktopBackground.css
   skin/classic/browser/slowStartup-16.png
   skin/classic/browser/Toolbar.png
   skin/classic/browser/Toolbar-inverted.png
   skin/classic/browser/Toolbar-small.png
   skin/classic/browser/webRTC-indicator.css
-  skin/classic/browser/loop/menuPanel.png             (loop/menuPanel.png)
-  skin/classic/browser/loop/menuPanel@2x.png          (loop/menuPanel@2x.png)
-  skin/classic/browser/loop/toolbar.png               (loop/toolbar.png)
-  skin/classic/browser/loop/toolbar@2x.png            (loop/toolbar@2x.png)
-  skin/classic/browser/loop/toolbar-inverted.png      (loop/toolbar-inverted.png)
-  skin/classic/browser/loop/toolbar-inverted@2x.png   (loop/toolbar-inverted@2x.png)
 * skin/classic/browser/controlcenter/panel.css        (controlcenter/panel.css)
   skin/classic/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
   skin/classic/browser/customizableui/customizeMode-gridTexture.png  (customizableui/customizeMode-gridTexture.png)
   skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png  (customizableui/customizeMode-separatorHorizontal.png)
   skin/classic/browser/customizableui/customizeMode-separatorVertical.png  (customizableui/customizeMode-separatorVertical.png)
 * skin/classic/browser/customizableui/panelUIOverlay.css (customizableui/panelUIOverlay.css)
   skin/classic/browser/downloads/allDownloadsViewOverlay.css   (downloads/allDownloadsViewOverlay.css)
   skin/classic/browser/downloads/buttons.png          (downloads/buttons.png)
--- a/browser/themes/osx/jar.mn
+++ b/browser/themes/osx/jar.mn
@@ -68,26 +68,16 @@ browser.jar:
   skin/classic/browser/urlbar-popup-blocked@2x.png
   skin/classic/browser/webRTC-sharingDevice-menubar.png
   skin/classic/browser/webRTC-sharingDevice-menubar@2x.png
   skin/classic/browser/webRTC-sharingMicrophone-menubar.png
   skin/classic/browser/webRTC-sharingMicrophone-menubar@2x.png
   skin/classic/browser/webRTC-sharingScreen-menubar.png
   skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
   skin/classic/browser/webRTC-indicator.css
-  skin/classic/browser/loop/menuPanel.png             (loop/menuPanel.png)
-  skin/classic/browser/loop/menuPanel@2x.png          (loop/menuPanel@2x.png)
-  skin/classic/browser/loop/toolbar.png               (loop/toolbar.png)
-  skin/classic/browser/loop/toolbar@2x.png            (loop/toolbar@2x.png)
-  skin/classic/browser/loop/toolbar-inverted.png      (loop/toolbar-inverted.png)
-  skin/classic/browser/loop/toolbar-inverted@2x.png   (loop/toolbar-inverted@2x.png)
-  skin/classic/browser/yosemite/loop/menuPanel.png          (loop/menuPanel-yosemite.png)
-  skin/classic/browser/yosemite/loop/menuPanel@2x.png       (loop/menuPanel-yosemite@2x.png)
-  skin/classic/browser/yosemite/loop/toolbar.png            (loop/toolbar-yosemite.png)
-  skin/classic/browser/yosemite/loop/toolbar@2x.png         (loop/toolbar-yosemite@2x.png)
 * skin/classic/browser/controlcenter/panel.css        (controlcenter/panel.css)
   skin/classic/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle.png  (customizableui/customize-titleBar-toggle.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png  (customizableui/customize-titleBar-toggle@2x.png)
   skin/classic/browser/customizableui/customizeMode-gridTexture.png  (customizableui/customizeMode-gridTexture.png)
   skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png  (customizableui/customizeMode-separatorHorizontal.png)
   skin/classic/browser/customizableui/customizeMode-separatorVertical.png  (customizableui/customizeMode-separatorVertical.png)
 * skin/classic/browser/customizableui/panelUIOverlay.css    (customizableui/panelUIOverlay.css)
@@ -275,20 +265,16 @@ browser.jar:
 % override chrome://browser/skin/toolbarbutton-dropmarker.png              chrome://browser/skin/lion/toolbarbutton-dropmarker.png                 os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabbrowser/alltabs-box-bkgnd-icon.png     chrome://browser/skin/lion/tabbrowser/alltabs-box-bkgnd-icon.png        os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabview/tabview.png                       chrome://browser/skin/lion/tabview/tabview.png                          os=Darwin osversion>=10.7
 % override chrome://browser/skin/places/toolbar.png                        chrome://browser/skin/lion/places/toolbar.png                           os=Darwin osversion>=10.7
 % override chrome://browser/skin/Toolbar.png                               chrome://browser/skin/yosemite/Toolbar.png                              os=Darwin osversion>=10.10
 % override chrome://browser/skin/Toolbar@2x.png                            chrome://browser/skin/yosemite/Toolbar@2x.png                           os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel.png                             chrome://browser/skin/yosemite/menuPanel.png                            os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel@2x.png                          chrome://browser/skin/yosemite/menuPanel@2x.png                         os=Darwin osversion>=10.10
-% override chrome://browser/skin/loop/menuPanel.png                        chrome://browser/skin/yosemite/loop/menuPanel.png                       os=Darwin osversion>=10.10
-% override chrome://browser/skin/loop/menuPanel@2x.png                     chrome://browser/skin/yosemite/loop/menuPanel@2x.png                    os=Darwin osversion>=10.10
-% override chrome://browser/skin/loop/toolbar.png                          chrome://browser/skin/yosemite/loop/toolbar.png                         os=Darwin osversion>=10.10
-% override chrome://browser/skin/loop/toolbar@2x.png                       chrome://browser/skin/yosemite/loop/toolbar@2x.png                      os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-customize.png                   chrome://browser/skin/yosemite/menuPanel-customize.png                  os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-customize@2x.png                chrome://browser/skin/yosemite/menuPanel-customize@2x.png               os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-exit.png                        chrome://browser/skin/yosemite/menuPanel-exit.png                       os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-exit@2x.png                     chrome://browser/skin/yosemite/menuPanel-exit@2x.png                    os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-help.png                        chrome://browser/skin/yosemite/menuPanel-help.png                       os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-help@2x.png                     chrome://browser/skin/yosemite/menuPanel-help@2x.png                    os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-small.png                       chrome://browser/skin/yosemite/menuPanel-small.png                      os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel-small@2x.png                    chrome://browser/skin/yosemite/menuPanel-small@2x.png                   os=Darwin osversion>=10.10
--- a/browser/themes/windows/jar.mn
+++ b/browser/themes/windows/jar.mn
@@ -78,32 +78,16 @@ browser.jar:
   skin/classic/browser/toolbarbutton-dropdown-arrow-XPVista7.png
   skin/classic/browser/toolbarbutton-dropdown-arrow-inverted.png
   skin/classic/browser/urlbar-popup-blocked.png
   skin/classic/browser/urlbar-history-dropmarker.png
   skin/classic/browser/urlbar-history-dropmarker@2x.png
   skin/classic/browser/urlbar-history-dropmarker-XPVista7.png
   skin/classic/browser/urlbar-history-dropmarker-XPVista7@2x.png
   skin/classic/browser/webRTC-indicator.css
-  skin/classic/browser/loop/menuPanel.png                      (loop/menuPanel.png)
-  skin/classic/browser/loop/menuPanel@2x.png                   (loop/menuPanel@2x.png)
-  skin/classic/browser/loop/menuPanel-aero.png                 (loop/menuPanel-aero.png)
-  skin/classic/browser/loop/menuPanel-aero@2x.png              (loop/menuPanel-aero@2x.png)
-  skin/classic/browser/loop/toolbar.png                        (loop/toolbar.png)
-  skin/classic/browser/loop/toolbar@2x.png                     (loop/toolbar@2x.png)
-  skin/classic/browser/loop/toolbar-aero.png                   (loop/toolbar-aero.png)
-  skin/classic/browser/loop/toolbar-aero@2x.png                (loop/toolbar-aero@2x.png)
-  skin/classic/browser/loop/toolbar-inverted.png               (loop/toolbar-inverted.png)
-  skin/classic/browser/loop/toolbar-inverted@2x.png            (loop/toolbar-inverted@2x.png)
-  skin/classic/browser/loop/toolbar-lunaSilver.png             (loop/toolbar-lunaSilver.png)
-  skin/classic/browser/loop/toolbar-lunaSilver@2x.png          (loop/toolbar-lunaSilver@2x.png)
-  skin/classic/browser/loop/toolbar-win8.png                   (loop/toolbar-win8.png)
-  skin/classic/browser/loop/toolbar-win8@2x.png                (loop/toolbar-win8@2x.png)
-  skin/classic/browser/loop/toolbar-XP.png                     (loop/toolbar-XP.png)
-  skin/classic/browser/loop/toolbar-XP@2x.png                  (loop/toolbar-XP@2x.png)
 * skin/classic/browser/controlcenter/panel.css                 (controlcenter/panel.css)
   skin/classic/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle.png  (customizableui/customize-titleBar-toggle.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png  (customizableui/customize-titleBar-toggle@2x.png)
   skin/classic/browser/customizableui/customizeMode-gridTexture.png  (customizableui/customizeMode-gridTexture.png)
   skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png  (customizableui/customizeMode-separatorHorizontal.png)
   skin/classic/browser/customizableui/customizeMode-separatorVertical.png  (customizableui/customizeMode-separatorVertical.png)
   skin/classic/browser/customizableui/menu-arrow.svg           (customizableui/menu-arrow.svg)
@@ -320,36 +304,21 @@ browser.jar:
 % override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6
 % override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6.1
 % override chrome://browser/skin/menuPanel-small@2x.png               chrome://browser/skin/menuPanel-small-aero@2x.png                 os=WINNT osversion=6
 % override chrome://browser/skin/menuPanel-small@2x.png               chrome://browser/skin/menuPanel-small-aero@2x.png                 os=WINNT osversion=6.1
 % override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-aero@2x.png                         os=WINNT osversion=6
 % override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-aero@2x.png                         os=WINNT osversion=6.1
 % override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-win8@2x.png                         os=WINNT osversion=6.2
 % override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-win8@2x.png                         os=WINNT osversion=6.3
-% override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6
-% override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6.1
-% override chrome://browser/skin/loop/menuPanel@2x.png                chrome://browser/skin/loop/menuPanel-aero@2x.png                  os=WINNT osversion=6
-% override chrome://browser/skin/loop/menuPanel@2x.png                chrome://browser/skin/loop/menuPanel-aero@2x.png                  os=WINNT osversion=6.1
-
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-XP.png                              os=WINNT osversion<6
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6.1
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-win8.png                            os=WINNT osversion=6.2
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-win8.png                            os=WINNT osversion=6.3
-% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-XP.png                         os=WINNT osversion<6
-% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6
-% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6.1
-% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-win8.png                       os=WINNT osversion=6.2
-% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-win8.png                       os=WINNT osversion=6.3
-% override chrome://browser/skin/loop/toolbar@2x.png                  chrome://browser/skin/loop/toolbar-XP@2x.png                      os=WINNT osversion<6
-% override chrome://browser/skin/loop/toolbar@2x.png                  chrome://browser/skin/loop/toolbar-aero@2x.png                    os=WINNT osversion=6
-% override chrome://browser/skin/loop/toolbar@2x.png                  chrome://browser/skin/loop/toolbar-aero@2x.png                    os=WINNT osversion=6.1
-% override chrome://browser/skin/loop/toolbar@2x.png                  chrome://browser/skin/loop/toolbar-win8@2x.png                    os=WINNT osversion=6.2
-% override chrome://browser/skin/loop/toolbar@2x.png                  chrome://browser/skin/loop/toolbar-win8@2x.png                    os=WINNT osversion=6.3
 % override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-aero.png               os=WINNT osversion=6
 % override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-aero.png               os=WINNT osversion=6.1
 % override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-xp.png                 os=WINNT osversion<6
 
 % override chrome://browser/skin/tabbrowser/tab-background-start.png     chrome://browser/skin/tabbrowser/tab-background-start-preWin10.png     os=WINNT osversion<=6.3
 % override chrome://browser/skin/tabbrowser/tab-background-start@2x.png  chrome://browser/skin/tabbrowser/tab-background-start-preWin10@2x.png  os=WINNT osversion<=6.3
 % override chrome://browser/skin/tabbrowser/tab-background-middle.png    chrome://browser/skin/tabbrowser/tab-background-middle-preWin10.png    os=WINNT osversion<=6.3
 % override chrome://browser/skin/tabbrowser/tab-background-middle@2x.png chrome://browser/skin/tabbrowser/tab-background-middle-preWin10@2x.png os=WINNT osversion<=6.3
--- a/testing/marionette/client/marionette/tests/unit-tests.ini
+++ b/testing/marionette/client/marionette/tests/unit-tests.ini
@@ -14,9 +14,9 @@ skip = false
 ; marionette unit tests
 [include:unit/unit-tests.ini]
 test_container = true
 
 ; layout tests
 [include:../../../../../layout/base/tests/marionette/manifest.ini]
 
 ; loop tests
-[include:../../../../../browser/components/loop/manifest.ini]
+[include:../../../../../browser/extensions/loop/manifest.ini]