123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- "use strict";
- var fs = require("fs");
- var helpers = require("../helpers");
- var { getScriptGlobals } = require("./utils");
- const EXTRA_SCRIPTS = [
- "browser/base/content/nsContextMenu.js",
- "browser/components/downloads/content/downloads.js",
- "browser/components/downloads/content/indicator.js",
- "toolkit/content/customElements.js",
- "toolkit/content/editMenuOverlay.js",
- ];
- const extraDefinitions = [
-
-
-
- { name: "XPCOMUtils", writable: false },
- { name: "Task", writable: false },
- { name: "windowGlobalChild", writable: false },
-
-
-
-
- { name: "structuredClone", writable: false },
- ];
- const MAPPINGS = {
- "printUtils.js": "toolkit/components/printing/content/printUtils.js",
- "panelUI.js": "browser/components/customizableui/content/panelUI.js",
- "viewSourceUtils.js":
- "toolkit/components/viewsource/content/viewSourceUtils.js",
- "places-tree.js": "browser/components/places/content/places-tree.js",
- "places-menupopup.js":
- "browser/components/places/content/places-menupopup.js",
- };
- const globalScriptsRegExp = /^\s*Services.scriptloader.loadSubScript\(\"(.*?)\", this\);$/;
- function getGlobalScriptIncludes(scriptPath) {
- let fileData;
- try {
- fileData = fs.readFileSync(scriptPath, { encoding: "utf8" });
- } catch (ex) {
-
- return null;
- }
- fileData = fileData.split("\n");
- let result = [];
- for (let line of fileData) {
- let match = line.match(globalScriptsRegExp);
- if (match) {
- let sourceFile = match[1]
- .replace(
- "chrome://browser/content/search/",
- "browser/components/search/content/"
- )
- .replace(
- "chrome://browser/content/screenshots/",
- "browser/components/screenshots/content/"
- )
- .replace("chrome://browser/content/", "browser/base/content/")
- .replace("chrome://global/content/", "toolkit/content/");
- for (let mapping of Object.getOwnPropertyNames(MAPPINGS)) {
- if (sourceFile.includes(mapping)) {
- sourceFile = MAPPINGS[mapping];
- }
- }
- result.push(sourceFile);
- }
- }
- return result;
- }
- function getGlobalScripts() {
- let results = [];
- for (let scriptPath of helpers.globalScriptPaths) {
- results = results.concat(getGlobalScriptIncludes(scriptPath));
- }
- return results;
- }
- module.exports = getScriptGlobals(
- "browser-window",
- getGlobalScripts().concat(EXTRA_SCRIPTS),
- extraDefinitions,
- {
- browserjsScripts: getGlobalScripts().concat(EXTRA_SCRIPTS),
- }
- );
|