Backed out changeset 6af40fb76692 (bug 1372406) for Doc lint failure in builds/worker/checkouts/gecko/docs-out/html/main/_staging/python/mach.commands.rst on a CLOSED TREE
authorMargareta Eliza Balazs <ebalazs@mozilla.com>
Wed, 28 Mar 2018 07:26:10 +0300
changeset 773642 dea16926510733a02d98073d3a64bf7279462b99
parent 773641 60d3e9b4aea9a036b02b1c7cb547930fc94c33a7
child 773643 a7ebb62677a6e8ecff0d86953c4c36c27f78a35c
push id104266
push userbmo:hsivonen@hsivonen.fi
push dateWed, 28 Mar 2018 07:33:03 +0000
bugs1372406
milestone61.0a1
backs out6af40fb76692ad647645194c7458c1be228378aa
Backed out changeset 6af40fb76692 (bug 1372406) for Doc lint failure in builds/worker/checkouts/gecko/docs-out/html/main/_staging/python/mach.commands.rst on a CLOSED TREE
browser/components/extensions/child/.eslintrc.js
browser/components/extensions/child/ext-browser.js
browser/components/extensions/child/ext-devtools-inspectedWindow.js
browser/components/extensions/child/ext-devtools-network.js
browser/components/extensions/child/ext-devtools-panels.js
browser/components/extensions/child/ext-devtools.js
browser/components/extensions/child/ext-menus.js
browser/components/extensions/child/ext-omnibox.js
browser/components/extensions/child/ext-tabs.js
browser/components/extensions/ext-bookmarks.js
browser/components/extensions/ext-browser.js
browser/components/extensions/ext-browser.json
browser/components/extensions/ext-browserAction.js
browser/components/extensions/ext-browsingData.js
browser/components/extensions/ext-c-browser.js
browser/components/extensions/ext-c-devtools-inspectedWindow.js
browser/components/extensions/ext-c-devtools-network.js
browser/components/extensions/ext-c-devtools-panels.js
browser/components/extensions/ext-c-devtools.js
browser/components/extensions/ext-c-menus.js
browser/components/extensions/ext-c-omnibox.js
browser/components/extensions/ext-c-tabs.js
browser/components/extensions/ext-chrome-settings-overrides.js
browser/components/extensions/ext-commands.js
browser/components/extensions/ext-devtools-inspectedWindow.js
browser/components/extensions/ext-devtools-network.js
browser/components/extensions/ext-devtools-panels.js
browser/components/extensions/ext-devtools.js
browser/components/extensions/ext-find.js
browser/components/extensions/ext-geckoProfiler.js
browser/components/extensions/ext-history.js
browser/components/extensions/ext-menus.js
browser/components/extensions/ext-omnibox.js
browser/components/extensions/ext-pageAction.js
browser/components/extensions/ext-pkcs11.js
browser/components/extensions/ext-sessions.js
browser/components/extensions/ext-sidebarAction.js
browser/components/extensions/ext-tabs.js
browser/components/extensions/ext-url-overrides.js
browser/components/extensions/ext-windows.js
browser/components/extensions/extensions-browser.manifest
browser/components/extensions/jar.mn
browser/components/extensions/parent/.eslintrc.js
browser/components/extensions/parent/ext-bookmarks.js
browser/components/extensions/parent/ext-browser.js
browser/components/extensions/parent/ext-browserAction.js
browser/components/extensions/parent/ext-browsingData.js
browser/components/extensions/parent/ext-chrome-settings-overrides.js
browser/components/extensions/parent/ext-commands.js
browser/components/extensions/parent/ext-devtools-inspectedWindow.js
browser/components/extensions/parent/ext-devtools-network.js
browser/components/extensions/parent/ext-devtools-panels.js
browser/components/extensions/parent/ext-devtools.js
browser/components/extensions/parent/ext-find.js
browser/components/extensions/parent/ext-geckoProfiler.js
browser/components/extensions/parent/ext-history.js
browser/components/extensions/parent/ext-menus.js
browser/components/extensions/parent/ext-omnibox.js
browser/components/extensions/parent/ext-pageAction.js
browser/components/extensions/parent/ext-pkcs11.js
browser/components/extensions/parent/ext-sessions.js
browser/components/extensions/parent/ext-sidebarAction.js
browser/components/extensions/parent/ext-tabs.js
browser/components/extensions/parent/ext-url-overrides.js
browser/components/extensions/parent/ext-windows.js
toolkit/components/extensions/child/.eslintrc.js
toolkit/components/extensions/child/ext-backgroundPage.js
toolkit/components/extensions/child/ext-contentScripts.js
toolkit/components/extensions/child/ext-extension.js
toolkit/components/extensions/child/ext-identity.js
toolkit/components/extensions/child/ext-runtime.js
toolkit/components/extensions/child/ext-storage.js
toolkit/components/extensions/child/ext-test.js
toolkit/components/extensions/child/ext-toolkit.js
toolkit/components/extensions/child/ext-webRequest.js
toolkit/components/extensions/ext-alarms.js
toolkit/components/extensions/ext-backgroundPage.js
toolkit/components/extensions/ext-browserSettings.js
toolkit/components/extensions/ext-c-backgroundPage.js
toolkit/components/extensions/ext-c-contentScripts.js
toolkit/components/extensions/ext-c-extension.js
toolkit/components/extensions/ext-c-identity.js
toolkit/components/extensions/ext-c-runtime.js
toolkit/components/extensions/ext-c-storage.js
toolkit/components/extensions/ext-c-test.js
toolkit/components/extensions/ext-c-toolkit.js
toolkit/components/extensions/ext-c-webRequest.js
toolkit/components/extensions/ext-clipboard.js
toolkit/components/extensions/ext-contentScripts.js
toolkit/components/extensions/ext-contextualIdentities.js
toolkit/components/extensions/ext-cookies.js
toolkit/components/extensions/ext-dns.js
toolkit/components/extensions/ext-downloads.js
toolkit/components/extensions/ext-extension.js
toolkit/components/extensions/ext-i18n.js
toolkit/components/extensions/ext-identity.js
toolkit/components/extensions/ext-idle.js
toolkit/components/extensions/ext-management.js
toolkit/components/extensions/ext-notifications.js
toolkit/components/extensions/ext-permissions.js
toolkit/components/extensions/ext-privacy.js
toolkit/components/extensions/ext-protocolHandlers.js
toolkit/components/extensions/ext-proxy.js
toolkit/components/extensions/ext-runtime.js
toolkit/components/extensions/ext-storage.js
toolkit/components/extensions/ext-tabs-base.js
toolkit/components/extensions/ext-theme.js
toolkit/components/extensions/ext-toolkit.js
toolkit/components/extensions/ext-toolkit.json
toolkit/components/extensions/ext-topSites.js
toolkit/components/extensions/ext-webNavigation.js
toolkit/components/extensions/ext-webRequest.js
toolkit/components/extensions/extensions-toolkit.manifest
toolkit/components/extensions/jar.mn
toolkit/components/extensions/parent/.eslintrc.js
toolkit/components/extensions/parent/ext-alarms.js
toolkit/components/extensions/parent/ext-backgroundPage.js
toolkit/components/extensions/parent/ext-browserSettings.js
toolkit/components/extensions/parent/ext-clipboard.js
toolkit/components/extensions/parent/ext-contentScripts.js
toolkit/components/extensions/parent/ext-contextualIdentities.js
toolkit/components/extensions/parent/ext-cookies.js
toolkit/components/extensions/parent/ext-dns.js
toolkit/components/extensions/parent/ext-downloads.js
toolkit/components/extensions/parent/ext-extension.js
toolkit/components/extensions/parent/ext-i18n.js
toolkit/components/extensions/parent/ext-identity.js
toolkit/components/extensions/parent/ext-idle.js
toolkit/components/extensions/parent/ext-management.js
toolkit/components/extensions/parent/ext-notifications.js
toolkit/components/extensions/parent/ext-permissions.js
toolkit/components/extensions/parent/ext-privacy.js
toolkit/components/extensions/parent/ext-protocolHandlers.js
toolkit/components/extensions/parent/ext-proxy.js
toolkit/components/extensions/parent/ext-runtime.js
toolkit/components/extensions/parent/ext-storage.js
toolkit/components/extensions/parent/ext-tabs-base.js
toolkit/components/extensions/parent/ext-theme.js
toolkit/components/extensions/parent/ext-toolkit.js
toolkit/components/extensions/parent/ext-topSites.js
toolkit/components/extensions/parent/ext-webNavigation.js
toolkit/components/extensions/parent/ext-webRequest.js
deleted file mode 100644
--- a/browser/components/extensions/child/.eslintrc.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = {
-  "extends": "../../../../toolkit/components/extensions/child/.eslintrc.js",
-};
-
rename from browser/components/extensions/parent/ext-bookmarks.js
rename to browser/components/extensions/ext-bookmarks.js
--- a/browser/components/extensions/parent/ext-bookmarks.js
+++ b/browser/components/extensions/ext-bookmarks.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browserAction.js */
+
 ChromeUtils.import("resource://gre/modules/PlacesUtils.jsm");
 
 const {
   TYPE_BOOKMARK,
   TYPE_FOLDER,
   TYPE_SEPARATOR,
 } = PlacesUtils.bookmarks;
 
