Index: Source/devtools/front_end/CSSStyleModel.js |
diff --git a/Source/devtools/front_end/CSSStyleModel.js b/Source/devtools/front_end/CSSStyleModel.js |
index c0c37d4fc976a3820d1db2dd260e1f3f348d0c22..2bc2333ef636e6aad5b30f34c9ab835d3de20334 100644 |
--- a/Source/devtools/front_end/CSSStyleModel.js |
+++ b/Source/devtools/front_end/CSSStyleModel.js |
@@ -46,6 +46,8 @@ WebInspector.CSSStyleModel = function(target) |
this._resetStyleSheets(); |
} |
+WebInspector.CSSStyleModel.PseudoStatePropertyName = "pseudoState"; |
+ |
/** |
* @param {!WebInspector.CSSStyleModel} cssModel |
* @param {!Array.<!CSSAgent.RuleMatch>|undefined} matchArray |
@@ -215,16 +217,6 @@ WebInspector.CSSStyleModel.prototype = { |
}, |
/** |
- * @param {!DOMAgent.NodeId} nodeId |
- * @param {?Array.<string>|undefined} forcedPseudoClasses |
- * @param {function()=} userCallback |
- */ |
- forcePseudoState: function(nodeId, forcedPseudoClasses, userCallback) |
- { |
- CSSAgent.forcePseudoState(nodeId, forcedPseudoClasses || [], userCallback); |
- }, |
- |
- /** |
* @param {!CSSAgent.CSSRuleId} ruleId |
* @param {!DOMAgent.NodeId} nodeId |
* @param {string} newSelector |
@@ -573,6 +565,33 @@ WebInspector.CSSStyleModel.prototype = { |
return uiLocation || null; |
}, |
+ /** |
+ * @param {!WebInspector.DOMNode} node |
+ * @param {string} pseudoClass |
+ * @param {boolean} enable |
+ * @return {boolean} |
+ */ |
+ forcePseudoState: function(node, pseudoClass, enable) |
+ { |
+ var pseudoClasses = node.getUserProperty(WebInspector.CSSStyleModel.PseudoStatePropertyName); |
+ if (enable) { |
+ pseudoClasses = pseudoClasses || []; |
+ if (pseudoClasses.indexOf(pseudoClass) >= 0) |
+ return false; |
+ pseudoClasses.push(pseudoClass); |
+ node.setUserProperty(WebInspector.CSSStyleModel.PseudoStatePropertyName, pseudoClasses); |
+ } else { |
+ if (!pseudoClasses || pseudoClasses.indexOf(pseudoClass) < 0) |
+ return false; |
+ pseudoClasses.remove(pseudoClass); |
+ if (!pseudoClasses.length) |
+ node.removeUserProperty(WebInspector.CSSStyleModel.PseudoStatePropertyName); |
+ } |
+ |
+ CSSAgent.forcePseudoState(node.id, node.getUserProperty(WebInspector.CSSStyleModel.PseudoStatePropertyName) || []); |
sergeyv
2014/03/31 13:29:20
we already have node.getUserProperty(WebInspector.
pfeldman
2014/03/31 13:45:50
Done.
|
+ return true; |
+ }, |
+ |
__proto__: WebInspector.Object.prototype |
} |