Diff
Modified: trunk/LayoutTests/ChangeLog (151834 => 151835)
--- trunk/LayoutTests/ChangeLog 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/LayoutTests/ChangeLog 2013-06-21 14:31:26 UTC (rev 151835)
@@ -1,3 +1,15 @@
+2013-06-21 Radu Stavila <[email protected]>
+
+ Web Inspector: Integrate new regionOversetChange event into inspector
+ https://bugs.webkit.org/show_bug.cgi?id=117833
+
+ Tests for the new regionOversetChange event.
+
+ Reviewed by Joseph Pecoraro.
+
+ * inspector/styles/protocol-css-regions-commands-expected.txt:
+ * inspector/styles/protocol-css-regions-commands.html:
+
2013-06-21 Krzysztof Czech <[email protected]>
[ATK] Added support for aria-required attribute.
Modified: trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt (151834 => 151835)
--- trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/LayoutTests/inspector/styles/protocol-css-regions-commands-expected.txt 2013-06-21 14:31:26 UTC (rev 151835)
@@ -4,7 +4,7 @@
getFlowByName Bug 91855
namedFlowCreated Bug 92739
namedFlowRemoved Bug 92739
-regionLayoutUpdated Bug 93443
+regionOversetChanged Bug 117833
This text is from CSS Named Flow "flow3".
@@ -18,7 +18,7 @@
Regions: 2
* Named Flow "flow3"
Content Elements: 1
-Regions: 1
+Regions: 0
Running: testGetNamedFlowCollectionWithInvalidDocument
=== CSS Named Flows in #fake-document ===
@@ -37,8 +37,8 @@
Running: testNamedFlowCreated
NamedFlowCreated: "tmpNamedFlow"
-Running: testRegionLayoutUpdated
-RegionLayoutUpdated: "flow3"
+Running: testRegionOversetChanged
+RegionOversetChanged: "flow3"
Running: testNamedFlowRemoved
NamedFlowRemoved: "tmpNamedFlow"
Modified: trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html (151834 => 151835)
--- trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/LayoutTests/inspector/styles/protocol-css-regions-commands.html 2013-06-21 14:31:26 UTC (rev 151835)
@@ -176,19 +176,19 @@
}
},
- function testRegionLayoutUpdated(next)
+ function testRegionOversetChanged(next)
{
- WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, callback, this);
- InspectorTest.evaluateInPage("window.document.getElementById(\"region3\").style[\"width\"] = \"200px\"");
+ WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, callback, this);
+ InspectorTest.evaluateInPage("window.document.getElementById(\"region3\").style.webkitFlowFrom=\"flow3\"");
function callback(event)
{
if (event.data.name !== "flow3")
return;
- WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, callback, this);
+ WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, callback, this);
- InspectorTest.addResult("RegionLayoutUpdated: \"flow3\"");
+ InspectorTest.addResult("RegionOversetChanged: \"flow3\"");
next();
}
},
@@ -229,7 +229,7 @@
<li>getFlowByName <a href="" 91855</a></li>
<li>namedFlowCreated <a href="" 92739</a></li>
<li>namedFlowRemoved <a href="" 92739</a></li>
- <li>regionLayoutUpdated <a href="" 93443</a></li>
+ <li>regionOversetChanged <a href="" 117833</a></li>
</ul>
</p>
@@ -245,7 +245,7 @@
<article style="-webkit-flow-into: flow3">
This text is from CSS Named Flow "flow3".
</article>
-<div id="region3" style="-webkit-flow-from: flow3; height: 20px; width: 5px"></div>
+<div id="region3" style="-webkit-flow-from: none; height: 20px; width: 5px"></div>
<div id="fake-document"></div>
Modified: trunk/Source/WebCore/ChangeLog (151834 => 151835)
--- trunk/Source/WebCore/ChangeLog 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/ChangeLog 2013-06-21 14:31:26 UTC (rev 151835)
@@ -1,3 +1,41 @@
+2013-06-21 Radu Stavila <[email protected]>
+
+ Web Inspector: Integrate new regionOversetChange event into inspector
+ https://bugs.webkit.org/show_bug.cgi?id=117833
+
+ Added the new regionOversetChange event to the WebInspector.
+
+ Reviewed by Joseph Pecoraro.
+
+ Tests: inspector/styles/protocol-css-regions-commands.html:
+
+ * inspector/Inspector.json:
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::ChangeRegionOversetTask::ChangeRegionOversetTask):
+ (WebCore::ChangeRegionOversetTask::scheduleFor):
+ (WebCore::ChangeRegionOversetTask::unschedule):
+ (WebCore::ChangeRegionOversetTask::reset):
+ (WebCore::ChangeRegionOversetTask::onTimer):
+ (WebCore::InspectorCSSAgent::resetNonPersistentData):
+ (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
+ (WebCore::InspectorCSSAgent::didChangeRegionOverset):
+ (WebCore::InspectorCSSAgent::regionOversetChanged):
+ * inspector/InspectorCSSAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::didChangeRegionOversetImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::didChangeRegionOverset):
+ * inspector/front-end/CSSNamedFlowCollectionsView.js:
+ (WebInspector.CSSNamedFlowCollectionsView.prototype._regionOversetChanged):
+ (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
+ (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide):
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel.prototype._regionOversetChanged):
+ (WebInspector.CSSDispatcher.prototype.regionLayoutUpdated):
+ (WebInspector.CSSDispatcher.prototype.regionOversetChanged):
+ * rendering/RenderNamedFlowThread.cpp:
+ (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEvent):
+
2013-06-21 Sergio Correia <[email protected]>
[EFL] NetworkStateNotifierEfl: Use closeWithRetry instead of looping for EINTR on close
Modified: trunk/Source/WebCore/inspector/Inspector.json (151834 => 151835)
--- trunk/Source/WebCore/inspector/Inspector.json 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/Inspector.json 2013-06-21 14:31:26 UTC (rev 151835)
@@ -2546,6 +2546,13 @@
{ "name": "namedFlow", "$ref": "NamedFlow", "description": "The Named Flow whose layout may have changed." }
],
"description": "Fires when a Named Flow's layout may have changed."
+ },
+ {
+ "name": "regionOversetChanged",
+ "parameters": [
+ { "name": "namedFlow", "$ref": "NamedFlow", "description": "The Named Flow containing the regions whose regionOverset values changed." }
+ ],
+ "description": "Fires if any of the regionOverset values changed in a Named Flow's region chain."
}
]
},
Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (151834 => 151835)
--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp 2013-06-21 14:31:26 UTC (rev 151835)
@@ -290,7 +290,55 @@
if (!m_namedFlows.isEmpty() && !m_timer.isActive())
m_timer.startOneShot(0);
}
+
+class ChangeRegionOversetTask {
+public:
+ ChangeRegionOversetTask(InspectorCSSAgent*);
+ void scheduleFor(WebKitNamedFlow*, int documentNodeId);
+ void unschedule(WebKitNamedFlow*);
+ void reset();
+ void onTimer(Timer<ChangeRegionOversetTask>*);
+
+private:
+ InspectorCSSAgent* m_cssAgent;
+ Timer<ChangeRegionOversetTask> m_timer;
+ HashMap<WebKitNamedFlow*, int> m_namedFlows;
+};
+ChangeRegionOversetTask::ChangeRegionOversetTask(InspectorCSSAgent* cssAgent)
+ : m_cssAgent(cssAgent)
+ , m_timer(this, &ChangeRegionOversetTask::onTimer)
+{
+}
+
+void ChangeRegionOversetTask::scheduleFor(WebKitNamedFlow* namedFlow, int documentNodeId)
+{
+ m_namedFlows.add(namedFlow, documentNodeId);
+
+ if (!m_timer.isActive())
+ m_timer.startOneShot(0);
+}
+
+void ChangeRegionOversetTask::unschedule(WebKitNamedFlow* namedFlow)
+{
+ m_namedFlows.remove(namedFlow);
+}
+
+void ChangeRegionOversetTask::reset()
+{
+ m_timer.stop();
+ m_namedFlows.clear();
+}
+
+void ChangeRegionOversetTask::onTimer(Timer<ChangeRegionOversetTask>*)
+{
+ // The timer is stopped on m_cssAgent destruction, so this method will never be called after m_cssAgent has been destroyed.
+ for (HashMap<WebKitNamedFlow*, int>::iterator it = m_namedFlows.begin(), end = m_namedFlows.end(); it != end; ++it)
+ m_cssAgent->regionOversetChanged(it->key, it->value);
+
+ m_namedFlows.clear();
+}
+
class InspectorCSSAgent::StyleSheetAction : public InspectorHistory::Action {
WTF_MAKE_NONCOPYABLE(StyleSheetAction);
public:
@@ -634,6 +682,8 @@
m_namedFlowCollectionsRequested.clear();
if (m_updateRegionLayoutTask)
m_updateRegionLayoutTask->reset();
+ if (m_changeRegionOversetTask)
+ m_changeRegionOversetTask->reset();
resetPseudoStates();
}
@@ -673,6 +723,9 @@
if (m_updateRegionLayoutTask)
m_updateRegionLayoutTask->unschedule(namedFlow);
+
+ if (m_changeRegionOversetTask)
+ m_changeRegionOversetTask->unschedule(namedFlow);
m_frontend->namedFlowRemoved(documentNodeId, namedFlow->name().string());
}
@@ -699,6 +752,28 @@
m_frontend->regionLayoutUpdated(buildObjectForNamedFlow(&errorString, namedFlow, documentNodeId));
}
+void InspectorCSSAgent::didChangeRegionOverset(Document* document, WebKitNamedFlow* namedFlow)
+{
+ int documentNodeId = documentNodeWithRequestedFlowsId(document);
+ if (!documentNodeId)
+ return;
+
+ if (!m_changeRegionOversetTask)
+ m_changeRegionOversetTask = adoptPtr(new ChangeRegionOversetTask(this));
+ m_changeRegionOversetTask->scheduleFor(namedFlow, documentNodeId);
+}
+
+void InspectorCSSAgent::regionOversetChanged(WebKitNamedFlow* namedFlow, int documentNodeId)
+{
+ if (namedFlow->flowState() == WebKitNamedFlow::FlowStateNull)
+ return;
+
+ ErrorString errorString;
+ RefPtr<WebKitNamedFlow> protector(namedFlow);
+
+ m_frontend->regionOversetChanged(buildObjectForNamedFlow(&errorString, namedFlow, documentNodeId));
+}
+
bool InspectorCSSAgent::forcePseudoState(Element* element, CSSSelector::PseudoType pseudoType)
{
if (m_nodeIdToForcedPseudoState.isEmpty())
Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.h (151834 => 151835)
--- trunk/Source/WebCore/inspector/InspectorCSSAgent.h 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.h 2013-06-21 14:31:26 UTC (rev 151835)
@@ -59,6 +59,7 @@
class StyleResolver;
class StyleRule;
class UpdateRegionLayoutTask;
+class ChangeRegionOversetTask;
#if ENABLE(INSPECTOR)
@@ -107,6 +108,8 @@
void willRemoveNamedFlow(Document*, WebKitNamedFlow*);
void didUpdateRegionLayout(Document*, WebKitNamedFlow*);
void regionLayoutUpdated(WebKitNamedFlow*, int documentNodeId);
+ void didChangeRegionOverset(Document*, WebKitNamedFlow*);
+ void regionOversetChanged(WebKitNamedFlow*, int documentNodeId);
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);
@@ -189,6 +192,7 @@
NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState;
HashSet<int> m_namedFlowCollectionsRequested;
OwnPtr<UpdateRegionLayoutTask> m_updateRegionLayoutTask;
+ OwnPtr<ChangeRegionOversetTask> m_changeRegionOversetTask;
int m_lastStyleSheetId;
Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (151834 => 151835)
--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp 2013-06-21 14:31:26 UTC (rev 151835)
@@ -289,6 +289,12 @@
cssAgent->didUpdateRegionLayout(document, namedFlow);
}
+void InspectorInstrumentation::didChangeRegionOversetImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow)
+{
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ cssAgent->didChangeRegionOverset(document, namedFlow);
+}
+
void InspectorInstrumentation::mouseDidMoveOverElementImpl(InstrumentingAgents* instrumentingAgents, const HitTestResult& result, unsigned modifierFlags)
{
if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (151834 => 151835)
--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h 2013-06-21 14:31:26 UTC (rev 151835)
@@ -133,6 +133,7 @@
static void didCreateNamedFlow(Document*, WebKitNamedFlow*);
static void willRemoveNamedFlow(Document*, WebKitNamedFlow*);
static void didUpdateRegionLayout(Document*, WebKitNamedFlow*);
+ static void didChangeRegionOverset(Document*, WebKitNamedFlow*);
static void mouseDidMoveOverElement(Page*, const HitTestResult&, unsigned modifierFlags);
static bool handleMousePress(Page*);
@@ -337,6 +338,7 @@
static void didCreateNamedFlowImpl(InstrumentingAgents*, Document*, WebKitNamedFlow*);
static void willRemoveNamedFlowImpl(InstrumentingAgents*, Document*, WebKitNamedFlow*);
static void didUpdateRegionLayoutImpl(InstrumentingAgents*, Document*, WebKitNamedFlow*);
+ static void didChangeRegionOversetImpl(InstrumentingAgents*, Document*, WebKitNamedFlow*);
static void mouseDidMoveOverElementImpl(InstrumentingAgents*, const HitTestResult&, unsigned modifierFlags);
static bool handleTouchEventImpl(InstrumentingAgents*, Node*);
@@ -719,6 +721,18 @@
#endif
}
+inline void InspectorInstrumentation::didChangeRegionOverset(Document* document, WebKitNamedFlow* namedFlow)
+{
+#if ENABLE(INSPECTOR)
+ FAST_RETURN_IF_NO_FRONTENDS(void());
+ if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForDocument(document))
+ didChangeRegionOversetImpl(instrumentingAgents, document, namedFlow);
+#else
+ UNUSED_PARAM(document);
+ UNUSED_PARAM(namedFlow);
+#endif
+}
+
inline void InspectorInstrumentation::mouseDidMoveOverElement(Page* page, const HitTestResult& result, unsigned modifierFlags)
{
#if ENABLE(INSPECTOR)
Modified: trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js (151834 => 151835)
--- trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js 2013-06-21 14:31:26 UTC (rev 151835)
@@ -247,6 +247,19 @@
var flow = /** @type {WebInspector.NamedFlow} */ (event.data);
this._updateNamedFlow(flow);
},
+
+ /**
+ * @param {WebInspector.Event} event
+ */
+ _regionOversetChanged: function(event)
+ {
+ // FIXME: We only have support for Named Flows in the main document.
+ if (event.data.documentNodeId !== this._document.id)
+ return;
+
+ var flow = /** @type {WebInspector.NamedFlow} */ (event.data);
+ this._updateNamedFlow(flow);
+ },
/**
* @param {DOMAgent.NodeId} documentNodeId
@@ -352,6 +365,7 @@
WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated, this._namedFlowCreated, this);
WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved, this._namedFlowRemoved, this);
WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, this._regionLayoutUpdated, this);
+ WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, this._regionOversetChanged, this);
WebInspector.panel("elements").treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged, this._selectedNodeChanged, this);
@@ -366,6 +380,7 @@
WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated, this._namedFlowCreated, this);
WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved, this._namedFlowRemoved, this);
WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, this._regionLayoutUpdated, this);
+ WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, this._regionOversetChanged, this);
WebInspector.panel("elements").treeOutline.removeEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged, this._selectedNodeChanged, this);
Modified: trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js (151834 => 151835)
--- trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/inspector/front-end/CSSStyleModel.js 2013-06-21 14:31:26 UTC (rev 151835)
@@ -77,7 +77,8 @@
MediaQueryResultChanged: "MediaQueryResultChanged",
NamedFlowCreated: "NamedFlowCreated",
NamedFlowRemoved: "NamedFlowRemoved",
- RegionLayoutUpdated: "RegionLayoutUpdated"
+ RegionLayoutUpdated: "RegionLayoutUpdated",
+ RegionOversetChanged: "RegionOversetChanged"
}
WebInspector.CSSStyleModel.MediaTypes = ["all", "braille", "embossed", "handheld", "print", "projection", "screen", "speech", "tty", "tv"];
@@ -428,6 +429,21 @@
namedFlowCollection._appendNamedFlow(namedFlow);
this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, namedFlow);
},
+
+ /**
+ * @param {CSSAgent.NamedFlow} namedFlowPayload
+ */
+ _regionOversetChanged: function(namedFlowPayload)
+ {
+ var namedFlow = WebInspector.NamedFlow.parsePayload(namedFlowPayload);
+ var namedFlowCollection = this._namedFlowCollections[namedFlow.documentNodeId];
+
+ if (!namedFlowCollection)
+ return;
+
+ namedFlowCollection._appendNamedFlow(namedFlow);
+ this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionOversetChanged, namedFlow);
+ },
/**
* @param {CSSAgent.StyleSheetId} styleSheetId
@@ -1439,6 +1455,14 @@
regionLayoutUpdated: function(namedFlowPayload)
{
this._cssModel._regionLayoutUpdated(namedFlowPayload);
+ },
+
+ /**
+ * @param {CSSAgent.NamedFlow} namedFlowPayload
+ */
+ regionOversetChanged: function(namedFlowPayload)
+ {
+ this._cssModel._regionOversetChanged(namedFlowPayload);
}
}
Modified: trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp (151834 => 151835)
--- trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp 2013-06-21 13:59:19 UTC (rev 151834)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp 2013-06-21 14:31:26 UTC (rev 151835)
@@ -431,6 +431,7 @@
void RenderNamedFlowThread::dispatchRegionOversetChangeEvent()
{
RenderFlowThread::dispatchRegionOversetChangeEvent();
+ InspectorInstrumentation::didChangeRegionOverset(document(), m_namedFlow.get());
if (!m_regionOversetChangeEventTimer.isActive() && m_namedFlow->hasEventListeners())
m_regionOversetChangeEventTimer.startOneShot(0);