rename from browser/components/extensions/parent/ext-browser.js
rename to browser/components/extensions/ext-browser.js
--- a/browser/components/extensions/parent/ext-browser.js
+++ b/browser/components/extensions/ext-browser.js
@@ -1,16 +1,22 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
 // This file provides some useful code for the |tabs| and |windows|
 // modules. All of the code is installed on |global|, which is a scope
 // shared among the different ext-*.js scripts.
 
+/* global EventEmitter:false, TabContext:false, WindowEventManager:false,
+          makeWidgetId:false, tabTracker:true, windowTracker:true */
+/* import-globals-from ../../../toolkit/components/extensions/ext-toolkit.js */
+
+/* globals TabBase, WindowBase, TabTrackerBase, WindowTrackerBase, TabManagerBase, WindowManagerBase */
+
 ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
                                "resource://gre/modules/PrivateBrowsingUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "RecentWindow",
                                "resource:///modules/RecentWindow.jsm");
 
 var {
   ExtensionError,
   defineLazyGetter,
--- a/browser/components/extensions/ext-browser.json
+++ b/browser/components/extensions/ext-browser.json
@@ -1,188 +1,188 @@
 {
   "bookmarks": {
-    "url": "chrome://browser/content/parent/ext-bookmarks.js",
+    "url": "chrome://browser/content/ext-bookmarks.js",
     "schema": "chrome://browser/content/schemas/bookmarks.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["bookmarks"]
     ]
   },
   "browserAction": {
-    "url": "chrome://browser/content/parent/ext-browserAction.js",
+    "url": "chrome://browser/content/ext-browserAction.js",
     "schema": "chrome://browser/content/schemas/browser_action.json",
     "scopes": ["addon_parent"],
     "manifest": ["browser_action"],
     "paths": [
       ["browserAction"]
     ]
   },
   "browsingData": {
-    "url": "chrome://browser/content/parent/ext-browsingData.js",
+    "url": "chrome://browser/content/ext-browsingData.js",
     "schema": "chrome://browser/content/schemas/browsing_data.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["browsingData"]
     ]
   },
   "chrome_settings_overrides": {
-    "url": "chrome://browser/content/parent/ext-chrome-settings-overrides.js",
+    "url": "chrome://browser/content/ext-chrome-settings-overrides.js",
     "scopes": [],
     "events": ["update", "uninstall"],
     "schema": "chrome://browser/content/schemas/chrome_settings_overrides.json",
     "manifest": ["chrome_settings_overrides"]
   },
   "commands": {
-    "url": "chrome://browser/content/parent/ext-commands.js",
+    "url": "chrome://browser/content/ext-commands.js",
     "schema": "chrome://browser/content/schemas/commands.json",
     "scopes": ["addon_parent"],
     "events": ["uninstall"],
     "manifest": ["commands"],
     "paths": [
       ["commands"]
     ]
   },
   "devtools": {
-    "url": "chrome://browser/content/parent/ext-devtools.js",
+    "url": "chrome://browser/content/ext-devtools.js",
     "schema": "chrome://browser/content/schemas/devtools.json",
     "scopes": ["devtools_parent"],
     "manifest": ["devtools_page"],
     "paths": [
       ["devtools"]
     ]
   },
   "devtools_inspectedWindow": {
-    "url": "chrome://browser/content/parent/ext-devtools-inspectedWindow.js",
+    "url": "chrome://browser/content/ext-devtools-inspectedWindow.js",
     "schema": "chrome://browser/content/schemas/devtools_inspected_window.json",
     "scopes": ["devtools_parent"],
     "paths": [
       ["devtools", "inspectedWindow"]
     ]
   },
   "devtools_network": {
-    "url": "chrome://browser/content/parent/ext-devtools-network.js",
+    "url": "chrome://browser/content/ext-devtools-network.js",
     "schema": "chrome://browser/content/schemas/devtools_network.json",
     "scopes": ["devtools_parent"],
     "paths": [
       ["devtools", "network"]
     ]
   },
   "devtools_panels": {
-    "url": "chrome://browser/content/parent/ext-devtools-panels.js",
+    "url": "chrome://browser/content/ext-devtools-panels.js",
     "schema": "chrome://browser/content/schemas/devtools_panels.json",
     "scopes": ["devtools_parent"],
     "paths": [
       ["devtools", "panels"]
     ]
   },
   "find": {
-    "url": "chrome://browser/content/parent/ext-find.js",
+    "url": "chrome://browser/content/ext-find.js",
     "schema": "chrome://browser/content/schemas/find.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["find"]
     ]
   },
   "history": {
-    "url": "chrome://browser/content/parent/ext-history.js",
+    "url": "chrome://browser/content/ext-history.js",
     "schema": "chrome://browser/content/schemas/history.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["history"]
     ]
   },
   "identity": {
-    "url": "chrome://extensions/content/parent/ext-identity.js",
+    "url": "chrome://extensions/content/ext-identity.js",
     "schema": "chrome://extensions/content/schemas/identity.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["identity"]
     ]
   },
   "menusInternal": {
-    "url": "chrome://browser/content/parent/ext-menus.js",
+    "url": "chrome://browser/content/ext-menus.js",
     "schema": "chrome://browser/content/schemas/menus.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["contextMenus"],
       ["menus"],
       ["menusInternal"]
     ]
   },
   "omnibox": {
-    "url": "chrome://browser/content/parent/ext-omnibox.js",
+    "url": "chrome://browser/content/ext-omnibox.js",
     "schema": "chrome://browser/content/schemas/omnibox.json",
     "scopes": ["addon_parent"],
     "manifest": ["omnibox"],
     "paths": [
       ["omnibox"]
     ]
   },
   "pageAction": {
-    "url": "chrome://browser/content/parent/ext-pageAction.js",
+    "url": "chrome://browser/content/ext-pageAction.js",
     "schema": "chrome://browser/content/schemas/page_action.json",
     "scopes": ["addon_parent"],
     "manifest": ["page_action"],
     "paths": [
       ["pageAction"]
     ]
   },
   "pkcs11": {
-    "url": "chrome://browser/content/parent/ext-pkcs11.js",
+    "url": "chrome://browser/content/ext-pkcs11.js",
     "schema": "chrome://browser/content/schemas/pkcs11.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["pkcs11"]
     ]
   },
   "geckoProfiler": {
-    "url": "chrome://browser/content/parent/ext-geckoProfiler.js",
+    "url": "chrome://browser/content/ext-geckoProfiler.js",
     "schema": "chrome://browser/content/schemas/geckoProfiler.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["geckoProfiler"]
     ]
   },
   "sessions": {
-    "url": "chrome://browser/content/parent/ext-sessions.js",
+    "url": "chrome://browser/content/ext-sessions.js",
     "schema": "chrome://browser/content/schemas/sessions.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["sessions"]
     ]
   },
   "sidebarAction": {
-    "url": "chrome://browser/content/parent/ext-sidebarAction.js",
+    "url": "chrome://browser/content/ext-sidebarAction.js",
     "schema": "chrome://browser/content/schemas/sidebar_action.json",
     "scopes": ["addon_parent"],
     "manifest": ["sidebar_action"],
     "paths": [
       ["sidebarAction"]
     ]
   },
   "tabs": {
-    "url": "chrome://browser/content/parent/ext-tabs.js",
+    "url": "chrome://browser/content/ext-tabs.js",
     "schema": "chrome://browser/content/schemas/tabs.json",
     "scopes": ["addon_parent"],
     "events": ["update", "disable"],
     "paths": [
       ["tabs"]
     ]
   },
   "urlOverrides": {
-    "url": "chrome://browser/content/parent/ext-url-overrides.js",
+    "url": "chrome://browser/content/ext-url-overrides.js",
     "schema": "chrome://browser/content/schemas/url_overrides.json",
     "scopes": ["addon_parent"],
     "manifest": ["chrome_url_overrides"],
     "paths": [
       ["urlOverrides"]
     ]
   },
   "windows": {
-    "url": "chrome://browser/content/parent/ext-windows.js",
+    "url": "chrome://browser/content/ext-windows.js",
     "schema": "chrome://browser/content/schemas/windows.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["windows"]
     ]
   }
 }
