[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.16-1409-g5afdf4d
eric at webkit.org
eric at webkit.org
Thu Dec 3 13:27:02 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit 8af95bc26918966c88515c4d5c8bf411769bc00d
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 4 20:04:16 2009 +0000
2009-11-04 Eric Z. Ayers <zundel at google.com>
Reviewed by Pavel Feldman.
Followon to bug 31080, which protects Timeline
instrumentation in the case where InspectorTimelineAgent
is enabled or disabled during an event dispatch.
https://bugs.webkit.org/show_bug.cgi?id=31121
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::evaluate):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* dom/Node.cpp:
(WebCore::Node::dispatchGenericEvent):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::write):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::inspectorTimelineAgent):
(WebCore::DOMWindow::dispatchEvent):
* page/DOMWindow.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::paintContents):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c8bde61..096f0de 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,31 @@
+2009-11-04 Eric Z. Ayers <zundel at google.com>
+
+ Reviewed by Pavel Feldman.
+
+ Followon to bug 31080, which protects Timeline
+ instrumentation in the case where InspectorTimelineAgent
+ is enabled or disabled during an event dispatch.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31121
+
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::evaluate):
+ * dom/Document.cpp:
+ (WebCore::Document::recalcStyle):
+ * dom/Node.cpp:
+ (WebCore::Node::dispatchGenericEvent):
+ * html/HTMLTokenizer.cpp:
+ (WebCore::HTMLTokenizer::write):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::inspectorTimelineAgent):
+ (WebCore::DOMWindow::dispatchEvent):
+ * page/DOMWindow.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout):
+ (WebCore::FrameView::paintContents):
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::callReadyStateChangeListener):
+
2009-11-04 Jeremy Orlow <jorlow at chromium.org>
Revert 50519 while I work out what went wrong.
diff --git a/WebCore/bindings/v8/V8Proxy.cpp b/WebCore/bindings/v8/V8Proxy.cpp
index 475b5e5..defdb27 100644
--- a/WebCore/bindings/v8/V8Proxy.cpp
+++ b/WebCore/bindings/v8/V8Proxy.cpp
@@ -375,8 +375,7 @@ v8::Local<v8::Value> V8Proxy::evaluate(const ScriptSourceCode& source, Node* nod
ASSERT(v8::Context::InContext());
#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = m_frame->page() ? m_frame->page()->inspectorTimelineAgent() : 0;
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = m_frame->page() ? m_frame->page()->inspectorTimelineAgent() : 0)
timelineAgent->willEvaluateScript(source.url().isNull() ? String() : source.url().string(), source.startLine());
#endif
@@ -407,7 +406,7 @@ v8::Local<v8::Value> V8Proxy::evaluate(const ScriptSourceCode& source, Node* nod
ChromiumBridge::traceEventEnd("v8.run", node, "");
#if ENABLE(INSPECTOR)
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = m_frame->page() ? m_frame->page()->inspectorTimelineAgent() : 0)
timelineAgent->didEvaluateScript();
#endif
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 4f187c5..d278cfc 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -1231,8 +1231,7 @@ void Document::recalcStyle(StyleChange change)
return; // Guard against re-entrancy. -dwh
#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent();
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->willRecalculateStyle();
#endif
@@ -1312,7 +1311,7 @@ bail_out:
}
#if ENABLE(INSPECTOR)
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->didRecalculateStyle();
#endif
}
diff --git a/WebCore/dom/Node.cpp b/WebCore/dom/Node.cpp
index 3d3546a..d3d501b 100644
--- a/WebCore/dom/Node.cpp
+++ b/WebCore/dom/Node.cpp
@@ -2576,7 +2576,7 @@ doneDispatching:
doneWithDefault:
#if ENABLE(INSPECTOR)
- if (timelineAgentIsActive)
+ if (timelineAgentIsActive && (timelineAgent = document()->inspectorTimelineAgent()))
timelineAgent->didDispatchEvent();
#endif
diff --git a/WebCore/html/HTMLTokenizer.cpp b/WebCore/html/HTMLTokenizer.cpp
index 02970ba..433820b 100644
--- a/WebCore/html/HTMLTokenizer.cpp
+++ b/WebCore/html/HTMLTokenizer.cpp
@@ -1666,8 +1666,7 @@ void HTMLTokenizer::write(const SegmentedString& str, bool appendData)
double startTime = currentTime();
#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = m_doc->inspectorTimelineAgent();
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = m_doc->inspectorTimelineAgent())
timelineAgent->willWriteHTML();
#endif
@@ -1793,7 +1792,7 @@ void HTMLTokenizer::write(const SegmentedString& str, bool appendData)
#endif
#if ENABLE(INSPECTOR)
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = m_doc->inspectorTimelineAgent())
timelineAgent->didWriteHTML();
#endif
diff --git a/WebCore/page/DOMWindow.cpp b/WebCore/page/DOMWindow.cpp
index b33602c..ef4ee5f 100644
--- a/WebCore/page/DOMWindow.cpp
+++ b/WebCore/page/DOMWindow.cpp
@@ -1302,6 +1302,13 @@ void DOMWindow::dispatchLoadEvent()
#endif
}
+InspectorTimelineAgent* DOMWindow::inspectorTimelineAgent()
+{
+ if (frame() && frame()->page())
+ return frame()->page()->inspectorTimelineAgent();
+ return 0;
+}
+
bool DOMWindow::dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget> prpTarget)
{
RefPtr<EventTarget> protect = this;
@@ -1312,9 +1319,7 @@ bool DOMWindow::dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget
event->setEventPhase(Event::AT_TARGET);
#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = 0;
- if (frame() && frame()->page())
- timelineAgent = frame()->page()->inspectorTimelineAgent();
+ InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent();
bool timelineAgentIsActive = timelineAgent && hasEventListeners(event->type());
if (timelineAgentIsActive)
timelineAgent->willDispatchEvent(*event);
@@ -1323,8 +1328,11 @@ bool DOMWindow::dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget
bool result = fireEventListeners(event.get());
#if ENABLE(INSPECTOR)
- if (timelineAgentIsActive)
- timelineAgent->didDispatchEvent();
+ if (timelineAgentIsActive) {
+ timelineAgent = inspectorTimelineAgent();
+ if (timelineAgent)
+ timelineAgent->didDispatchEvent();
+ }
#endif
return result;
diff --git a/WebCore/page/DOMWindow.h b/WebCore/page/DOMWindow.h
index 25eadc8..8960843 100644
--- a/WebCore/page/DOMWindow.h
+++ b/WebCore/page/DOMWindow.h
@@ -52,6 +52,7 @@ namespace WebCore {
class FloatRect;
class Frame;
class History;
+ class InspectorTimelineAgent;
class Location;
class Media;
class Navigator;
@@ -352,6 +353,7 @@ namespace WebCore {
virtual void derefEventTarget() { deref(); }
virtual EventTargetData* eventTargetData();
virtual EventTargetData* ensureEventTargetData();
+ InspectorTimelineAgent* inspectorTimelineAgent();
RefPtr<SecurityOrigin> m_securityOrigin;
KURL m_url;
diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
index a6c8e84..04da5e3 100644
--- a/WebCore/page/FrameView.cpp
+++ b/WebCore/page/FrameView.cpp
@@ -504,9 +504,8 @@ void FrameView::layout(bool allowSubtree)
if (isPainting())
return;
-#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent();
- if (timelineAgent)
+#if ENABLE(INSPECTOR)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->willLayout();
#endif
@@ -696,7 +695,7 @@ void FrameView::layout(bool allowSubtree)
}
#if ENABLE(INSPECTOR)
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->didLayout();
#endif
@@ -1615,8 +1614,7 @@ void FrameView::paintContents(GraphicsContext* p, const IntRect& rect)
return;
#if ENABLE(INSPECTOR)
- InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent();
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->willPaint(rect);
#endif
@@ -1685,7 +1683,7 @@ void FrameView::paintContents(GraphicsContext* p, const IntRect& rect)
sCurrentPaintTimeStamp = 0;
#if ENABLE(INSPECTOR)
- if (timelineAgent)
+ if (InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent())
timelineAgent->didPaint();
#endif
}
diff --git a/WebCore/xml/XMLHttpRequest.cpp b/WebCore/xml/XMLHttpRequest.cpp
index bf2022f..2e0b495 100644
--- a/WebCore/xml/XMLHttpRequest.cpp
+++ b/WebCore/xml/XMLHttpRequest.cpp
@@ -261,12 +261,13 @@ void XMLHttpRequest::callReadyStateChangeListener()
dispatchEvent(XMLHttpRequestProgressEvent::create(eventNames().readystatechangeEvent));
#if ENABLE(INSPECTOR)
- if (callTimelineAgentOnReadyStateChange)
+ if (callTimelineAgentOnReadyStateChange && (timelineAgent = InspectorTimelineAgent::retrieve(scriptExecutionContext())))
timelineAgent->didChangeXHRReadyState();
#endif
if (m_state == DONE && !m_error) {
#if ENABLE(INSPECTOR)
+ timelineAgent = InspectorTimelineAgent::retrieve(scriptExecutionContext());
bool callTimelineAgentOnLoad = timelineAgent && hasEventListeners(eventNames().loadEvent);
if (callTimelineAgentOnLoad)
timelineAgent->willLoadXHR(m_url.string());
@@ -275,7 +276,7 @@ void XMLHttpRequest::callReadyStateChangeListener()
dispatchEvent(XMLHttpRequestProgressEvent::create(eventNames().loadEvent));
#if ENABLE(INSPECTOR)
- if (callTimelineAgentOnLoad)
+ if (callTimelineAgentOnLoad && (timelineAgent = InspectorTimelineAgent::retrieve(scriptExecutionContext())))
timelineAgent->didLoadXHR();
#endif
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list