| Index: Source/devtools/front_end/CSSStyleModel.js
|
| diff --git a/Source/devtools/front_end/CSSStyleModel.js b/Source/devtools/front_end/CSSStyleModel.js
|
| index 3b498de1ef125a5ded82cd23da522dcc7f24f98b..bafeb9f127fbe37f16bdfd3b74e18cbe8770312e 100644
|
| --- a/Source/devtools/front_end/CSSStyleModel.js
|
| +++ b/Source/devtools/front_end/CSSStyleModel.js
|
| @@ -281,13 +281,17 @@ WebInspector.CSSStyleModel.prototype = {
|
| },
|
|
|
| /**
|
| - * @param {!DOMAgent.NodeId} nodeId
|
| + * @param {!CSSAgent.StyleSheetId} styleSheetId
|
| + * @param {!WebInspector.DOMNode} node
|
| * @param {string} selector
|
| * @param {function(!WebInspector.CSSRule)} successCallback
|
| * @param {function()} failureCallback
|
| */
|
| - addRule: function(nodeId, selector, successCallback, failureCallback)
|
| + addRule: function(styleSheetId, node, selector, successCallback, failureCallback)
|
| {
|
| + this._pendingCommandsMajorState.push(true);
|
| + CSSAgent.addRule(styleSheetId, selector, callback.bind(this));
|
| +
|
| /**
|
| * @param {?Protocol.Error} error
|
| * @param {!CSSAgent.CSSRule} rulePayload
|
| @@ -301,12 +305,42 @@ WebInspector.CSSStyleModel.prototype = {
|
| failureCallback();
|
| } else {
|
| WebInspector.domAgent.markUndoableState();
|
| - this._computeMatchingSelectors(rulePayload, nodeId, successCallback, failureCallback);
|
| + this._computeMatchingSelectors(rulePayload, node.id, successCallback, failureCallback);
|
| }
|
| }
|
| + },
|
|
|
| - this._pendingCommandsMajorState.push(true);
|
| - CSSAgent.addRule(nodeId, selector, callback.bind(this));
|
| + /**
|
| + * @param {!WebInspector.DOMNode} node
|
| + * @param {function(?WebInspector.CSSStyleSheetHeader)} callback
|
| + */
|
| + requestViaInspectorStylesheet: function(node, callback)
|
| + {
|
| + var frameId = node.frameId() || WebInspector.resourceTreeModel.mainFrame.id;
|
| + for (var styleSheetId in this._styleSheetIdToHeader) {
|
| + var styleSheetHeader = this._styleSheetIdToHeader[styleSheetId];
|
| + if (styleSheetHeader.frameId === frameId && styleSheetHeader.isViaInspector()) {
|
| + callback(styleSheetHeader);
|
| + return;
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * @this {WebInspector.CSSStyleModel}
|
| + * @param {?Protocol.Error} error
|
| + * @param {!CSSAgent.StyleSheetId} styleSheetId
|
| + */
|
| + function innerCallback(error, styleSheetId)
|
| + {
|
| + if (error) {
|
| + console.error(error);
|
| + callback(null);
|
| + }
|
| +
|
| + callback(this._styleSheetIdToHeader[styleSheetId]);
|
| + }
|
| +
|
| + CSSAgent.createStyleSheet(frameId, innerCallback.bind(this));
|
| },
|
|
|
| mediaQueryResultChanged: function()
|
| @@ -1265,7 +1299,7 @@ WebInspector.CSSStyleSheetHeader.prototype = {
|
| */
|
| resourceURL: function()
|
| {
|
| - return this.origin === "inspector" ? this._viaInspectorResourceURL() : this.sourceURL;
|
| + return this.isViaInspector() ? this._viaInspectorResourceURL() : this.sourceURL;
|
| },
|
|
|
| /**
|
| @@ -1425,6 +1459,15 @@ WebInspector.CSSStyleSheetHeader.prototype = {
|
| newText += "\n/*# sourceURL=" + this.sourceURL + " */";
|
| CSSAgent.setStyleSheetText(this.id, newText, callback);
|
| },
|
| +
|
| + /**
|
| + * @return {boolean}
|
| + */
|
| + isViaInspector: function()
|
| + {
|
| + return this.origin === "inspector";
|
| + },
|
| +
|
| }
|
|
|
| /**
|
|
|