rename from browser/components/extensions/parent/ext-browserAction.js
rename to browser/components/extensions/ext-browserAction.js
--- a/browser/components/extensions/parent/ext-browserAction.js
+++ b/browser/components/extensions/ext-browserAction.js
@@ -1,12 +1,18 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+/* exported browserActionFor, sidebarActionFor, pageActionFor */
+/* global browserActionFor:false, sidebarActionFor:false, pageActionFor:false */
+
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+
 ChromeUtils.defineModuleGetter(this, "CustomizableUI",
                                "resource:///modules/CustomizableUI.jsm");
 ChromeUtils.defineModuleGetter(this, "clearTimeout",
                                "resource://gre/modules/Timer.jsm");
 ChromeUtils.defineModuleGetter(this, "setTimeout",
                                "resource://gre/modules/Timer.jsm");
 ChromeUtils.defineModuleGetter(this, "TelemetryStopwatch",
                                "resource://gre/modules/TelemetryStopwatch.jsm");
rename from browser/components/extensions/parent/ext-browsingData.js
rename to browser/components/extensions/ext-browsingData.js
rename from browser/components/extensions/child/ext-browser.js
rename to browser/components/extensions/ext-c-browser.js
--- a/browser/components/extensions/child/ext-browser.js
+++ b/browser/components/extensions/ext-c-browser.js
@@ -1,55 +1,55 @@
 "use strict";
 
 extensions.registerModules({
   devtools: {
-    url: "chrome://browser/content/child/ext-devtools.js",
+    url: "chrome://browser/content/ext-c-devtools.js",
     scopes: ["devtools_child"],
     paths: [
       ["devtools"],
     ],
   },
   devtools_inspectedWindow: {
-    url: "chrome://browser/content/child/ext-devtools-inspectedWindow.js",
+    url: "chrome://browser/content/ext-c-devtools-inspectedWindow.js",
     scopes: ["devtools_child"],
     paths: [
       ["devtools", "inspectedWindow"],
     ],
   },
   devtools_panels: {
-    url: "chrome://browser/content/child/ext-devtools-panels.js",
+    url: "chrome://browser/content/ext-c-devtools-panels.js",
     scopes: ["devtools_child"],
     paths: [
       ["devtools", "panels"],
     ],
   },
   devtools_network: {
-    url: "chrome://browser/content/child/ext-devtools-network.js",
+    url: "chrome://browser/content/ext-c-devtools-network.js",
     scopes: ["devtools_child"],
     paths: [
       ["devtools", "network"],
     ],
   },
   // Because of permissions, the module name must differ from both namespaces.
   menusInternal: {
-    url: "chrome://browser/content/child/ext-menus.js",
+    url: "chrome://browser/content/ext-c-menus.js",
     scopes: ["addon_child"],
     paths: [
       ["contextMenus"],
       ["menus"],
     ],
   },
   omnibox: {
-    url: "chrome://browser/content/child/ext-omnibox.js",
+    url: "chrome://browser/content/ext-c-omnibox.js",
     scopes: ["addon_child"],
     paths: [
       ["omnibox"],
     ],
   },
   tabs: {
-    url: "chrome://browser/content/child/ext-tabs.js",
+    url: "chrome://browser/content/ext-c-tabs.js",
     scopes: ["addon_child"],
     paths: [
       ["tabs"],
     ],
   },
 });
rename from browser/components/extensions/child/ext-devtools-inspectedWindow.js
rename to browser/components/extensions/ext-c-devtools-inspectedWindow.js
rename from browser/components/extensions/child/ext-devtools-network.js
rename to browser/components/extensions/ext-c-devtools-network.js
--- a/browser/components/extensions/child/ext-devtools-network.js
+++ b/browser/components/extensions/ext-c-devtools-network.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
+
 /**
  * Responsible for fetching HTTP response content from the backend.
  *
  * @param {DevtoolsExtensionContext}
  *   A devtools extension context running in a child process.
  * @param {object} options
  */
 class ChildNetworkResponseLoader {
rename from browser/components/extensions/child/ext-devtools-panels.js
rename to browser/components/extensions/ext-c-devtools-panels.js
--- a/browser/components/extensions/child/ext-devtools-panels.js
+++ b/browser/components/extensions/ext-c-devtools-panels.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "ExtensionChildDevToolsUtils",
                                "resource://gre/modules/ExtensionChildDevToolsUtils.jsm");
 
 var {
   promiseDocumentLoaded,
 } = ExtensionUtils;
 
 /**
rename from browser/components/extensions/child/ext-devtools.js
rename to browser/components/extensions/ext-c-devtools.js
rename from browser/components/extensions/child/ext-menus.js
rename to browser/components/extensions/ext-c-menus.js
--- a/browser/components/extensions/child/ext-menus.js
+++ b/browser/components/extensions/ext-c-menus.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
+
 var {
   withHandlingUserInput,
 } = ExtensionUtils;
 
 // If id is not specified for an item we use an integer.
 // This ID need only be unique within a single addon. Since all addon code that
 // can use this API runs in the same process, this local variable suffices.
 var gNextMenuItemID = 0;
rename from browser/components/extensions/child/ext-omnibox.js
rename to browser/components/extensions/ext-c-omnibox.js
--- a/browser/components/extensions/child/ext-omnibox.js
+++ b/browser/components/extensions/ext-c-omnibox.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
+
 this.omnibox = class extends ExtensionAPI {
   getAPI(context) {
     return {
       omnibox: {
         onInputChanged: new EventManager(context, "omnibox.onInputChanged", fire => {
           let listener = (text, id) => {
             fire.asyncWithoutClone(text, suggestions => {
               context.childManager.callParentFunctionNoReturn("omnibox.addSuggestions", [
rename from browser/components/extensions/child/ext-tabs.js
rename to browser/components/extensions/ext-c-tabs.js
rename from browser/components/extensions/parent/ext-chrome-settings-overrides.js
rename to browser/components/extensions/ext-chrome-settings-overrides.js
rename from browser/components/extensions/parent/ext-commands.js
rename to browser/components/extensions/ext-commands.js
--- a/browser/components/extensions/parent/ext-commands.js
+++ b/browser/components/extensions/ext-commands.js
@@ -1,21 +1,21 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browserAction.js */
+/* import-globals-from ext-browser.js */
+
 ChromeUtils.defineModuleGetter(this, "ExtensionParent",
                                "resource://gre/modules/ExtensionParent.jsm");
 ChromeUtils.defineModuleGetter(this, "ExtensionSettingsStore",
                                "resource://gre/modules/ExtensionSettingsStore.jsm");
 
