Title: [125268] trunk
Revision
125268
Author
[email protected]
Date
2012-08-10 02:58:35 -0700 (Fri, 10 Aug 2012)

Log Message

Web Inspector: Protocol Extension: Refactor protocol extension for CSS Regions
https://bugs.webkit.org/show_bug.cgi?id=92089

Patch by Andrei Poenaru <[email protected]> on 2012-08-10
Reviewed by Pavel Feldman.

Source/WebCore:

Replaced "WebKitNamedFlowCollection::namedFlowsNames" with "WebKitNamedFlowCollection::namedFlows" to return a Vector of "WebKitNamedFlow"s,
instead of a Vector of Strings.

Added the "Region" type to Inspector.json.
Changed the "NamedFlow" type and the "getNamedFlowCollection" function in Inspector.json.

Modified existing test: inspector/styles/protocol-css-regions-commands.html

* dom/WebKitNamedFlowCollection.cpp:
(WebCore::WebKitNamedFlowCollection::namedFlows):
* dom/WebKitNamedFlowCollection.h:
(WebKitNamedFlowCollection):
* inspector/Inspector.json:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::getFlowByName):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
* inspector/InspectorCSSAgent.h:
(InspectorCSSAgent):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushNodeToFrontend):
(WebCore):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
(WebInspector.NamedFlow):
(WebInspector.NamedFlow.parsePayloadArray):

LayoutTests:

Changed the test to validate the changes made to the protocol.

* inspector/styles/protocol-css-regions-commands-expected.txt:
* inspector/styles/protocol-css-regions-commands.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (125267 => 125268)


--- trunk/LayoutTests/ChangeLog	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/LayoutTests/ChangeLog	2012-08-10 09:58:35 UTC (rev 125268)
@@ -1,3 +1,15 @@
+2012-08-10  Andrei Poenaru  <[email protected]>
+
+        Web Inspector: Protocol Extension: Refactor protocol extension for CSS Regions
+        https://bugs.webkit.org/show_bug.cgi?id=92089
+
+        Reviewed by Pavel Feldman.
+
+        Changed the test to validate the changes made to the protocol.
+
+        * inspector/styles/protocol-css-regions-commands-expected.txt:
+        * inspector/styles/protocol-css-regions-commands.html:
+
 2012-08-10  Allan Sandfeld Jensen  <[email protected]>
 
         Unreviewed gardening, rebaselining marked tests from r125167.

Modified: trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt (125267 => 125268)


--- trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt	2012-08-10 09:58:35 UTC (rev 125268)
@@ -6,16 +6,27 @@
 namedFlowRemoved Bug 92739
 
 
-Running: testGetNamedFlowCollection
-=== CSS Named Flows ===
-flow1
-flow2
-flow3
+Running: testGetNamedFlowCollection1
+=== CSS Named Flows in main document ===
+* Named Flow "flow1"
+Content Elements: 1
+Regions: 3
+* Named Flow "flow2"
+Content Elements: 1
+Regions: 2
+* Named Flow "flow3"
+Content Elements: 1
+Regions: 1
 
+Running: testGetNamedFlowCollection2
+=== CSS Named Flows in #fake-document ===
+#fake-document is not a document
+
 Running: testGetFlowByName1
 === Named Flow "flow2" from main document ===
-name: flow2
-overset: false
+* Named Flow "flow2"
+Content Elements: 1
+Regions: 2
 
 Running: testGetFlowByName2
 === Name Flow "flow4" from main document ===

Modified: trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html (125267 => 125268)


--- trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html	2012-08-10 09:58:35 UTC (rev 125268)
@@ -38,7 +38,7 @@
 {
     WebInspector.showPanel("elements");
     InspectorTest.runTestSuite([
-        function testGetNamedFlowCollection(next)
+        function testGetNamedFlowCollection1(next)
         {
             WebInspector.domAgent.requestDocument(documentCallback);
 
@@ -49,7 +49,7 @@
 
             function namedFlowCallback(namedFlows)
             {
-                InspectorTest.addResult("=== CSS Named Flows ===");
+                InspectorTest.addResult("=== CSS Named Flows in main document ===");
 
                 if (!namedFlows) {
                     InspectorTest.addResult("[!] Failed to get Named Flows");
@@ -57,15 +57,46 @@
                     return;
                 }
 
-                namedFlows.sort();
+                namedFlows.sort(function (nf1, nf2) {
+                    return ((nf1.name == nf2.name) ? 0 : ((nf1.name > nf2.name) ? 1 : -1));
+                });
 
                 for (var i = 0; i < namedFlows.length; ++i)
-                    InspectorTest.addResult(namedFlows[i]);
+                    printNamedFlow(namedFlows[i]);
 
                 next();
             }
         },
 
+        function testGetNamedFlowCollection2(next)
+        {
+            WebInspector.domAgent.requestDocument(documentCallback);
+
+            function documentCallback(document)
+            {
+                WebInspector.domAgent.querySelector(document.id, "#fake-document", querySelectorCallback);
+            }
+
+            function querySelectorCallback(nodeId)
+            {
+                WebInspector.cssModel.getNamedFlowCollectionAsync(nodeId, namedFlowCallback);
+            }
+
+            function namedFlowCallback(namedFlows)
+            {
+                InspectorTest.addResult("=== CSS Named Flows in #fake-document ===");
+
+                if (namedFlows) {
+                    InspectorTest.addResult("[!] Failed");
+                    InspectorTest.completeTest();
+                    return;
+                }
+
+                InspectorTest.addResult("#fake-document is not a document")
+                next();
+            }
+        },
+
         function testGetFlowByName1(next)
         {
             WebInspector.domAgent.requestDocument(documentCallback);
@@ -85,8 +116,7 @@
                     return;
                 }
 
-                InspectorTest.addResult("name: " + namedFlow.name);
-                InspectorTest.addResult("overset: " + namedFlow.overset);
+                printNamedFlow(namedFlow);
 
                 next();
             }
@@ -155,6 +185,13 @@
             }
         }
     ]);
+
+    function printNamedFlow(namedFlow)
+    {
+        InspectorTest.addResult("* Named Flow \"" + namedFlow.name + "\"");
+        InspectorTest.addResult("Content Elements: " + namedFlow.content.length);
+        InspectorTest.addResult("Regions: " + namedFlow.regions.length);
+    }
 }
 </script>
 </head>
@@ -172,13 +209,18 @@
 
 <article style="-webkit-flow-into: flow1"></article>
 <div style="-webkit-flow-from: flow1"></div>
+<div style="-webkit-flow-from: flow1"></div>
+<div style="-webkit-flow-from: flow1"></div>
 
 <article style="-webkit-flow-into: flow2"></article>
 <div style="-webkit-flow-from: flow2"></div>
+<div style="-webkit-flow-from: flow2"></div>
 
 <article style="-webkit-flow-into: flow3"></article>
 <div style="-webkit-flow-from: flow3"></div>
 
+<div id="fake-document"></div>
+
 <iframe></iframe>
 
 </body>

Modified: trunk/Source/WebCore/ChangeLog (125267 => 125268)


--- trunk/Source/WebCore/ChangeLog	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/ChangeLog	2012-08-10 09:58:35 UTC (rev 125268)
@@ -1,3 +1,41 @@
+2012-08-10  Andrei Poenaru  <[email protected]>
+
+        Web Inspector: Protocol Extension: Refactor protocol extension for CSS Regions
+        https://bugs.webkit.org/show_bug.cgi?id=92089
+
+        Reviewed by Pavel Feldman.
+
+        Replaced "WebKitNamedFlowCollection::namedFlowsNames" with "WebKitNamedFlowCollection::namedFlows" to return a Vector of "WebKitNamedFlow"s,
+        instead of a Vector of Strings.
+
+        Added the "Region" type to Inspector.json.
+        Changed the "NamedFlow" type and the "getNamedFlowCollection" function in Inspector.json.
+
+        Modified existing test: inspector/styles/protocol-css-regions-commands.html
+
+        * dom/WebKitNamedFlowCollection.cpp:
+        (WebCore::WebKitNamedFlowCollection::namedFlows):
+        * dom/WebKitNamedFlowCollection.h:
+        (WebKitNamedFlowCollection):
+        * inspector/Inspector.json:
+        * inspector/InspectorCSSAgent.cpp:
+        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
+        (WebCore::InspectorCSSAgent::getFlowByName):
+        (WebCore::InspectorCSSAgent::buildArrayForRegions):
+        (WebCore):
+        (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
+        * inspector/InspectorCSSAgent.h:
+        (InspectorCSSAgent):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::pushNodeToFrontend):
+        (WebCore):
+        * inspector/InspectorDOMAgent.h:
+        (InspectorDOMAgent):
+        * inspector/front-end/CSSStyleModel.js:
+        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
+        (WebInspector.NamedFlow):
+        (WebInspector.NamedFlow.parsePayloadArray):
+
 2012-08-10  Keishi Hattori  <[email protected]>
 
         Resize calandar and color suggestion popups to show error message

