123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /**
- * @fileoverview For ContentTask.spawn, this will automatically declare the
- * frame script variables in the global scope.
- * Note: due to the way ESLint works, it appears it is only
- * easy to declare these variables on a file-global scope, rather
- * than function global.
- *
- * 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";
- var helpers = require("../helpers");
- var frameScriptEnv = require("../environments/frame-script");
- var sandboxEnv = require("../environments/special-powers-sandbox");
- module.exports = {
- meta: {
- docs: {
- url:
- "https://firefox-source-docs.mozilla.org/code-quality/lint/linters/eslint-plugin-mozilla/import-content-task-globals.html",
- },
- type: "problem",
- },
- create(context) {
- return {
- "CallExpression[callee.object.name='ContentTask'][callee.property.name='spawn']": function(
- node
- ) {
- // testing/mochitest/BrowserTestUtils/content/content-task.js
- // This script is loaded as a sub script into a frame script.
- for (let [name, value] of Object.entries(frameScriptEnv.globals)) {
- helpers.addVarToScope(name, context.getScope(), value);
- }
- },
- "CallExpression[callee.object.name='SpecialPowers'][callee.property.name='spawn']": function(
- node
- ) {
- for (let [name, value] of Object.entries(sandboxEnv.globals)) {
- helpers.addVarToScope(name, context.getScope(), value);
- }
- let globals = [
- // testing/specialpowers/content/SpecialPowersChild.sys.mjs
- // SpecialPowersChild._spawnTask
- "SpecialPowers",
- "ContentTaskUtils",
- "content",
- "docShell",
- ];
- for (let global of globals) {
- helpers.addVarToScope(global, context.getScope(), false);
- }
- },
- "CallExpression[callee.object.name='SpecialPowers'][callee.property.name='spawnChrome']": function(
- node
- ) {
- for (let [name, value] of Object.entries(sandboxEnv.globals)) {
- helpers.addVarToScope(name, context.getScope(), value);
- }
- let globals = [
- // testing/specialpowers/content/SpecialPowersParent.sys.mjs
- // SpecialPowersParent._spawnChrome
- "windowGlobalParent",
- "browsingContext",
- ];
- for (let global of globals) {
- helpers.addVarToScope(global, context.getScope(), false);
- }
- },
- };
- },
- };
|