-var {
-  ExtensionError,
-} = ExtensionUtils;
-
 var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
 const EXECUTE_PAGE_ACTION = "_execute_page_action";
 const EXECUTE_BROWSER_ACTION = "_execute_browser_action";
 const EXECUTE_SIDEBAR_ACTION = "_execute_sidebar_action";
 
 function normalizeShortcut(shortcut) {
   return shortcut ? shortcut.replace(/\s+/g, "") : null;
rename from browser/components/extensions/parent/ext-devtools-inspectedWindow.js
rename to browser/components/extensions/ext-devtools-inspectedWindow.js
--- a/browser/components/extensions/parent/ext-devtools-inspectedWindow.js
+++ b/browser/components/extensions/ext-devtools-inspectedWindow.js
@@ -1,12 +1,16 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-devtools.js */
+/* import-globals-from ext-browser.js */
+
 var {
   SpreadArgs,
 } = ExtensionCommon;
 
 this.devtools_inspectedWindow = class extends ExtensionAPI {
   getAPI(context) {
     // Lazily retrieved inspectedWindow actor front per child context.
     let waitForInspectedWindowFront;
rename from browser/components/extensions/parent/ext-devtools-network.js
rename to browser/components/extensions/ext-devtools-network.js
--- a/browser/components/extensions/parent/ext-devtools-network.js
+++ b/browser/components/extensions/ext-devtools-network.js
@@ -1,20 +1,19 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-devtools.js */
+
 var {
   SpreadArgs,
 } = ExtensionCommon;
 
-var {
-  ExtensionError,
-} = ExtensionUtils;
-
 this.devtools_network = class extends ExtensionAPI {
   getAPI(context) {
     return {
       devtools: {
         network: {
           onNavigated: new EventManager(context, "devtools.onNavigated", fire => {
             let listener = data => {
               fire.async(data.url);
rename from browser/components/extensions/parent/ext-devtools-panels.js
rename to browser/components/extensions/ext-devtools-panels.js
--- a/browser/components/extensions/parent/ext-devtools-panels.js
+++ b/browser/components/extensions/ext-devtools-panels.js
@@ -1,12 +1,16 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-devtools.js */
+/* import-globals-from ext-browser.js */
+
 ChromeUtils.import("resource://gre/modules/ExtensionParent.jsm");
 
 ChromeUtils.defineModuleGetter(this, "E10SUtils",
                                "resource://gre/modules/E10SUtils.jsm");
 
 var {
   IconDetails,
   watchExtensionProxyContextLoad,
rename from browser/components/extensions/parent/ext-devtools.js
rename to browser/components/extensions/ext-devtools.js
--- a/browser/components/extensions/parent/ext-devtools.js
+++ b/browser/components/extensions/ext-devtools.js
@@ -1,12 +1,18 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+/* exported getDevToolsTargetForContext, getInspectedWindowFront, getToolboxEvalOptions */
+/* global getTargetTabIdForToolbox, getDevToolsTargetForContext, getInspectedWindowFront, getToolboxEvalOptions */
+
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+
 /**
  * This module provides helpers used by the other specialized `ext-devtools-*.js` modules
  * and the implementation of the `devtools_page`.
  */
 
 ChromeUtils.defineModuleGetter(this, "DevToolsShim",
                                "chrome://devtools-startup/content/DevToolsShim.jsm");
 
rename from browser/components/extensions/parent/ext-find.js
rename to browser/components/extensions/ext-find.js
rename from browser/components/extensions/parent/ext-geckoProfiler.js
rename to browser/components/extensions/ext-geckoProfiler.js
--- a/browser/components/extensions/parent/ext-geckoProfiler.js
+++ b/browser/components/extensions/ext-geckoProfiler.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-toolkit.js */
+
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 Cu.importGlobalProperties(["TextEncoder", "TextDecoder"]);
 
 ChromeUtils.defineModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm");
 ChromeUtils.defineModuleGetter(this, "Subprocess", "resource://gre/modules/Subprocess.jsm");
 
 const PREF_ASYNC_STACK = "javascript.options.asyncstack";
 const PREF_SYMBOLS_URL = "extensions.geckoProfiler.symbols.url";
rename from browser/components/extensions/parent/ext-history.js
rename to browser/components/extensions/ext-history.js
--- a/browser/components/extensions/parent/ext-history.js
+++ b/browser/components/extensions/ext-history.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browserAction.js */
+
 ChromeUtils.defineModuleGetter(this, "PlacesUtils",
                                "resource://gre/modules/PlacesUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "Services",
                                "resource://gre/modules/Services.jsm");
 
 var {
   normalizeTime,
 } = ExtensionUtils;
rename from browser/components/extensions/parent/ext-menus.js
rename to browser/components/extensions/ext-menus.js
--- a/browser/components/extensions/parent/ext-menus.js
+++ b/browser/components/extensions/ext-menus.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 var {
   DefaultMap,
   ExtensionError,
 } = ExtensionUtils;
 
 ChromeUtils.import("resource://gre/modules/ExtensionParent.jsm");
rename from browser/components/extensions/parent/ext-omnibox.js
rename to browser/components/extensions/ext-omnibox.js
--- a/browser/components/extensions/parent/ext-omnibox.js
+++ b/browser/components/extensions/ext-omnibox.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ../../../toolkit/components/extensions/ext-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "ExtensionSearchHandler",
                                "resource://gre/modules/ExtensionSearchHandler.jsm");
 
 this.omnibox = class extends ExtensionAPI {
   onManifestEntry(entryName) {
     let {extension} = this;
     let {manifest} = extension;
 
rename from browser/components/extensions/parent/ext-pageAction.js
rename to browser/components/extensions/ext-pageAction.js
--- a/browser/components/extensions/parent/ext-pageAction.js
+++ b/browser/components/extensions/ext-pageAction.js
@@ -1,31 +1,31 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browserAction.js */
+/* import-globals-from ext-browser.js */
+
 ChromeUtils.defineModuleGetter(this, "PageActions",
                                "resource:///modules/PageActions.jsm");
 ChromeUtils.defineModuleGetter(this, "PanelPopup",
                                "resource:///modules/ExtensionPopups.jsm");
 ChromeUtils.defineModuleGetter(this, "TelemetryStopwatch",
                                "resource://gre/modules/TelemetryStopwatch.jsm");
 
 
 ChromeUtils.import("resource://gre/modules/ExtensionParent.jsm");
 
 var {
   IconDetails,
   StartupCache,
 } = ExtensionParent;
 
-var {
-  DefaultWeakMap,
-} = ExtensionUtils;
-
 const popupOpenTimingHistogram = "WEBEXT_PAGEACTION_POPUP_OPEN_MS";
 
 // WeakMap[Extension -> PageAction]
 let pageActionMap = new WeakMap();
 
 this.pageAction = class extends ExtensionAPI {
   static for(extension) {
     return pageActionMap.get(extension);
rename from browser/components/extensions/parent/ext-pkcs11.js
rename to browser/components/extensions/ext-pkcs11.js
rename from browser/components/extensions/parent/ext-sessions.js
rename to browser/components/extensions/ext-sessions.js
--- a/browser/components/extensions/parent/ext-sessions.js
+++ b/browser/components/extensions/ext-sessions.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+
 var {
   ExtensionError,
   promiseObserved,
 } = ExtensionUtils;
 
 ChromeUtils.defineModuleGetter(this, "AddonManagerPrivate",
                                "resource://gre/modules/AddonManager.jsm");
 ChromeUtils.defineModuleGetter(this, "SessionStore",
rename from browser/components/extensions/parent/ext-sidebarAction.js
rename to browser/components/extensions/ext-sidebarAction.js
--- a/browser/components/extensions/parent/ext-sidebarAction.js
+++ b/browser/components/extensions/ext-sidebarAction.js
@@ -1,12 +1,16 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+/* globals WINDOW_ID_CURRENT */
+
 ChromeUtils.import("resource://gre/modules/ExtensionParent.jsm");
 
 var {
   IconDetails,
 } = ExtensionParent;
 
 var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
@@ -423,17 +427,17 @@ this.sidebarAction = class extends Exten
         close() {
           let window = windowTracker.topWindow;
           sidebarAction.close(window);
         },
 
         isOpen(details) {
           let {windowId} = details;
           if (windowId == null) {
-            windowId = Window.WINDOW_ID_CURRENT;
+            windowId = WINDOW_ID_CURRENT;
           }
           let window = windowTracker.getWindow(windowId, context);
           return sidebarAction.isOpen(window);
         },
       },
     };
   }
 };
rename from browser/components/extensions/parent/ext-tabs.js
rename to browser/components/extensions/ext-tabs.js
--- a/browser/components/extensions/parent/ext-tabs.js
+++ b/browser/components/extensions/ext-tabs.js
@@ -1,12 +1,16 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+/* import-globals-from ../../../toolkit/components/extensions/ext-tabs-base.js */
+
 ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
                                "resource://gre/modules/PrivateBrowsingUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "PromiseUtils",
                                "resource://gre/modules/PromiseUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "Services",
                                "resource://gre/modules/Services.jsm");
 ChromeUtils.defineModuleGetter(this, "SessionStore",
                                "resource:///modules/sessionstore/SessionStore.jsm");
@@ -137,17 +141,17 @@ class TabsUpdateFilterEventManager exten
             nonempty = true;
             result[prop] = changeInfo[prop];
           }
         }
         return nonempty && result;
       }
 
       function getWindowID(windowId) {
-        if (windowId === Window.WINDOW_ID_CURRENT) {
+        if (windowId === WINDOW_ID_CURRENT) {
           return windowTracker.getId(windowTracker.topWindow);
         }
         return windowId;
       }
 
       function matchFilters(tab, changed) {
         if (!filterProps) {
           return true;
rename from browser/components/extensions/parent/ext-url-overrides.js
rename to browser/components/extensions/ext-url-overrides.js
--- a/browser/components/extensions/parent/ext-url-overrides.js
+++ b/browser/components/extensions/ext-url-overrides.js
@@ -1,11 +1,12 @@
 /* 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/. */
+/* import-globals-from ext-browser.js */
 
 "use strict";
 
 ChromeUtils.defineModuleGetter(this, "AddonManager",
                                "resource://gre/modules/AddonManager.jsm");
 ChromeUtils.defineModuleGetter(this, "BrowserUtils",
                                "resource://gre/modules/BrowserUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "CustomizableUI",
rename from browser/components/extensions/parent/ext-windows.js
rename to browser/components/extensions/ext-windows.js
--- a/browser/components/extensions/parent/ext-windows.js
+++ b/browser/components/extensions/ext-windows.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-browser.js */
+
 XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
                                    "@mozilla.org/browser/aboutnewtab-service;1",
                                    "nsIAboutNewTabService");
 ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
                                "resource://gre/modules/PrivateBrowsingUtils.jsm");
 
 var {
   promiseObserved,
--- a/browser/components/extensions/extensions-browser.manifest
+++ b/browser/components/extensions/extensions-browser.manifest
@@ -1,7 +1,7 @@
 category webextension-modules browser chrome://browser/content/ext-browser.json
 
-category webextension-scripts c-browser chrome://browser/content/parent/ext-browser.js
-category webextension-scripts-devtools browser chrome://browser/content/child/ext-browser.js
-category webextension-scripts-addon browser chrome://browser/content/child/ext-browser.js
+category webextension-scripts c-browser chrome://browser/content/ext-browser.js
+category webextension-scripts-devtools browser chrome://browser/content/ext-c-browser.js
+category webextension-scripts-addon browser chrome://browser/content/ext-c-browser.js
 
 category webextension-schemas menus_internal chrome://browser/content/schemas/menus_internal.json
--- a/browser/components/extensions/jar.mn
+++ b/browser/components/extensions/jar.mn
@@ -7,39 +7,39 @@ browser.jar:
 #ifdef XP_MACOSX
     content/browser/extension-mac.css
     content/browser/extension-mac-panel.css
 #endif
 #ifdef XP_WIN
     content/browser/extension-win-panel.css
 #endif
     content/browser/extension.svg
+    content/browser/ext-bookmarks.js
+    content/browser/ext-browser.js
     content/browser/ext-browser.json
-    content/browser/parent/ext-bookmarks.js (parent/ext-bookmarks.js)
-    content/browser/parent/ext-browser.js (parent/ext-browser.js)
-    content/browser/parent/ext-browserAction.js (parent/ext-browserAction.js)
-    content/browser/parent/ext-browsingData.js (parent/ext-browsingData.js)
-    content/browser/parent/ext-chrome-settings-overrides.js (parent/ext-chrome-settings-overrides.js)
-    content/browser/parent/ext-commands.js (parent/ext-commands.js)
-    content/browser/parent/ext-devtools.js (parent/ext-devtools.js)
-    content/browser/parent/ext-devtools-inspectedWindow.js (parent/ext-devtools-inspectedWindow.js)
-    content/browser/parent/ext-devtools-network.js (parent/ext-devtools-network.js)
-    content/browser/parent/ext-devtools-panels.js (parent/ext-devtools-panels.js)
-    content/browser/parent/ext-find.js (parent/ext-find.js)
-    content/browser/parent/ext-geckoProfiler.js (parent/ext-geckoProfiler.js)
-    content/browser/parent/ext-history.js (parent/ext-history.js)
-    content/browser/parent/ext-menus.js (parent/ext-menus.js)
-    content/browser/parent/ext-omnibox.js (parent/ext-omnibox.js)
-    content/browser/parent/ext-pageAction.js (parent/ext-pageAction.js)
-    content/browser/parent/ext-pkcs11.js (parent/ext-pkcs11.js)
-    content/browser/parent/ext-sessions.js (parent/ext-sessions.js)
-    content/browser/parent/ext-sidebarAction.js (parent/ext-sidebarAction.js)
-    content/browser/parent/ext-tabs.js (parent/ext-tabs.js)
-    content/browser/parent/ext-url-overrides.js (parent/ext-url-overrides.js)
-    content/browser/parent/ext-windows.js (parent/ext-windows.js)
-    content/browser/child/ext-browser.js (child/ext-browser.js)
-    content/browser/child/ext-devtools-inspectedWindow.js (child/ext-devtools-inspectedWindow.js)
-    content/browser/child/ext-devtools-network.js (child/ext-devtools-network.js)
-    content/browser/child/ext-devtools-panels.js (child/ext-devtools-panels.js)
-    content/browser/child/ext-devtools.js (child/ext-devtools.js)
-    content/browser/child/ext-menus.js (child/ext-menus.js)
-    content/browser/child/ext-omnibox.js (child/ext-omnibox.js)
-    content/browser/child/ext-tabs.js (child/ext-tabs.js)
+    content/browser/ext-browserAction.js
+    content/browser/ext-browsingData.js
+    content/browser/ext-chrome-settings-overrides.js
+    content/browser/ext-commands.js
+    content/browser/ext-devtools.js
+    content/browser/ext-devtools-inspectedWindow.js
+    content/browser/ext-devtools-network.js
+    content/browser/ext-devtools-panels.js
+    content/browser/ext-find.js
+    content/browser/ext-geckoProfiler.js
+    content/browser/ext-history.js
+    content/browser/ext-menus.js
+    content/browser/ext-omnibox.js
+    content/browser/ext-pageAction.js
+    content/browser/ext-pkcs11.js
+    content/browser/ext-sessions.js
+    content/browser/ext-sidebarAction.js
+    content/browser/ext-tabs.js
+    content/browser/ext-url-overrides.js
+    content/browser/ext-windows.js
+    content/browser/ext-c-browser.js
+    content/browser/ext-c-devtools-inspectedWindow.js
+    content/browser/ext-c-devtools-network.js
+    content/browser/ext-c-devtools-panels.js
+    content/browser/ext-c-devtools.js
+    content/browser/ext-c-menus.js
+    content/browser/ext-c-omnibox.js
+    content/browser/ext-c-tabs.js
deleted file mode 100644
--- a/browser/components/extensions/parent/.eslintrc.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-module.exports = {
-  "extends": "../../../../toolkit/components/extensions/parent/.eslintrc.js",
-
-  "globals": {
-    "Tab": true,
-    "TabContext": true,
-    "Window": true,
-    "WindowEventManager": true,
-    "actionContextMenu": true,
-    "browserActionFor": true,
-    "getContainerForCookieStoreId": true,
-    "getDevToolsTargetForContext": true,
-    "getInspectedWindowFront": true,
-    "getTargetTabIdForToolbox": true,
-    "getToolboxEvalOptions": true,
-    "isContainerCookieStoreId": true,
-    "isPrivateCookieStoreId": true,
-    "isValidCookieStoreId": true,
-    "makeWidgetId": true,
-    "openOptionsPage": true,
-    "pageActionFor": true,
-    "sidebarActionFor": true,
-    "tabGetSender": true,
-    "tabTracker": true,
-    "windowTracker": true,
-  },
-};
deleted file mode 100644
--- a/toolkit/components/extensions/child/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
-  "globals": {
-    "EventManager": true,
-  },
-};
rename from toolkit/components/extensions/parent/ext-alarms.js
rename to toolkit/components/extensions/ext-alarms.js
rename from toolkit/components/extensions/parent/ext-backgroundPage.js
rename to toolkit/components/extensions/ext-backgroundPage.js
rename from toolkit/components/extensions/parent/ext-browserSettings.js
rename to toolkit/components/extensions/ext-browserSettings.js
rename from toolkit/components/extensions/child/ext-backgroundPage.js
rename to toolkit/components/extensions/ext-c-backgroundPage.js
rename from toolkit/components/extensions/child/ext-contentScripts.js
rename to toolkit/components/extensions/ext-c-contentScripts.js
rename from toolkit/components/extensions/child/ext-extension.js
rename to toolkit/components/extensions/ext-c-extension.js
rename from toolkit/components/extensions/child/ext-identity.js
rename to toolkit/components/extensions/ext-c-identity.js
rename from toolkit/components/extensions/child/ext-runtime.js
rename to toolkit/components/extensions/ext-c-runtime.js
rename from toolkit/components/extensions/child/ext-storage.js
rename to toolkit/components/extensions/ext-c-storage.js
--- a/toolkit/components/extensions/child/ext-storage.js
+++ b/toolkit/components/extensions/ext-c-storage.js
@@ -1,10 +1,12 @@
 "use strict";
 
+/* import-globals-from ext-c-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "ExtensionStorage",
                                "resource://gre/modules/ExtensionStorage.jsm");
 ChromeUtils.defineModuleGetter(this, "TelemetryStopwatch",
                                "resource://gre/modules/TelemetryStopwatch.jsm");
 
 var {
   ExtensionError,
 } = ExtensionUtils;
rename from toolkit/components/extensions/child/ext-test.js
rename to toolkit/components/extensions/ext-c-test.js
--- a/toolkit/components/extensions/child/ext-test.js
+++ b/toolkit/components/extensions/ext-c-test.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-c-* files are imported into the same scopes.
+/* import-globals-from ext-c-toolkit.js */
+
 /**
  * Checks whether the given error matches the given expectations.
  *
  * @param {*} error
  *        The error to check.
  * @param {string|RegExp|function|null} expectedError
  *        The expectation to check against. If this parameter is:
  *
rename from toolkit/components/extensions/child/ext-toolkit.js
rename to toolkit/components/extensions/ext-c-toolkit.js
--- a/toolkit/components/extensions/child/ext-toolkit.js
+++ b/toolkit/components/extensions/ext-c-toolkit.js
@@ -9,78 +9,78 @@ ChromeUtils.defineModuleGetter(this, "Se
 // ext-c-*.js files.
 /* exported EventManager */
 /* global EventManager: false */
 
 global.EventManager = ExtensionCommon.EventManager;
 
 extensions.registerModules({
   backgroundPage: {
-    url: "chrome://extensions/content/child/ext-backgroundPage.js",
+    url: "chrome://extensions/content/ext-c-backgroundPage.js",
     scopes: ["addon_child"],
     manifest: ["background"],
     paths: [
       ["extension", "getBackgroundPage"],
       ["runtime", "getBackgroundPage"],
     ],
   },
   contentScripts: {
-    url: "chrome://extensions/content/child/ext-contentScripts.js",
+    url: "chrome://extensions/content/ext-c-contentScripts.js",
     scopes: ["addon_child"],
     paths: [
       ["contentScripts"],
     ],
   },
   extension: {
-    url: "chrome://extensions/content/child/ext-extension.js",
+    url: "chrome://extensions/content/ext-c-extension.js",
     scopes: ["addon_child", "content_child", "devtools_child", "proxy_script"],
     paths: [
       ["extension"],
     ],
   },
   i18n: {
     url: "chrome://extensions/content/ext-i18n.js",
     scopes: ["addon_child", "content_child", "devtools_child", "proxy_script"],
     paths: [
       ["i18n"],
     ],
   },
   runtime: {
-    url: "chrome://extensions/content/child/ext-runtime.js",
+    url: "chrome://extensions/content/ext-c-runtime.js",
     scopes: ["addon_child", "content_child", "devtools_child", "proxy_script"],
     paths: [
       ["runtime"],
     ],
   },
   storage: {
-    url: "chrome://extensions/content/child/ext-storage.js",
+    url: "chrome://extensions/content/ext-c-storage.js",
     scopes: ["addon_child", "content_child", "devtools_child", "proxy_script"],
     paths: [
       ["storage"],
     ],
   },
   test: {
-    url: "chrome://extensions/content/child/ext-test.js",
+    url: "chrome://extensions/content/ext-c-test.js",
     scopes: ["addon_child", "content_child", "devtools_child", "proxy_script"],
     paths: [
       ["test"],
     ],
   },
   webRequest: {
-    url: "chrome://extensions/content/child/ext-webRequest.js",
+    url: "chrome://extensions/content/ext-c-webRequest.js",
     scopes: ["addon_child"],
     paths: [
       ["webRequest"],
     ],
   },
 });
 
 if (AppConstants.MOZ_BUILD_APP === "browser") {
   extensions.registerModules({
     identity: {
-      url: "chrome://extensions/content/child/ext-identity.js",
+      url: "chrome://extensions/content/ext-c-identity.js",
       scopes: ["addon_child"],
       paths: [
         ["identity"],
       ],
     },
   });
 }
rename from toolkit/components/extensions/child/ext-webRequest.js
rename to toolkit/components/extensions/ext-c-webRequest.js
rename from toolkit/components/extensions/parent/ext-clipboard.js
rename to toolkit/components/extensions/ext-clipboard.js
rename from toolkit/components/extensions/parent/ext-contentScripts.js
rename to toolkit/components/extensions/ext-contentScripts.js
rename from toolkit/components/extensions/parent/ext-contextualIdentities.js
rename to toolkit/components/extensions/ext-contextualIdentities.js
--- a/toolkit/components/extensions/parent/ext-contextualIdentities.js
+++ b/toolkit/components/extensions/ext-contextualIdentities.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "ContextualIdentityService",
                                "resource://gre/modules/ContextualIdentityService.jsm");
 XPCOMUtils.defineLazyPreferenceGetter(this, "containersEnabled",
                                       "privacy.userContext.enabled");
 
 ChromeUtils.import("resource://gre/modules/ExtensionPreferencesManager.jsm");
 
 var {
rename from toolkit/components/extensions/parent/ext-cookies.js
rename to toolkit/components/extensions/ext-cookies.js
--- a/toolkit/components/extensions/parent/ext-cookies.js
+++ b/toolkit/components/extensions/ext-cookies.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "Services",
                                "resource://gre/modules/Services.jsm");
 
 /* globals DEFAULT_STORE, PRIVATE_STORE */
 
 var {
   ExtensionError,
 } = ExtensionUtils;
rename from toolkit/components/extensions/parent/ext-dns.js
rename to toolkit/components/extensions/ext-dns.js
rename from toolkit/components/extensions/parent/ext-downloads.js
rename to toolkit/components/extensions/ext-downloads.js
--- a/toolkit/components/extensions/parent/ext-downloads.js
+++ b/toolkit/components/extensions/ext-downloads.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "AppConstants",
                                "resource://gre/modules/AppConstants.jsm");
 ChromeUtils.defineModuleGetter(this, "Downloads",
                                "resource://gre/modules/Downloads.jsm");
 ChromeUtils.defineModuleGetter(this, "DownloadPaths",
                                "resource://gre/modules/DownloadPaths.jsm");
 ChromeUtils.defineModuleGetter(this, "OS",
                                "resource://gre/modules/osfile.jsm");
rename from toolkit/components/extensions/parent/ext-extension.js
rename to toolkit/components/extensions/ext-extension.js
rename from toolkit/components/extensions/parent/ext-i18n.js
rename to toolkit/components/extensions/ext-i18n.js
rename from toolkit/components/extensions/parent/ext-identity.js
rename to toolkit/components/extensions/ext-identity.js
rename from toolkit/components/extensions/parent/ext-idle.js
rename to toolkit/components/extensions/ext-idle.js
--- a/toolkit/components/extensions/parent/ext-idle.js
+++ b/toolkit/components/extensions/ext-idle.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 XPCOMUtils.defineLazyServiceGetter(this, "idleService",
                                    "@mozilla.org/widget/idleservice;1",
                                    "nsIIdleService");
 
 // WeakMap[Extension -> Object]
 let observersMap = new WeakMap();
 
 const getIdleObserverInfo = (extension, context) => {
rename from toolkit/components/extensions/parent/ext-management.js
rename to toolkit/components/extensions/ext-management.js
--- a/toolkit/components/extensions/parent/ext-management.js
+++ b/toolkit/components/extensions/ext-management.js
@@ -1,12 +1,15 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 XPCOMUtils.defineLazyGetter(this, "strBundle", function() {
   return Services.strings.createBundle("chrome://global/locale/extensions.properties");
 });
 ChromeUtils.defineModuleGetter(this, "AddonManager",
                                "resource://gre/modules/AddonManager.jsm");
 XPCOMUtils.defineLazyServiceGetter(this, "promptService",
                                    "@mozilla.org/embedcomp/prompt-service;1",
                                    "nsIPromptService");
rename from toolkit/components/extensions/parent/ext-notifications.js
rename to toolkit/components/extensions/ext-notifications.js
--- a/toolkit/components/extensions/parent/ext-notifications.js
+++ b/toolkit/components/extensions/ext-notifications.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 const ToolkitModules = {};
 
 ChromeUtils.defineModuleGetter(ToolkitModules, "EventEmitter",
                                "resource://gre/modules/EventEmitter.jsm");
 
 var {
   ignoreEvent,
 } = ExtensionCommon;
rename from toolkit/components/extensions/parent/ext-permissions.js
rename to toolkit/components/extensions/ext-permissions.js
rename from toolkit/components/extensions/parent/ext-privacy.js
rename to toolkit/components/extensions/ext-privacy.js
rename from toolkit/components/extensions/parent/ext-protocolHandlers.js
rename to toolkit/components/extensions/ext-protocolHandlers.js
rename from toolkit/components/extensions/parent/ext-proxy.js
rename to toolkit/components/extensions/ext-proxy.js
--- a/toolkit/components/extensions/parent/ext-proxy.js
+++ b/toolkit/components/extensions/ext-proxy.js
@@ -1,14 +1,18 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et 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/. */
 
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 "use strict";
 
 ChromeUtils.defineModuleGetter(this, "ProxyScriptContext",
                                "resource://gre/modules/ProxyScriptContext.jsm");
 ChromeUtils.defineModuleGetter(this, "ProxyChannelFilter",
                                "resource://gre/modules/ProxyScriptContext.jsm");
 
 // WeakMap[Extension -> ProxyScriptContext]
rename from toolkit/components/extensions/parent/ext-runtime.js
rename to toolkit/components/extensions/ext-runtime.js
--- a/toolkit/components/extensions/parent/ext-runtime.js
+++ b/toolkit/components/extensions/ext-runtime.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 ChromeUtils.defineModuleGetter(this, "AddonManager",
                                "resource://gre/modules/AddonManager.jsm");
 ChromeUtils.defineModuleGetter(this, "AddonManagerPrivate",
                                "resource://gre/modules/AddonManager.jsm");
 ChromeUtils.defineModuleGetter(this, "ExtensionParent",
                                "resource://gre/modules/ExtensionParent.jsm");
 ChromeUtils.defineModuleGetter(this, "Services",
                                "resource://gre/modules/Services.jsm");
rename from toolkit/components/extensions/parent/ext-storage.js
rename to toolkit/components/extensions/ext-storage.js
--- a/toolkit/components/extensions/parent/ext-storage.js
+++ b/toolkit/components/extensions/ext-storage.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 XPCOMUtils.defineLazyModuleGetters(this, {
   AddonManagerPrivate: "resource://gre/modules/AddonManager.jsm",
   ExtensionStorage: "resource://gre/modules/ExtensionStorage.jsm",
   extensionStorageSync: "resource://gre/modules/ExtensionStorageSync.jsm",
   NativeManifests: "resource://gre/modules/NativeManifests.jsm",
 });
 
 var {
rename from toolkit/components/extensions/parent/ext-tabs-base.js
rename to toolkit/components/extensions/ext-tabs-base.js
rename from toolkit/components/extensions/parent/ext-theme.js
rename to toolkit/components/extensions/ext-theme.js
rename from toolkit/components/extensions/parent/ext-toolkit.js
rename to toolkit/components/extensions/ext-toolkit.js
--- a/toolkit/components/extensions/ext-toolkit.json
+++ b/toolkit/components/extensions/ext-toolkit.json
@@ -1,200 +1,200 @@
 {
   "manifest": {
     "schema": "chrome://extensions/content/schemas/extension_types.json",
     "scopes": []
   },
   "alarms": {
-    "url": "chrome://extensions/content/parent/ext-alarms.js",
+    "url": "chrome://extensions/content/ext-alarms.js",
     "schema": "chrome://extensions/content/schemas/alarms.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["alarms"]
     ]
   },
   "backgroundPage": {
-    "url": "chrome://extensions/content/parent/ext-backgroundPage.js",
+    "url": "chrome://extensions/content/ext-backgroundPage.js",
     "scopes": ["addon_parent"],
     "manifest": ["background"]
   },
   "browserSettings": {
-    "url": "chrome://extensions/content/parent/ext-browserSettings.js",
+    "url": "chrome://extensions/content/ext-browserSettings.js",
     "schema": "chrome://extensions/content/schemas/browser_settings.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["browserSettings"]
     ]
   },
   "clipboard": {
-    "url": "chrome://extensions/content/parent/ext-clipboard.js",
+    "url": "chrome://extensions/content/ext-clipboard.js",
     "schema": "chrome://extensions/content/schemas/clipboard.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["clipboard"]
     ]
   },
   "contentScripts": {
-    "url": "chrome://extensions/content/parent/ext-contentScripts.js",
+    "url": "chrome://extensions/content/ext-contentScripts.js",
     "schema": "chrome://extensions/content/schemas/content_scripts.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["contentScripts"]
     ]
   },
   "contextualIdentities": {
-    "url": "chrome://extensions/content/parent/ext-contextualIdentities.js",
+    "url": "chrome://extensions/content/ext-contextualIdentities.js",
     "schema": "chrome://extensions/content/schemas/contextual_identities.json",
     "scopes": ["addon_parent"],
     "events": ["startup"],
     "permissions": ["contextualIdentities"],
     "paths": [
       ["contextualIdentities"]
     ]
   },
   "cookies": {
-    "url": "chrome://extensions/content/parent/ext-cookies.js",
+    "url": "chrome://extensions/content/ext-cookies.js",
     "schema": "chrome://extensions/content/schemas/cookies.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["cookies"]
     ]
   },
   "dns": {
-    "url": "chrome://extensions/content/parent/ext-dns.js",
+    "url": "chrome://extensions/content/ext-dns.js",
     "schema": "chrome://extensions/content/schemas/dns.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["dns"]
     ]
   },
   "downloads": {
-    "url": "chrome://extensions/content/parent/ext-downloads.js",
+    "url": "chrome://extensions/content/ext-downloads.js",
     "schema": "chrome://extensions/content/schemas/downloads.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["downloads"]
     ]
   },
   "extension": {
-    "url": "chrome://extensions/content/parent/ext-extension.js",
+    "url": "chrome://extensions/content/ext-extension.js",
     "schema": "chrome://extensions/content/schemas/extension.json",
     "scopes": ["addon_parent", "content_child"],
     "paths": [
       ["extension"]
     ]
   },
   "i18n": {
-    "url": "chrome://extensions/content/parent/ext-i18n.js",
+    "url": "chrome://extensions/content/ext-i18n.js",
     "schema": "chrome://extensions/content/schemas/i18n.json",
     "scopes": ["addon_parent", "content_child", "devtools_child"],
     "paths": [
       ["i18n"]
     ]
   },
   "idle": {
-    "url": "chrome://extensions/content/parent/ext-idle.js",
+    "url": "chrome://extensions/content/ext-idle.js",
     "schema": "chrome://extensions/content/schemas/idle.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["idle"]
     ]
   },
   "management": {
-    "url": "chrome://extensions/content/parent/ext-management.js",
+    "url": "chrome://extensions/content/ext-management.js",
     "schema": "chrome://extensions/content/schemas/management.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["management"]
     ]
   },
   "notifications": {
-    "url": "chrome://extensions/content/parent/ext-notifications.js",
+    "url": "chrome://extensions/content/ext-notifications.js",
     "schema": "chrome://extensions/content/schemas/notifications.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["notifications"]
     ]
   },
   "permissions": {
-    "url": "chrome://extensions/content/parent/ext-permissions.js",
+    "url": "chrome://extensions/content/ext-permissions.js",
     "schema": "chrome://extensions/content/schemas/permissions.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["permissions"]
     ]
   },
   "privacy": {
-    "url": "chrome://extensions/content/parent/ext-privacy.js",
+    "url": "chrome://extensions/content/ext-privacy.js",
     "schema": "chrome://extensions/content/schemas/privacy.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["privacy"]
     ]
   },
   "protocolHandlers": {
-    "url": "chrome://extensions/content/parent/ext-protocolHandlers.js",
+    "url": "chrome://extensions/content/ext-protocolHandlers.js",
     "schema": "chrome://extensions/content/schemas/extension_protocol_handlers.json",
     "scopes": ["addon_parent"],
     "manifest": ["protocol_handlers"]
   },
   "proxy": {
-    "url": "chrome://extensions/content/parent/ext-proxy.js",
+    "url": "chrome://extensions/content/ext-proxy.js",
     "schema": "chrome://extensions/content/schemas/proxy.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["proxy"]
     ]
   },
   "runtime": {
-    "url": "chrome://extensions/content/parent/ext-runtime.js",
+    "url": "chrome://extensions/content/ext-runtime.js",
     "schema": "chrome://extensions/content/schemas/runtime.json",
     "scopes": ["addon_parent", "content_parent", "devtools_parent"],
     "paths": [
       ["runtime"]
     ]
   },
   "storage": {
-    "url": "chrome://extensions/content/parent/ext-storage.js",
+    "url": "chrome://extensions/content/ext-storage.js",
     "schema": "chrome://extensions/content/schemas/storage.json",
     "scopes": ["addon_parent", "content_parent", "devtools_parent"],
     "paths": [
       ["storage"]
     ]
   },
   "test": {
     "schema": "chrome://extensions/content/schemas/test.json",
     "scopes": ["content_child"]
   },
   "theme": {
-    "url": "chrome://extensions/content/parent/ext-theme.js",
+    "url": "chrome://extensions/content/ext-theme.js",
     "schema": "chrome://extensions/content/schemas/theme.json",
     "scopes": ["addon_parent"],
     "manifest": ["theme"],
     "paths": [
       ["theme"]
     ]
   },
   "topSites": {
-    "url": "chrome://extensions/content/parent/ext-topSites.js",
+    "url": "chrome://extensions/content/ext-topSites.js",
     "schema": "chrome://extensions/content/schemas/top_sites.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["topSites"]
     ]
   },
   "webNavigation": {
-    "url": "chrome://extensions/content/parent/ext-webNavigation.js",
+    "url": "chrome://extensions/content/ext-webNavigation.js",
     "schema": "chrome://extensions/content/schemas/web_navigation.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["webNavigation"]
     ]
   },
   "webRequest": {
-    "url": "chrome://extensions/content/parent/ext-webRequest.js",
+    "url": "chrome://extensions/content/ext-webRequest.js",
     "schema": "chrome://extensions/content/schemas/web_request.json",
     "scopes": ["addon_parent"],
     "paths": [
       ["webRequest"]
     ]
   }
 }
