Bug 1292574 - make CSS a global rather than a module in devtools loader; r?gregtatum
MozReview-Commit-ID: 5RYwDAW4wxt
--- a/devtools/.eslintrc
+++ b/devtools/.eslintrc
@@ -5,16 +5,17 @@
"globals": {
"atob": true,
"btoa": true,
"Components": true,
"CSSRule": true,
"clearInterval": true,
"clearTimeout": true,
"console": true,
+ "CSS": true,
"DOMParser": true,
"dump": true,
"exports": true,
"isWorker": true,
"loader": true,
"module": true,
"reportError": true,
"require": true,
--- a/devtools/client/inspector/inspector-panel.js
+++ b/devtools/client/inspector/inspector-panel.js
@@ -20,18 +20,16 @@ var {KeyShortcuts} = require("devtools/c
var {Task} = require("devtools/shared/task");
const {initCssProperties} = require("devtools/shared/fronts/css-properties");
const nodeConstants = require("devtools/shared/dom-node-constants");
const Telemetry = require("devtools/client/shared/telemetry");
const Menu = require("devtools/client/framework/menu");
const MenuItem = require("devtools/client/framework/menu-item");
-const CSS = require("CSS");
-
const {CommandUtils} = require("devtools/client/shared/developer-toolbar");
const {ComputedViewTool} = require("devtools/client/inspector/computed/computed");
const {FontInspector} = require("devtools/client/inspector/fonts/fonts");
const {HTMLBreadcrumbs} = require("devtools/client/inspector/breadcrumbs");
const {InspectorSearch} = require("devtools/client/inspector/inspector-search");
const {MarkupView} = require("devtools/client/inspector/markup/markup");
const {RuleViewTool} = require("devtools/client/inspector/rules/rules");
const {ToolSidebar} = require("devtools/client/inspector/toolsidebar");
--- a/devtools/client/inspector/markup/markup.js
+++ b/devtools/client/inspector/markup/markup.js
@@ -56,17 +56,16 @@ const {KeyShortcuts} = require("devtools
const {template} = require("devtools/shared/gcli/templater");
const nodeConstants = require("devtools/shared/dom-node-constants");
const nodeFilterConstants = require("devtools/shared/dom-node-filter-constants");
/* eslint-disable mozilla/reject-some-requires */
const {XPCOMUtils} = require("resource://gre/modules/XPCOMUtils.jsm");
/* eslint-enable mozilla/reject-some-requires */
const {getCssProperties} = require("devtools/shared/fronts/css-properties");
-const CSS = require("CSS");
const {AutocompletePopup} = require("devtools/client/shared/autocomplete-popup");
XPCOMUtils.defineLazyModuleGetter(this, "PluralForm",
"resource://gre/modules/PluralForm.jsm");
/**
* Vocabulary for the purposes of this file:
*
--- a/devtools/server/actors/inspector.js
+++ b/devtools/server/actors/inspector.js
@@ -71,18 +71,16 @@ const {
isNativeAnonymous,
isXBLAnonymous,
isShadowAnonymous,
getFrameElement
} = require("devtools/shared/layout/utils");
const {getLayoutChangesObserver, releaseLayoutChangesObserver} = require("devtools/server/actors/layout");
const nodeFilterConstants = require("devtools/shared/dom-node-filter-constants");
-loader.lazyRequireGetter(this, "CSS", "CSS");
-
const {EventParsers} = require("devtools/server/event-parsers");
const {nodeSpec, nodeListSpec, walkerSpec, inspectorSpec} = require("devtools/shared/specs/inspector");
const FONT_FAMILY_PREVIEW_TEXT = "The quick brown fox jumps over the lazy dog";
const FONT_FAMILY_PREVIEW_TEXT_SIZE = 20;
const PSEUDO_CLASSES = [":hover", ":active", ":focus"];
const HIDDEN_CLASS = "__fx-devtools-hide-shortcut__";
const XHTML_NS = "http://www.w3.org/1999/xhtml";
--- a/devtools/server/actors/styles.js
+++ b/devtools/server/actors/styles.js
@@ -13,17 +13,16 @@ const {parseDeclarations} = require("dev
const {isCssPropertyKnown} = require("devtools/server/actors/css-properties");
const {Task} = require("devtools/shared/task");
const events = require("sdk/event/core");
// This will also add the "stylesheet" actor type for protocol.js to recognize
const {UPDATE_PRESERVING_RULES, UPDATE_GENERAL} = require("devtools/server/actors/stylesheets");
const {pageStyleSpec, styleRuleSpec, ELEMENT_STYLE} = require("devtools/shared/specs/styles");
-loader.lazyRequireGetter(this, "CSS", "CSS");
loader.lazyGetter(this, "CssLogic", () => require("devtools/server/css-logic").CssLogic);
loader.lazyGetter(this, "SharedCssLogic", () => require("devtools/shared/inspector/css-logic"));
loader.lazyGetter(this, "DOMUtils", () => Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils));
loader.lazyGetter(this, "PSEUDO_ELEMENTS", () => {
return DOMUtils.getCSSPseudoElementNames();
});
--- a/devtools/server/css-logic.js
+++ b/devtools/server/css-logic.js
@@ -30,20 +30,16 @@
"use strict";
const { Cc, Ci, Cu } = require("chrome");
const DevToolsUtils = require("devtools/shared/DevToolsUtils");
const { getRootBindingParent } = require("devtools/shared/layout/utils");
const nodeConstants = require("devtools/shared/dom-node-constants");
const {l10n, isContentStylesheet, shortSource, FILTER, STATUS} = require("devtools/shared/inspector/css-logic");
-// This should be ok because none of the functions that use this should be used
-// on the worker thread, where Cu is not available.
-loader.lazyRequireGetter(this, "CSS", "CSS");
-
loader.lazyRequireGetter(this, "CSSLexer", "devtools/shared/css-lexer");
/**
* @param {function} isInherited A function that determines if the CSS property
* is inherited.
*/
function CssLogic(isInherited) {
// The cache of examined CSS properties.
--- a/devtools/shared/builtin-modules.js
+++ b/devtools/shared/builtin-modules.js
@@ -212,23 +212,16 @@ defineLazyGetter(exports.modules, "index
{wantGlobalProperties: ["indexedDB"]});
return sandbox.indexedDB;
} catch (e) {
return {};
}
});
-defineLazyGetter(exports.modules, "CSS", () => {
- let sandbox
- = Cu.Sandbox(CC("@mozilla.org/systemprincipal;1", "nsIPrincipal")(),
- {wantGlobalProperties: ["CSS"]});
- return sandbox.CSS;
-});
-
defineLazyGetter(exports.modules, "FileReader", () => {
let sandbox
= Cu.Sandbox(CC("@mozilla.org/systemprincipal;1", "nsIPrincipal")(),
{wantGlobalProperties: ["FileReader"]});
return sandbox.FileReader;
});
// List of all custom globals exposed to devtools modules.
@@ -288,8 +281,14 @@ defineLazyGetter(globals, "clearInterval
});
defineLazyGetter(globals, "setInterval", () => {
return Cu.import("resource://gre/modules/Timer.jsm", {}).setInterval;
});
defineLazyGetter(globals, "CSSRule", () => Ci.nsIDOMCSSRule);
defineLazyGetter(globals, "DOMParser", () => {
return CC("@mozilla.org/xmlextras/domparser;1", "nsIDOMParser");
});
+defineLazyGetter(globals, "CSS", () => {
+ let sandbox
+ = Cu.Sandbox(CC("@mozilla.org/systemprincipal;1", "nsIPrincipal")(),
+ {wantGlobalProperties: ["CSS"]});
+ return sandbox.CSS;
+});
--- a/devtools/shared/css-parsing-utils.js
+++ b/devtools/shared/css-parsing-utils.js
@@ -9,17 +9,16 @@
// parseDeclarations - parse a CSS rule into declarations
// RuleRewriter - rewrite CSS rule text
// parsePseudoClassesAndAttributes - parse selector and extract
// pseudo-classes
// parseSingleValue - parse a single CSS property value
"use strict";
-loader.lazyRequireGetter(this, "CSS", "CSS");
const promise = require("promise");
const {getCSSLexer} = require("devtools/shared/css-lexer");
const {Task} = require("devtools/shared/task");
const SELECTOR_ATTRIBUTE = exports.SELECTOR_ATTRIBUTE = 1;
const SELECTOR_ELEMENT = exports.SELECTOR_ELEMENT = 2;
const SELECTOR_PSEUDO_CLASS = exports.SELECTOR_PSEUDO_CLASS = 3;
--- a/devtools/shared/inspector/css-logic.js
+++ b/devtools/shared/inspector/css-logic.js
@@ -37,20 +37,16 @@
* helps them understand:
* - why their expectations may not have been fulfilled
* - how browsers process CSS
* @constructor
*/
const Services = require("Services");
-// This should be ok because none of the functions that use this should be used
-// on the worker thread, where Cu is not available.
-loader.lazyRequireGetter(this, "CSS", "CSS");
-
loader.lazyRequireGetter(this, "CSSLexer", "devtools/shared/css-lexer");
/**
* Special values for filter, in addition to an href these values can be used
*/
exports.FILTER = {
// show properties for all user style sheets.
USER: "user",