Bug 912121 - Package DevTools client content in devtools.jar. rs=devtools
authorJ. Ryan Stinnett <jryans@gmail.com>
Mon, 21 Sep 2015 12:02:37 -0500
changeset 263696 efa64dfee210b9ce08e50b94b4467629a6b554bc
parent 263695 c98255aa4d4b086c66d4e363f2661ac748dc16d8
child 263697 1145eb49fdc74f6a641b554d649e71adfa0d4378
push id65396
push usercbook@mozilla.com
push dateTue, 22 Sep 2015 10:50:42 +0000
treeherdermozilla-inbound@9a5faeebdcb5 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdevtools
bugs912121
milestone44.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 912121 - Package DevTools client content in devtools.jar. rs=devtools Break DevTools content files out of browser.jar and move to a new DevTools specific jar. Update all paths of the form: chrome://browser/content/devtools/<X> to chrome://devtools/content/<Y> where <Y> is the source tree path that comes after /devtools/client.
browser/components/about/AboutRedirector.cpp
browser/installer/package-manifest.in
devtools/client/animationinspector/animation-inspector.xhtml
devtools/client/animationinspector/test/head.js
devtools/client/app-manager/content/device.js
devtools/client/app-manager/content/device.xhtml
devtools/client/app-manager/content/help.xhtml
devtools/client/app-manager/content/index.xul
devtools/client/app-manager/content/manifest-editor.js
devtools/client/app-manager/content/projects.xhtml
devtools/client/app-manager/test/test_connection_store.html
devtools/client/app-manager/test/test_device_store.html
devtools/client/app-manager/test/test_template.html
devtools/client/canvasdebugger/canvasdebugger.xul
devtools/client/canvasdebugger/test/head.js
devtools/client/commandline/commandlineoutput.xhtml
devtools/client/commandline/commandlinetooltip.xhtml
devtools/client/debugger/debugger-view.js
devtools/client/debugger/debugger.xul
devtools/client/definitions.js
devtools/client/eyedropper/eyedropper.js
devtools/client/fontinspector/font-inspector.xhtml
devtools/client/framework/ToolboxProcess.jsm
devtools/client/framework/connect/connect.xhtml
devtools/client/framework/dev-edition-promo/dev-edition-promo.css
devtools/client/framework/dev-edition-promo/dev-edition-promo.xul
devtools/client/framework/gDevTools.jsm
devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
devtools/client/framework/test/browser_toolbox_sidebar_tool.xul
devtools/client/framework/test/shared-head.js
devtools/client/framework/toolbox-hosts.js
devtools/client/framework/toolbox-options.xul
devtools/client/framework/toolbox.js
devtools/client/framework/toolbox.xul
devtools/client/inspector/inspector-panel.js
devtools/client/inspector/inspector.xul
devtools/client/jar.mn
devtools/client/layoutview/view.xhtml
devtools/client/markupview/markup-view.xhtml
devtools/client/markupview/test/browser_markupview_anonymous_02.js
devtools/client/markupview/test/head.js
devtools/client/memory/memory.xhtml
devtools/client/memory/test/mochitest/test_census-view-01.html
devtools/client/netmonitor/netmonitor.xul
devtools/client/netmonitor/test/head.js
devtools/client/performance/performance.xul
devtools/client/performance/test/head.js
devtools/client/projecteditor/chrome/content/projecteditor-loader.js
devtools/client/projecteditor/chrome/content/projecteditor.xul
devtools/client/projecteditor/lib/helpers/readdir.js
devtools/client/projecteditor/lib/projecteditor.js
devtools/client/projecteditor/lib/stores/local.js
devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
devtools/client/projecteditor/test/head.js
devtools/client/promisedebugger/promise-debugger.xhtml
devtools/client/scratchpad/scratchpad-manager.jsm
devtools/client/scratchpad/scratchpad.js
devtools/client/scratchpad/scratchpad.xul
devtools/client/shadereditor/shadereditor.xul
devtools/client/shadereditor/test/head.js
devtools/client/shared/DeveloperToolbar.jsm
devtools/client/shared/doorhanger.js
devtools/client/shared/test/browser_cubic-bezier-01.js
devtools/client/shared/test/browser_cubic-bezier-02.js
devtools/client/shared/test/browser_cubic-bezier-03.js
devtools/client/shared/test/browser_cubic-bezier-04.js
devtools/client/shared/test/browser_cubic-bezier-05.js
devtools/client/shared/test/browser_cubic-bezier-06.js
devtools/client/shared/test/browser_filter-editor-01.js
devtools/client/shared/test/browser_filter-editor-02.js
devtools/client/shared/test/browser_filter-editor-03.js
devtools/client/shared/test/browser_filter-editor-04.js
devtools/client/shared/test/browser_filter-editor-05.js
devtools/client/shared/test/browser_filter-editor-06.js
devtools/client/shared/test/browser_filter-editor-07.js
devtools/client/shared/test/browser_filter-editor-08.js
devtools/client/shared/test/browser_filter-editor-09.js
devtools/client/shared/test/browser_filter-editor-10.js
devtools/client/shared/test/browser_filter-presets-01.js
devtools/client/shared/test/browser_filter-presets-02.js
devtools/client/shared/test/browser_filter-presets-03.js
devtools/client/shared/test/browser_mdn-docs-01.js
devtools/client/shared/test/browser_mdn-docs-02.js
devtools/client/shared/test/browser_spectrum.js
devtools/client/shared/test/doc_options-view.xul
devtools/client/shared/widgets/FlameGraph.js
devtools/client/shared/widgets/Graphs.js
devtools/client/shared/widgets/Tooltip.js
devtools/client/shared/widgets/VariablesView.xul
devtools/client/shared/widgets/cubic-bezier-frame.xhtml
devtools/client/shared/widgets/filter-frame.xhtml
devtools/client/shared/widgets/graphs-frame.xhtml
devtools/client/shared/widgets/mdn-docs-frame.xhtml
devtools/client/shared/widgets/spectrum-frame.xhtml
devtools/client/sourceeditor/autocomplete.js
devtools/client/sourceeditor/editor.js
devtools/client/sourceeditor/test/codemirror.html
devtools/client/sourceeditor/test/vimemacs.html
devtools/client/storage/storage.xul
devtools/client/styleeditor/styleeditor.xul
devtools/client/styleeditor/test/head.js
devtools/client/styleinspector/computedview.xhtml
devtools/client/styleinspector/cssruleview.xhtml
devtools/client/webaudioeditor/test/head.js
devtools/client/webaudioeditor/webaudioeditor.xul
devtools/client/webconsole/webconsole.js
devtools/client/webconsole/webconsole.xul
devtools/client/webide/content/logs.xhtml
devtools/client/webide/content/monitor.xhtml
devtools/shared/performance/process-communication.js
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -94,17 +94,17 @@ static RedirEntry kRedirMap[] = {
   { "downloads", "chrome://browser/content/downloads/contentAreaDownloadsView.xul",
     nsIAboutModule::ALLOW_SCRIPT },
 #ifdef MOZ_SERVICES_HEALTHREPORT
   { "healthreport", "chrome://browser/content/abouthealthreport/abouthealth.xhtml",
     nsIAboutModule::ALLOW_SCRIPT },
 #endif
   { "accounts", "chrome://browser/content/aboutaccounts/aboutaccounts.xhtml",
     nsIAboutModule::ALLOW_SCRIPT },
-  { "app-manager", "chrome://browser/content/devtools/app-manager/index.xul",
+  { "app-manager", "chrome://devtools/content/app-manager/content/index.xul",
     nsIAboutModule::ALLOW_SCRIPT },
   { "customizing", "chrome://browser/content/customizableui/aboutCustomizing.xul",
     nsIAboutModule::ALLOW_SCRIPT },
   { "loopconversation", "chrome://browser/content/loop/conversation.html",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT |
     nsIAboutModule::HIDE_FROM_ABOUTABOUT |
     nsIAboutModule::ENABLE_INDEXED_DB },
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -673,16 +673,20 @@
 @RESPATH@/browser/chrome/icons/default/default48.png
 #endif
 
 ; [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@
+@RESPATH@/browser/chrome/devtools.manifest
+
 ; shell icons
 #ifdef XP_UNIX
 #ifndef XP_MACOSX
 ; shell icons
 @RESPATH@/browser/icons/*.png
 #ifdef MOZ_UPDATER
 ; updater icon
 @RESPATH@/icons/updater.png
--- a/devtools/client/animationinspector/animation-inspector.xhtml
+++ b/devtools/client/animationinspector/animation-inspector.xhtml
@@ -7,17 +7,17 @@
  %animationinspectorDTD;
 ]>
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <title>&title;</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/animationinspector.css" type="text/css"/>
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"/>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   </head>
   <body class="theme-sidebar devtools-monospace" role="application" empty="true">
     <div id="global-toolbar" class="theme-toolbar">
       <span class="label">&allAnimations;</span>
       <button id="toggle-all" standalone="true" class="devtools-button pause-button"></button>
     </div>
     <div id="timeline-toolbar" class="theme-toolbar">
       <button id="pause-resume-timeline" standalone="true" class="devtools-button pause-button paused"></button>
--- a/devtools/client/animationinspector/test/head.js
+++ b/devtools/client/animationinspector/test/head.js
@@ -14,17 +14,17 @@ const {ViewHelpers} = Cu.import("resourc
 const DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
 
 // All tests are asynchronous
 waitForExplicitFinish();
 
 const TEST_URL_ROOT = "http://example.com/browser/browser/devtools/animationinspector/test/";
 const ROOT_TEST_DIR = getRootDirectory(gTestPath);
 const FRAME_SCRIPT_URL = ROOT_TEST_DIR + "doc_frame_script.js";
-const COMMON_FRAME_SCRIPT_URL = "chrome://browser/content/devtools/frame-script-utils.js";
+const COMMON_FRAME_SCRIPT_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 const NEW_UI_PREF = "devtools.inspector.animationInspectorV3";
 const TAB_NAME = "animationinspector";
 
 // Auto clean-up when a test ends
 registerCleanupFunction(function*() {
   yield closeAnimationInspector();
 
   while (gBrowser.tabs.length > 1) {
--- a/devtools/client/app-manager/content/device.js
+++ b/devtools/client/app-manager/content/device.js
@@ -65,17 +65,17 @@ var UI = {
     }
   },
 
   showFooterIfNeeded: function() {
     let footer = document.querySelector("#connection-footer");
     if (window.parent == window) {
       // We're alone. Let's add a footer.
       footer.removeAttribute("hidden");
-      footer.src = "chrome://browser/content/devtools/app-manager/connection-footer.xhtml";
+      footer.src = "chrome://devtools/content/app-manager/content/connection-footer.xhtml";
     } else {
       footer.setAttribute("hidden", "true");
     }
   },
 
   hide: function() {
     document.body.classList.add("notconnected");
   },
--- a/devtools/client/app-manager/content/device.xhtml
+++ b/devtools/client/app-manager/content/device.xhtml
@@ -7,17 +7,16 @@
   %appMgrDTD;
 ]>
 
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 
   <head>
     <meta charset="utf8"/>
-    <base href="chrome://browser/content/devtools/app-manager/"></base>
     <title>&device.title;</title>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/app-manager/device.css" type="text/css"/>
   </head>
 
   <body onload="UI.init()">
 
     <div id="notConnectedMessage"><span>&device.notConnected;</span></div>
 
--- a/devtools/client/app-manager/content/help.xhtml
+++ b/devtools/client/app-manager/content/help.xhtml
@@ -6,17 +6,16 @@
   <!ENTITY % appMgrDTD SYSTEM "chrome://browser/locale/devtools/app-manager.dtd" >
   %appMgrDTD;
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 
   <head>
     <meta charset="utf8"/>
-    <base href="chrome://browser/content/devtools/app-manager/"></base>
     <title>&help.title;</title>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/app-manager/help.css" type="text/css"/>
   </head>
 
   <body>
 
     <h1>&help.title;</h1>
 
@@ -36,9 +35,8 @@
   </body>
 
   <script type="application/javascript;version=1.8">
     function closeHelp() {
       window.parent.postMessage(JSON.stringify({name:"closeHelp"}), "*");
     }
   </script>
 </html>
-
--- a/devtools/client/app-manager/content/index.xul
+++ b/devtools/client/app-manager/content/index.xul
@@ -24,18 +24,18 @@
     <hbox id="content" flex="1">
       <vbox id="tabs" onclick="UI.selectTabFromButton(event.target)">
         <button class="button projects-button" panel="projects">&index.projects2;</button>
         <button class="button device-button" panel="device">&index.device2;</button>
         <vbox id="toolbox-tabs" flex="1"/>
         <button class="button help-button" panel="help">&index.help;</button>
       </vbox>
       <hbox id="tab-panels" flex="1">
-        <iframe flex="1" class="panel projects-panel" src="chrome://browser/content/devtools/app-manager/projects.xhtml"/>
-        <iframe flex="1" class="panel device-panel" src="chrome://browser/content/devtools/app-manager/device.xhtml"/>
-        <iframe flex="1" class="panel help-panel" src="chrome://browser/content/devtools/app-manager/help.xhtml"></iframe>
+        <iframe flex="1" class="panel projects-panel" src="chrome://devtools/content/app-manager/content/projects.xhtml"/>
+        <iframe flex="1" class="panel device-panel" src="chrome://devtools/content/app-manager/content/device.xhtml"/>
+        <iframe flex="1" class="panel help-panel" src="chrome://devtools/content/app-manager/content/help.xhtml"></iframe>
       </hbox>
     </hbox>
-    <iframe id="connection-footer" src="chrome://browser/content/devtools/app-manager/connection-footer.xhtml"></iframe>
+    <iframe id="connection-footer" src="chrome://devtools/content/app-manager/content/connection-footer.xhtml"></iframe>
   </vbox>
 
-  <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/app-manager/index.js"></script>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/app-manager/content/index.js"></script>
 </window>
--- a/devtools/client/app-manager/content/manifest-editor.js
+++ b/devtools/client/app-manager/content/manifest-editor.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 Cu.import("resource://gre/modules/osfile.jsm");
 const {VariablesView} =
   Cu.import("resource:///modules/devtools/VariablesView.jsm", {});
 
 const VARIABLES_VIEW_URL =
-  "chrome://browser/content/devtools/widgets/VariablesView.xul";
+  "chrome://devtools/content/shared/widgets/VariablesView.xul";
 
 function ManifestEditor(project) {
   this.project = project;
   this._onContainerReady = this._onContainerReady.bind(this);
   this._onEval = this._onEval.bind(this);
   this._onSwitch = this._onSwitch.bind(this);
   this._onDelete = this._onDelete.bind(this);
   this._onNew = this._onNew.bind(this);
--- a/devtools/client/app-manager/content/projects.xhtml
+++ b/devtools/client/app-manager/content/projects.xhtml
@@ -6,17 +6,16 @@
   <!ENTITY % appMgrDTD SYSTEM "chrome://browser/locale/devtools/app-manager.dtd" >
   %appMgrDTD;
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 
   <head>
     <meta charset="utf8"/>
-    <base href="chrome://browser/content/devtools/app-manager/"></base>
     <title>&projects.title;</title>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/app-manager/projects.css" type="text/css"/>
     <script type="application/javascript;version=1.8" src="utils.js"></script>
     <script type="application/javascript;version=1.8" src="projects.js"></script>
     <script type="application/javascript;version=1.8" src="template.js"></script>
     <script type="application/javascript;version=1.8" src="manifest-editor.js"></script>
   </head>
 
--- a/devtools/client/app-manager/test/test_connection_store.html
+++ b/devtools/client/app-manager/test/test_connection_store.html
@@ -17,17 +17,17 @@ Bug 901519 - [app manager] data store fo
   <body>
 
     <div id="root">
       <span id="status" template='{"type":"textContent","path":"status"}'></span>
       <span id="host" template='{"type":"textContent","path":"host"}'></span>
       <span id="port" template='{"type":"textContent","path":"port"}'></span>
     </div>
 
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/app-manager/template.js"></script>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/app-manager/content/template.js"></script>
     <script type="application/javascript;version=1.8">
       const Cu = Components.utils;
       const {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm");
       const {DebuggerServer} = require("devtools/server/main");
 
       if (!DebuggerServer.initialized) {
         DebuggerServer.init();
         DebuggerServer.addBrowserActors();
--- a/devtools/client/app-manager/test/test_device_store.html
+++ b/devtools/client/app-manager/test/test_device_store.html
@@ -11,17 +11,17 @@ Bug 901520 - [app manager] data store fo
     <title></title>
 
     <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
   </head>
 
   <body>
 
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/app-manager/template.js"></script>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/app-manager/content/template.js"></script>
     <script type="application/javascript;version=1.8">
       const Cu = Components.utils;
       const {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm");
       const {DebuggerServer} = require("devtools/server/main");
 
       if (!DebuggerServer.initialized) {
         DebuggerServer.init();
         DebuggerServer.addBrowserActors();
--- a/devtools/client/app-manager/test/test_template.html
+++ b/devtools/client/app-manager/test/test_template.html
@@ -148,17 +148,17 @@
       <span template='{"type":"textContent","path":"b"}'></span>
     </div>
   </template>
 
   <template id="template-for">
   <span template='{"type":"textContent","path":"name"}'></span>
   </template>
 
-  <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/app-manager/template.js"></script>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/app-manager/content/template.js"></script>
   <script type="application/javascript;version=1.8">
     SimpleTest.waitForExplicitFinish();
 
     const Cu = Components.utils;
     Cu.import("resource:///modules/devtools/gDevTools.jsm");
     const {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
     const ObservableObject = require("devtools/shared/observable-object");
 
--- a/devtools/client/canvasdebugger/canvasdebugger.xul
+++ b/devtools/client/canvasdebugger/canvasdebugger.xul
@@ -1,27 +1,27 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/canvasdebugger.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % canvasDebuggerDTD SYSTEM "chrome://browser/locale/devtools/canvasdebugger.dtd">
   %canvasDebuggerDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script src="chrome://browser/content/devtools/theme-switching.js"/>
+  <script src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="application/javascript" src="canvasdebugger.js"/>
-  <script type="application/javascript" src="canvasdebugger/callslist.js"/>
-  <script type="application/javascript" src="canvasdebugger/snapshotslist.js"/>
+  <script type="application/javascript" src="callslist.js"/>
+  <script type="application/javascript" src="snapshotslist.js"/>
 
   <hbox class="theme-body" flex="1">
     <vbox id="snapshots-pane">
       <toolbar id="snapshots-toolbar"
                class="devtools-toolbar">
         <hbox id="snapshots-controls">
           <toolbarbutton id="record-snapshot"
                          class="devtools-toolbarbutton"
--- a/devtools/client/canvasdebugger/test/head.js
+++ b/devtools/client/canvasdebugger/test/head.js
@@ -23,17 +23,17 @@ var { CallWatcherFront } = require("devt
 var { CanvasFront } = require("devtools/server/actors/canvas");
 var { setTimeout } = require("sdk/timers");
 var DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
 var TiltGL = require("devtools/tilt/tilt-gl");
 var { TargetFactory } = require("devtools/framework/target");
 var { Toolbox } = require("devtools/framework/toolbox");
 var mm = null
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js";
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 const EXAMPLE_URL = "http://example.com/browser/browser/devtools/canvasdebugger/test/";
 const SET_TIMEOUT_URL = EXAMPLE_URL + "doc_settimeout.html";
 const NO_CANVAS_URL = EXAMPLE_URL + "doc_no-canvas.html";
 const RAF_NO_CANVAS_URL = EXAMPLE_URL + "doc_raf-no-canvas.html";
 const SIMPLE_CANVAS_URL = EXAMPLE_URL + "doc_simple-canvas.html";
 const SIMPLE_BITMASKS_URL = EXAMPLE_URL + "doc_simple-canvas-bitmasks.html";
 const SIMPLE_CANVAS_TRANSPARENT_URL = EXAMPLE_URL + "doc_simple-canvas-transparent.html";
 const SIMPLE_CANVAS_DEEP_STACK_URL = EXAMPLE_URL + "doc_simple-canvas-deep-stack.html";
--- a/devtools/client/commandline/commandlineoutput.xhtml
+++ b/devtools/client/commandline/commandlineoutput.xhtml
@@ -4,15 +4,15 @@
 <!-- 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/. -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://global/skin/global.css" type="text/css"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/commandline.css" type="text/css"/>
+  <link rel="stylesheet" href="chrome://devtools/content/commandline/commandline.css" type="text/css"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/commandline.css" type="text/css"/>
 </head>
 <body class="gcli-body">
 <div id="gcli-output-root"></div>
 </body>
 </html>
--- a/devtools/client/commandline/commandlinetooltip.xhtml
+++ b/devtools/client/commandline/commandlinetooltip.xhtml
@@ -4,16 +4,16 @@
 <!-- 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/. -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://global/skin/global.css" type="text/css"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/commandline.css" type="text/css"/>
+  <link rel="stylesheet" href="chrome://devtools/content/commandline/commandline.css" type="text/css"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/commandline.css" type="text/css"/>
 </head>
 <body class="gcli-body">
 <div id="gcli-tooltip-root"></div>
 <div id="gcli-tooltip-connector"></div>
 </body>
 </html>
--- a/devtools/client/debugger/debugger-view.js
+++ b/devtools/client/debugger/debugger-view.js
@@ -28,17 +28,17 @@ const SEARCH_TOKEN_FLAG = "#";
 const SEARCH_LINE_FLAG = ":";
 const SEARCH_VARIABLE_FLAG = "*";
 const SEARCH_AUTOFILL = [SEARCH_GLOBAL_FLAG, SEARCH_FUNCTION_FLAG, SEARCH_TOKEN_FLAG];
 const EDITOR_VARIABLE_HOVER_DELAY = 750; // ms
 const EDITOR_VARIABLE_POPUP_POSITION = "topcenter bottomleft";
 const TOOLBAR_ORDER_POPUP_POSITION = "topcenter bottomleft";
 const RESIZE_REFRESH_RATE = 50; // ms
 const PROMISE_DEBUGGER_URL =
-  "chrome://browser/content/devtools/promisedebugger/promise-debugger.xhtml";
+  "chrome://devtools/content/promisedebugger/promise-debugger.xhtml";
 
 const debuggerControllerEmit = DebuggerController.emit.bind(DebuggerController);
 const createStore = require("devtools/shared/redux/create-store")();
 const { combineEmittingReducers } = require("devtools/shared/redux/reducers");
 const reducers = require("./content/reducers/index");
 const store = createStore(combineEmittingReducers(reducers, debuggerControllerEmit));
 const { NAME: WAIT_UNTIL_NAME } = require("devtools/shared/redux/middleware/wait-service");
 
--- a/devtools/client/debugger/debugger.xul
+++ b/devtools/client/debugger/debugger.xul
@@ -1,15 +1,15 @@
 <?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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/debugger.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
+<?xml-stylesheet href="debugger.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/debugger.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % debuggerDTD SYSTEM "chrome://browser/locale/devtools/debugger.dtd">
   %debuggerDTD;
 ]>
 <?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
@@ -18,32 +18,32 @@
         xmlns:html="http://www.w3.org/1999/xhtml"
         macanimationtype="document"
         fullscreenbutton="true"
         screenX="4" screenY="4"
         width="960" height="480"
         persist="screenX screenY width height sizemode">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="text/javascript" src="chrome://global/content/globalOverlay.js"/>
   <script type="text/javascript" src="debugger-controller.js"/>
   <script type="text/javascript" src="debugger-view.js"/>
-  <script type="text/javascript" src="debugger/utils.js"/>
-  <script type="text/javascript" src="debugger/workers-view.js"/>
-  <script type="text/javascript" src="debugger/sources-view.js"/>
-  <script type="text/javascript" src="debugger/variable-bubble-view.js"/>
-  <script type="text/javascript" src="debugger/watch-expressions-view.js"/>
-  <script type="text/javascript" src="debugger/event-listeners-view.js"/>
-  <script type="text/javascript" src="debugger/global-search-view.js"/>
-  <script type="text/javascript" src="debugger/toolbar-view.js"/>
-  <script type="text/javascript" src="debugger/options-view.js"/>
-  <script type="text/javascript" src="debugger/stack-frames-view.js"/>
-  <script type="text/javascript" src="debugger/stack-frames-classic-view.js"/>
-  <script type="text/javascript" src="debugger/filter-view.js"/>
+  <script type="text/javascript" src="utils.js"/>
+  <script type="text/javascript" src="views/workers-view.js"/>
+  <script type="text/javascript" src="views/sources-view.js"/>
+  <script type="text/javascript" src="views/variable-bubble-view.js"/>
+  <script type="text/javascript" src="views/watch-expressions-view.js"/>
+  <script type="text/javascript" src="views/event-listeners-view.js"/>
+  <script type="text/javascript" src="views/global-search-view.js"/>
+  <script type="text/javascript" src="views/toolbar-view.js"/>
+  <script type="text/javascript" src="views/options-view.js"/>
+  <script type="text/javascript" src="views/stack-frames-view.js"/>
+  <script type="text/javascript" src="views/stack-frames-classic-view.js"/>
+  <script type="text/javascript" src="views/filter-view.js"/>
 
   <commandset id="editMenuCommands"/>
 
   <commandset id="debuggerCommands"></commandset>
 
   <popupset id="debuggerPopupset">
     <menupopup id="sourceEditorContextMenu"
                onpopupshowing="goUpdateGlobalEditMenuItems()">
--- a/devtools/client/definitions.js
+++ b/devtools/client/definitions.js
@@ -54,17 +54,17 @@ loader.lazyGetter(this, "scratchpadStrin
 
 var Tools = {};
 exports.Tools = Tools;
 
 // Definitions
 Tools.options = {
   id: "options",
   ordinal: 0,
-  url: "chrome://browser/content/devtools/framework/toolbox-options.xul",
+  url: "chrome://devtools/content/framework/toolbox-options.xul",
   icon: "chrome://browser/skin/devtools/tool-options.svg",
   invertIconForLightTheme: true,
   bgTheme: "theme-body",
   label: l10n("options.label", toolboxStrings),
   iconOnly: true,
   panelLabel: l10n("options.panelLabel", toolboxStrings),
   tooltip: l10n("optionsButton.tooltip", toolboxStrings),
   inMenu: false,
@@ -81,17 +81,17 @@ Tools.options = {
 Tools.inspector = {
   id: "inspector",
   accesskey: l10n("inspector.accesskey", inspectorStrings),
   key: l10n("inspector.commandkey", inspectorStrings),
   ordinal: 1,
   modifiers: osString == "Darwin" ? "accel,alt" : "accel,shift",
   icon: "chrome://browser/skin/devtools/tool-inspector.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/inspector/inspector.xul",
+  url: "chrome://devtools/content/inspector/inspector.xul",
   label: l10n("inspector.label", inspectorStrings),
   panelLabel: l10n("inspector.panelLabel", inspectorStrings),
   get tooltip() {
     return l10n("inspector.tooltip2", inspectorStrings,
     ( osString == "Darwin" ? "Cmd+Opt+" : "Ctrl+Shift+" ) + this.key);
   },
   inMenu: true,
   commands: [
@@ -117,17 +117,17 @@ Tools.inspector = {
 Tools.webConsole = {
   id: "webconsole",
   key: l10n("cmd.commandkey", webConsoleStrings),
   accesskey: l10n("webConsoleCmd.accesskey", webConsoleStrings),
   modifiers: Services.appinfo.OS == "Darwin" ? "accel,alt" : "accel,shift",
   ordinal: 2,
   icon: "chrome://browser/skin/devtools/tool-webconsole.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/webconsole.xul",
+  url: "chrome://devtools/content/webconsole/webconsole.xul",
   label: l10n("ToolboxTabWebconsole.label", webConsoleStrings),
   menuLabel: l10n("MenuWebconsole.label", webConsoleStrings),
   panelLabel: l10n("ToolboxWebConsole.panelLabel", webConsoleStrings),
   get tooltip() {
     return l10n("ToolboxWebconsole.tooltip2", webConsoleStrings,
     ( osString == "Darwin" ? "Cmd+Opt+" : "Ctrl+Shift+" ) + this.key);
   },
   inMenu: true,
@@ -154,17 +154,17 @@ Tools.jsdebugger = {
   id: "jsdebugger",
   key: l10n("debuggerMenu.commandkey", debuggerStrings),
   accesskey: l10n("debuggerMenu.accesskey", debuggerStrings),
   modifiers: osString == "Darwin" ? "accel,alt" : "accel,shift",
   ordinal: 3,
   icon: "chrome://browser/skin/devtools/tool-debugger.svg",
   invertIconForLightTheme: true,
   highlightedicon: "chrome://browser/skin/devtools/tool-debugger-paused.svg",
-  url: "chrome://browser/content/devtools/debugger.xul",
+  url: "chrome://devtools/content/debugger/debugger.xul",
   label: l10n("ToolboxDebugger.label", debuggerStrings),
   panelLabel: l10n("ToolboxDebugger.panelLabel", debuggerStrings),
   get tooltip() {
     return l10n("ToolboxDebugger.tooltip2", debuggerStrings,
     ( osString == "Darwin" ? "Cmd+Opt+" : "Ctrl+Shift+" ) + this.key);
   },
   inMenu: true,
   commands: "devtools/debugger/debugger-commands",
@@ -181,17 +181,17 @@ Tools.jsdebugger = {
 Tools.styleEditor = {
   id: "styleeditor",
   key: l10n("open.commandkey", styleEditorStrings),
   ordinal: 4,
   accesskey: l10n("open.accesskey", styleEditorStrings),
   modifiers: "shift",
   icon: "chrome://browser/skin/devtools/tool-styleeditor.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/styleeditor.xul",
+  url: "chrome://devtools/content/styleeditor/styleeditor.xul",
   label: l10n("ToolboxStyleEditor.label", styleEditorStrings),
   panelLabel: l10n("ToolboxStyleEditor.panelLabel", styleEditorStrings),
   get tooltip() {
     return l10n("ToolboxStyleEditor.tooltip3", styleEditorStrings,
     "Shift+" + functionkey(this.key));
   },
   inMenu: true,
   commands: "devtools/styleeditor/styleeditor-commands",
@@ -206,17 +206,17 @@ Tools.styleEditor = {
 };
 
 Tools.shaderEditor = {
   id: "shadereditor",
   ordinal: 5,
   visibilityswitch: "devtools.shadereditor.enabled",
   icon: "chrome://browser/skin/devtools/tool-shadereditor.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/shadereditor.xul",
+  url: "chrome://devtools/content/shadereditor/shadereditor.xul",
   label: l10n("ToolboxShaderEditor.label", shaderEditorStrings),
   panelLabel: l10n("ToolboxShaderEditor.panelLabel", shaderEditorStrings),
   tooltip: l10n("ToolboxShaderEditor.tooltip", shaderEditorStrings),
 
   isTargetSupported: function(target) {
     return target.hasActor("webgl") && !target.chrome;
   },
 
@@ -226,17 +226,17 @@ Tools.shaderEditor = {
 };
 
 Tools.canvasDebugger = {
   id: "canvasdebugger",
   ordinal: 6,
   visibilityswitch: "devtools.canvasdebugger.enabled",
   icon: "chrome://browser/skin/devtools/tool-styleeditor.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/canvasdebugger.xul",
+  url: "chrome://devtools/content/canvasdebugger/canvasdebugger.xul",
   label: l10n("ToolboxCanvasDebugger.label", canvasDebuggerStrings),
   panelLabel: l10n("ToolboxCanvasDebugger.panelLabel", canvasDebuggerStrings),
   tooltip: l10n("ToolboxCanvasDebugger.tooltip", canvasDebuggerStrings),
 
   // Hide the Canvas Debugger in the Add-on Debugger and Browser Toolbox
   // (bug 1047520).
   isTargetSupported: function(target) {
     return target.hasActor("canvas") && !target.chrome;
@@ -248,17 +248,17 @@ Tools.canvasDebugger = {
 };
 
 Tools.performance = {
   id: "performance",
   ordinal: 7,
   icon: "chrome://browser/skin/devtools/tool-profiler.svg",
   invertIconForLightTheme: true,
   highlightedicon: "chrome://browser/skin/devtools/tool-profiler-active.svg",
-  url: "chrome://browser/content/devtools/performance.xul",
+  url: "chrome://devtools/content/performance/performance.xul",
   visibilityswitch: "devtools.performance.enabled",
   label: l10n("performance.label", performanceStrings),
   panelLabel: l10n("performance.panelLabel", performanceStrings),
   get tooltip() {
     return l10n("performance.tooltip", performanceStrings,
     "Shift+" + functionkey(this.key));
   },
   accesskey: l10n("performance.accesskey", performanceStrings),
@@ -275,17 +275,17 @@ Tools.performance = {
   }
 };
 
 Tools.memory = {
   id: "memory",
   ordinal: 8,
   icon: "chrome://browser/skin/devtools/tool-styleeditor.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/memory.xhtml",
+  url: "chrome://devtools/content/memory/memory.xhtml",
   visibilityswitch: "devtools.memory.enabled",
   label: "Memory",
   panelLabel: "Memory Panel",
   tooltip: "Memory (keyboardshortcut)",
   hiddenInOptions: true,
 
   isTargetSupported: function (target) {
     // TODO 1201907
@@ -304,17 +304,17 @@ Tools.netMonitor = {
   id: "netmonitor",
   accesskey: l10n("netmonitor.accesskey", netMonitorStrings),
   key: l10n("netmonitor.commandkey", netMonitorStrings),
   ordinal: 9,
   modifiers: osString == "Darwin" ? "accel,alt" : "accel,shift",
   visibilityswitch: "devtools.netmonitor.enabled",
   icon: "chrome://browser/skin/devtools/tool-network.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/netmonitor.xul",
+  url: "chrome://devtools/content/netmonitor/netmonitor.xul",
   label: l10n("netmonitor.label", netMonitorStrings),
   panelLabel: l10n("netmonitor.panelLabel", netMonitorStrings),
   get tooltip() {
     return l10n("netmonitor.tooltip2", netMonitorStrings,
     ( osString == "Darwin" ? "Cmd+Opt+" : "Ctrl+Shift+" ) + this.key);
   },
   inMenu: true,
 
@@ -331,17 +331,17 @@ Tools.storage = {
   id: "storage",
   key: l10n("storage.commandkey", storageStrings),
   ordinal: 10,
   accesskey: l10n("storage.accesskey", storageStrings),
   modifiers: "shift",
   visibilityswitch: "devtools.storage.enabled",
   icon: "chrome://browser/skin/devtools/tool-storage.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/storage.xul",
+  url: "chrome://devtools/content/storage/storage.xul",
   label: l10n("storage.label", storageStrings),
   menuLabel: l10n("storage.menuLabel", storageStrings),
   panelLabel: l10n("storage.panelLabel", storageStrings),
   get tooltip() {
     return l10n("storage.tooltip3", storageStrings,
     "Shift+" + functionkey(this.key));
   },
   inMenu: true,
@@ -358,17 +358,17 @@ Tools.storage = {
 };
 
 Tools.webAudioEditor = {
   id: "webaudioeditor",
   ordinal: 11,
   visibilityswitch: "devtools.webaudioeditor.enabled",
   icon: "chrome://browser/skin/devtools/tool-webaudio.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/webaudioeditor.xul",
+  url: "chrome://devtools/content/webaudioeditor/webaudioeditor.xul",
   label: l10n("ToolboxWebAudioEditor1.label", webAudioEditorStrings),
   panelLabel: l10n("ToolboxWebAudioEditor1.panelLabel", webAudioEditorStrings),
   tooltip: l10n("ToolboxWebAudioEditor1.tooltip", webAudioEditorStrings),
 
   isTargetSupported: function(target) {
     return !target.chrome && target.hasActor("webaudio");
   },
 
@@ -378,17 +378,17 @@ Tools.webAudioEditor = {
 };
 
 Tools.scratchpad = {
   id: "scratchpad",
   ordinal: 12,
   visibilityswitch: "devtools.scratchpad.enabled",
   icon: "chrome://browser/skin/devtools/tool-scratchpad.svg",
   invertIconForLightTheme: true,
-  url: "chrome://browser/content/devtools/scratchpad.xul",
+  url: "chrome://devtools/content/scratchpad/scratchpad.xul",
   label: l10n("scratchpad.label", scratchpadStrings),
   panelLabel: l10n("scratchpad.panelLabel", scratchpadStrings),
   tooltip: l10n("scratchpad.tooltip", scratchpadStrings),
   inMenu: false,
   commands: "devtools/scratchpad/scratchpad-commands",
 
   isTargetSupported: function(target) {
     return target.isRemote;
--- a/devtools/client/eyedropper/eyedropper.js
+++ b/devtools/client/eyedropper/eyedropper.js
@@ -32,19 +32,19 @@ loader.lazyGetter(this, "DOMUtils", func
 
 loader.lazyGetter(this, "XULRuntime", function() {
   return Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
 });
 
 loader.lazyGetter(this, "l10n", () => Services.strings
   .createBundle("chrome://browser/locale/devtools/eyedropper.properties"));
 
-const EYEDROPPER_URL = "chrome://browser/content/devtools/eyedropper.xul";
-const CROSSHAIRS_URL = "chrome://browser/content/devtools/eyedropper/crosshairs.css";
-const NOCURSOR_URL = "chrome://browser/content/devtools/eyedropper/nocursor.css";
+const EYEDROPPER_URL = "chrome://devtools/content/eyedropper/eyedropper.xul";
+const CROSSHAIRS_URL = "chrome://devtools/content/eyedropper/crosshairs.css";
+const NOCURSOR_URL = "chrome://devtools/content/eyedropper/nocursor.css";
 
 const ZOOM_PREF = "devtools.eyedropper.zoom";
 const FORMAT_PREF = "devtools.defaultColorUnit";
 
 const CANVAS_WIDTH = 96;
 const CANVAS_OFFSET = 3; // equals the border width of the canvas.
 const CLOSE_DELAY = 750;
 
--- a/devtools/client/fontinspector/font-inspector.xhtml
+++ b/devtools/client/fontinspector/font-inspector.xhtml
@@ -9,17 +9,17 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <title>&title;</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     <link rel="stylesheet" href="font-inspector.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/font-inspector.css" type="text/css"/>
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"/>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   </head>
   <body class="theme-sidebar devtools-monospace" role="application">
     <script type="application/javascript;version=1.8" src="font-inspector.js"></script>
     <div>
       <div class="devtools-toolbar preview-input-toolbar">
         <div class="devtools-searchbox">
           <input id="preview-text-input"
                  class="devtools-textinput"
--- a/devtools/client/framework/ToolboxProcess.jsm
+++ b/devtools/client/framework/ToolboxProcess.jsm
@@ -2,17 +2,17 @@
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* 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/. */
 "use strict";
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
-const DBG_XUL = "chrome://browser/content/devtools/framework/toolbox-process-window.xul";
+const DBG_XUL = "chrome://devtools/content/framework/toolbox-process-window.xul";
 const CHROME_DEBUGGER_PROFILE_NAME = "chrome_debugger_profile";
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm")
 const { require, DevToolsLoader } = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
 
 XPCOMUtils.defineLazyGetter(this, "Telemetry", function () {
   return require("devtools/shared/telemetry");
--- a/devtools/client/framework/connect/connect.xhtml
+++ b/devtools/client/framework/connect/connect.xhtml
@@ -8,17 +8,17 @@
  %connectionDTD;
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <head>
     <title>&title;</title>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/dark-theme.css" type="text/css"/>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/connect.css" type="text/css"/>
+    <link rel="stylesheet" href="chrome://devtools/content/framework/connect/connect.css" type="text/css"/>
     <script type="application/javascript;version=1.8" src="connect.js"></script>
   </head>
   <body>
     <h1>&header;</h1>
     <section id="connection-form">
       <form validate="validate" action="#">
         <label>
           <span>&host;</span>
--- a/devtools/client/framework/dev-edition-promo/dev-edition-promo.css
+++ b/devtools/client/framework/dev-edition-promo/dev-edition-promo.css
@@ -43,17 +43,17 @@ window {
   font-family: Open Sans, sans-serif;
   font-size: 0.9em;
   width: 300px;
   display: block;
   margin: 5px 0px 0px 0px;
 }
 
 #icon {
-  background-image: url("chrome://browser/content/devtools/framework/dev-edition-logo.png");
+  background-image: url("chrome://devtools/content/framework/dev-edition-promo/dev-edition-logo.png");
   background-size: 64px 64px;
   background-repeat: no-repeat;
   width: 64px;
   height: 64px;
   margin-right: 20px;
 }
 
 #lower-panel {
--- a/devtools/client/framework/dev-edition-promo/dev-edition-promo.xul
+++ b/devtools/client/framework/dev-edition-promo/dev-edition-promo.xul
@@ -2,17 +2,17 @@
 <!-- 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/. -->
 <!DOCTYPE window [
 <!ENTITY % toolboxDTD SYSTEM "chrome://browser/locale/devtools/toolbox.dtd" >
  %toolboxDTD;
 ]>
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet rel="stylesheet" href="chrome://browser/content/devtools/framework/dev-edition-promo.css" type="text/css"?>
+<?xml-stylesheet rel="stylesheet" href="chrome://devtools/content/framework/dev-edition-promo/dev-edition-promo.css" type="text/css"?>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="dev-edition-promo">
   <vbox id="doorhanger-container">
     <hbox flex="1" id="top-panel">
       <image id="icon" />
       <vbox id="info">
         <h1>Using Developer Tools in your browser?</h1>
         <p>Download Firefox Developer Edition, our first browser made just for you.</p>
--- a/devtools/client/framework/gDevTools.jsm
+++ b/devtools/client/framework/gDevTools.jsm
@@ -680,17 +680,17 @@ var gDevToolsBrowser = {
       });
     }
   },
 
   /**
    * Open a tab to allow connects to a remote browser
    */
   openConnectScreen: function(gBrowser) {
-    gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/devtools/connect.xhtml");
+    gBrowser.selectedTab = gBrowser.addTab("chrome://devtools/content/framework/connect/connect.xhtml");
   },
 
   /**
    * Open the App Manager
    */
   openAppManager: function(gBrowser) {
     gBrowser.selectedTab = gBrowser.addTab("about:app-manager");
   },
--- a/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
+++ b/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Test that enabling Service Workers testing option enables the
 // mServiceWorkersTestingEnabled attribute added to nsPIDOMWindow.
 
 const COMMON_FRAME_SCRIPT_URL =
-  "chrome://browser/content/devtools/frame-script-utils.js";
+  "chrome://devtools/content/shared/frame-script-utils.js";
 const ROOT_TEST_DIR =
   getRootDirectory(gTestPath);
 const FRAME_SCRIPT_URL =
   ROOT_TEST_DIR +
   "browser_toolbox_options_enable_serviceworkers_testing_frame_script.js";
 const TEST_URI = URL_ROOT +
                  "browser_toolbox_options_enable_serviceworkers_testing.html";
 
--- a/devtools/client/framework/test/browser_toolbox_sidebar_tool.xul
+++ b/devtools/client/framework/test/browser_toolbox_sidebar_tool.xul
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"/>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   <box flex="1" class="devtools-responsive-container theme-body">
     <vbox flex="1" class="devtools-main-content" id="content">test</vbox>
     <splitter class="devtools-side-splitter"/>
     <tabbox flex="1" id="sidebar" class="devtools-sidebar-tabs">
       <tabs/>
       <tabpanels flex="1"/>
     </tabbox>
   </box>
--- a/devtools/client/framework/test/shared-head.js
+++ b/devtools/client/framework/test/shared-head.js
@@ -20,17 +20,17 @@ const URL_ROOT = CHROME_URL_ROOT.replace
 // All test are asynchronous
 waitForExplicitFinish();
 
 // Uncomment this pref to dump all devtools emitted events to the console.
 // Services.prefs.setBoolPref("devtools.dump.emit", true);
 
 function getFrameScript() {
   let mm = gBrowser.selectedBrowser.messageManager;
-  let frameURL = "chrome://browser/content/devtools/frame-script-utils.js";
+  let frameURL = "chrome://devtools/content/shared/frame-script-utils.js";
   mm.loadFrameScript(frameURL, false);
   SimpleTest.registerCleanupFunction(() => {
     mm = null;
   });
   return mm;
 }
 
 DevToolsUtils.testing = true;
--- a/devtools/client/framework/toolbox-hosts.js
+++ b/devtools/client/framework/toolbox-hosts.js
@@ -264,17 +264,17 @@ function WindowHost() {
   this._boundUnload = this._boundUnload.bind(this);
 
   EventEmitter.decorate(this);
 }
 
 WindowHost.prototype = {
   type: "window",
 
-  WINDOW_URL: "chrome://browser/content/devtools/framework/toolbox-window.xul",
+  WINDOW_URL: "chrome://devtools/content/framework/toolbox-window.xul",
 
   /**
    * Create a new xul window to contain the toolbox.
    */
   create: function() {
     let deferred = promise.defer();
 
     let flags = "chrome,centerscreen,resizable,dialog=no";
--- a/devtools/client/framework/toolbox-options.xul
+++ b/devtools/client/framework/toolbox-options.xul
@@ -2,22 +2,22 @@
 <!-- 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/. -->
 <!DOCTYPE window [
 <!ENTITY % toolboxDTD SYSTEM "chrome://browser/locale/devtools/toolbox.dtd" >
  %toolboxDTD;
 ]>
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet rel="stylesheet" href="chrome://browser/content/devtools/framework/options-panel.css" type="text/css"?>
+<?xml-stylesheet rel="stylesheet" href="chrome://devtools/content/framework/options-panel.css" type="text/css"?>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <hbox id="options-panel-container" flex="1">
     <hbox id="options-panel" class="theme-body" flex="1">
       <vbox id="tools-box" class="options-vertical-pane" flex="1">
         <label>&options.selectDefaultTools.label;</label>
         <vbox id="default-tools-box" class="options-groupbox" tabindex="0"/>
         <label>&options.selectAdditionalTools.label;</label>
         <vbox id="additional-tools-box" class="options-groupbox"/>
         <label>&options.selectEnabledToolboxButtons.label;</label>
--- a/devtools/client/framework/toolbox.js
+++ b/devtools/client/framework/toolbox.js
@@ -174,17 +174,17 @@ exports.Toolbox = Toolbox;
 Toolbox.HostType = {
   BOTTOM: "bottom",
   SIDE: "side",
   WINDOW: "window",
   CUSTOM: "custom"
 };
 
 Toolbox.prototype = {
-  _URL: "chrome://browser/content/devtools/framework/toolbox.xul",
+  _URL: "chrome://devtools/content/framework/toolbox.xul",
 
   _prefs: {
     LAST_HOST: "devtools.toolbox.host",
     LAST_TOOL: "devtools.toolbox.selectedTool",
     SIDE_ENABLED: "devtools.toolbox.sideEnabled",
     PREVIOUS_HOST: "devtools.toolbox.previousHost"
   },
 
--- a/devtools/client/framework/toolbox.xul
+++ b/devtools/client/framework/toolbox.xul
@@ -14,17 +14,17 @@
 %editMenuStrings;
 <!ENTITY % globalKeysDTD SYSTEM "chrome://global/locale/globalKeys.dtd">
 %globalKeysDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="application/javascript"
           src="chrome://global/content/viewSourceUtils.js"/>
 
   <script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
 
   <commandset id="editMenuCommands"/>
   <keyset id="editMenuKeys"/>
   <keyset id="toolbox-keyset">
--- a/devtools/client/inspector/inspector-panel.js
+++ b/devtools/client/inspector/inspector-panel.js
@@ -330,36 +330,36 @@ InspectorPanel.prototype = {
 
     this._setDefaultSidebar = (event, toolId) => {
       Services.prefs.setCharPref("devtools.inspector.activeSidebar", toolId);
     };
 
     this.sidebar.on("select", this._setDefaultSidebar);
 
     this.sidebar.addTab("ruleview",
-                        "chrome://browser/content/devtools/cssruleview.xhtml",
+                        "chrome://devtools/content/styleinspector/cssruleview.xhtml",
                         "ruleview" == defaultTab);
 
     this.sidebar.addTab("computedview",
-                        "chrome://browser/content/devtools/computedview.xhtml",
+                        "chrome://devtools/content/styleinspector/computedview.xhtml",
                         "computedview" == defaultTab);
 
     if (Services.prefs.getBoolPref("devtools.fontinspector.enabled") && this.canGetUsedFontFaces) {
       this.sidebar.addTab("fontinspector",
-                          "chrome://browser/content/devtools/fontinspector/font-inspector.xhtml",
+                          "chrome://devtools/content/fontinspector/font-inspector.xhtml",
                           "fontinspector" == defaultTab);
     }
 
     this.sidebar.addTab("layoutview",
-                        "chrome://browser/content/devtools/layoutview/view.xhtml",
+                        "chrome://devtools/content/layoutview/view.xhtml",
                         "layoutview" == defaultTab);
 
     if (this.target.form.animationsActor) {
       this.sidebar.addTab("animationinspector",
-                          "chrome://browser/content/devtools/animationinspector/animation-inspector.xhtml",
+                          "chrome://devtools/content/animationinspector/animation-inspector.xhtml",
                           "animationinspector" == defaultTab);
     }
 
     this.sidebar.show();
 
     this.setupSidebarToggle();
   },
 
@@ -855,17 +855,17 @@ InspectorPanel.prototype = {
     this._markupFrame.setAttribute("context", "inspector-node-popup");
 
     // This is needed to enable tooltips inside the iframe document.
     this._boundMarkupFrameLoad = this._onMarkupFrameLoad.bind(this);
     this._markupFrame.addEventListener("load", this._boundMarkupFrameLoad, true);
 
     this._markupBox.setAttribute("collapsed", true);
     this._markupBox.appendChild(this._markupFrame);
-    this._markupFrame.setAttribute("src", "chrome://browser/content/devtools/markup-view.xhtml");
+    this._markupFrame.setAttribute("src", "chrome://devtools/content/markupview/markup-view.xhtml");
     this._markupFrame.setAttribute("aria-label", strings.GetStringFromName("inspector.panelLabel.markupView"));
   },
 
   _onMarkupFrameLoad: function() {
     this._markupFrame.removeEventListener("load", this._boundMarkupFrameLoad, true);
     delete this._boundMarkupFrameLoad;
 
     this._markupFrame.contentWindow.focus();
--- a/devtools/client/inspector/inspector.xul
+++ b/devtools/client/inspector/inspector.xul
@@ -1,27 +1,27 @@
 <?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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/inspector/inspector.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/inspector/inspector.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/inspector.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % inspectorDTD SYSTEM "chrome://browser/locale/devtools/inspector.dtd" >
    %inspectorDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
 
   <commandset>
     <command id="nodeSearchCommand"
       oncommand="inspector.searchBox.focus()"/>
   </commandset>
 
   <keyset>
     <key id="nodeSearchKey"
--- a/devtools/client/jar.mn
+++ b/devtools/client/jar.mn
@@ -1,158 +1,159 @@
 # 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:
-    content/browser/devtools/d3.js                                     (shared/vendor/d3.js)
-    content/browser/devtools/dagre-d3.js                               (shared/vendor/dagre-d3.js)
-    content/browser/devtools/widgets.css                               (shared/widgets/widgets.css)
-    content/browser/devtools/widgets/VariablesView.xul                 (shared/widgets/VariablesView.xul)
-    content/browser/devtools/markup-view.xhtml                         (markupview/markup-view.xhtml)
-    content/browser/devtools/markup-view.css                           (markupview/markup-view.css)
-    content/browser/devtools/projecteditor.xul                               (projecteditor/chrome/content/projecteditor.xul)
-    content/browser/devtools/readdir.js                                (projecteditor/lib/helpers/readdir.js)
-    content/browser/devtools/projecteditor-loader.xul                        (projecteditor/chrome/content/projecteditor-loader.xul)
-    content/browser/devtools/projecteditor-test.xul                          (projecteditor/chrome/content/projecteditor-test.xul)
-    content/browser/devtools/projecteditor-loader.js                         (projecteditor/chrome/content/projecteditor-loader.js)
-    content/browser/devtools/netmonitor.xul                            (netmonitor/netmonitor.xul)
-    content/browser/devtools/netmonitor.css                            (netmonitor/netmonitor.css)
-    content/browser/devtools/netmonitor-controller.js                  (netmonitor/netmonitor-controller.js)
-    content/browser/devtools/netmonitor-view.js                        (netmonitor/netmonitor-view.js)
-    content/browser/devtools/webconsole.xul                            (webconsole/webconsole.xul)
-*   content/browser/devtools/scratchpad.xul                            (scratchpad/scratchpad.xul)
-    content/browser/devtools/scratchpad.js                             (scratchpad/scratchpad.js)
-    content/browser/devtools/splitview.css                             (shared/splitview.css)
-    content/browser/devtools/theme-switching.js                        (shared/theme-switching.js)
-    content/browser/devtools/frame-script-utils.js                     (shared/frame-script-utils.js)
-    content/browser/devtools/styleeditor.xul                           (styleeditor/styleeditor.xul)
-    content/browser/devtools/styleeditor.css                           (styleeditor/styleeditor.css)
-    content/browser/devtools/storage.xul                               (storage/storage.xul)
-    content/browser/devtools/computedview.xhtml                        (styleinspector/computedview.xhtml)
-    content/browser/devtools/cssruleview.xhtml                         (styleinspector/cssruleview.xhtml)
-    content/browser/devtools/ruleview.css                              (styleinspector/ruleview.css)
-    content/browser/devtools/layoutview/view.js                        (layoutview/view.js)
-    content/browser/devtools/layoutview/view.xhtml                     (layoutview/view.xhtml)
-    content/browser/devtools/fontinspector/font-inspector.js           (fontinspector/font-inspector.js)
-    content/browser/devtools/fontinspector/font-inspector.xhtml        (fontinspector/font-inspector.xhtml)
-    content/browser/devtools/fontinspector/font-inspector.css          (fontinspector/font-inspector.css)
-    content/browser/devtools/animationinspector/animation-controller.js (animationinspector/animation-controller.js)
-    content/browser/devtools/animationinspector/animation-panel.js     (animationinspector/animation-panel.js)
-    content/browser/devtools/animationinspector/animation-inspector.xhtml (animationinspector/animation-inspector.xhtml)
-    content/browser/devtools/codemirror/codemirror.js                  (sourceeditor/codemirror/codemirror.js)
-    content/browser/devtools/codemirror/codemirror.css                 (sourceeditor/codemirror/codemirror.css)
-    content/browser/devtools/codemirror/javascript.js                  (sourceeditor/codemirror/mode/javascript.js)
-    content/browser/devtools/codemirror/xml.js                         (sourceeditor/codemirror/mode/xml.js)
-    content/browser/devtools/codemirror/css.js                         (sourceeditor/codemirror/mode/css.js)
-    content/browser/devtools/codemirror/htmlmixed.js                   (sourceeditor/codemirror/mode/htmlmixed.js)
-    content/browser/devtools/codemirror/clike.js                       (sourceeditor/codemirror/mode/clike.js)
-    content/browser/devtools/codemirror/activeline.js                  (sourceeditor/codemirror/selection/active-line.js)
-    content/browser/devtools/codemirror/trailingspace.js               (sourceeditor/codemirror/edit/trailingspace.js)
-    content/browser/devtools/codemirror/matchbrackets.js               (sourceeditor/codemirror/edit/matchbrackets.js)
-    content/browser/devtools/codemirror/closebrackets.js               (sourceeditor/codemirror/edit/closebrackets.js)
-    content/browser/devtools/codemirror/comment.js                     (sourceeditor/codemirror/comment/comment.js)
-    content/browser/devtools/codemirror/searchcursor.js                (sourceeditor/codemirror/search/searchcursor.js)
-    content/browser/devtools/codemirror/search.js                      (sourceeditor/codemirror/search/search.js)
-    content/browser/devtools/codemirror/dialog.js                      (sourceeditor/codemirror/dialog/dialog.js)
-    content/browser/devtools/codemirror/dialog.css                     (sourceeditor/codemirror/dialog/dialog.css)
-    content/browser/devtools/codemirror/emacs.js                       (sourceeditor/codemirror/keymap/emacs.js)
-    content/browser/devtools/codemirror/sublime.js                     (sourceeditor/codemirror/keymap/sublime.js)
-    content/browser/devtools/codemirror/vim.js                         (sourceeditor/codemirror/keymap/vim.js)
-    content/browser/devtools/codemirror/foldcode.js                    (sourceeditor/codemirror/fold/foldcode.js)
-    content/browser/devtools/codemirror/brace-fold.js                  (sourceeditor/codemirror/fold/brace-fold.js)
-    content/browser/devtools/codemirror/comment-fold.js                (sourceeditor/codemirror/fold/comment-fold.js)
-    content/browser/devtools/codemirror/xml-fold.js                    (sourceeditor/codemirror/fold/xml-fold.js)
-    content/browser/devtools/codemirror/foldgutter.js                  (sourceeditor/codemirror/fold/foldgutter.js)
-    content/browser/devtools/codemirror/tern.js                        (sourceeditor/codemirror/tern/tern.js)
-    content/browser/devtools/codemirror/show-hint.js                   (sourceeditor/codemirror/hint/show-hint.js)
-    content/browser/devtools/codemirror/mozilla.css                    (sourceeditor/codemirror/mozilla.css)
-    content/browser/devtools/debugger.xul                              (debugger/debugger.xul)
-    content/browser/devtools/debugger.css                              (debugger/debugger.css)
-    content/browser/devtools/debugger-controller.js                    (debugger/debugger-controller.js)
-    content/browser/devtools/debugger-view.js                          (debugger/debugger-view.js)
-    content/browser/devtools/debugger/workers-view.js                  (debugger/views/workers-view.js)
-    content/browser/devtools/debugger/sources-view.js                  (debugger/views/sources-view.js)
-    content/browser/devtools/debugger/variable-bubble-view.js          (debugger/views/variable-bubble-view.js)
-    content/browser/devtools/debugger/watch-expressions-view.js        (debugger/views/watch-expressions-view.js)
-    content/browser/devtools/debugger/global-search-view.js            (debugger/views/global-search-view.js)
-    content/browser/devtools/debugger/toolbar-view.js                  (debugger/views/toolbar-view.js)
-    content/browser/devtools/debugger/options-view.js                  (debugger/views/options-view.js)
-    content/browser/devtools/debugger/stack-frames-view.js             (debugger/views/stack-frames-view.js)
-    content/browser/devtools/debugger/stack-frames-classic-view.js     (debugger/views/stack-frames-classic-view.js)
-    content/browser/devtools/debugger/filter-view.js                   (debugger/views/filter-view.js)
-    content/browser/devtools/debugger/utils.js                         (debugger/utils.js)
-    content/browser/devtools/shadereditor.xul                          (shadereditor/shadereditor.xul)
-    content/browser/devtools/shadereditor.js                           (shadereditor/shadereditor.js)
-    content/browser/devtools/canvasdebugger.xul                        (canvasdebugger/canvasdebugger.xul)
-    content/browser/devtools/canvasdebugger.js                         (canvasdebugger/canvasdebugger.js)
-    content/browser/devtools/canvasdebugger/snapshotslist.js           (canvasdebugger/snapshotslist.js)
-    content/browser/devtools/canvasdebugger/callslist.js               (canvasdebugger/callslist.js)
-    content/browser/devtools/webaudioeditor.xul                        (webaudioeditor/webaudioeditor.xul)
-    content/browser/devtools/webaudioeditor/includes.js                (webaudioeditor/includes.js)
-    content/browser/devtools/webaudioeditor/models.js                  (webaudioeditor/models.js)
-    content/browser/devtools/webaudioeditor/controller.js              (webaudioeditor/controller.js)
-    content/browser/devtools/webaudioeditor/views/utils.js             (webaudioeditor/views/utils.js)
-    content/browser/devtools/webaudioeditor/views/context.js           (webaudioeditor/views/context.js)
-    content/browser/devtools/webaudioeditor/views/inspector.js         (webaudioeditor/views/inspector.js)
-    content/browser/devtools/webaudioeditor/views/properties.js        (webaudioeditor/views/properties.js)
-    content/browser/devtools/webaudioeditor/views/automation.js        (webaudioeditor/views/automation.js)
-    content/browser/devtools/performance.xul                           (performance/performance.xul)
-    content/browser/devtools/performance/performance-controller.js     (performance/performance-controller.js)
-    content/browser/devtools/performance/performance-view.js           (performance/performance-view.js)
-    content/browser/devtools/performance/views/overview.js             (performance/views/overview.js)
-    content/browser/devtools/performance/views/toolbar.js              (performance/views/toolbar.js)
-    content/browser/devtools/performance/views/details.js              (performance/views/details.js)
-    content/browser/devtools/performance/views/details-subview.js      (performance/views/details-abstract-subview.js)
-    content/browser/devtools/performance/views/details-waterfall.js    (performance/views/details-waterfall.js)
-    content/browser/devtools/performance/views/details-js-call-tree.js      (performance/views/details-js-call-tree.js)
-    content/browser/devtools/performance/views/details-js-flamegraph.js     (performance/views/details-js-flamegraph.js)
-    content/browser/devtools/performance/views/details-memory-call-tree.js  (performance/views/details-memory-call-tree.js)
-    content/browser/devtools/performance/views/details-memory-flamegraph.js (performance/views/details-memory-flamegraph.js)
-    content/browser/devtools/performance/views/optimizations-list.js        (performance/views/optimizations-list.js)
-    content/browser/devtools/performance/views/recordings.js           (performance/views/recordings.js)
-    content/browser/devtools/memory.xhtml                              (memory/memory.xhtml)
-    content/browser/devtools/memory/controller.js                      (memory/controller.js)
-    content/browser/devtools/promisedebugger/promise-controller.js     (promisedebugger/promise-controller.js)
-    content/browser/devtools/promisedebugger/promise-panel.js          (promisedebugger/promise-panel.js)
-    content/browser/devtools/promisedebugger/promise-debugger.xhtml    (promisedebugger/promise-debugger.xhtml)
-    content/browser/devtools/commandline.css                           (commandline/commandline.css)
-    content/browser/devtools/commandlineoutput.xhtml                   (commandline/commandlineoutput.xhtml)
-    content/browser/devtools/commandlinetooltip.xhtml                  (commandline/commandlinetooltip.xhtml)
-*   content/browser/devtools/framework/toolbox-window.xul              (framework/toolbox-window.xul)
-    content/browser/devtools/framework/toolbox-options.xul             (framework/toolbox-options.xul)
-    content/browser/devtools/framework/toolbox-options.js              (framework/toolbox-options.js)
-    content/browser/devtools/framework/toolbox.xul                     (framework/toolbox.xul)
-    content/browser/devtools/framework/options-panel.css               (framework/options-panel.css)
-    content/browser/devtools/framework/toolbox-process-window.xul      (framework/toolbox-process-window.xul)
-*   content/browser/devtools/framework/toolbox-process-window.js       (framework/toolbox-process-window.js)
-    content/browser/devtools/framework/dev-edition-promo.xul           (framework/dev-edition-promo/dev-edition-promo.xul)
-*   content/browser/devtools/framework/dev-edition-promo.css           (framework/dev-edition-promo/dev-edition-promo.css)
-    content/browser/devtools/framework/dev-edition-logo.png            (framework/dev-edition-promo/dev-edition-logo.png)
-    content/browser/devtools/inspector/inspector.xul                   (inspector/inspector.xul)
-    content/browser/devtools/inspector/inspector.css                   (inspector/inspector.css)
-    content/browser/devtools/connect.xhtml                             (framework/connect/connect.xhtml)
-    content/browser/devtools/connect.css                               (framework/connect/connect.css)
-    content/browser/devtools/connect.js                                (framework/connect/connect.js)
-    content/browser/devtools/app-manager/template.js                   (app-manager/content/template.js)
-    content/browser/devtools/app-manager/utils.js                      (app-manager/content/utils.js)
-    content/browser/devtools/app-manager/connection-footer.js          (app-manager/content/connection-footer.js)
-    content/browser/devtools/app-manager/connection-footer.xhtml       (app-manager/content/connection-footer.xhtml)
-    content/browser/devtools/app-manager/device.js                     (app-manager/content/device.js)
-    content/browser/devtools/app-manager/device.xhtml                  (app-manager/content/device.xhtml)
-    content/browser/devtools/app-manager/projects.js                   (app-manager/content/projects.js)
-    content/browser/devtools/app-manager/projects.xhtml                (app-manager/content/projects.xhtml)
-    content/browser/devtools/app-manager/index.xul                     (app-manager/content/index.xul)
-    content/browser/devtools/app-manager/index.js                      (app-manager/content/index.js)
-    content/browser/devtools/app-manager/help.xhtml                    (app-manager/content/help.xhtml)
-    content/browser/devtools/app-manager/manifest-editor.js            (app-manager/content/manifest-editor.js)
-    content/browser/devtools/graphs-frame.xhtml                        (shared/widgets/graphs-frame.xhtml)
-    content/browser/devtools/spectrum-frame.xhtml                      (shared/widgets/spectrum-frame.xhtml)
-    content/browser/devtools/spectrum.css                              (shared/widgets/spectrum.css)
-    content/browser/devtools/cubic-bezier-frame.xhtml                  (shared/widgets/cubic-bezier-frame.xhtml)
-    content/browser/devtools/cubic-bezier.css                          (shared/widgets/cubic-bezier.css)
-    content/browser/devtools/mdn-docs-frame.xhtml                      (shared/widgets/mdn-docs-frame.xhtml)
-    content/browser/devtools/mdn-docs.css                              (shared/widgets/mdn-docs.css)
-    content/browser/devtools/filter-frame.xhtml                        (shared/widgets/filter-frame.xhtml)
-    content/browser/devtools/filter-widget.css                         (shared/widgets/filter-widget.css)
-    content/browser/devtools/eyedropper.xul                            (eyedropper/eyedropper.xul)
-    content/browser/devtools/eyedropper/crosshairs.css                 (eyedropper/crosshairs.css)
-    content/browser/devtools/eyedropper/nocursor.css                   (eyedropper/nocursor.css)
+devtools.jar:
+%   content devtools %content/
+    content/shared/vendor/d3.js (shared/vendor/d3.js)
+    content/shared/vendor/dagre-d3.js (shared/vendor/dagre-d3.js)
+    content/shared/widgets/widgets.css (shared/widgets/widgets.css)
+    content/shared/widgets/VariablesView.xul (shared/widgets/VariablesView.xul)
+    content/markupview/markup-view.xhtml (markupview/markup-view.xhtml)
+    content/markupview/markup-view.css (markupview/markup-view.css)
+    content/projecteditor/chrome/content/projecteditor.xul (projecteditor/chrome/content/projecteditor.xul)
+    content/projecteditor/lib/helpers/readdir.js (projecteditor/lib/helpers/readdir.js)
+    content/projecteditor/chrome/content/projecteditor-loader.xul (projecteditor/chrome/content/projecteditor-loader.xul)
+    content/projecteditor/chrome/content/projecteditor-test.xul (projecteditor/chrome/content/projecteditor-test.xul)
+    content/projecteditor/chrome/content/projecteditor-loader.js (projecteditor/chrome/content/projecteditor-loader.js)
+    content/netmonitor/netmonitor.xul (netmonitor/netmonitor.xul)
+    content/netmonitor/netmonitor.css (netmonitor/netmonitor.css)
+    content/netmonitor/netmonitor-controller.js (netmonitor/netmonitor-controller.js)
+    content/netmonitor/netmonitor-view.js (netmonitor/netmonitor-view.js)
+    content/webconsole/webconsole.xul (webconsole/webconsole.xul)
+*   content/scratchpad/scratchpad.xul (scratchpad/scratchpad.xul)
+    content/scratchpad/scratchpad.js (scratchpad/scratchpad.js)
+    content/shared/splitview.css (shared/splitview.css)
+    content/shared/theme-switching.js (shared/theme-switching.js)
+    content/shared/frame-script-utils.js (shared/frame-script-utils.js)
+    content/styleeditor/styleeditor.xul (styleeditor/styleeditor.xul)
+    content/styleeditor/styleeditor.css (styleeditor/styleeditor.css)
+    content/storage/storage.xul (storage/storage.xul)
+    content/styleinspector/computedview.xhtml (styleinspector/computedview.xhtml)
+    content/styleinspector/cssruleview.xhtml (styleinspector/cssruleview.xhtml)
+    content/styleinspector/ruleview.css (styleinspector/ruleview.css)
+    content/layoutview/view.js (layoutview/view.js)
+    content/layoutview/view.xhtml (layoutview/view.xhtml)
+    content/fontinspector/font-inspector.js (fontinspector/font-inspector.js)
+    content/fontinspector/font-inspector.xhtml (fontinspector/font-inspector.xhtml)
+    content/fontinspector/font-inspector.css (fontinspector/font-inspector.css)
+    content/animationinspector/animation-controller.js (animationinspector/animation-controller.js)
+    content/animationinspector/animation-panel.js (animationinspector/animation-panel.js)
+    content/animationinspector/animation-inspector.xhtml (animationinspector/animation-inspector.xhtml)
+    content/sourceeditor/codemirror/codemirror.js (sourceeditor/codemirror/codemirror.js)
+    content/sourceeditor/codemirror/codemirror.css (sourceeditor/codemirror/codemirror.css)
+    content/sourceeditor/codemirror/mode/javascript.js (sourceeditor/codemirror/mode/javascript.js)
+    content/sourceeditor/codemirror/mode/xml.js (sourceeditor/codemirror/mode/xml.js)
+    content/sourceeditor/codemirror/mode/css.js (sourceeditor/codemirror/mode/css.js)
+    content/sourceeditor/codemirror/mode/htmlmixed.js (sourceeditor/codemirror/mode/htmlmixed.js)
+    content/sourceeditor/codemirror/mode/clike.js (sourceeditor/codemirror/mode/clike.js)
+    content/sourceeditor/codemirror/selection/active-line.js (sourceeditor/codemirror/selection/active-line.js)
+    content/sourceeditor/codemirror/edit/trailingspace.js (sourceeditor/codemirror/edit/trailingspace.js)
+    content/sourceeditor/codemirror/edit/matchbrackets.js (sourceeditor/codemirror/edit/matchbrackets.js)
+    content/sourceeditor/codemirror/edit/closebrackets.js (sourceeditor/codemirror/edit/closebrackets.js)
+    content/sourceeditor/codemirror/comment/comment.js (sourceeditor/codemirror/comment/comment.js)
+    content/sourceeditor/codemirror/search/searchcursor.js (sourceeditor/codemirror/search/searchcursor.js)
+    content/sourceeditor/codemirror/search/search.js (sourceeditor/codemirror/search/search.js)
+    content/sourceeditor/codemirror/dialog/dialog.js (sourceeditor/codemirror/dialog/dialog.js)
+    content/sourceeditor/codemirror/dialog/dialog.css (sourceeditor/codemirror/dialog/dialog.css)
+    content/sourceeditor/codemirror/keymap/emacs.js (sourceeditor/codemirror/keymap/emacs.js)
+    content/sourceeditor/codemirror/keymap/sublime.js (sourceeditor/codemirror/keymap/sublime.js)
+    content/sourceeditor/codemirror/keymap/vim.js (sourceeditor/codemirror/keymap/vim.js)
+    content/sourceeditor/codemirror/fold/foldcode.js (sourceeditor/codemirror/fold/foldcode.js)
+    content/sourceeditor/codemirror/fold/brace-fold.js (sourceeditor/codemirror/fold/brace-fold.js)
+    content/sourceeditor/codemirror/fold/comment-fold.js (sourceeditor/codemirror/fold/comment-fold.js)
+    content/sourceeditor/codemirror/fold/xml-fold.js (sourceeditor/codemirror/fold/xml-fold.js)
+    content/sourceeditor/codemirror/fold/foldgutter.js (sourceeditor/codemirror/fold/foldgutter.js)
+    content/sourceeditor/codemirror/tern/tern.js (sourceeditor/codemirror/tern/tern.js)
+    content/sourceeditor/codemirror/hint/show-hint.js (sourceeditor/codemirror/hint/show-hint.js)
+    content/sourceeditor/codemirror/mozilla.css (sourceeditor/codemirror/mozilla.css)
+    content/debugger/debugger.xul (debugger/debugger.xul)
+    content/debugger/debugger.css (debugger/debugger.css)
+    content/debugger/debugger-controller.js (debugger/debugger-controller.js)
+    content/debugger/debugger-view.js (debugger/debugger-view.js)
+    content/debugger/views/workers-view.js (debugger/views/workers-view.js)
+    content/debugger/views/sources-view.js (debugger/views/sources-view.js)
+    content/debugger/views/variable-bubble-view.js (debugger/views/variable-bubble-view.js)
+    content/debugger/views/watch-expressions-view.js (debugger/views/watch-expressions-view.js)
+    content/debugger/views/global-search-view.js (debugger/views/global-search-view.js)
+    content/debugger/views/toolbar-view.js (debugger/views/toolbar-view.js)
+    content/debugger/views/options-view.js (debugger/views/options-view.js)
+    content/debugger/views/stack-frames-view.js (debugger/views/stack-frames-view.js)
+    content/debugger/views/stack-frames-classic-view.js (debugger/views/stack-frames-classic-view.js)
+    content/debugger/views/filter-view.js (debugger/views/filter-view.js)
+    content/debugger/utils.js (debugger/utils.js)
+    content/shadereditor/shadereditor.xul (shadereditor/shadereditor.xul)
+    content/shadereditor/shadereditor.js (shadereditor/shadereditor.js)
+    content/canvasdebugger/canvasdebugger.xul (canvasdebugger/canvasdebugger.xul)
+    content/canvasdebugger/canvasdebugger.js (canvasdebugger/canvasdebugger.js)
+    content/canvasdebugger/snapshotslist.js (canvasdebugger/snapshotslist.js)
+    content/canvasdebugger/callslist.js (canvasdebugger/callslist.js)
+    content/webaudioeditor/webaudioeditor.xul (webaudioeditor/webaudioeditor.xul)
+    content/webaudioeditor/includes.js (webaudioeditor/includes.js)
+    content/webaudioeditor/models.js (webaudioeditor/models.js)
+    content/webaudioeditor/controller.js (webaudioeditor/controller.js)
+    content/webaudioeditor/views/utils.js (webaudioeditor/views/utils.js)
+    content/webaudioeditor/views/context.js (webaudioeditor/views/context.js)
+    content/webaudioeditor/views/inspector.js (webaudioeditor/views/inspector.js)
+    content/webaudioeditor/views/properties.js (webaudioeditor/views/properties.js)
+    content/webaudioeditor/views/automation.js (webaudioeditor/views/automation.js)
+    content/performance/performance.xul (performance/performance.xul)
+    content/performance/performance-controller.js (performance/performance-controller.js)
+    content/performance/performance-view.js (performance/performance-view.js)
+    content/performance/views/overview.js (performance/views/overview.js)
+    content/performance/views/toolbar.js (performance/views/toolbar.js)
+    content/performance/views/details.js (performance/views/details.js)
+    content/performance/views/details-abstract-subview.js (performance/views/details-abstract-subview.js)
+    content/performance/views/details-waterfall.js (performance/views/details-waterfall.js)
+    content/performance/views/details-js-call-tree.js (performance/views/details-js-call-tree.js)
+    content/performance/views/details-js-flamegraph.js (performance/views/details-js-flamegraph.js)
+    content/performance/views/details-memory-call-tree.js (performance/views/details-memory-call-tree.js)
+    content/performance/views/details-memory-flamegraph.js (performance/views/details-memory-flamegraph.js)
+    content/performance/views/optimizations-list.js (performance/views/optimizations-list.js)
+    content/performance/views/recordings.js (performance/views/recordings.js)
+    content/memory/memory.xhtml (memory/memory.xhtml)
+    content/memory/controller.js (memory/controller.js)
+    content/promisedebugger/promise-controller.js (promisedebugger/promise-controller.js)
+    content/promisedebugger/promise-panel.js (promisedebugger/promise-panel.js)
+    content/promisedebugger/promise-debugger.xhtml (promisedebugger/promise-debugger.xhtml)
+    content/commandline/commandline.css (commandline/commandline.css)
+    content/commandline/commandlineoutput.xhtml (commandline/commandlineoutput.xhtml)
+    content/commandline/commandlinetooltip.xhtml (commandline/commandlinetooltip.xhtml)
+*   content/framework/toolbox-window.xul (framework/toolbox-window.xul)
+    content/framework/toolbox-options.xul (framework/toolbox-options.xul)
+    content/framework/toolbox-options.js (framework/toolbox-options.js)
+    content/framework/toolbox.xul (framework/toolbox.xul)
+    content/framework/options-panel.css (framework/options-panel.css)
+    content/framework/toolbox-process-window.xul (framework/toolbox-process-window.xul)
+*   content/framework/toolbox-process-window.js (framework/toolbox-process-window.js)
+    content/framework/dev-edition-promo/dev-edition-promo.xul (framework/dev-edition-promo/dev-edition-promo.xul)
+*   content/framework/dev-edition-promo/dev-edition-promo.css (framework/dev-edition-promo/dev-edition-promo.css)
+    content/framework/dev-edition-promo/dev-edition-logo.png (framework/dev-edition-promo/dev-edition-logo.png)
+    content/inspector/inspector.xul (inspector/inspector.xul)
+    content/inspector/inspector.css (inspector/inspector.css)
+    content/framework/connect/connect.xhtml (framework/connect/connect.xhtml)
+    content/framework/connect/connect.css (framework/connect/connect.css)
+    content/framework/connect/connect.js (framework/connect/connect.js)
+    content/app-manager/content/template.js (app-manager/content/template.js)
+    content/app-manager/content/utils.js (app-manager/content/utils.js)
+    content/app-manager/content/connection-footer.js (app-manager/content/connection-footer.js)
+    content/app-manager/content/connection-footer.xhtml (app-manager/content/connection-footer.xhtml)
+    content/app-manager/content/device.js (app-manager/content/device.js)
+    content/app-manager/content/device.xhtml (app-manager/content/device.xhtml)
+    content/app-manager/content/projects.js (app-manager/content/projects.js)
+    content/app-manager/content/projects.xhtml (app-manager/content/projects.xhtml)
+    content/app-manager/content/index.xul (app-manager/content/index.xul)
+    content/app-manager/content/index.js (app-manager/content/index.js)
+    content/app-manager/content/help.xhtml (app-manager/content/help.xhtml)
+    content/app-manager/content/manifest-editor.js (app-manager/content/manifest-editor.js)
+    content/shared/widgets/graphs-frame.xhtml (shared/widgets/graphs-frame.xhtml)
+    content/shared/widgets/spectrum-frame.xhtml (shared/widgets/spectrum-frame.xhtml)
+    content/shared/widgets/spectrum.css (shared/widgets/spectrum.css)
+    content/shared/widgets/cubic-bezier-frame.xhtml (shared/widgets/cubic-bezier-frame.xhtml)
+    content/shared/widgets/cubic-bezier.css (shared/widgets/cubic-bezier.css)
+    content/shared/widgets/mdn-docs-frame.xhtml (shared/widgets/mdn-docs-frame.xhtml)
+    content/shared/widgets/mdn-docs.css (shared/widgets/mdn-docs.css)
+    content/shared/widgets/filter-frame.xhtml (shared/widgets/filter-frame.xhtml)
+    content/shared/widgets/filter-widget.css (shared/widgets/filter-widget.css)
+    content/eyedropper/eyedropper.xul (eyedropper/eyedropper.xul)
+    content/eyedropper/crosshairs.css (eyedropper/crosshairs.css)
+    content/eyedropper/nocursor.css (eyedropper/nocursor.css)
--- a/devtools/client/layoutview/view.xhtml
+++ b/devtools/client/layoutview/view.xhtml
@@ -8,17 +8,17 @@
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <head>
     <title>&title;</title>
 
     <script type="application/javascript;version=1.8"
-            src="chrome://browser/content/devtools/theme-switching.js"/>
+            src="chrome://devtools/content/shared/theme-switching.js"/>
 
     <script type="application/javascript;version=1.8" src="view.js"></script>
 
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/layoutview.css" type="text/css"/>
 
   </head>
   <body class="theme-sidebar devtools-monospace">
--- a/devtools/client/markupview/markup-view.xhtml
+++ b/devtools/client/markupview/markup-view.xhtml
@@ -2,22 +2,22 @@
 <!-- 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/. -->
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/markup-view.css" type="text/css"/>
+  <link rel="stylesheet" href="chrome://devtools/content/markupview/markup-view.css" type="text/css"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/markup-view.css" type="text/css"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
 
 </head>
 <body class="theme-body devtools-monospace" role="application">
 
 <!-- NOTE THAT WE MAKE EXTENSIVE USE OF HTML COMMENTS IN THIS FILE IN ORDER -->
 <!-- TO MAKE SPANS READABLE WHILST AVOIDING SIGNIFICANT WHITESPACE          -->
 
   <div id="root-wrapper">
--- a/devtools/client/markupview/test/browser_markupview_anonymous_02.js
+++ b/devtools/client/markupview/test/browser_markupview_anonymous_02.js
@@ -1,16 +1,16 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Test XBL anonymous content in the markupview
-const TEST_URL = "chrome://browser/content/devtools/scratchpad.xul";
+const TEST_URL = "chrome://devtools/content/scratchpad/scratchpad.xul";
 
 add_task(function*() {
   let {inspector} = yield addTab(TEST_URL).then(openInspector);
 
   let toolbarbutton = yield getNodeFront("toolbarbutton", inspector);
   let children = yield inspector.walker.children(toolbarbutton);
 
   is(toolbarbutton.numChildren, 3, "Correct number of children");
--- a/devtools/client/markupview/test/head.js
+++ b/devtools/client/markupview/test/head.js
@@ -45,17 +45,17 @@ registerCleanupFunction(function*() {
 
   while (gBrowser.tabs.length > 1) {
     gBrowser.removeCurrentTab();
   }
 });
 
 const TEST_URL_ROOT = "http://mochi.test:8888/browser/browser/devtools/markupview/test/";
 const CHROME_BASE = "chrome://mochitests/content/browser/browser/devtools/markupview/test/";
-const COMMON_FRAME_SCRIPT_URL = "chrome://browser/content/devtools/frame-script-utils.js";
+const COMMON_FRAME_SCRIPT_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 const MARKUPVIEW_FRAME_SCRIPT_URL = CHROME_BASE + "frame-script-utils.js";
 
 /**
  * Add a new test tab in the browser and load the given url.
  * @param {String} url The url to be loaded in the new tab
  * @return a promise that resolves to the tab object when the url is loaded
  */
 function addTab(url) {
--- a/devtools/client/memory/memory.xhtml
+++ b/devtools/client/memory/memory.xhtml
@@ -7,25 +7,25 @@
 ]>
 
 <!-- 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/. -->
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <link rel="stylesheet" href="chrome://browser/skin/" type="text/css"/>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/widgets.css" type="text/css"/>
+    <link rel="stylesheet" href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/widgets.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/memory.css" type="text/css"/>
 
     <script type="application/javascript;version=1.8"
-            src="chrome://browser/content/devtools/theme-switching.js"></script>
+            src="chrome://devtools/content/shared/theme-switching.js"></script>
     <script type="application/javascript;version=1.8"
-            src="memory/controller.js"></script>
+            src="controller.js"></script>
   </head>
   <body class="theme-body">
     <toolbar class="devtools-toolbar">
       <toolbarbutton id="snapshot-button" class="devtools-toolbarbutton"
                      tabindex="0"/>
       <spacer flex="1"></spacer>
     </toolbar>
     <splitter class="devtools-horizontal-splitter"/>
--- a/devtools/client/memory/test/mochitest/test_census-view-01.html
+++ b/devtools/client/memory/test/mochitest/test_census-view-01.html
@@ -2,17 +2,17 @@
 <html>
 <!--
 Bug 1067491 - Test taking a census over the RDP.
 -->
 <head>
   <meta charset="utf-8">
   <title>Census Tree 01</title>
   <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
-  <link href="chrome://browser/content/devtools/widgets.css" type="text/css" />
+  <link href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css" />
   <link href="chrome://browser/skin/devtools/light-theme.css" type="text/css" />
   <link href="chrome://browser/skin/devtools/common.css" type="text/css" />
   <link href="chrome://browser/skin/devtools/widgets.css" type="text/css" />
   <link href="chrome://browser/skin/devtools/memory.css" type="text/css" />
 </head>
 <body>
 <ul id="container" style="width:100%;height:300px;"></ul>
 <pre id="test">
--- a/devtools/client/netmonitor/netmonitor.xul
+++ b/devtools/client/netmonitor/netmonitor.xul
@@ -1,30 +1,30 @@
 <?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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/netmonitor.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/netmonitor/netmonitor.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/netmonitor.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % netmonitorDTD SYSTEM "chrome://browser/locale/devtools/netmonitor.dtd">
   %netmonitorDTD;
   <!ENTITY % certManagerDTD SYSTEM "chrome://pippki/locale/certManager.dtd">
   %certManagerDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         xmlns:html="http://www.w3.org/1999/xhtml">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="text/javascript" src="netmonitor-controller.js"/>
   <script type="text/javascript" src="netmonitor-view.js"/>
 
   <popupset id="networkPopupSet">
     <menupopup id="network-request-popup">
       <menuitem id="request-menu-context-copy-url"
                 label="&netmonitorUI.context.copyUrl;"
                 accesskey="&netmonitorUI.context.copyUrl.accesskey;"/>
--- a/devtools/client/netmonitor/test/head.js
+++ b/devtools/client/netmonitor/test/head.js
@@ -48,17 +48,17 @@ const CONTENT_TYPE_SJS = EXAMPLE_URL + "
 const STATUS_CODES_SJS = EXAMPLE_URL + "sjs_status-codes-test-server.sjs";
 const SORTING_SJS = EXAMPLE_URL + "sjs_sorting-test-server.sjs";
 const HTTPS_REDIRECT_SJS = EXAMPLE_URL + "sjs_https-redirect-test-server.sjs";
 const CORS_SJS_PATH = "/browser/browser/devtools/netmonitor/test/sjs_cors-test-server.sjs";
 
 const TEST_IMAGE = EXAMPLE_URL + "test-image.png";
 const TEST_IMAGE_DATA_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==";
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js"
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js"
 
 DevToolsUtils.testing = true;
 SimpleTest.registerCleanupFunction(() => {
   DevToolsUtils.testing = false;
 });
 
 // All tests are asynchronous.
 waitForExplicitFinish();
--- a/devtools/client/performance/performance.xul
+++ b/devtools/client/performance/performance.xul
@@ -1,37 +1,37 @@
 <?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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/performance.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % performanceDTD SYSTEM "chrome://browser/locale/devtools/performance.dtd">
   %performanceDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script src="chrome://browser/content/devtools/theme-switching.js"/>
-  <script type="application/javascript" src="performance/performance-controller.js"/>
-  <script type="application/javascript" src="performance/performance-view.js"/>
-  <script type="application/javascript" src="performance/views/overview.js"/>
-  <script type="application/javascript" src="performance/views/toolbar.js"/>
-  <script type="application/javascript" src="performance/views/details-subview.js"/>
-  <script type="application/javascript" src="performance/views/details-waterfall.js"/>
-  <script type="application/javascript" src="performance/views/details-js-call-tree.js"/>
-  <script type="application/javascript" src="performance/views/details-js-flamegraph.js"/>
-  <script type="application/javascript" src="performance/views/details-memory-call-tree.js"/>
-  <script type="application/javascript" src="performance/views/details-memory-flamegraph.js"/>
-  <script type="application/javascript" src="performance/views/details.js"/>
-  <script type="application/javascript" src="performance/views/recordings.js"/>
-  <script type="application/javascript" src="performance/views/optimizations-list.js"/>
+  <script src="chrome://devtools/content/shared/theme-switching.js"/>
+  <script type="application/javascript" src="performance-controller.js"/>
+  <script type="application/javascript" src="performance-view.js"/>
+  <script type="application/javascript" src="views/overview.js"/>
+  <script type="application/javascript" src="views/toolbar.js"/>
+  <script type="application/javascript" src="views/details-abstract-subview.js"/>
+  <script type="application/javascript" src="views/details-waterfall.js"/>
+  <script type="application/javascript" src="views/details-js-call-tree.js"/>
+  <script type="application/javascript" src="views/details-js-flamegraph.js"/>
+  <script type="application/javascript" src="views/details-memory-call-tree.js"/>
+  <script type="application/javascript" src="views/details-memory-flamegraph.js"/>
+  <script type="application/javascript" src="views/details.js"/>
+  <script type="application/javascript" src="views/recordings.js"/>
+  <script type="application/javascript" src="views/optimizations-list.js"/>
 
   <popupset id="performance-options-popupset">
     <menupopup id="performance-filter-menupopup"/>
     <menupopup id="performance-options-menupopup" position="before_end">
       <menuitem id="option-show-platform-data"
                 type="checkbox"
                 data-pref="show-platform-data"
                 label="&performanceUI.showPlatformData;"
--- a/devtools/client/performance/test/head.js
+++ b/devtools/client/performance/test/head.js
@@ -19,17 +19,17 @@ var { createPerformanceFront } = require
 var RecordingUtils = require("devtools/toolkit/performance/utils");
 var {
   PMM_loadFrameScripts, PMM_isProfilerActive, PMM_stopProfiler,
   sendProfilerCommand, consoleMethod
 } = require("devtools/toolkit/performance/process-communication");
 
 var mm = null;
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js"
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js"
 const EXAMPLE_URL = "http://example.com/browser/browser/devtools/performance/test/";
 const SIMPLE_URL = EXAMPLE_URL + "doc_simple-test.html";
 const MARKERS_URL = EXAMPLE_URL + "doc_markers.html";
 const ALLOCS_URL = EXAMPLE_URL + "doc_allocs.html";
 
 const MEMORY_SAMPLE_PROB_PREF = "devtools.performance.memory.sample-probability";
 const MEMORY_MAX_LOG_LEN_PREF = "devtools.performance.memory.max-log-length";
 const PROFILER_BUFFER_SIZE_PREF = "devtools.performance.profiler.buffer-size";
--- a/devtools/client/projecteditor/chrome/content/projecteditor-loader.js
+++ b/devtools/client/projecteditor/chrome/content/projecteditor-loader.js
@@ -7,17 +7,17 @@ const ProjectEditor = require("projected
 
 const SAMPLE_PATH = buildTempDirectoryStructure();
 const SAMPLE_NAME = "DevTools Content Application Name";
 const SAMPLE_PROJECT_URL = "data:text/html;charset=utf-8,<body><h1>Project Overview</h1></body>";
 const SAMPLE_ICON = "chrome://browser/skin/devtools/tool-debugger.svg";
 
 /**
  * Create a workspace for working on projecteditor, available at
- * chrome://browser/content/devtools/projecteditor-loader.xul.
+ * chrome://devtools/content/projecteditor/chrome/content/projecteditor-loader.xul.
  * This emulates the integration points that the app manager uses.
  */
 var appManagerEditor;
 
 // Log a message to the project overview URL to make development easier
 function log(msg) {
   if (!appManagerEditor) {
     return;
--- a/devtools/client/projecteditor/chrome/content/projecteditor.xul
+++ b/devtools/client/projecteditor/chrome/content/projecteditor.xul
@@ -1,17 +1,17 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/devtools/light-theme.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/projecteditor/projecteditor.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/debugger.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/debugger/debugger.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/markup-view.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/markupview/markup-view.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/markup-view.css" type="text/css"?>
 
 <?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
 
 <!DOCTYPE window [
 <!ENTITY % scratchpadDTD SYSTEM "chrome://browser/locale/devtools/scratchpad.dtd" >
  %scratchpadDTD;
 <!ENTITY % editMenuStrings SYSTEM "chrome://global/locale/editMenuOverlay.dtd">
--- a/devtools/client/projecteditor/lib/helpers/readdir.js
+++ b/devtools/client/projecteditor/lib/helpers/readdir.js
@@ -3,17 +3,17 @@
 /* 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/. */
 
 importScripts("resource://gre/modules/osfile.jsm");
 
 /**
  * This file is meant to be loaded in a worker using:
- *   new ChromeWorker("chrome://browser/content/devtools/readdir.js");
+ *   new ChromeWorker("chrome://devtools/content/projecteditor/lib/helpers/readdir.js");
  *
  * Read a local directory inside of a web woker
  *
  * @param {string} path
  *        window to inspect
  * @param {RegExp|string} ignore
  *        A pattern to ignore certain files.  This is
  *        called with file.name.match(ignore).
--- a/devtools/client/projecteditor/lib/projecteditor.js
+++ b/devtools/client/projecteditor/lib/projecteditor.js
@@ -14,17 +14,17 @@ const { registeredPlugins } = require("p
 const { EventTarget } = require("sdk/event/target");
 const { on, forget } = require("projecteditor/helpers/event");
 const { emit } = require("sdk/event/core");
 const { merge } = require("sdk/util/object");
 const promise = require("promise");
 const { ViewHelpers } = Cu.import("resource:///modules/devtools/ViewHelpers.jsm", {});
 const { DOMHelpers } = Cu.import("resource:///modules/devtools/DOMHelpers.jsm");
 const { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-const ITCHPAD_URL = "chrome://browser/content/devtools/projecteditor.xul";
+const ITCHPAD_URL = "chrome://devtools/content/projecteditor/chrome/content/projecteditor.xul";
 const { confirm } = require("projecteditor/helpers/prompts");
 const { getLocalizedString } = require("projecteditor/helpers/l10n");
 
 // Enabled Plugins
 require("projecteditor/plugins/dirty/dirty");
 require("projecteditor/plugins/delete/delete");
 require("projecteditor/plugins/new/new");
 require("projecteditor/plugins/rename/rename");
--- a/devtools/client/projecteditor/lib/stores/local.js
+++ b/devtools/client/projecteditor/lib/stores/local.js
@@ -143,17 +143,17 @@ var LocalStore = Class({
    * Refresh the directory structure.
    */
   refresh: function(path=this.rootPath) {
     if (this._refreshDeferred) {
       return this._refreshDeferred.promise;
     }
     this._refreshDeferred = promise.defer();
 
-    let worker = this.worker = new ChromeWorker("chrome://browser/content/devtools/readdir.js");
+    let worker = this.worker = new ChromeWorker("chrome://devtools/content/projecteditor/lib/helpers/readdir.js");
     let start = Date.now();
 
     worker.onmessage = evt => {
       // console.log("Directory read finished in " + ( Date.now() - start ) +"ms", evt);
       for (path in evt.data) {
         let info = evt.data[path];
         info.path = path;
 
--- a/devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
@@ -13,17 +13,17 @@ thisTestLeaksUncaughtRejectionsAndShould
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.window is null");
 
 // Test that projecteditor can be destroyed in various states of loading
 // without causing any leaks or exceptions.
 
 add_task(function* () {
 
   info ("Testing tab closure when projecteditor is in various states");
-  let loaderUrl = "chrome://browser/content/devtools/projecteditor-test.xul";
+  let loaderUrl = "chrome://devtools/content/projecteditor/chrome/content/projecteditor-test.xul";
 
   yield addTab(loaderUrl).then(() => {
     let iframe = content.document.getElementById("projecteditor-iframe");
     ok (iframe, "Tab has placeholder iframe for projecteditor");
 
     info ("Closing the tab without doing anything");
     gBrowser.removeCurrentTab();
   });
--- a/devtools/client/projecteditor/test/head.js
+++ b/devtools/client/projecteditor/test/head.js
@@ -105,17 +105,17 @@ function addProjectEditorTabForTempDirec
   return addProjectEditorTab(opts).then((projecteditor) => {
     return projecteditor.setProjectToAppPath(TEMP_PATH, customOpts).then(() => {
       return projecteditor;
     });
   });
 }
 
 function addProjectEditorTab(opts = {}) {
-  return addTab("chrome://browser/content/devtools/projecteditor-test.xul").then(() => {
+  return addTab("chrome://devtools/content/projecteditor/chrome/content/projecteditor-test.xul").then(() => {
     let iframe = content.document.getElementById("projecteditor-iframe");
     if (opts.menubar !== false) {
       opts.menubar = content.document.querySelector("menubar");
     }
     let projecteditor = ProjectEditor.ProjectEditor(iframe, opts);
 
 
     ok (iframe, "Tab has placeholder iframe for projecteditor");
--- a/devtools/client/promisedebugger/promise-debugger.xhtml
+++ b/devtools/client/promisedebugger/promise-debugger.xhtml
@@ -9,15 +9,15 @@
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <title>&title;</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/promisedebugger.css" type="text/css"/>
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"/>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   </head>
   <body class="devtools-monospace" role="application">
     <script type="application/javascript;version=1.8" src="promise-controller.js"></script>
     <script type="application/javascript;version=1.8" src="promise-panel.js"></script>
   </body>
 </html>
--- a/devtools/client/scratchpad/scratchpad-manager.jsm
+++ b/devtools/client/scratchpad/scratchpad-manager.jsm
@@ -6,17 +6,17 @@
 "use strict";
 
 this.EXPORTED_SYMBOLS = ["ScratchpadManager"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
-const SCRATCHPAD_WINDOW_URL = "chrome://browser/content/devtools/scratchpad.xul";
+const SCRATCHPAD_WINDOW_URL = "chrome://devtools/content/scratchpad/scratchpad.xul";
 const SCRATCHPAD_WINDOW_FEATURES = "chrome,titlebar,toolbar,centerscreen,resizable,dialog=no";
 
 Cu.import("resource://gre/modules/Services.jsm");
 
 /**
  * The ScratchpadManager object opens new Scratchpad windows and manages the state
  * of open scratchpads for session restore. There's only one ScratchpadManager in
  * the life of the browser.
--- a/devtools/client/scratchpad/scratchpad.js
+++ b/devtools/client/scratchpad/scratchpad.js
@@ -36,17 +36,17 @@ const PREF_RECENT_FILES_MAX = "devtools.
 const SHOW_LINE_NUMBERS = "devtools.scratchpad.lineNumbers";
 const WRAP_TEXT = "devtools.scratchpad.wrapText";
 const SHOW_TRAILING_SPACE = "devtools.scratchpad.showTrailingSpace";
 const EDITOR_FONT_SIZE = "devtools.scratchpad.editorFontSize";
 const ENABLE_AUTOCOMPLETION = "devtools.scratchpad.enableAutocompletion";
 const TAB_SIZE = "devtools.editor.tabsize";
 const FALLBACK_CHARSET_LIST = "intl.fallbackCharsetList.ISO-8859-1";
 
-const VARIABLES_VIEW_URL = "chrome://browser/content/devtools/widgets/VariablesView.xul";
+const VARIABLES_VIEW_URL = "chrome://devtools/content/shared/widgets/VariablesView.xul";
 
 const {require, loader} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
 
 const Telemetry = require("devtools/shared/telemetry");
 const Editor    = require("devtools/sourceeditor/editor");
 const TargetFactory = require("devtools/framework/target").TargetFactory;
 const EventEmitter = require("devtools/toolkit/event-emitter");
 const {DevToolsWorker} = require("devtools/toolkit/shared/worker");
--- a/devtools/client/scratchpad/scratchpad.xul
+++ b/devtools/client/scratchpad/scratchpad.xul
@@ -24,19 +24,19 @@
         windowtype="devtools:scratchpad"
         macanimationtype="document"
         fullscreenbutton="true"
         screenX="4" screenY="4"
         width="640" height="480"
         persist="screenX screenY width height sizemode">
 
 <script type="application/javascript;version=1.8"
-        src="chrome://browser/content/devtools/theme-switching.js"/>
+        src="chrome://devtools/content/shared/theme-switching.js"/>
 <script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
-<script type="application/javascript" src="chrome://browser/content/devtools/scratchpad.js"/>
+<script type="application/javascript" src="chrome://devtools/content/scratchpad/scratchpad.js"/>
 
 <commandset id="editMenuCommands"/>
 
 <commandset id="sourceEditorCommands">
   <command id="cmd_find" oncommand=";"/>
   <command id="cmd_findAgain" oncommand=";"/>
   <command id="cmd_gotoLine" oncommand=";"/>
 </commandset>
--- a/devtools/client/shadereditor/shadereditor.xul
+++ b/devtools/client/shadereditor/shadereditor.xul
@@ -1,26 +1,26 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/shadereditor.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % debuggerDTD SYSTEM "chrome://browser/locale/devtools/shadereditor.dtd">
   %debuggerDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
 
   <script type="application/javascript" src="shadereditor.js"/>
 
   <vbox class="theme-body" flex="1">
     <hbox id="reload-notice"
           class="notice-container"
           align="center"
           pack="center"
--- a/devtools/client/shadereditor/test/head.js
+++ b/devtools/client/shadereditor/test/head.js
@@ -19,17 +19,17 @@ var { DebuggerClient } = require("devtoo
 var { DebuggerServer } = require("devtools/server/main");
 var { WebGLFront } = require("devtools/server/actors/webgl");
 var DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
 var TiltGL = require("devtools/tilt/tilt-gl");
 var {TargetFactory} = require("devtools/framework/target");
 var {Toolbox} = require("devtools/framework/toolbox");
 var mm = null;
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js"
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js"
 const EXAMPLE_URL = "http://example.com/browser/browser/devtools/shadereditor/test/";
 const SIMPLE_CANVAS_URL = EXAMPLE_URL + "doc_simple-canvas.html";
 const SHADER_ORDER_URL = EXAMPLE_URL + "doc_shader-order.html";
 const MULTIPLE_CONTEXTS_URL = EXAMPLE_URL + "doc_multiple-contexts.html";
 const OVERLAPPING_GEOMETRY_CANVAS_URL = EXAMPLE_URL + "doc_overlapping-geometry.html";
 const BLENDED_GEOMETRY_CANVAS_URL = EXAMPLE_URL + "doc_blended-geometry.html";
 
 // All tests are asynchronous.
--- a/devtools/client/shared/DeveloperToolbar.jsm
+++ b/devtools/client/shared/DeveloperToolbar.jsm
@@ -821,17 +821,17 @@ OutputPanel.prototype._init = function(d
 
   /*
   <tooltip|panel id="gcli-output"
          noautofocus="true"
          noautohide="true"
          class="gcli-panel">
     <html:iframe xmlns:html="http://www.w3.org/1999/xhtml"
                  id="gcli-output-frame"
-                 src="chrome://browser/content/devtools/commandlineoutput.xhtml"
+                 src="chrome://devtools/content/commandline/commandlineoutput.xhtml"
                  sandbox="allow-same-origin"/>
   </tooltip|panel>
   */
 
   // TODO: Switch back from tooltip to panel when metacity focus issue is fixed:
   // https://bugzilla.mozilla.org/show_bug.cgi?id=780102
   this._panel = this._devtoolbar._doc.createElement(isLinux ? "tooltip" : "panel");
 
@@ -852,17 +852,17 @@ OutputPanel.prototype._init = function(d
     // it is displayed.
     this._panel.setAttribute("height", "1px");
   }
 
   this._toolbar.parentElement.insertBefore(this._panel, this._toolbar);
 
   this._frame = this._devtoolbar._doc.createElementNS(NS_XHTML, "iframe");
   this._frame.id = "gcli-output-frame";
-  this._frame.setAttribute("src", "chrome://browser/content/devtools/commandlineoutput.xhtml");
+  this._frame.setAttribute("src", "chrome://devtools/content/commandline/commandlineoutput.xhtml");
   this._frame.setAttribute("sandbox", "allow-same-origin");
   this._panel.appendChild(this._frame);
 
   this.displayedOutput = undefined;
 
   this._update = this._update.bind(this);
 
   // Wire up the element from the iframe, and resolve the promise
@@ -1146,17 +1146,17 @@ TooltipPanel.prototype._init = function(
   /*
   <tooltip|panel id="gcli-tooltip"
          type="arrow"
          noautofocus="true"
          noautohide="true"
          class="gcli-panel">
     <html:iframe xmlns:html="http://www.w3.org/1999/xhtml"
                  id="gcli-tooltip-frame"
-                 src="chrome://browser/content/devtools/commandlinetooltip.xhtml"
+                 src="chrome://devtools/content/commandline/commandlinetooltip.xhtml"
                  flex="1"
                  sandbox="allow-same-origin"/>
   </tooltip|panel>
   */
 
   // TODO: Switch back from tooltip to panel when metacity focus issue is fixed:
   // https://bugzilla.mozilla.org/show_bug.cgi?id=780102
   this._panel = devtoolbar._doc.createElement(isLinux ? "tooltip" : "panel");
@@ -1178,17 +1178,17 @@ TooltipPanel.prototype._init = function(
     // it is displayed.
     this._panel.setAttribute("height", "1px");
   }
 
   this._toolbar.parentElement.insertBefore(this._panel, this._toolbar);
 
   this._frame = devtoolbar._doc.createElementNS(NS_XHTML, "iframe");
   this._frame.id = "gcli-tooltip-frame";
-  this._frame.setAttribute("src", "chrome://browser/content/devtools/commandlinetooltip.xhtml");
+  this._frame.setAttribute("src", "chrome://devtools/content/commandline/commandlinetooltip.xhtml");
   this._frame.setAttribute("flex", "1");
   this._frame.setAttribute("sandbox", "allow-same-origin");
   this._panel.appendChild(this._frame);
 
   /**
    * Wire up the element from the iframe, and resolve the promise.
    */
   let onload = () => {
--- a/devtools/client/shared/doorhanger.js
+++ b/devtools/client/shared/doorhanger.js
@@ -8,17 +8,17 @@ const { Ci, Cc } = require("chrome");
 const { Services } = require("resource://gre/modules/Services.jsm");
 const { DOMHelpers } = require("resource:///modules/devtools/DOMHelpers.jsm");
 const { Task } = require("resource://gre/modules/Task.jsm");
 const { Promise } = require("promise");
 const { setTimeout } = require("sdk/timers");
 const { getMostRecentBrowserWindow } = require("sdk/window/utils");
 
 const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
-const DEV_EDITION_PROMO_URL = "chrome://browser/content/devtools/framework/dev-edition-promo.xul";
+const DEV_EDITION_PROMO_URL = "chrome://devtools/content/framework/dev-edition-promo/dev-edition-promo.xul";
 const DEV_EDITION_PROMO_ENABLED_PREF = "devtools.devedition.promo.enabled";
 const DEV_EDITION_PROMO_SHOWN_PREF = "devtools.devedition.promo.shown";
 const DEV_EDITION_PROMO_URL_PREF = "devtools.devedition.promo.url";
 const LOCALE = Cc["@mozilla.org/chrome/chrome-registry;1"]
                .getService(Ci.nsIXULChromeRegistry)
                .getSelectedLocale("global");
 
 /**
--- a/devtools/client/shared/test/browser_cubic-bezier-01.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-01.js
@@ -1,17 +1,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that the CubicBezierWidget generates content in a given parent node
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   info("Checking that the graph markup is created in the parent");
--- a/devtools/client/shared/test/browser_cubic-bezier-02.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-02.js
@@ -1,17 +1,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the CubicBezierWidget events
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 const {PREDEFINED} = require("devtools/shared/widgets/CubicBezierPresets");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
--- a/devtools/client/shared/test/browser_cubic-bezier-03.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-03.js
@@ -1,17 +1,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that coordinates can be changed programatically in the CubicBezierWidget
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 const {PREDEFINED} = require("devtools/shared/widgets/CubicBezierPresets");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
--- a/devtools/client/shared/test/browser_cubic-bezier-04.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-04.js
@@ -1,17 +1,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that the CubicBezierPresetWidget generates markup.
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierPresetWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 const {PRESETS} = require("devtools/shared/widgets/CubicBezierPresets");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
--- a/devtools/client/shared/test/browser_cubic-bezier-05.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-05.js
@@ -1,17 +1,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that the CubicBezierPresetWidget cycles menus
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierPresetWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 const {PREDEFINED, PRESETS, DEFAULT_PRESET_CATEGORY} =
   require("devtools/shared/widgets/CubicBezierPresets");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
--- a/devtools/client/shared/test/browser_cubic-bezier-06.js
+++ b/devtools/client/shared/test/browser_cubic-bezier-06.js
@@ -2,17 +2,17 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the integration between CubicBezierWidget and CubicBezierPresets
 
-const TEST_URI = "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
 const {CubicBezierWidget} =
   require("devtools/shared/widgets/CubicBezierWidget");
 const {PRESETS} = require("devtools/shared/widgets/CubicBezierPresets");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
--- a/devtools/client/shared/test/browser_filter-editor-01.js
+++ b/devtools/client/shared/test/browser_filter-editor-01.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that the Filter Editor Widget parses filter values correctly (setCssValue)
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 add_task(function *() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   const container = doc.querySelector("#container");
   let widget = new CSSFilterEditorWidget(container, "none");
@@ -23,13 +23,14 @@ add_task(function *() {
   info("Test parsing of space-filled value");
   widget.setCssValue("blur(   2px  )   contrast(  2  )");
   is(widget.getCssValue(),
      "blur(2px) contrast(200%)", "setCssValue should work for spaced values");
 
   info("Test parsing of string-typed values");
   widget.setCssValue("drop-shadow( 2px  1px 5px black) url( example.svg#filter )");
 
-  const computedURI = "chrome://browser/content/devtools/example.svg#filter";
+  const computedURI =
+    "chrome://devtools/content/shared/widgets/example.svg#filter";
   const expected = `drop-shadow(rgb(0, 0, 0) 2px 1px 5px) url(${computedURI})`;
   is(widget.getCssValue(), expected,
      "setCssValue should work for string-typed values");
 });
--- a/devtools/client/shared/test/browser_filter-editor-02.js
+++ b/devtools/client/shared/test/browser_filter-editor-02.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests that the Filter Editor Widget renders filters correctly
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const { ViewHelpers } = Cu.import("resource:///modules/devtools/ViewHelpers.jsm", {});
 const STRINGS_URI = "chrome://browser/locale/devtools/filterwidget.properties";
 const L10N = new ViewHelpers.L10N(STRINGS_URI);
 
 add_task(function*() {
   yield promiseTab("about:blank");
@@ -42,17 +42,17 @@ add_task(function*() {
         }
       ]
     },
     {
       cssValue: "url(example.svg)",
       expected: [
         {
           label: "url",
-          value: "chrome://browser/content/devtools/example.svg",
+          value: "chrome://devtools/content/shared/widgets/example.svg",
           unit: null
         }
       ]
     },
     {
       cssValue: "none",
       expected: []
     }
--- a/devtools/client/shared/test/browser_filter-editor-03.js
+++ b/devtools/client/shared/test/browser_filter-editor-03.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget add, removeAt, updateAt, getValueAt methods
 
-const BASE_URI = "chrome://browser/content/devtools/";
+const BASE_URI = "chrome://devtools/content/shared/widgets/";
 const TEST_URI = BASE_URI + "filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 const GRAYSCALE_MAX = 100;
 const INVERT_MIN = 0;
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
--- a/devtools/client/shared/test/browser_filter-editor-04.js
+++ b/devtools/client/shared/test/browser_filter-editor-04.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget's drag-drop re-ordering
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 const LIST_ITEM_HEIGHT = 32;
 
 add_task(function*() {
   yield promiseTab("about:blank");
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   const container = doc.querySelector("#container");
--- a/devtools/client/shared/test/browser_filter-editor-05.js
+++ b/devtools/client/shared/test/browser_filter-editor-05.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget's label-dragging
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const FAST_VALUE_MULTIPLIER = 10;
 const SLOW_VALUE_MULTIPLIER = 0.1;
 const DEFAULT_VALUE_MULTIPLIER = 1;
 
 const GRAYSCALE_MAX = 100,
       GRAYSCALE_MIN = 0;
@@ -122,11 +122,11 @@ add_task(function*() {
      "Label-dragging should not work for string-type filters");
 
   widget._mouseMove({
     pageX: -11,
     altKey: false,
     shiftKey: true
   });
 
-  is(widget.getValueAt(1), "chrome://browser/content/devtools/test.svg",
+  is(widget.getValueAt(1), "chrome://devtools/content/shared/widgets/test.svg",
      "Label-dragging on string-type filters shouldn't affect their value");
 });
--- a/devtools/client/shared/test/browser_filter-editor-06.js
+++ b/devtools/client/shared/test/browser_filter-editor-06.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget's add button
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 
 const { Cu } = require("chrome");
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const { ViewHelpers } = Cu.import("resource:///modules/devtools/ViewHelpers.jsm", {});
 const STRINGS_URI = "chrome://browser/locale/devtools/filterwidget.properties";
 const L10N = new ViewHelpers.L10N(STRINGS_URI);
 
--- a/devtools/client/shared/test/browser_filter-editor-07.js
+++ b/devtools/client/shared/test/browser_filter-editor-07.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget's remove button
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 
 const { Cu } = require("chrome");
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const { ViewHelpers } = Cu.import("resource:///modules/devtools/ViewHelpers.jsm", {});
 const STRINGS_URI = "chrome://browser/locale/devtools/filterwidget.properties";
 const L10N = new ViewHelpers.L10N(STRINGS_URI);
 
--- a/devtools/client/shared/test/browser_filter-editor-08.js
+++ b/devtools/client/shared/test/browser_filter-editor-08.js
@@ -1,17 +1,17 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget inputs increase/decrease value using
 // arrow keys, applying multiplier using alt/shift on number-type filters
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const FAST_VALUE_MULTIPLIER = 10;
 const SLOW_VALUE_MULTIPLIER = 0.1;
 const DEFAULT_VALUE_MULTIPLIER = 1;
 
 add_task(function*() {
   yield promiseTab("about:blank");
--- a/devtools/client/shared/test/browser_filter-editor-09.js
+++ b/devtools/client/shared/test/browser_filter-editor-09.js
@@ -1,17 +1,17 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget inputs increase/decrease value when cursor is
 // on a number using arrow keys, applying multiplier using alt/shift on strings
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const FAST_VALUE_MULTIPLIER = 10;
 const SLOW_VALUE_MULTIPLIER = 0.1;
 const DEFAULT_VALUE_MULTIPLIER = 1;
 
 add_task(function*() {
   yield promiseTab("about:blank");
--- a/devtools/client/shared/test/browser_filter-editor-10.js
+++ b/devtools/client/shared/test/browser_filter-editor-10.js
@@ -1,17 +1,17 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests the Filter Editor Widget inputs increase/decrease value when cursor is
 // on a number using arrow keys if cursor is behind/mid/after the number strings
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 const FAST_VALUE_MULTIPLIER = 10;
 const SLOW_VALUE_MULTIPLIER = 0.1;
 const DEFAULT_VALUE_MULTIPLIER = 1;
 
 add_task(function*() {
   yield promiseTab("about:blank");
--- a/devtools/client/shared/test/browser_filter-presets-01.js
+++ b/devtools/client/shared/test/browser_filter-presets-01.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests saving presets
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 add_task(function* () {
   yield promiseTab("about:blank");
 
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   const container = doc.querySelector("#container");
--- a/devtools/client/shared/test/browser_filter-presets-02.js
+++ b/devtools/client/shared/test/browser_filter-presets-02.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests loading presets
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 add_task(function* () {
   yield promiseTab("about:blank");
 
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   const container = doc.querySelector("#container");
--- a/devtools/client/shared/test/browser_filter-presets-03.js
+++ b/devtools/client/shared/test/browser_filter-presets-03.js
@@ -1,16 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Tests deleting presets
 
-const TEST_URI = "chrome://browser/content/devtools/filter-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const {CSSFilterEditorWidget} = require("devtools/shared/widgets/FilterWidget");
 
 add_task(function* () {
   yield promiseTab("about:blank");
 
   let [host, win, doc] = yield createHost("bottom", TEST_URI);
 
   const container = doc.querySelector("#container");
--- a/devtools/client/shared/test/browser_mdn-docs-01.js
+++ b/devtools/client/shared/test/browser_mdn-docs-01.js
@@ -20,17 +20,17 @@
 
 "use strict";
 
 const {CssDocsTooltip} = require("devtools/shared/widgets/Tooltip");
 const {setBaseCssDocsUrl, MdnDocsWidget} = require("devtools/shared/widgets/MdnDocsWidget");
 const promise = require("promise");
 
 // frame to load the tooltip into
-const MDN_DOCS_TOOLTIP_FRAME = "chrome://browser/content/devtools/mdn-docs-frame.xhtml";
+const MDN_DOCS_TOOLTIP_FRAME = "chrome://devtools/content/shared/widgets/mdn-docs-frame.xhtml";
 
 /**
  * Test properties
  *
  * In the real tooltip, a CSS property name is used to look up an MDN page
  * for that property.
  * In the test code, the names defined here is used to look up a page
  * served by the test server.
--- a/devtools/client/shared/test/browser_mdn-docs-02.js
+++ b/devtools/client/shared/test/browser_mdn-docs-02.js
@@ -20,17 +20,17 @@
  */
 
 "use strict";
 
 const {CssDocsTooltip} = require("devtools/shared/widgets/Tooltip");
 const {setBaseCssDocsUrl, MdnDocsWidget} = require("devtools/shared/widgets/MdnDocsWidget");
 
 // frame to load the tooltip into
-const MDN_DOCS_TOOLTIP_FRAME = "chrome://browser/content/devtools/mdn-docs-frame.xhtml";
+const MDN_DOCS_TOOLTIP_FRAME = "chrome://devtools/content/shared/widgets/mdn-docs-frame.xhtml";
 
 const BASIC_EXPECTED_SUMMARY = "A summary of the property.";
 const BASIC_EXPECTED_SYNTAX = [{type: "comment",        text: "/* The part we want   */"},
                                {type: "text",           text: "\n"},
                                {type: "property-name",  text: "this"},
                                {type: "text",           text: ":"},
                                {type: "text",           text: " "},
                                {type: "property-value", text: "is-the-part-we-want"},
--- a/devtools/client/shared/test/browser_spectrum.js
+++ b/devtools/client/shared/test/browser_spectrum.js
@@ -1,15 +1,15 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Tests that the spectrum color picker works correctly
 
-const TEST_URI = "chrome://browser/content/devtools/spectrum-frame.xhtml";
+const TEST_URI = "chrome://devtools/content/shared/widgets/spectrum-frame.xhtml";
 const {Spectrum} = require("devtools/shared/widgets/Spectrum");
 
 add_task(function*() {
   yield promiseTab("about:blank");
   yield performTest();
   gBrowser.removeCurrentTab();
 });
 
--- a/devtools/client/shared/test/doc_options-view.xul
+++ b/devtools/client/shared/test/doc_options-view.xul
@@ -1,16 +1,16 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <!DOCTYPE window []>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
     <popupset id="options-popupset">
         <menupopup id="options-menupopup" position="before_end">
             <menuitem id="option-autoprettyprint"
                       type="checkbox"
--- a/devtools/client/shared/widgets/FlameGraph.js
+++ b/devtools/client/shared/widgets/FlameGraph.js
@@ -22,17 +22,17 @@ loader.lazyRequireGetter(this, "FrameUti
 loader.lazyRequireGetter(this, "AbstractCanvasGraph",
   "devtools/shared/widgets/Graphs", true);
 loader.lazyRequireGetter(this, "GraphArea",
   "devtools/shared/widgets/Graphs", true);
 loader.lazyRequireGetter(this, "GraphAreaDragger",
   "devtools/shared/widgets/Graphs", true);
 
 const HTML_NS = "http://www.w3.org/1999/xhtml";
-const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml";
+const GRAPH_SRC = "chrome://devtools/content/shared/widgets/graphs-frame.xhtml";
 
 const L10N = new ViewHelpers.L10N();
 
 const GRAPH_RESIZE_EVENTS_DRAIN = 100; // ms
 
 const GRAPH_WHEEL_ZOOM_SENSITIVITY = 0.00035;
 const GRAPH_WHEEL_SCROLL_SENSITIVITY = 0.5;
 const GRAPH_MIN_SELECTION_WIDTH = 0.001; // ms
--- a/devtools/client/shared/widgets/Graphs.js
+++ b/devtools/client/shared/widgets/Graphs.js
@@ -12,17 +12,17 @@ const { getCurrentZoom } = require("devt
 loader.lazyRequireGetter(this, "promise");
 loader.lazyRequireGetter(this, "EventEmitter",
   "devtools/toolkit/event-emitter");
 
 loader.lazyImporter(this, "DevToolsWorker",
   "resource://gre/modules/devtools/shared/worker.js");
 
 const HTML_NS = "http://www.w3.org/1999/xhtml";
-const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml";
+const GRAPH_SRC = "chrome://devtools/content/shared/widgets/graphs-frame.xhtml";
 const WORKER_URL = "resource:///modules/devtools/GraphsWorker.js";
 
 // Generic constants.
 
 const GRAPH_RESIZE_EVENTS_DRAIN = 100; // ms
 const GRAPH_WHEEL_ZOOM_SENSITIVITY = 0.00075;
 const GRAPH_WHEEL_SCROLL_SENSITIVITY = 0.1;
 const GRAPH_WHEEL_MIN_SELECTION_WIDTH = 10; // px
--- a/devtools/client/shared/widgets/Tooltip.js
+++ b/devtools/client/shared/widgets/Tooltip.js
@@ -32,21 +32,21 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 XPCOMUtils.defineLazyModuleGetter(this, "VariablesView",
   "resource:///modules/devtools/VariablesView.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "VariablesViewController",
   "resource:///modules/devtools/VariablesViewController.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
   "resource://gre/modules/Task.jsm");
 
 const XHTML_NS = "http://www.w3.org/1999/xhtml";
-const SPECTRUM_FRAME = "chrome://browser/content/devtools/spectrum-frame.xhtml";
+const SPECTRUM_FRAME = "chrome://devtools/content/shared/widgets/spectrum-frame.xhtml";
 const CUBIC_BEZIER_FRAME =
-      "chrome://browser/content/devtools/cubic-bezier-frame.xhtml";
-const MDN_DOCS_FRAME = "chrome://browser/content/devtools/mdn-docs-frame.xhtml";
-const FILTER_FRAME = "chrome://browser/content/devtools/filter-frame.xhtml";
+      "chrome://devtools/content/shared/widgets/cubic-bezier-frame.xhtml";
+const MDN_DOCS_FRAME = "chrome://devtools/content/shared/widgets/mdn-docs-frame.xhtml";
+const FILTER_FRAME = "chrome://devtools/content/shared/widgets/filter-frame.xhtml";
 const ESCAPE_KEYCODE = Ci.nsIDOMKeyEvent.DOM_VK_ESCAPE;
 const RETURN_KEYCODE = Ci.nsIDOMKeyEvent.DOM_VK_RETURN;
 const POPUP_EVENTS = ["shown", "hidden", "showing", "hiding"];
 
 /**
  * Tooltip widget.
  *
  * This widget is intended at any tool that may need to show rich content in the
--- a/devtools/client/shared/widgets/VariablesView.xul
+++ b/devtools/client/shared/widgets/VariablesView.xul
@@ -1,19 +1,19 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://global/skin/global.css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % viewDTD SYSTEM "chrome://browser/locale/devtools/VariablesView.dtd">
   %viewDTD;
 ]>
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         title="&PropertiesViewWindowTitle;">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <vbox id="variables" flex="1"/>
 </window>
--- a/devtools/client/shared/widgets/cubic-bezier-frame.xhtml
+++ b/devtools/client/shared/widgets/cubic-bezier-frame.xhtml
@@ -3,18 +3,18 @@
    - 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/. -->
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/cubic-bezier.css" type="text/css"/>
-  <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+  <link rel="stylesheet" href="chrome://devtools/content/shared/widgets/cubic-bezier.css" type="text/css"/>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   <style>
     html, body {
       margin: 0;
       padding: 0;
       overflow: hidden;
       width: 410px;
       height: 370px;
     }
--- a/devtools/client/shared/widgets/filter-frame.xhtml
+++ b/devtools/client/shared/widgets/filter-frame.xhtml
@@ -4,19 +4,19 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 <!DOCTYPE html [
   <!ENTITY % filterwidgetDTD SYSTEM "chrome://browser/locale/devtools/filterwidget.dtd" >
   %filterwidgetDTD;
 ]>
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/filter-widget.css" type="text/css"/>
+    <link rel="stylesheet" href="chrome://devtools/content/shared/widgets/filter-widget.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
-    <script type="application/javascript;version=1.8" src="theme-switching.js"></script>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"></script>
   </head>
   <body>
 
     <div id="container">
       <div class="filters-list">
         <div id="filters"></div>
         <div class="footer">
           <select value="">
--- a/devtools/client/shared/widgets/graphs-frame.xhtml
+++ b/devtools/client/shared/widgets/graphs-frame.xhtml
@@ -4,17 +4,17 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/widgets.css" ype="text/css"/>
-  <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   <style>
     body {
       overflow: hidden;
       margin: 0;
       padding: 0;
       font-size: 0;
     }
   </style>
--- a/devtools/client/shared/widgets/mdn-docs-frame.xhtml
+++ b/devtools/client/shared/widgets/mdn-docs-frame.xhtml
@@ -3,18 +3,18 @@
    - 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/. -->
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/mdn-docs.css" type="text/css"/>
-  <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+  <link rel="stylesheet" href="chrome://devtools/content/shared/widgets/mdn-docs.css" type="text/css"/>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
 </head>
 <body class="theme-body">
 
   <div id = "container">
 
     <header>
       <h1 id="property-name" class="theme-fg-color5"></h1>
     </header>
--- a/devtools/client/shared/widgets/spectrum-frame.xhtml
+++ b/devtools/client/shared/widgets/spectrum-frame.xhtml
@@ -3,18 +3,18 @@
    - 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/. -->
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
-  <link rel="stylesheet" href="chrome://browser/content/devtools/spectrum.css" ype="text/css"/>
-  <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+  <link rel="stylesheet" href="chrome://devtools/content/shared/widgets/spectrum.css" ype="text/css"/>
+  <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
   <style>
     body {
       margin: 0;
       padding: 0;
     }
   </style>
 </head>
 <body role="application">
--- a/devtools/client/sourceeditor/autocomplete.js
+++ b/devtools/client/sourceeditor/autocomplete.js
@@ -3,18 +3,18 @@
  * 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/. */
 
 const { Cu } = require("chrome");
 const cssAutoCompleter = require("devtools/sourceeditor/css-autocompleter");
 const { AutocompletePopup } = require("devtools/shared/autocomplete-popup");
 
 const CM_TERN_SCRIPTS = [
-  "chrome://browser/content/devtools/codemirror/tern.js",
-  "chrome://browser/content/devtools/codemirror/show-hint.js"
+  "chrome://devtools/content/sourceeditor/codemirror/tern/tern.js",
+  "chrome://devtools/content/sourceeditor/codemirror/hint/show-hint.js"
 ];
 
 const autocompleteMap = new WeakMap();
 
 /**
  * Prepares an editor instance for autocompletion.
  */
 function initializeAutoCompletion(ctx, options = {}) {
--- a/devtools/client/sourceeditor/editor.js
+++ b/devtools/client/sourceeditor/editor.js
@@ -42,45 +42,45 @@ const L10N = Services.strings.createBund
 const { OS } = Services.appinfo;
 
 // CM_STYLES, CM_SCRIPTS and CM_IFRAME represent the HTML,
 // JavaScript and CSS that is injected into an iframe in
 // order to initialize a CodeMirror instance.
 
 const CM_STYLES   = [
   "chrome://browser/skin/devtools/common.css",
-  "chrome://browser/content/devtools/codemirror/codemirror.css",
-  "chrome://browser/content/devtools/codemirror/dialog.css",
-  "chrome://browser/content/devtools/codemirror/mozilla.css"
+  "chrome://devtools/content/sourceeditor/codemirror/codemirror.css",
+  "chrome://devtools/content/sourceeditor/codemirror/dialog/dialog.css",
+  "chrome://devtools/content/sourceeditor/codemirror/mozilla.css"
 ];
 
 const CM_SCRIPTS  = [
-  "chrome://browser/content/devtools/theme-switching.js",
-  "chrome://browser/content/devtools/codemirror/codemirror.js",
-  "chrome://browser/content/devtools/codemirror/dialog.js",
-  "chrome://browser/content/devtools/codemirror/searchcursor.js",
-  "chrome://browser/content/devtools/codemirror/search.js",
-  "chrome://browser/content/devtools/codemirror/matchbrackets.js",
-  "chrome://browser/content/devtools/codemirror/closebrackets.js",
-  "chrome://browser/content/devtools/codemirror/comment.js",
-  "chrome://browser/content/devtools/codemirror/javascript.js",
-  "chrome://browser/content/devtools/codemirror/xml.js",
-  "chrome://browser/content/devtools/codemirror/css.js",
-  "chrome://browser/content/devtools/codemirror/htmlmixed.js",
-  "chrome://browser/content/devtools/codemirror/clike.js",
-  "chrome://browser/content/devtools/codemirror/activeline.js",
-  "chrome://browser/content/devtools/codemirror/trailingspace.js",
-  "chrome://browser/content/devtools/codemirror/emacs.js",
-  "chrome://browser/content/devtools/codemirror/vim.js",
-  "chrome://browser/content/devtools/codemirror/sublime.js",
-  "chrome://browser/content/devtools/codemirror/foldcode.js",
-  "chrome://browser/content/devtools/codemirror/brace-fold.js",
-  "chrome://browser/content/devtools/codemirror/comment-fold.js",
-  "chrome://browser/content/devtools/codemirror/xml-fold.js",
-  "chrome://browser/content/devtools/codemirror/foldgutter.js"
+  "chrome://devtools/content/shared/theme-switching.js",
+  "chrome://devtools/content/sourceeditor/codemirror/codemirror.js",
+  "chrome://devtools/content/sourceeditor/codemirror/dialog/dialog.js",
+  "chrome://devtools/content/sourceeditor/codemirror/search/searchcursor.js",
+  "chrome://devtools/content/sourceeditor/codemirror/search/search.js",
+  "chrome://devtools/content/sourceeditor/codemirror/edit/matchbrackets.js",
+  "chrome://devtools/content/sourceeditor/codemirror/edit/closebrackets.js",
+  "chrome://devtools/content/sourceeditor/codemirror/comment/comment.js",
+  "chrome://devtools/content/sourceeditor/codemirror/mode/javascript.js",
+  "chrome://devtools/content/sourceeditor/codemirror/mode/xml.js",
+  "chrome://devtools/content/sourceeditor/codemirror/mode/css.js",
+  "chrome://devtools/content/sourceeditor/codemirror/mode/htmlmixed.js",
+  "chrome://devtools/content/sourceeditor/codemirror/mode/clike.js",
+  "chrome://devtools/content/sourceeditor/codemirror/selection/active-line.js",
+  "chrome://devtools/content/sourceeditor/codemirror/edit/trailingspace.js",
+  "chrome://devtools/content/sourceeditor/codemirror/keymap/emacs.js",
+  "chrome://devtools/content/sourceeditor/codemirror/keymap/vim.js",
+  "chrome://devtools/content/sourceeditor/codemirror/keymap/sublime.js",
+  "chrome://devtools/content/sourceeditor/codemirror/fold/foldcode.js",
+  "chrome://devtools/content/sourceeditor/codemirror/fold/brace-fold.js",
+  "chrome://devtools/content/sourceeditor/codemirror/fold/comment-fold.js",
+  "chrome://devtools/content/sourceeditor/codemirror/fold/xml-fold.js",
+  "chrome://devtools/content/sourceeditor/codemirror/fold/foldgutter.js"
 ];
 
 const CM_IFRAME   =
   "data:text/html;charset=utf8,<!DOCTYPE html>" +
   "<html dir='ltr'>" +
   "  <head>" +
   "    <style>" +
   "      html, body { height: 100%; }" +
--- a/devtools/client/sourceeditor/test/codemirror.html
+++ b/devtools/client/sourceeditor/test/codemirror.html
@@ -1,26 +1,26 @@
 <!doctype html>
 <html>
   <head>
     <meta charset="utf-8">
     <title>CodeMirror: Basic Tests</title>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/codemirror/codemirror.css">
+    <link rel="stylesheet" href="chrome://devtools/content/sourceeditor/codemirror/codemirror.css">
     <link rel="stylesheet" href="cm_mode_test.css">
     <!--<link rel="stylesheet" href="../doc/docs.css">-->
 
-    <script src="chrome://browser/content/devtools/codemirror/codemirror.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/searchcursor.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/dialog.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/matchbrackets.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/comment.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/javascript.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/vim.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/emacs.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/sublime.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/codemirror.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/search/searchcursor.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/dialog/dialog.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/edit/matchbrackets.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/comment/comment.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/mode/javascript.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/vim.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/emacs.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/sublime.js"></script>
 
     <!--<script src="../addon/mode/overlay.js"></script>
     <script src="../addon/mode/multiplex.js"></script>
     <script src="../mode/xml/xml.js"></script>-->
 
     <style type="text/css">
       .ok {color: #090;}
       .fail {color: #e00;}
--- a/devtools/client/sourceeditor/test/vimemacs.html
+++ b/devtools/client/sourceeditor/test/vimemacs.html
@@ -1,26 +1,26 @@
 <!doctype html>
 <html>
   <head>
     <meta charset="utf-8">
     <title>CodeMirror: VIM/Emacs tests</title>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/codemirror/codemirror.css">
+    <link rel="stylesheet" href="chrome://devtools/content/sourceeditor/codemirror/codemirror.css">
     <link rel="stylesheet" href="cm_mode_test.css">
     <!--<link rel="stylesheet" href="../doc/docs.css">-->
 
-    <script src="chrome://browser/content/devtools/codemirror/codemirror.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/searchcursor.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/dialog.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/matchbrackets.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/comment.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/javascript.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/vim.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/sublime.js"></script>
-    <script src="chrome://browser/content/devtools/codemirror/emacs.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/codemirror.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/search/searchcursor.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/dialog/dialog.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/edit/matchbrackets.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/comment/comment.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/mode/javascript.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/vim.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/sublime.js"></script>
+    <script src="chrome://devtools/content/sourceeditor/codemirror/keymap/emacs.js"></script>
 
     <!--<script src="../addon/mode/overlay.js"></script>
     <script src="../addon/mode/multiplex.js"></script>
     <script src="../mode/xml/xml.js"></script>-->
 
     <style type="text/css">
       .ok {color: #090;}
       .fail {color: #e00;}
--- a/devtools/client/storage/storage.xul
+++ b/devtools/client/storage/storage.xul
@@ -1,24 +1,24 @@
 <?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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/storage.css" type="text/css"?>
 
 <?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="text/javascript" src="chrome://global/content/globalOverlay.js"/>
 
   <commandset id="editMenuCommands"/>
 
   <box flex="1" class="devtools-responsive-container theme-body">
     <vbox id="storage-tree"/>
     <splitter class="devtools-side-splitter"/>
     <vbox id="storage-table" class="theme-sidebar" flex="1"/>
--- a/devtools/client/styleeditor/styleeditor.xul
+++ b/devtools/client/styleeditor/styleeditor.xul
@@ -9,31 +9,31 @@
  %editMenuStrings;
 <!ENTITY % sourceEditorStrings SYSTEM "chrome://browser/locale/devtools/sourceeditor.dtd">
  %sourceEditorStrings;
 <!ENTITY % csscoverageDTD SYSTEM "chrome://global/locale/devtools/csscoverage.dtd">
  %csscoverageDTD;
 ]>
 
 <?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/splitview.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/splitview.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/splitview.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/styleeditor.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/styleeditor/styleeditor.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/styleeditor.css" type="text/css"?>
 <?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
 
 <xul:window xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         xmlns="http://www.w3.org/1999/xhtml"
         id="style-editor-chrome-window">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <xul:script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
   <xul:script type="application/javascript" src="chrome://browser/content/utilityOverlay.js"/>
   <xul:script type="application/javascript">
     function goUpdateSourceEditorMenuItems() {
       goUpdateGlobalEditMenuItems();
 
       ['cmd_undo', 'cmd_redo', 'cmd_cut', 'cmd_paste',
        'cmd_delete', 'cmd_find', 'cmd_findAgain'].forEach(goUpdateCommand);
--- a/devtools/client/styleeditor/test/head.js
+++ b/devtools/client/styleeditor/test/head.js
@@ -1,12 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js"
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js"
 const TEST_BASE = "chrome://mochitests/content/browser/browser/devtools/styleeditor/test/";
 const TEST_BASE_HTTP = "http://example.com/browser/browser/devtools/styleeditor/test/";
 const TEST_BASE_HTTPS = "https://example.com/browser/browser/devtools/styleeditor/test/";
 const TEST_HOST = 'mochi.test:8888';
 
 var {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
 var {TargetFactory} = require("devtools/framework/target");
 var {console} = Cu.import("resource://gre/modules/devtools/Console.jsm", {});
--- a/devtools/client/styleinspector/computedview.xhtml
+++ b/devtools/client/styleinspector/computedview.xhtml
@@ -26,17 +26,17 @@
   <head>
 
     <title>&computedViewTitle;</title>
 
     <link rel="stylesheet" href="chrome://global/skin/global.css"  type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css"  type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/computedview.css"  type="text/css"/>
 
-    <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
 
     <script type="application/javascript;version=1.8">
       window.setPanel = function(panel, iframe) {
         let {require} = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {});
         let inspector = require("devtools/styleinspector/style-inspector");
         this.computedview = new inspector.ComputedViewTool(panel, window);
       }
       window.onunload = function() {
--- a/devtools/client/styleinspector/cssruleview.xhtml
+++ b/devtools/client/styleinspector/cssruleview.xhtml
@@ -10,19 +10,19 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       class="theme-sidebar">
   <head>
     <title>&ruleViewTitle;</title>
     <link rel="stylesheet" href="chrome://global/skin/global.css"  type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css"  type="text/css"/>
-    <link rel="stylesheet" href="chrome://browser/content/devtools/ruleview.css"  type="text/css"/>
+    <link rel="stylesheet" href="chrome://devtools/content/styleinspector/ruleview.css"  type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/ruleview.css"  type="text/css"/>
-    <script type="application/javascript;version=1.8" src="theme-switching.js"/>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"/>
     <script type="application/javascript;version=1.8">
       window.setPanel = function(panel, iframe) {
         let {require} = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {});
         let inspector = require("devtools/styleinspector/style-inspector");
         this.ruleview = new inspector.RuleViewTool(panel, window);
       }
       window.onunload = function() {
         if (this.ruleview) {
--- a/devtools/client/webaudioeditor/test/head.js
+++ b/devtools/client/webaudioeditor/test/head.js
@@ -19,17 +19,17 @@ var { DebuggerServer } = require("devtoo
 var { generateUUID } = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
 
 var Promise = require("promise");
 var { WebAudioFront } = require("devtools/server/actors/webaudio");
 var DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
 var audioNodes = require("devtools/server/actors/utils/audionodes.json");
 var mm = null;
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js";
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 const EXAMPLE_URL = "http://example.com/browser/browser/devtools/webaudioeditor/test/";
 const SIMPLE_CONTEXT_URL = EXAMPLE_URL + "doc_simple-context.html";
 const COMPLEX_CONTEXT_URL = EXAMPLE_URL + "doc_complex-context.html";
 const SIMPLE_NODES_URL = EXAMPLE_URL + "doc_simple-node-creation.html";
 const MEDIA_NODES_URL = EXAMPLE_URL + "doc_media-node-creation.html";
 const BUFFER_AND_ARRAY_URL = EXAMPLE_URL + "doc_buffer-and-array.html";
 const DESTROY_NODES_URL = EXAMPLE_URL + "doc_destroy-nodes.html";
 const CONNECT_PARAM_URL = EXAMPLE_URL + "doc_connect-param.html";
--- a/devtools/client/webaudioeditor/webaudioeditor.xul
+++ b/devtools/client/webaudioeditor/webaudioeditor.xul
@@ -1,37 +1,37 @@
 <?xml version="1.0"?>
 <!-- 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/. -->
 <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/content/shared/widgets/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/devtools/webaudioeditor.css" type="text/css"?>
 <!DOCTYPE window [
   <!ENTITY % debuggerDTD SYSTEM "chrome://browser/locale/devtools/webaudioeditor.dtd">
   %debuggerDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
 
-  <script type="application/javascript" src="chrome://browser/content/devtools/d3.js"/>
-  <script type="application/javascript" src="chrome://browser/content/devtools/dagre-d3.js"/>
-  <script type="application/javascript" src="webaudioeditor/includes.js"/>
-  <script type="application/javascript" src="webaudioeditor/models.js"/>
-  <script type="application/javascript" src="webaudioeditor/controller.js"/>
-  <script type="application/javascript" src="webaudioeditor/views/utils.js"/>
-  <script type="application/javascript" src="webaudioeditor/views/context.js"/>
-  <script type="application/javascript" src="webaudioeditor/views/inspector.js"/>
-  <script type="application/javascript" src="webaudioeditor/views/properties.js"/>
-  <script type="application/javascript" src="webaudioeditor/views/automation.js"/>
+  <script type="application/javascript" src="chrome://devtools/content/shared/vendor/d3.js"/>
+  <script type="application/javascript" src="chrome://devtools/content/shared/vendor/dagre-d3.js"/>
+  <script type="application/javascript" src="includes.js"/>
+  <script type="application/javascript" src="models.js"/>
+  <script type="application/javascript" src="controller.js"/>
+  <script type="application/javascript" src="views/utils.js"/>
+  <script type="application/javascript" src="views/context.js"/>
+  <script type="application/javascript" src="views/inspector.js"/>
+  <script type="application/javascript" src="views/properties.js"/>
+  <script type="application/javascript" src="views/automation.js"/>
 
   <vbox class="theme-body" flex="1">
     <hbox id="reload-notice"
           class="notice-container"
           align="center"
           pack="center"
           flex="1">
       <button id="requests-menu-reload-notice-button"
--- a/devtools/client/webconsole/webconsole.js
+++ b/devtools/client/webconsole/webconsole.js
@@ -48,17 +48,17 @@ const INSECURE_PASSWORDS_LEARN_MORE = "h
 const PUBLIC_KEY_PINS_LEARN_MORE = "https://developer.mozilla.org/docs/Web/Security/Public_Key_Pinning";
 
 const STRICT_TRANSPORT_SECURITY_LEARN_MORE = "https://developer.mozilla.org/docs/Security/HTTP_Strict_Transport_Security";
 
 const WEAK_SIGNATURE_ALGORITHM_LEARN_MORE = "https://developer.mozilla.org/docs/Security/Weak_Signature_Algorithm";
 
 const HELP_URL = "https://developer.mozilla.org/docs/Tools/Web_Console/Helpers";
 
-const VARIABLES_VIEW_URL = "chrome://browser/content/devtools/widgets/VariablesView.xul";
+const VARIABLES_VIEW_URL = "chrome://devtools/content/shared/widgets/VariablesView.xul";
 
 const IGNORED_SOURCE_URLS = ["debugger eval code"];
 
 // The amount of time in milliseconds that we wait before performing a live
 // search.
 const SEARCH_DELAY = 200;
 
 // The number of lines that are displayed in the console output by default, for
--- a/devtools/client/webconsole/webconsole.xul
+++ b/devtools/client/webconsole/webconsole.xul
@@ -20,17 +20,17 @@
         fullscreenbutton="true"
         title="&window.title;"
         browserConsoleTitle="&browserConsole.title;"
         windowtype="devtools:webconsole"
         width="900" height="350"
         persist="screenX screenY width height sizemode">
 
   <script type="application/javascript;version=1.8"
-          src="chrome://browser/content/devtools/theme-switching.js"/>
+          src="chrome://devtools/content/shared/theme-switching.js"/>
   <script type="text/javascript" src="chrome://global/content/globalOverlay.js"/>
   <script type="text/javascript"><![CDATA[
 function goUpdateConsoleCommands() {
   goUpdateCommand("consoleCmd_openURL");
   goUpdateCommand("consoleCmd_copyURL");
 }
   // ]]></script>
 
--- a/devtools/client/webide/content/logs.xhtml
+++ b/devtools/client/webide/content/logs.xhtml
@@ -10,17 +10,17 @@
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta charset="utf8"/>
     <link rel="stylesheet" href="chrome://webide/skin/deck.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://browser/skin/devtools/common.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://webide/skin/logs.css" type="text/css"/>
-    <script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"></script>
+    <script type="application/javascript;version=1.8" src="chrome://devtools/content/shared/theme-switching.js"></script>
     <script type="application/javascript;version=1.8" src="logs.js"></script>
   </head>
   <body>
 
     <div id="controls">
       <a id="close">&deck_close;</a>
     </div>
 
--- a/devtools/client/webide/content/monitor.xhtml
+++ b/devtools/client/webide/content/monitor.xhtml
@@ -10,17 +10,17 @@
 ]>
 
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta charset="utf8"/>
     <link rel="stylesheet" href="chrome://webide/skin/deck.css" type="text/css"/>
     <link rel="stylesheet" href="chrome://webide/skin/monitor.css" type="text/css"/>
-    <script src="chrome://browser/content/devtools/d3.js"></script>
+    <script src="chrome://devtools/content/shared/vendor/d3.js"></script>
     <script type="application/javascript;version=1.8" src="monitor.js"></script>
   </head>
   <body>
 
     <div id="controls">
       <a href="https://developer.mozilla.org/docs/Tools/WebIDE/Monitor" target="_blank">&monitor_help;</a>
       <a id="close">&deck_close;</a>
     </div>
--- a/devtools/shared/performance/process-communication.js
+++ b/devtools/shared/performance/process-communication.js
@@ -5,17 +5,17 @@
 "use strict";
 
 /**
  * The following functions are used in testing to control and inspect
  * the nsIProfiler in child process content. These should be called from
  * the parent process.
  */
 
-const FRAME_SCRIPT_UTILS_URL = "chrome://browser/content/devtools/frame-script-utils.js";
+const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 loader.lazyRequireGetter(this, "Task", "resource://gre/modules/Task.jsm", true);
 loader.lazyRequireGetter(this, "uuid", "sdk/util/uuid", true);
 
 var mm = null;
 
 exports.consoleMethod = function (...args) {
   if (!mm) {
     throw new Error("`PMM_loadFrameScripts()` must be called before using frame scripts.");