rename from toolkit/components/extensions/parent/ext-topSites.js
rename to toolkit/components/extensions/ext-topSites.js
rename from toolkit/components/extensions/parent/ext-webNavigation.js
rename to toolkit/components/extensions/ext-webNavigation.js
--- a/toolkit/components/extensions/parent/ext-webNavigation.js
+++ b/toolkit/components/extensions/ext-webNavigation.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 // This file expectes tabTracker to be defined in the global scope (e.g.
 // by ext-utils.js).
 /* global tabTracker */
 
 ChromeUtils.defineModuleGetter(this, "MatchURLFilters",
                                "resource://gre/modules/MatchURLFilters.jsm");
 ChromeUtils.defineModuleGetter(this, "WebNavigation",
                                "resource://gre/modules/WebNavigation.jsm");
rename from toolkit/components/extensions/parent/ext-webRequest.js
rename to toolkit/components/extensions/ext-webRequest.js
--- a/toolkit/components/extensions/parent/ext-webRequest.js
+++ b/toolkit/components/extensions/ext-webRequest.js
@@ -1,10 +1,13 @@
 "use strict";
 
+// The ext-* files are imported into the same scopes.
+/* import-globals-from ext-toolkit.js */
+
 // This file expectes tabTracker to be defined in the global scope (e.g.
 // by ext-utils.js).
 /* global tabTracker */
 
 ChromeUtils.defineModuleGetter(this, "WebRequest",
                                "resource://gre/modules/WebRequest.jsm");
 
 // EventManager-like class specifically for WebRequest. Inherits from