Modified: trunk/Source/WebCore/dom/WebKitNamedFlowCollection.cpp (125267 => 125268)


--- trunk/Source/WebCore/dom/WebKitNamedFlowCollection.cpp	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/dom/WebKitNamedFlowCollection.cpp	2012-08-10 09:58:35 UTC (rev 125268)
@@ -44,15 +44,15 @@
 {
 }
 
-Vector<String> WebKitNamedFlowCollection::namedFlowsNames()
+Vector<RefPtr<WebKitNamedFlow> > WebKitNamedFlowCollection::namedFlows()
 {
-    Vector<String> namedFlows;
+    Vector<RefPtr<WebKitNamedFlow> > namedFlows;
 
     for (NamedFlowSet::iterator it = m_namedFlows.begin(); it != m_namedFlows.end(); ++it) {
         if ((*it)->flowState() == WebKitNamedFlow::FlowStateNull)
             continue;
 
-        namedFlows.append((*it)->name().string());
+        namedFlows.append(RefPtr<WebKitNamedFlow>(*it));
     }
 
     return namedFlows;

Modified: trunk/Source/WebCore/dom/WebKitNamedFlowCollection.h (125267 => 125268)


--- trunk/Source/WebCore/dom/WebKitNamedFlowCollection.h	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/dom/WebKitNamedFlowCollection.h	2012-08-10 09:58:35 UTC (rev 125268)
@@ -45,7 +45,7 @@
 public:
     static PassRefPtr<WebKitNamedFlowCollection> create(Document* doc) { return adoptRef(new WebKitNamedFlowCollection(doc)); }
 
-    Vector<String> namedFlowsNames();
+    Vector<RefPtr<WebKitNamedFlow> > namedFlows();
     WebKitNamedFlow* flowByName(const String&);
     PassRefPtr<WebKitNamedFlow> ensureFlowWithName(const String&);
 

Modified: trunk/Source/WebCore/inspector/Inspector.json (125267 => 125268)


--- trunk/Source/WebCore/inspector/Inspector.json	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/Inspector.json	2012-08-10 09:58:35 UTC (rev 125268)
@@ -2206,12 +2206,24 @@
                 ]
             },
             {
+                "id": "Region",
+                "type": "object",
+                "properties": [
+                    { "name": "regionOverset", "type": "string", "enum": ["overset", "fit", "empty"], "description": "The \"overset\" attribute of a Named Flow." },
+                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The corresponding DOM node id." }
+                ],
+                "description": "This object represents a region that flows from a Named Flow.",
+                "hidden": true
+            },
+            {
                 "id": "NamedFlow",
                 "type": "object",
                 "properties": [
-                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
+                    { "name": "documentNodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
                     { "name": "name", "type": "string", "description": "Named Flow identifier." },
-                    { "name": "overset", "type": "boolean", "description": "The \"overset\" attribute of a Named Flow." }
+                    { "name": "overset", "type": "boolean", "description": "The \"overset\" attribute of a Named Flow." },
+                    { "name": "content", "type": "array", "items": { "$ref": "DOM.NodeId" }, "description": "An array of nodes that flow into the Named Flow." },
+                    { "name": "regions", "type": "array", "items": { "$ref": "Region" }, "description": "An array of regions associated with the Named Flow." }
                 ],
                 "description": "This object represents a Named Flow.",
                 "hidden": true
@@ -2364,10 +2376,10 @@
             {
                 "name": "getNamedFlowCollection",
                 "parameters": [
-                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The document node id for which to get the Named Flow Collection." }
+                    { "name": "documentNodeId", "$ref": "DOM.NodeId", "description": "The document node id for which to get the Named Flow Collection." }
                 ],
                 "returns": [
-                    { "name": "namedFlows", "type": "array", "items": { "type": "string" }, "description": "An array containing the Named Flows in the document." }
+                    { "name": "namedFlows", "type": "array", "items": { "$ref": "NamedFlow" }, "description": "An array containing the Named Flows in the document." }
                 ],
                 "description": "Returns the Named Flows from the document.",
                 "hidden": true
@@ -2375,7 +2387,7 @@
             {
                 "name": "getFlowByName",
                 "parameters": [
-                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
+                    { "name": "documentNodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
                     { "name": "name", "type": "string", "description": "Named Flow identifier." }
                 ],
                 "returns": [
@@ -2400,7 +2412,7 @@
             {
                 "name": "namedFlowCreated",
                 "parameters": [
-                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
+                    { "name": "documentNodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
                     { "name": "namedFlow", "type": "string", "description": "Identifier of the new Named Flow." }
                 ],
                 "description": "Fires when a Named Flow is created.",
@@ -2409,7 +2421,7 @@
             {
                 "name": "namedFlowRemoved",
                 "parameters": [
-                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
+                    { "name": "documentNodeId", "$ref": "DOM.NodeId", "description": "The document node id." },
                     { "name": "namedFlow", "type": "string", "description": "Identifier of the removed Named Flow." }
                 ],
                 "description": "Fires when a Named Flow is removed: has no associated content nodes and regions.",

Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (125267 => 125268)


--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp	2012-08-10 09:58:35 UTC (rev 125268)
@@ -47,6 +47,7 @@
 #include "InstrumentingAgents.h"
 #include "Node.h"
 #include "NodeList.h"
+#include "RenderRegion.h"
 #include "StylePropertySet.h"
 #include "StylePropertyShorthand.h"
 #include "StyleResolver.h"
@@ -824,39 +825,37 @@
     cssProperties = properties.release();
 }
 
-void InspectorCSSAgent::getNamedFlowCollection(ErrorString* errorString, int nodeId, RefPtr<TypeBuilder::Array<String> >& result)
+void InspectorCSSAgent::getNamedFlowCollection(ErrorString* errorString, int documentNodeId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::NamedFlow> >& result)
 {
-    Document* document = m_domAgent->assertDocument(errorString, nodeId);
+    Document* document = m_domAgent->assertDocument(errorString, documentNodeId);
     if (!document)
         return;
 
-    m_namedFlowCollectionsRequested.add(nodeId);
+    m_namedFlowCollectionsRequested.add(documentNodeId);
+    Vector<RefPtr<WebKitNamedFlow> > namedFlowsVector = document->namedFlows()->namedFlows();
+    RefPtr<TypeBuilder::Array<TypeBuilder::CSS::NamedFlow> > namedFlows = TypeBuilder::Array<TypeBuilder::CSS::NamedFlow>::create();
 
-    Vector<String> namedFlowsVector = document->namedFlows()->namedFlowsNames();
-    RefPtr<TypeBuilder::Array<String> > namedFlows = TypeBuilder::Array<String>::create();
 
-    for (Vector<String>::iterator it = namedFlowsVector.begin(); it != namedFlowsVector.end(); ++it)
-        namedFlows->addItem(*it);
+    for (Vector<RefPtr<WebKitNamedFlow> >::iterator it = namedFlowsVector.begin(); it != namedFlowsVector.end(); ++it)
+        namedFlows->addItem(buildObjectForNamedFlow(errorString, it->get(), documentNodeId));
 
     result = namedFlows.release();
 }
 
-void InspectorCSSAgent::getFlowByName(ErrorString* errorString, int nodeId, const String& flowName, RefPtr<TypeBuilder::CSS::NamedFlow>& result)
+void InspectorCSSAgent::getFlowByName(ErrorString* errorString, int documentNodeId, const String& flowName, RefPtr<TypeBuilder::CSS::NamedFlow>& result)
 {
-    Document* document = m_domAgent->assertDocument(errorString, nodeId);
+    Document* document = m_domAgent->assertDocument(errorString, documentNodeId);
     if (!document)
         return;
 
-    WebKitNamedFlow* namedFlow = document->namedFlows()->flowByName(flowName);
-    if (!namedFlow) {
+    WebKitNamedFlow* webkitNamedFlow = document->namedFlows()->flowByName(flowName);
+    if (!webkitNamedFlow) {
         *errorString = "No target CSS Named Flow found";
         return;
     }
 
-    result = TypeBuilder::CSS::NamedFlow::create()
-        .setNodeId(nodeId)
-        .setName(flowName)
-        .setOverset(namedFlow->overset());
+    RefPtr<WebKitNamedFlow> protector(webkitNamedFlow);
+    result = buildObjectForNamedFlow(errorString, webkitNamedFlow, documentNodeId);
 }
 
 void InspectorCSSAgent::startSelectorProfiler(ErrorString*)
@@ -1072,6 +1071,61 @@
     return inspectorStyle->buildObjectForStyle();
 }
 
+PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::Region> > InspectorCSSAgent::buildArrayForRegions(ErrorString* errorString, PassRefPtr<NodeList> regionList, int documentNodeId)
+{
+    RefPtr<TypeBuilder::Array<TypeBuilder::CSS::Region> > regions = TypeBuilder::Array<TypeBuilder::CSS::Region>::create();
+
+    for (unsigned i = 0; i < regionList->length(); ++i) {
+        TypeBuilder::CSS::Region::RegionOverset::Enum regionOverset;
+
+        switch (toElement(regionList->item(i))->renderRegion()->regionState()) {
+        case RenderRegion::RegionFit:
+            regionOverset = TypeBuilder::CSS::Region::RegionOverset::Fit;
+            break;
+        case RenderRegion::RegionEmpty:
+            regionOverset = TypeBuilder::CSS::Region::RegionOverset::Empty;
+            break;
+        case RenderRegion::RegionOverset:
+            regionOverset = TypeBuilder::CSS::Region::RegionOverset::Overset;
+            break;
+        case RenderRegion::RegionUndefined:
+            continue;
+        default:
+            ASSERT_NOT_REACHED();
+            continue;
+        }
+
+        RefPtr<TypeBuilder::CSS::Region> region = TypeBuilder::CSS::Region::create()
+            .setRegionOverset(regionOverset)
+            // documentNodeId was previously asserted
+            .setNodeId(m_domAgent->pushNodeToFrontend(errorString, documentNodeId, regionList->item(i)));
+
+        regions->addItem(region);
+    }
+
+    return regions.release();
+}
+
+PassRefPtr<TypeBuilder::CSS::NamedFlow> InspectorCSSAgent::buildObjectForNamedFlow(ErrorString* errorString, WebKitNamedFlow* webkitNamedFlow, int documentNodeId)
+{
+    RefPtr<NodeList> contentList = webkitNamedFlow->getContent();
+    RefPtr<TypeBuilder::Array<int> > content = TypeBuilder::Array<int>::create();
+
+    for (unsigned i = 0; i < contentList->length(); ++i) {
+        // documentNodeId was previously asserted
+        content->addItem(m_domAgent->pushNodeToFrontend(errorString, documentNodeId, contentList->item(i)));
+    }
+
+    RefPtr<TypeBuilder::CSS::NamedFlow> namedFlow = TypeBuilder::CSS::NamedFlow::create()
+        .setDocumentNodeId(documentNodeId)
+        .setName(webkitNamedFlow->name().string())
+        .setOverset(webkitNamedFlow->overset())
+        .setContent(content)
+        .setRegions(buildArrayForRegions(errorString, webkitNamedFlow->getRegions(), documentNodeId));
+
+    return namedFlow.release();
+}
+
 void InspectorCSSAgent::didRemoveDocument(Document* document)
 {
     if (document)

Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.h (125267 => 125268)


--- trunk/Source/WebCore/inspector/InspectorCSSAgent.h	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.h	2012-08-10 09:58:35 UTC (rev 125268)
@@ -113,8 +113,8 @@
     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 getNamedFlowCollection(ErrorString*, int nodeId, RefPtr<TypeBuilder::Array<String> >& result);
-    virtual void getFlowByName(ErrorString*, int nodeId, const String& flowName, RefPtr<TypeBuilder::CSS::NamedFlow>& result);
+    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);
 
     virtual void startSelectorProfiler(ErrorString*);
     virtual void stopSelectorProfiler(ErrorString*, RefPtr<TypeBuilder::CSS::SelectorProfile>&);
@@ -153,6 +153,8 @@
 
     PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> > buildArrayForRuleList(CSSRuleList*, StyleResolver*);
     PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element*);
+    PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::Region> > buildArrayForRegions(ErrorString*, PassRefPtr<NodeList>, int documentNodeId);
+    PassRefPtr<TypeBuilder::CSS::NamedFlow> buildObjectForNamedFlow(ErrorString*, WebKitNamedFlow*, int documentNodeId);
 
     // InspectorDOMAgent::DOMListener implementation
     virtual void didRemoveDocument(Document*);

Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (125267 => 125268)


--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp	2012-08-10 09:58:35 UTC (rev 125268)
@@ -449,6 +449,19 @@
     m_childrenRequested.clear();
 }
 
+int InspectorDOMAgent::pushNodeToFrontend(ErrorString* errorString, int documentNodeId, Node* nodeToPush)
+{
+    Document* document = assertDocument(errorString, documentNodeId);
+    if (!document)
+        return 0;
+    if (nodeToPush->document() != document) {
+        *errorString = "Node is not part of the document with given id";
+        return 0;
+    }
+
+    return pushNodePathToFrontend(nodeToPush);
+}
+
 Node* InspectorDOMAgent::nodeForId(int id)
 {
     if (!id)

Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.h (125267 => 125268)


--- trunk/Source/WebCore/inspector/InspectorDOMAgent.h	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.h	2012-08-10 09:58:35 UTC (rev 125268)
@@ -168,6 +168,7 @@
     void didPushShadowRoot(Element* host, ShadowRoot*);
     void willPopShadowRoot(Element* host, ShadowRoot*);
 
+    int pushNodeToFrontend(ErrorString*, int documentNodeId, Node*);
     Node* nodeForId(int nodeId);
     int boundNodeId(Node*);
     void setDOMListener(DOMListener*);

Modified: trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js (125267 => 125268)


--- trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js	2012-08-10 09:51:34 UTC (rev 125267)
+++ trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js	2012-08-10 09:58:35 UTC (rev 125268)
@@ -164,21 +164,21 @@
 
     /**
      * @param {DOMAgent.NodeId} nodeId
-     * @param {function(?Array.<string>)} userCallback
+     * @param {function(?Array.<WebInspector.NamedFlow>)} userCallback
      */
     getNamedFlowCollectionAsync: function(nodeId, userCallback)
     {
         /**
-         * @param {function(?Array.<string>)} userCallback
+         * @param {function(?Array.<WebInspector.NamedFlow>)} userCallback
          * @param {?Protocol.Error} error
-         * @param {?Array.<string>=} namedFlowPayload
+         * @param {?Array.<CSSAgent.NamedFlow>=} namedFlowPayload
          */
         function callback(userCallback, error, namedFlowPayload)
         {
             if (error || !namedFlowPayload)
                 userCallback(null);
             else
-                userCallback(namedFlowPayload);
+                userCallback(WebInspector.NamedFlow.parsePayloadArray(namedFlowPayload));
         }
 
         CSSAgent.getNamedFlowCollection(nodeId, callback.bind(this, userCallback));
@@ -1345,6 +1345,8 @@
     this.nodeId = payload.nodeId;
     this.name = payload.name;
     this.overset = payload.overset;
+    this.content = payload.content;
+    this.regions = payload.regions;
 }
 
 /**
@@ -1357,6 +1359,17 @@
 }
 
 /**
+ * @param {?Array.<CSSAgent.NamedFlow>=} namedFlowPayload
+ * @return {?Array.<WebInspector.NamedFlow>}
+ */
+WebInspector.NamedFlow.parsePayloadArray = function(payloadArray)
+{
+    for (var i = 0; i < payloadArray.length; ++i)
+        payloadArray[i] = WebInspector.NamedFlow.parsePayload(payloadArray[i]);
+    return payloadArray;
+}
+
+/**
  * @type {WebInspector.CSSStyleModel}
  */
 WebInspector.cssModel = null;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to