Bug 1223573 - Part 4. Build system changes for Loop as a system add-on. r=mikedeboer,r=glandium
authorMark Banner <standard8@mozilla.com>
Sun, 29 Nov 2015 17:08:35 +0000
changeset 274488 de0a9431b7c7e584bb0fa83b1d1c6d96dfc99e21
parent 274487 60489607e7d3c99829b5e3376c801fdfd4d09a4b
child 274489 e19308d96a1dc85718eef8999ad86b7e35223d5c
push id16444
push usermbanner@mozilla.com
push dateSun, 29 Nov 2015 17:10:04 +0000
treeherderfx-team@29ce9059dc2c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmikedeboer, glandium
bugs1223573
milestone45.0a1
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]