--- a/toolkit/components/extensions/extensions-toolkit.manifest
+++ b/toolkit/components/extensions/extensions-toolkit.manifest
@@ -1,17 +1,17 @@
 # scripts
 category webextension-modules toolkit chrome://extensions/content/ext-toolkit.json
 
-category webextension-scripts a-toolkit chrome://extensions/content/parent/ext-toolkit.js
-category webextension-scripts b-tabs-base chrome://extensions/content/parent/ext-tabs-base.js
+category webextension-scripts a-toolkit chrome://extensions/content/ext-toolkit.js
+category webextension-scripts b-tabs-base chrome://extensions/content/ext-tabs-base.js
 
-category webextension-scripts-content toolkit chrome://extensions/content/child/ext-toolkit.js
-category webextension-scripts-devtools toolkit chrome://extensions/content/child/ext-toolkit.js
-category webextension-scripts-addon toolkit chrome://extensions/content/child/ext-toolkit.js
+category webextension-scripts-content toolkit chrome://extensions/content/ext-c-toolkit.js
+category webextension-scripts-devtools toolkit chrome://extensions/content/ext-c-toolkit.js
+category webextension-scripts-addon toolkit chrome://extensions/content/ext-c-toolkit.js
 
 category webextension-schemas events chrome://extensions/content/schemas/events.json
 category webextension-schemas native_manifest chrome://extensions/content/schemas/native_manifest.json
 category webextension-schemas types chrome://extensions/content/schemas/types.json
 
 
 component {21f9819e-4cdf-49f9-85a0-850af91a5058} extension-process-script.js
 contract @mozilla.org/webextensions/extension-process-script;1 {21f9819e-4cdf-49f9-85a0-850af91a5058}
