Diff
Modified: trunk/LayoutTests/ChangeLog (125398 => 125399)
--- trunk/LayoutTests/ChangeLog 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/ChangeLog 2012-08-13 09:06:15 UTC (rev 125399)
@@ -1,3 +1,16 @@
+2012-08-10 Alexander Pavlov <apav...@chromium.org>
+
+ Web Inspector: [Protocol] Force elements pseudo state via a separate InspectorCSSAgent method
+ https://bugs.webkit.org/show_bug.cgi?id=93721
+
+ Reviewed by Pavel Feldman.
+
+ * http/tests/inspector/modify-cross-domain-rule.html:
+ * inspector/styles/get-set-stylesheet-text.html:
+ * inspector/styles/styles-formatting.html:
+ * inspector/styles/styles-new-API.html:
+ * inspector/styles/styles-new-API-expected.txt:
+
2012-08-13 Christophe Dumez <christophe.du...@intel.com>
[EFL][WK2] Replace Skipped list by TestExpectations
Modified: trunk/LayoutTests/http/tests/inspector/modify-cross-domain-rule.html (125398 => 125399)
--- trunk/LayoutTests/http/tests/inspector/modify-cross-domain-rule.html 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/http/tests/inspector/modify-cross-domain-rule.html 2012-08-13 09:06:15 UTC (rev 125399)
@@ -34,7 +34,7 @@
return;
}
- WebInspector.cssModel.getMatchedStylesAsync(nodeId, null, false, false, callback);
+ WebInspector.cssModel.getMatchedStylesAsync(nodeId, false, false, callback);
}
function callback(rules)
Modified: trunk/LayoutTests/inspector/styles/get-set-stylesheet-text.html (125398 => 125399)
--- trunk/LayoutTests/inspector/styles/get-set-stylesheet-text.html 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/inspector/styles/get-set-stylesheet-text.html 2012-08-13 09:06:15 UTC (rev 125399)
@@ -70,7 +70,7 @@
function nodeCallback(node)
{
- CSSAgent.getMatchedStylesForNode(node.id, [], false, false, callback);
+ CSSAgent.getMatchedStylesForNode(node.id, false, false, callback);
}
InspectorTest.selectNodeWithId("inspected", nodeCallback);
Modified: trunk/LayoutTests/inspector/styles/styles-formatting.html (125398 => 125399)
--- trunk/LayoutTests/inspector/styles/styles-formatting.html 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/inspector/styles/styles-formatting.html 2012-08-13 09:06:15 UTC (rev 125399)
@@ -26,7 +26,7 @@
function nodeCallback(node)
{
- WebInspector.cssModel.getMatchedStylesAsync(node.id, undefined, false, false, callback);
+ WebInspector.cssModel.getMatchedStylesAsync(node.id, false, false, callback);
}
InspectorTest.selectNodeWithId("formatted", nodeCallback);
},
@@ -121,7 +121,7 @@
function nodeCallback(node)
{
- WebInspector.cssModel.getMatchedStylesAsync(node.id, undefined, false, false, callback);
+ WebInspector.cssModel.getMatchedStylesAsync(node.id, false, false, callback);
}
InspectorTest.selectNodeWithId("unformatted", nodeCallback);
},
Modified: trunk/LayoutTests/inspector/styles/styles-new-API-expected.txt (125398 => 125399)
--- trunk/LayoutTests/inspector/styles/styles-new-API-expected.txt 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/inspector/styles/styles-new-API-expected.txt 2012-08-13 09:06:15 UTC (rev 125399)
@@ -77,7 +77,60 @@
['font-weight':'normal'] @[0-20] active
['width':'85%'] @[21-32] active
['background-image':'url(bar.png)'] @[33-63] active
+=== BODY with forced :hover ===
+body: [user-agent] {
+ ['display':'block'] @[undefined-undefined] style
+ ['margin-top':'8px'] @[undefined-undefined] style
+ ['margin-right':'8px'] @[undefined-undefined] style
+ ['margin-bottom':'8px'] @[undefined-undefined] style
+ ['margin-left':'8px'] @[undefined-undefined] style
+}
+body: [regular] {
+ ['property':'imported-media-screen-stylesheet' non-parsed] @[5-48] active
+}
+body: [regular] {
+ ['property':'imported-media-screen-stylesheet' non-parsed] @[5-48] active
+}
+body: [regular] {
+ ['font-size':'12px'] @[5-21] active
+ ['foo':'bar !
+ important /* !important property not recognized by WebCore */' is-important non-parsed] @[26-104] active
+ ['height':'100% !important' is-important] @[109-133] active
+ ['colorz':'"!important"' non-parsed] @[138-159] active
+ ['important':'!important' non-parsed] @[164-185] active
+ ['color':'yellow'] @[190-204] active
+ ['color':'"badcolor" ! important /* good property with strange value */' is-important non-parsed] @[209-278] active
+}
+body.main1: [regular] {
+ ['color':'#F00BAA'] @[13-28] active
+ ['zoo':'moo /* not an !important unrecognized property */' non-parsed] @[28-81] active
+}
+body.main2: [regular] {
+ ['background':'green /* value !important comment */ !important /* no semicolon, very !important */' is-important] @[0-95] active
+ ['background-image':'initial' is-important] @[undefined-undefined] style
+ ['background-repeat-x':'initial' is-important] @[undefined-undefined] style
+ ['background-repeat-y':'initial' is-important] @[undefined-undefined] style
+ ['background-attachment':'initial' is-important] @[undefined-undefined] style
+ ['background-position-x':'initial' is-important] @[undefined-undefined] style
+ ['background-position-y':'initial' is-important] @[undefined-undefined] style
+ ['background-origin':'initial' is-important] @[undefined-undefined] style
+ ['background-clip':'initial' is-important] @[undefined-undefined] style
+ ['background-color':'green' is-important] @[undefined-undefined] style
+ ['background-size':'initial' is-important] @[undefined-undefined] style
+}
+body.mainpage: [regular] {
+ ['text-decoration':'none'] @[5-27] active
+ ['badproperty':'1badvalue1' non-parsed] @[108-132] active
+}
+body.mainpage: [regular] {
+ ['prop1':'val1' non-parsed] @[5-17] active
+ ['prop2':'val2' non-parsed] @[22-34] active
+}
+body:hover: [regular] {
+ ['color':'#CDE'] @[3-15] active
+}
+
=== Attributes style for table ===
['width':'50%'] @[undefined-undefined] style
@@ -252,6 +305,9 @@
prop2: val2;
}
+body:hover {
+ color: #CDE;
+}
'
body.mainpage: [regular] {
['text-decoration':'none'] @[5-27] active
@@ -261,6 +317,9 @@
['prop1':'val1' non-parsed] @[5-17] active
['prop2':'val2' non-parsed] @[22-34] active
}
+body:hover: [regular] {
+ ['color':'#CDE'] @[3-15] active
+}
=== Last stylesheet patched ===
Modified: trunk/LayoutTests/inspector/styles/styles-new-API.html (125398 => 125399)
--- trunk/LayoutTests/inspector/styles/styles-new-API.html 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/LayoutTests/inspector/styles/styles-new-API.html 2012-08-13 09:06:15 UTC (rev 125399)
@@ -45,7 +45,7 @@
InspectorTest.addResult("");
InspectorTest.addResult("=== Inline style for body ===");
dumpStyle(styles.inlineStyle);
- test_tableStyles();
+ test_forcedState();
}
var resultStyles = {};
@@ -87,13 +87,26 @@
function nodeCallback(node)
{
bodyId = node.id;
- CSSAgent.getComputedStyleForNode(node.id, [], computedCallback);
+ CSSAgent.getComputedStyleForNode(node.id, computedCallback);
CSSAgent.getInlineStylesForNode(node.id, inlineCallback);
- CSSAgent.getMatchedStylesForNode(node.id, [], true, true, matchedCallback);
+ CSSAgent.getMatchedStylesForNode(node.id, true, true, matchedCallback);
}
InspectorTest.selectNodeWithId("mainBody", nodeCallback);
}
+ function test_forcedState()
+ {
+ CSSAgent.forcePseudoState(bodyId, ["hover"]);
+ CSSAgent.getMatchedStylesForNode(bodyId, true, true, matchedCallback);
+
+ function matchedCallback(error, matchedRules)
+ {
+ InspectorTest.addResult("=== BODY with forced :hover ===");
+ dumpRulesArray(matchedRules);
+ CSSAgent.forcePseudoState(bodyId, ["hover"], test_tableStyles);
+ }
+ }
+
function test_tableStyles()
{
function callback(error, inlineStyle, attributesStyle)
@@ -205,7 +218,7 @@
InspectorTest.addResult("error: " + error);
return;
}
- CSSAgent.getMatchedStylesForNode(bodyId, [], false, false, didGetStyles);
+ CSSAgent.getMatchedStylesForNode(bodyId, false, false, didGetStyles);
}
function ruleAdded(error, rule)
@@ -273,7 +286,7 @@
function nodeCallback(node)
{
- CSSAgent.getMatchedStylesForNode(node.id, [], false, false, stylesCallback);
+ CSSAgent.getMatchedStylesForNode(node.id, false, false, stylesCallback);
}
InspectorTest.nodeWithId("toggle", nodeCallback);
}
@@ -390,17 +403,6 @@
}
}
-/*
-Covered API methods:
- - getStylesForNode
- - getAllStyleSheets
- - getStyleSheet
- - setStyleSheetText
- - setStyleData
- - setRuleSelector
- - addRule
-*/
-
</script>
<style>
@@ -416,6 +418,9 @@
prop2: val2;
}
+body:hover {
+ color: #CDE;
+}
</style>
</head>
Modified: trunk/Source/WebCore/ChangeLog (125398 => 125399)
--- trunk/Source/WebCore/ChangeLog 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/ChangeLog 2012-08-13 09:06:15 UTC (rev 125399)
@@ -1,3 +1,35 @@
+2012-08-10 Alexander Pavlov <apav...@chromium.org>
+
+ Web Inspector: [Protocol] Force elements pseudo state via a separate InspectorCSSAgent method
+ https://bugs.webkit.org/show_bug.cgi?id=93721
+
+ Reviewed by Pavel Feldman.
+
+ Introduce InspectorCSSAgent::forcePseudoState() to modify the element's forced pseudo state.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
+ (WebCore::InspectorCSSAgent::getComputedStyleForNode):
+ (WebCore::InspectorCSSAgent::forcePseudoState):
+ (WebCore):
+ * inspector/InspectorCSSAgent.h:
+ (InspectorCSSAgent):
+ * inspector/InspectorDOMAgent.h:
+ (InspectorDOMAgent):
+ * inspector/front-end/AuditRules.js:
+ (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel.prototype.getMatchedStylesAsync):
+ (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
+ (WebInspector.CSSStyleModel.prototype.forcePseudoState):
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
+ * inspector/front-end/MetricsSidebarPane.js:
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
+ (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
+
2012-08-13 Shinya Kawanaka <shin...@chromium.org>
Cannot select the AuthorShadowDOM inner element of an img element
Modified: trunk/Source/WebCore/inspector/Inspector.json (125398 => 125399)
--- trunk/Source/WebCore/inspector/Inspector.json 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/Inspector.json 2012-08-13 09:06:15 UTC (rev 125399)
@@ -2242,7 +2242,6 @@
"name": "getMatchedStylesForNode",
"parameters": [
{ "name": "nodeId", "$ref": "DOM.NodeId" },
- { "name": "forcedPseudoClasses", "type": "array", "items": { "type": "string", "enum": ["active", "focus", "hover", "visited"] }, "optional": true, "description": "Element pseudo classes to force when computing applicable style rules." },
{ "name": "includePseudo", "type": "boolean", "optional": true, "description": "Whether to include pseudo styles (default: true)." },
{ "name": "includeInherited", "type": "boolean", "optional": true, "description": "Whether to include inherited styles (default: true)." }
],
@@ -2267,8 +2266,7 @@
{
"name": "getComputedStyleForNode",
"parameters": [
- { "name": "nodeId", "$ref": "DOM.NodeId" },
- { "name": "forcedPseudoClasses", "type": "array", "items": { "type": "string", "enum": ["active", "focus", "hover", "visited"] }, "optional": true, "description": "Element pseudo classes to force when computing applicable style rules." }
+ { "name": "nodeId", "$ref": "DOM.NodeId" }
],
"returns": [
{ "name": "computedStyle", "type": "array", "items": { "$ref": "CSSComputedStyleProperty" }, "description": "Computed style for the specified DOM node." }
@@ -2365,6 +2363,14 @@
"description": "Returns all supported CSS property names."
},
{
+ "name": "forcePseudoState",
+ "parameters": [
+ { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The element id for which to force the pseudo state." },
+ { "name": "forcedPseudoClasses", "type": "array", "items": { "type": "string", "enum": ["active", "focus", "hover", "visited"] }, "description": "Element pseudo classes to force when computing the element's style." }
+ ],
+ "description": "Ensures that the given node will have specified pseudo-classes whenever its style is computed by the browser."
+ },
+ {
"name": "startSelectorProfiler"
},
{
Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (125398 => 125399)
--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp 2012-08-13 09:06:15 UTC (rev 125399)
@@ -583,34 +583,12 @@
}
}
-void InspectorCSSAgent::recalcStyleForPseudoStateIfNeeded(Element* element, InspectorArray* forcedPseudoClasses)
+void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int nodeId, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoIdRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries)
{
- int nodeId = m_domAgent->boundNodeId(element);
- if (!nodeId)
- return;
-
- unsigned forcedPseudoState = computePseudoClassMask(forcedPseudoClasses);
- NodeIdToForcedPseudoState::iterator it = m_nodeIdToForcedPseudoState.find(nodeId);
- unsigned currentForcedPseudoState = it == m_nodeIdToForcedPseudoState.end() ? 0 : it->second;
- bool needStyleRecalc = forcedPseudoState != currentForcedPseudoState;
- if (!needStyleRecalc)
- return;
-
- if (forcedPseudoState)
- m_nodeIdToForcedPseudoState.set(nodeId, forcedPseudoState);
- else
- m_nodeIdToForcedPseudoState.remove(nodeId);
- element->ownerDocument()->styleResolverChanged(RecalcStyleImmediately);
-}
-
-void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoIdRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries)
-{
Element* element = elementForId(errorString, nodeId);
if (!element)
return;
- recalcStyleForPseudoStateIfNeeded(element, forcedPseudoClasses ? forcedPseudoClasses->get() : 0);
-
// Matched rules.
StyleResolver* styleResolver = element->ownerDocument()->styleResolver();
RefPtr<CSSRuleList> matchedRules = styleResolver->styleRulesForElement(element, StyleResolver::AllCSSRules);
@@ -670,14 +648,12 @@
attributesStyle = attributes ? attributes.release() : 0;
}
-void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >& style)
+void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int nodeId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >& style)
{
Element* element = elementForId(errorString, nodeId);
if (!element)
return;
- recalcStyleForPseudoStateIfNeeded(element, forcedPseudoClasses ? forcedPseudoClasses->get() : 0);
-
RefPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSComputedStyleDeclaration::create(element, true);
RefPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo, 0);
style = inspectorStyle->buildArrayForComputedStyle();
@@ -825,6 +801,26 @@
cssProperties = properties.release();
}
+void InspectorCSSAgent::forcePseudoState(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>& forcedPseudoClasses)
+{
+ Element* element = m_domAgent->assertElement(errorString, nodeId);
+ if (!element)
+ return;
+
+ unsigned forcedPseudoState = computePseudoClassMask(forcedPseudoClasses.get());
+ NodeIdToForcedPseudoState::iterator it = m_nodeIdToForcedPseudoState.find(nodeId);
+ unsigned currentForcedPseudoState = it == m_nodeIdToForcedPseudoState.end() ? 0 : it->second;
+ bool needStyleRecalc = forcedPseudoState != currentForcedPseudoState;
+ if (!needStyleRecalc)
+ return;
+
+ if (forcedPseudoState)
+ m_nodeIdToForcedPseudoState.set(nodeId, forcedPseudoState);
+ else
+ m_nodeIdToForcedPseudoState.remove(nodeId);
+ element->ownerDocument()->styleResolverChanged(RecalcStyleImmediately);
+}
+
void InspectorCSSAgent::getNamedFlowCollection(ErrorString* errorString, int documentNodeId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::NamedFlow> >& result)
{
Document* document = m_domAgent->assertDocument(errorString, documentNodeId);
Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.h (125398 => 125399)
--- trunk/Source/WebCore/inspector/InspectorCSSAgent.h 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.h 2012-08-13 09:06:15 UTC (rev 125399)
@@ -101,9 +101,9 @@
void didCreateNamedFlow(Document*, const AtomicString& name);
void didRemoveNamedFlow(Document*, const AtomicString& name);
- virtual void getComputedStyleForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >&);
+ virtual void getComputedStyleForNode(ErrorString*, int nodeId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >&);
virtual void getInlineStylesForNode(ErrorString*, int nodeId, RefPtr<TypeBuilder::CSS::CSSStyle>& inlineStyle, RefPtr<TypeBuilder::CSS::CSSStyle>& attributes);
- virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries);
+ virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries);
virtual void getAllStyleSheets(ErrorString*, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSStyleSheetHeader> >& styleSheetInfos);
virtual void getStyleSheet(ErrorString*, const String& styleSheetId, RefPtr<TypeBuilder::CSS::CSSStyleSheetBody>& result);
virtual void getStyleSheetText(ErrorString*, const String& styleSheetId, String* result);
@@ -113,6 +113,7 @@
virtual void setRuleSelector(ErrorString*, const RefPtr<InspectorObject>& ruleId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result);
virtual void addRule(ErrorString*, int contextNodeId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result);
virtual void getSupportedCSSProperties(ErrorString*, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSPropertyInfo> >& result);
+ virtual void forcePseudoState(ErrorString*, int nodeId, const RefPtr<InspectorArray>& forcedPseudoClasses);
virtual void getNamedFlowCollection(ErrorString*, int documentNodeId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::NamedFlow> >& result);
virtual void getFlowByName(ErrorString*, int documentNodeId, const String& flowName, RefPtr<TypeBuilder::CSS::NamedFlow>& result);
@@ -141,7 +142,6 @@
typedef HashMap<RefPtr<Document>, RefPtr<InspectorStyleSheet> > DocumentToViaInspectorStyleSheet; // "via inspector" stylesheets
typedef HashMap<int, unsigned> NodeIdToForcedPseudoState;
- void recalcStyleForPseudoStateIfNeeded(Element*, InspectorArray* forcedPseudoClasses);
InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element);
Element* elementForId(ErrorString*, int nodeId);
void collectStyleSheets(CSSStyleSheet*, TypeBuilder::Array<WebCore::TypeBuilder::CSS::CSSStyleSheetHeader>*);
Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.h (125398 => 125399)
--- trunk/Source/WebCore/inspector/InspectorDOMAgent.h 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.h 2012-08-13 09:06:15 UTC (rev 125399)
@@ -193,6 +193,7 @@
static bool isWhitespace(Node*);
Node* assertNode(ErrorString*, int nodeId);
+ Element* assertElement(ErrorString*, int nodeId);
Document* assertDocument(ErrorString*, int nodeId);
// Methods called from other agents.
@@ -209,7 +210,6 @@
int bind(Node*, NodeToIdMap*);
void unbind(Node*, NodeToIdMap*);
- Element* assertElement(ErrorString*, int nodeId);
Node* assertEditableNode(ErrorString*, int nodeId);
Element* assertEditableElement(ErrorString*, int nodeId);
Modified: trunk/Source/WebCore/inspector/front-end/AuditRules.js (125398 => 125399)
--- trunk/Source/WebCore/inspector/front-end/AuditRules.js 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/front-end/AuditRules.js 2012-08-13 09:06:15 UTC (rev 125399)
@@ -786,9 +786,9 @@
doneCallback();
for (var i = 0; nodeIds && i < nodeIds.length; ++i) {
- WebInspector.cssModel.getMatchedStylesAsync(nodeIds[i], undefined, false, false, matchedCallback);
+ WebInspector.cssModel.getMatchedStylesAsync(nodeIds[i], false, false, matchedCallback);
WebInspector.cssModel.getInlineStylesAsync(nodeIds[i], inlineCallback);
- WebInspector.cssModel.getComputedStyleAsync(nodeIds[i], undefined, imageStylesReady.bind(null, nodeIds[i], targetResult, i === nodeIds.length - 1));
+ WebInspector.cssModel.getComputedStyleAsync(nodeIds[i], imageStylesReady.bind(null, nodeIds[i], targetResult, i === nodeIds.length - 1));
}
}
Modified: trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js (125398 => 125399)
--- trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js 2012-08-13 09:06:15 UTC (rev 125399)
@@ -64,12 +64,11 @@
WebInspector.CSSStyleModel.prototype = {
/**
* @param {DOMAgent.NodeId} nodeId
- * @param {?Array.<string>|undefined} forcedPseudoClasses
* @param {boolean} needPseudo
* @param {boolean} needInherited
* @param {function(?*)} userCallback
*/
- getMatchedStylesAsync: function(nodeId, forcedPseudoClasses, needPseudo, needInherited, userCallback)
+ getMatchedStylesAsync: function(nodeId, needPseudo, needInherited, userCallback)
{
/**
* @param {function(?*)} userCallback
@@ -115,15 +114,14 @@
userCallback(result);
}
- CSSAgent.getMatchedStylesForNode(nodeId, forcedPseudoClasses || [], needPseudo, needInherited, callback.bind(null, userCallback));
+ CSSAgent.getMatchedStylesForNode(nodeId, needPseudo, needInherited, callback.bind(null, userCallback));
},
/**
* @param {DOMAgent.NodeId} nodeId
- * @param {?Array.<string>|undefined} forcedPseudoClasses
* @param {function(?WebInspector.CSSStyleDeclaration)} userCallback
*/
- getComputedStyleAsync: function(nodeId, forcedPseudoClasses, userCallback)
+ getComputedStyleAsync: function(nodeId, userCallback)
{
/**
* @param {function(?WebInspector.CSSStyleDeclaration)} userCallback
@@ -136,7 +134,7 @@
userCallback(WebInspector.CSSStyleDeclaration.parseComputedStylePayload(computedPayload));
}
- CSSAgent.getComputedStyleForNode(nodeId, forcedPseudoClasses || [], callback.bind(null, userCallback));
+ CSSAgent.getComputedStyleForNode(nodeId, callback.bind(null, userCallback));
},
/**
@@ -164,6 +162,16 @@
/**
* @param {DOMAgent.NodeId} nodeId
+ * @param {?Array.<string>|undefined} forcedPseudoClasses
+ * @param {function()=} userCallback
+ */
+ forcePseudoState: function(nodeId, forcedPseudoClasses, userCallback)
+ {
+ CSSAgent.forcePseudoState(nodeId, forcedPseudoClasses || [], userCallback);
+ },
+
+ /**
+ * @param {DOMAgent.NodeId} nodeId
* @param {function(?Array.<WebInspector.NamedFlow>)} userCallback
*/
getNamedFlowCollectionAsync: function(nodeId, userCallback)
Modified: trunk/Source/WebCore/inspector/front-end/ElementsPanel.js (125398 => 125399)
--- trunk/Source/WebCore/inspector/front-end/ElementsPanel.js 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/front-end/ElementsPanel.js 2012-08-13 09:06:15 UTC (rev 125399)
@@ -177,22 +177,23 @@
if (!node)
return;
- var pseudoClasses = node.getUserProperty("pseudoState");
+ var pseudoClasses = node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);
if (enable) {
pseudoClasses = pseudoClasses || [];
if (pseudoClasses.indexOf(pseudoClass) >= 0)
return;
pseudoClasses.push(pseudoClass);
- node.setUserProperty("pseudoState", pseudoClasses);
+ node.setUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName, pseudoClasses);
} else {
if (!pseudoClasses || pseudoClasses.indexOf(pseudoClass) < 0)
return;
pseudoClasses.remove(pseudoClass);
if (!pseudoClasses.length)
- node.removeUserProperty("pseudoState");
+ node.removeUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);
}
this.treeOutline.updateOpenCloseTags(node);
+ WebInspector.cssModel.forcePseudoState(node.id, node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName));
this._metricsPaneEdited();
this._stylesPaneEdited();
},
Modified: trunk/Source/WebCore/inspector/front-end/MetricsSidebarPane.js (125398 => 125399)
--- trunk/Source/WebCore/inspector/front-end/MetricsSidebarPane.js 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/front-end/MetricsSidebarPane.js 2012-08-13 09:06:15 UTC (rev 125399)
@@ -72,7 +72,7 @@
return;
this._updateMetrics(style);
}
- WebInspector.cssModel.getComputedStyleAsync(node.id, WebInspector.panels.elements.sidebarPanes.styles.forcedPseudoClasses, callback.bind(this));
+ WebInspector.cssModel.getComputedStyleAsync(node.id, callback.bind(this));
function inlineStyleCallback(style)
{
Modified: trunk/Source/WebCore/inspector/front-end/StylesSidebarPane.js (125398 => 125399)
--- trunk/Source/WebCore/inspector/front-end/StylesSidebarPane.js 2012-08-13 08:26:15 UTC (rev 125398)
+++ trunk/Source/WebCore/inspector/front-end/StylesSidebarPane.js 2012-08-13 09:06:15 UTC (rev 125399)
@@ -150,7 +150,7 @@
contextMenu.show(event);
},
- get forcedPseudoClasses()
+ get _forcedPseudoClasses()
{
return this.node ? (this.node.getUserProperty("pseudoState") || undefined) : undefined;
},
@@ -160,7 +160,7 @@
if (!this.node)
return;
- var nodePseudoState = this.forcedPseudoClasses;
+ var nodePseudoState = this._forcedPseudoClasses;
if (!nodePseudoState)
nodePseudoState = [];
@@ -236,7 +236,7 @@
if (this._computedStylePane.expanded || forceFetchComputedStyle) {
this._refreshUpdateInProgress = true;
- WebInspector.cssModel.getComputedStyleAsync(node.id, this.forcedPseudoClasses, computedStyleCallback.bind(this));
+ WebInspector.cssModel.getComputedStyleAsync(node.id, computedStyleCallback.bind(this));
} else {
this._innerRefreshUpdate(node, null, editedSection);
if (userCallback)
@@ -294,9 +294,9 @@
}
if (this._computedStylePane.expanded)
- WebInspector.cssModel.getComputedStyleAsync(node.id, this.forcedPseudoClasses, computedCallback.bind(this));
+ WebInspector.cssModel.getComputedStyleAsync(node.id, computedCallback.bind(this));
WebInspector.cssModel.getInlineStylesAsync(node.id, inlineCallback.bind(this));
- WebInspector.cssModel.getMatchedStylesAsync(node.id, this.forcedPseudoClasses, true, true, stylesCallback.bind(this));
+ WebInspector.cssModel.getMatchedStylesAsync(node.id, true, true, stylesCallback.bind(this));
},
/**