mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
Backed out changeset 8e4dcdb0f429 (bug 1431533
) for ESlint failure on test-no-single-arg-cu-import.js on a CLOSED TREE
This commit is contained in:
parent
d534e6532f
commit
d423a1aef8
@ -27,7 +27,6 @@ module.exports = {
|
||||
// subdirectories of this directory.
|
||||
"mozilla/reject-some-requires": ["error", "^devtools/shared/platform/(chome|content)/"],
|
||||
"mozilla/var-only-at-top-level": "error",
|
||||
"mozilla/use-chromeutils-import": ["error", {allowCu: true}],
|
||||
|
||||
// Rules from the React plugin
|
||||
"react/display-name": "error",
|
||||
|
@ -256,13 +256,6 @@ object is assigned to another variable e.g.:
|
||||
var b = gBrowser;
|
||||
b.content // Would not be detected as a CPOW.
|
||||
|
||||
use-chromeutils-import
|
||||
----------------------
|
||||
|
||||
Require use of ``ChromeUtils.import`` and ``ChromeUtils.defineModuleGetter``
|
||||
rather than ``Components.utils.import`` and
|
||||
``XPCOMUtils.defineLazyModuleGetter``.
|
||||
|
||||
use-default-preference-values
|
||||
---------------
|
||||
|
||||
|
@ -169,7 +169,6 @@ module.exports = {
|
||||
"mozilla/no-import-into-var-and-global": "error",
|
||||
"mozilla/no-useless-parameters": "error",
|
||||
"mozilla/no-useless-removeEventListener": "error",
|
||||
"mozilla/use-chromeutils-import": "error",
|
||||
"mozilla/use-default-preference-values": "error",
|
||||
"mozilla/use-ownerGlobal": "error",
|
||||
"mozilla/use-services": "error",
|
||||
|
@ -23,7 +23,6 @@ const callExpressionDefinitions = [
|
||||
/^loader\.lazyRequireGetter\(this, "(\w+)"/,
|
||||
/^XPCOMUtils\.defineLazyGetter\(this, "(\w+)"/,
|
||||
/^XPCOMUtils\.defineLazyModuleGetter\(this, "(\w+)"/,
|
||||
/^ChromeUtils\.defineModuleGetter\(this, "(\w+)"/,
|
||||
/^XPCOMUtils\.defineLazyPreferenceGetter\(this, "(\w+)"/,
|
||||
/^XPCOMUtils\.defineLazyScriptGetter\(this, "(\w+)"/,
|
||||
/^XPCOMUtils\.defineLazyServiceGetter\(this, "(\w+)"/,
|
||||
|
@ -57,7 +57,6 @@ module.exports = {
|
||||
"reject-importGlobalProperties":
|
||||
require("../lib/rules/reject-importGlobalProperties"),
|
||||
"reject-some-requires": require("../lib/rules/reject-some-requires"),
|
||||
"use-chromeutils-import": require("../lib/rules/use-chromeutils-import"),
|
||||
"use-default-preference-values":
|
||||
require("../lib/rules/use-default-preference-values"),
|
||||
"use-ownerGlobal": require("../lib/rules/use-ownerGlobal"),
|
||||
@ -84,7 +83,6 @@ module.exports = {
|
||||
"no-useless-removeEventListener": "off",
|
||||
"reject-importGlobalProperties": "off",
|
||||
"reject-some-requires": "off",
|
||||
"use-chromeutils-import": "off",
|
||||
"use-default-preference-values": "off",
|
||||
"use-ownerGlobal": "off",
|
||||
"use-services": "off",
|
||||
|
@ -1,79 +0,0 @@
|
||||
/**
|
||||
* @fileoverview Reject use of Cu.import and XPCOMUtils.defineLazyModuleGetter
|
||||
* in favor of ChromeUtils.
|
||||
*
|
||||
* 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";
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Rule Definition
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
function isIdentifier(node, id) {
|
||||
return node && node.type === "Identifier" && node.name === id;
|
||||
}
|
||||
|
||||
function isMemberExpression(node, object, member) {
|
||||
return (node.type === "MemberExpression" &&
|
||||
isIdentifier(node.object, object) &&
|
||||
isIdentifier(node.property, member));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
meta: {
|
||||
schema: [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"allowCu": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
],
|
||||
fixable: "code"
|
||||
},
|
||||
|
||||
create(context) {
|
||||
return {
|
||||
"CallExpression": function(node) {
|
||||
if (node.callee.type !== "MemberExpression") {
|
||||
return;
|
||||
}
|
||||
|
||||
let {allowCu} = context.options[0] || {};
|
||||
let {callee} = node;
|
||||
|
||||
// Is the expression starting with `Cu` or `Components.utils`?
|
||||
if (((!allowCu && isIdentifier(callee.object, "Cu")) ||
|
||||
isMemberExpression(callee.object, "Components", "utils")) &&
|
||||
isIdentifier(callee.property, "import")) {
|
||||
context.report({
|
||||
node,
|
||||
message: "Please use ChromeUtils.import instead of Cu.import",
|
||||
fix(fixer) {
|
||||
return fixer.replaceText(callee, "ChromeUtils.import");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (isMemberExpression(callee, "XPCOMUtils", "defineLazyModuleGetter") &&
|
||||
node.arguments.length < 4) {
|
||||
context.report({
|
||||
node,
|
||||
message: ("Please use ChromeUtils.defineModuleGetter instead of " +
|
||||
"XPCOMUtils.defineLazyModuleGetter"),
|
||||
fix(fixer) {
|
||||
return fixer.replaceText(callee, "ChromeUtils.defineModuleGetter");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
@ -1,80 +0,0 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Requirements
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
var rule = require("../lib/rules/use-chromeutils-import");
|
||||
var RuleTester = require("eslint/lib/testers/rule-tester");
|
||||
|
||||
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Tests
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
function callError(message) {
|
||||
return [{message, type: "CallExpression"}];
|
||||
}
|
||||
|
||||
const MESSAGE_IMPORT = "Please use ChromeUtils.import instead of Cu.import";
|
||||
const MESSAGE_DEFINE = ("Please use ChromeUtils.defineModuleGetter instead of " +
|
||||
"XPCOMUtils.defineLazyModuleGetter");
|
||||
|
||||
ruleTester.run("use-chromeutils-import", rule, {
|
||||
valid: [
|
||||
`ChromeUtils.import("resource://gre/modules/Service.jsm");`,
|
||||
`ChromeUtils.import("resource://gre/modules/Service.jsm", this);`,
|
||||
`ChromeUtils.defineModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Service.jsm");`,
|
||||
`XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Service.jsm",
|
||||
"Foo");`,
|
||||
`XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Service.jsm",
|
||||
undefined, preServicesLambda);`,
|
||||
{
|
||||
options: [{allowCu: true}],
|
||||
code: `Cu.import("resource://gre/modules/Service.jsm");`
|
||||
}
|
||||
],
|
||||
invalid: [
|
||||
{
|
||||
code: `Cu.import("resource://gre/modules/Services.jsm");`,
|
||||
output: `ChromeUtils.import("resource://gre/modules/Services.jsm");`,
|
||||
errors: callError(MESSAGE_IMPORT)
|
||||
},
|
||||
{
|
||||
code: `Cu.import("resource://gre/modules/Services.jsm", this);`,
|
||||
output: `ChromeUtils.import("resource://gre/modules/Services.jsm", this);`,
|
||||
errors: callError(MESSAGE_IMPORT)
|
||||
},
|
||||
{
|
||||
code: `Components.utils.import("resource://gre/modules/Services.jsm");`,
|
||||
output: `ChromeUtils.import("resource://gre/modules/Services.jsm");`,
|
||||
errors: callError(MESSAGE_IMPORT)
|
||||
},
|
||||
{
|
||||
code: `Components.utils.import("resource://gre/modules/Services.jsm");`,
|
||||
output: `ChromeUtils.import("resource://gre/modules/Services.jsm");`,
|
||||
errors: callError(MESSAGE_IMPORT)
|
||||
},
|
||||
{
|
||||
options: [{allowCu: true}],
|
||||
code: `Components.utils.import("resource://gre/modules/Services.jsm", this);`,
|
||||
output: `ChromeUtils.import("resource://gre/modules/Services.jsm", this);`,
|
||||
errors: callError(MESSAGE_IMPORT)
|
||||
},
|
||||
{
|
||||
code: `XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Services.jsm");`,
|
||||
output: `ChromeUtils.defineModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Services.jsm");`,
|
||||
errors: callError(MESSAGE_DEFINE)
|
||||
}
|
||||
]
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user