--- a/toolkit/components/extensions/jar.mn
+++ b/toolkit/components/extensions/jar.mn
@@ -1,49 +1,51 @@
 # 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/.
 
 toolkit.jar:
 % content extensions %content/extensions/
     content/extensions/dummy.xul
+    content/extensions/ext-alarms.js
+    content/extensions/ext-backgroundPage.js
     content/extensions/ext-browser-content.js
-    content/extensions/ext-toolkit.json
-    content/extensions/parent/ext-alarms.js (parent/ext-alarms.js)
-    content/extensions/parent/ext-backgroundPage.js (parent/ext-backgroundPage.js)
-    content/extensions/parent/ext-browserSettings.js (parent/ext-browserSettings.js)
-    content/extensions/parent/ext-contentScripts.js (parent/ext-contentScripts.js)
-    content/extensions/parent/ext-contextualIdentities.js (parent/ext-contextualIdentities.js)
-    content/extensions/parent/ext-clipboard.js (parent/ext-clipboard.js)
-    content/extensions/parent/ext-cookies.js (parent/ext-cookies.js)
-    content/extensions/parent/ext-dns.js (parent/ext-dns.js)
-    content/extensions/parent/ext-downloads.js (parent/ext-downloads.js)
-    content/extensions/parent/ext-extension.js (parent/ext-extension.js)
-    content/extensions/parent/ext-i18n.js (parent/ext-i18n.js)
+    content/extensions/ext-browserSettings.js
+    content/extensions/ext-contentScripts.js
+    content/extensions/ext-contextualIdentities.js
+    content/extensions/ext-clipboard.js
+    content/extensions/ext-cookies.js
+    content/extensions/ext-dns.js
+    content/extensions/ext-downloads.js
+    content/extensions/ext-extension.js
+    content/extensions/ext-i18n.js
 #ifndef ANDROID
-    content/extensions/parent/ext-identity.js (parent/ext-identity.js)
+    content/extensions/ext-identity.js
 #endif
-    content/extensions/parent/ext-idle.js (parent/ext-idle.js)
-    content/extensions/parent/ext-management.js (parent/ext-management.js)
-    content/extensions/parent/ext-notifications.js (parent/ext-notifications.js)
-    content/extensions/parent/ext-permissions.js (parent/ext-permissions.js)
-    content/extensions/parent/ext-privacy.js (parent/ext-privacy.js)
-    content/extensions/parent/ext-protocolHandlers.js (parent/ext-protocolHandlers.js)
-    content/extensions/parent/ext-proxy.js (parent/ext-proxy.js)
-    content/extensions/parent/ext-runtime.js (parent/ext-runtime.js)
-    content/extensions/parent/ext-storage.js (parent/ext-storage.js)
-    content/extensions/parent/ext-tabs-base.js (parent/ext-tabs-base.js)
-    content/extensions/parent/ext-theme.js (parent/ext-theme.js)
-    content/extensions/parent/ext-toolkit.js (parent/ext-toolkit.js)
-    content/extensions/parent/ext-topSites.js (parent/ext-topSites.js)
-    content/extensions/parent/ext-webRequest.js (parent/ext-webRequest.js)
-    content/extensions/parent/ext-webNavigation.js (parent/ext-webNavigation.js)
-    content/extensions/child/ext-backgroundPage.js (child/ext-backgroundPage.js)
-    content/extensions/child/ext-contentScripts.js (child/ext-contentScripts.js)
-    content/extensions/child/ext-extension.js (child/ext-extension.js)
+    content/extensions/ext-idle.js
+    content/extensions/ext-management.js
+    content/extensions/ext-notifications.js
+    content/extensions/ext-permissions.js
+    content/extensions/ext-privacy.js
+    content/extensions/ext-protocolHandlers.js
+    content/extensions/ext-proxy.js
+    content/extensions/ext-runtime.js
+    content/extensions/ext-storage.js
+    content/extensions/ext-tabs-base.js
+    content/extensions/ext-theme.js
+    content/extensions/ext-toolkit.js
+    content/extensions/ext-toolkit.json
+    content/extensions/ext-topSites.js
+    content/extensions/ext-webRequest.js
+    content/extensions/ext-webNavigation.js
+    # Below is a separate group using the naming convention ext-c-*.js that run
+    # in the child process.
+    content/extensions/ext-c-backgroundPage.js
+    content/extensions/ext-c-contentScripts.js
+    content/extensions/ext-c-extension.js
 #ifndef ANDROID
-    content/extensions/child/ext-identity.js (child/ext-identity.js)
+    content/extensions/ext-c-identity.js
 #endif
-    content/extensions/child/ext-runtime.js (child/ext-runtime.js)
-    content/extensions/child/ext-storage.js (child/ext-storage.js)
-    content/extensions/child/ext-test.js (child/ext-test.js)
-    content/extensions/child/ext-toolkit.js (child/ext-toolkit.js)
-    content/extensions/child/ext-webRequest.js (child/ext-webRequest.js)
+    content/extensions/ext-c-runtime.js
+    content/extensions/ext-c-storage.js
+    content/extensions/ext-c-test.js
+    content/extensions/ext-c-toolkit.js
+    content/extensions/ext-c-webRequest.js
deleted file mode 100644
--- a/toolkit/components/extensions/parent/.eslintrc.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-module.exports = {
-  "globals": {
-    "CONTAINER_STORE": true,
-    "DEFAULT_STORE": true,
-    "EventEmitter": true,
-    "EventManager": true,
-    "InputEventManager": true,
-    "PRIVATE_STORE": true,
-    "TabBase": true,
-    "TabManagerBase": true,
-    "TabTrackerBase": true,
-    "WindowBase": true,
-    "WindowManagerBase": true,
-    "WindowTrackerBase": true,
-    "getContainerForCookieStoreId": true,
-    "getCookieStoreIdForContainer": true,
-    "getCookieStoreIdForTab": true,
-    "isContainerCookieStoreId": true,
-    "isDefaultCookieStoreId": true,
-    "isPrivateCookieStoreId": true,
-    "isValidCookieStoreId": true,
-  },
-};