Title: [119897] trunk/Source
Revision
119897
Author
[email protected]
Date
2012-06-09 03:16:10 -0700 (Sat, 09 Jun 2012)

Log Message

Web Inspector: Add message loop instrumentation to public API and timeline agent
https://bugs.webkit.org/show_bug.cgi?id=88639

Patch by Eugene Klyuchnikov <[email protected]> on 2012-06-09
Reviewed by Vsevolod Vlasov.

Message loop instrumentation will show when the render thread is busy.
That way developer can discover if a render thread business causes low fps, or not.

Source/WebCore:

* inspector/InspectorClient.h:
(WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
(WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
Changed timeline agent constructor parameters.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willProcessTaskImpl):
Forwards observer notification.
(WebCore):
(WebCore::InspectorInstrumentation::didProcessTaskImpl):
Ditto.
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willProcessTask):
Ditto.
(WebCore):
(WebCore::InspectorInstrumentation::didProcessTask):
Ditto.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
Starts observer.
(WebCore::InspectorTimelineAgent::stop):
Stops observer.
(WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
Changed result origin.
(WebCore::InspectorTimelineAgent::willProcessTask):
Noop implementqation.
(WebCore):
(WebCore::InspectorTimelineAgent::didProcessTask):
Noop implementqation.
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
Changed constructor parameters.
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::create):
Ditto.
(InspectorTimelineAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
Changed timeline agent constructor parameters.

Source/WebKit/chromium:

* public/WebDevToolsAgent.h:
(WebDevToolsAgent):
* public/WebDevToolsAgentClient.h:
(WebDevToolsAgentClient):
(WebKit::WebDevToolsAgentClient::startMessageLoopMonitoring):
Request message loop notifications.
(WebKit::WebDevToolsAgentClient::stopMessageLoopMonitoring):
Cancel message loop notifications.
* src/InspectorClientImpl.cpp:
(WebKit::InspectorClientImpl::startMessageLoopMonitoring):
Request message loop notifications.
(WebKit):
(WebKit::InspectorClientImpl::stopMessageLoopMonitoring):
Cancel message loop notifications.
* src/InspectorClientImpl.h:
(InspectorClientImpl):
* src/WebDevToolsAgentImpl.cpp:
(WebKit::WebDevToolsAgentImpl::startMessageLoopMonitoring):
Request message loop notifications.
(WebKit):
(WebKit::WebDevToolsAgentImpl::stopMessageLoopMonitoring):
Cancel message loop notifications.
(WebKit::WebDevToolsAgentImpl::instrumentWillProcessTask):
Message loop notification.
(WebKit::WebDevToolsAgentImpl::instrumentDidProcessTask):
Ditto.
* src/WebDevToolsAgentImpl.h:
(WebDevToolsAgentImpl):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119896 => 119897)


--- trunk/Source/WebCore/ChangeLog	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/ChangeLog	2012-06-09 10:16:10 UTC (rev 119897)
@@ -1,3 +1,54 @@
+2012-06-09  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: Add message loop instrumentation to public API and timeline agent
+        https://bugs.webkit.org/show_bug.cgi?id=88639
+
+        Reviewed by Vsevolod Vlasov.
+
+        Message loop instrumentation will show when the render thread is busy.
+        That way developer can discover if a render thread business causes low fps, or not.
+
+        * inspector/InspectorClient.h:
+        (WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
+        (WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::InspectorController):
+        Changed timeline agent constructor parameters.
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::willProcessTaskImpl):
+        Forwards observer notification.
+        (WebCore):
+        (WebCore::InspectorInstrumentation::didProcessTaskImpl):
+        Ditto.
+        * inspector/InspectorInstrumentation.h:
+        (InspectorInstrumentation):
+        (WebCore::InspectorInstrumentation::willProcessTask):
+        Ditto.
+        (WebCore):
+        (WebCore::InspectorInstrumentation::didProcessTask):
+        Ditto.
+        * inspector/InspectorTimelineAgent.cpp:
+        (WebCore::InspectorTimelineAgent::start):
+        Starts observer.
+        (WebCore::InspectorTimelineAgent::stop):
+        Stops observer.
+        (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
+        Changed result origin.
+        (WebCore::InspectorTimelineAgent::willProcessTask):
+        Noop implementqation.
+        (WebCore):
+        (WebCore::InspectorTimelineAgent::didProcessTask):
+        Noop implementqation.
+        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
+        Changed constructor parameters.
+        * inspector/InspectorTimelineAgent.h:
+        (WebCore::InspectorTimelineAgent::create):
+        Ditto.
+        (InspectorTimelineAgent):
+        * inspector/WorkerInspectorController.cpp:
+        (WebCore::WorkerInspectorController::WorkerInspectorController):
+        Changed timeline agent constructor parameters.
+
 2012-06-08  Andrey Kosyakov  <[email protected]>
 
         Web Inspector: optimize timeline's frame mode overview appearance for 30fps

Modified: trunk/Source/WebCore/inspector/InspectorClient.h (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorClient.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorClient.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -55,6 +55,8 @@
     virtual void clearBrowserCache() { }
     virtual bool canClearBrowserCookies() { return false; }
     virtual void clearBrowserCookies() { }
+    virtual void startMessageLoopMonitoring() { }
+    virtual void stopMessageLoopMonitoring() { }
 
     virtual bool canOverrideDeviceMetrics() { return false; }
 

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -114,7 +114,7 @@
     m_agents.append(domStorageAgentPtr.release());
     m_agents.append(InspectorMemoryAgent::create(m_instrumentingAgents.get(), m_state.get(), m_page, m_domAgent));
     m_agents.append(InspectorTimelineAgent::create(m_instrumentingAgents.get(), pageAgent, m_state.get(), InspectorTimelineAgent::PageInspector,
-       inspectorClient->supportsFrameInstrumentation() ? InspectorTimelineAgent::FrameInstrumentationSupported : InspectorTimelineAgent::FrameInstrumentationNotSupported));
+       inspectorClient));
     m_agents.append(InspectorApplicationCacheAgent::create(m_instrumentingAgents.get(), m_state.get(), pageAgent));
 
     OwnPtr<InspectorResourceAgent> resourceAgentPtr(InspectorResourceAgent::create(m_instrumentingAgents.get(), pageAgent, inspectorClient, m_state.get()));

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -551,6 +551,18 @@
         cssAgent->didProcessRule();
 }
 
+void InspectorInstrumentation::willProcessTaskImpl(InstrumentingAgents* instrumentingAgents)
+{
+    if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+        timelineAgent->willProcessTask();
+}
+
+void InspectorInstrumentation::didProcessTaskImpl(InstrumentingAgents* instrumentingAgents)
+{
+    if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+        timelineAgent->didProcessTask();
+}
+
 void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents* instrumentingAgents, String* userAgent)
 {
     if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -153,6 +153,8 @@
     static void didMatchRule(const InspectorInstrumentationCookie&, bool matched);
     static InspectorInstrumentationCookie willProcessRule(Document*, const StyleRule*);
     static void didProcessRule(const InspectorInstrumentationCookie&);
+    static void willProcessTask(Page*);
+    static void didProcessTask(Page*);
 
     static void applyUserAgentOverride(Frame*, String*);
     static void applyScreenWidthOverride(Frame*, long*);
@@ -316,6 +318,8 @@
     static void didMatchRuleImpl(const InspectorInstrumentationCookie&, bool matched);
     static InspectorInstrumentationCookie willProcessRuleImpl(InstrumentingAgents*, const StyleRule*);
     static void didProcessRuleImpl(const InspectorInstrumentationCookie&);
+    static void willProcessTaskImpl(InstrumentingAgents*);
+    static void didProcessTaskImpl(InstrumentingAgents*);
 
     static void applyUserAgentOverrideImpl(InstrumentingAgents*, String*);
     static void applyScreenWidthOverrideImpl(InstrumentingAgents*, long*);
@@ -913,6 +917,24 @@
 #endif
 }
 
+inline void InspectorInstrumentation::willProcessTask(Page* page)
+{
+#if ENABLE(INSPECTOR)
+    FAST_RETURN_IF_NO_FRONTENDS(void());
+    if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
+        willProcessTaskImpl(instrumentingAgents);
+#endif
+}
+
+inline void InspectorInstrumentation::didProcessTask(Page* page)
+{
+#if ENABLE(INSPECTOR)
+    FAST_RETURN_IF_NO_FRONTENDS(void());
+    if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
+        didProcessTaskImpl(instrumentingAgents);
+#endif
+}
+
 inline void InspectorInstrumentation::applyUserAgentOverride(Frame* frame, String* userAgent)
 {
 #if ENABLE(INSPECTOR)

Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -154,6 +154,10 @@
         m_maxCallStackDepth = 5;
     m_state->setLong(TimelineAgentState::timelineMaxCallStackDepth, m_maxCallStackDepth);
     m_timestampOffset = currentTime() - monotonicallyIncreasingTime();
+
+    if (m_client)
+        m_client->startMessageLoopMonitoring();
+
     m_instrumentingAgents->setInspectorTimelineAgent(this);
     ScriptGCEvent::addEventListener(this);
     m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, true);
@@ -163,6 +167,10 @@
 {
     if (!m_state->getBoolean(TimelineAgentState::timelineAgentEnabled))
         return;
+
+    if (m_client)
+        m_client->stopMessageLoopMonitoring();
+
     m_instrumentingAgents->setInspectorTimelineAgent(0);
     ScriptGCEvent::removeEventListener(this);
 
@@ -179,7 +187,7 @@
 
 void InspectorTimelineAgent::supportsFrameInstrumentation(ErrorString*, bool* result)
 {
-    *result = m_frameInstrumentationSupport == FrameInstrumentationSupported;
+    *result = m_client && m_client->supportsFrameInstrumentation();
 }
 
 void InspectorTimelineAgent::didBeginFrame()
@@ -405,6 +413,16 @@
     didCompleteCurrentRecord(TimelineRecordType::FireAnimationFrame);
 }
 
+void InspectorTimelineAgent::willProcessTask()
+{
+    // TODO: Record task processing start time.
+}
+
+void InspectorTimelineAgent::didProcessTask()
+{
+    // TODO: Record task processing end time.
+}
+
 void InspectorTimelineAgent::addRecordToTimeline(PassRefPtr<InspectorObject> record, const String& type, const String& frameId)
 {
     commitCancelableRecords();
@@ -462,7 +480,7 @@
     }
 }
 
-InspectorTimelineAgent::InspectorTimelineAgent(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state, InspectorType type, FrameInstrumentationSupport frameInstrumentationSupport)
+InspectorTimelineAgent::InspectorTimelineAgent(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state, InspectorType type, InspectorClient* client)
     : InspectorBaseAgent<InspectorTimelineAgent>("Timeline", instrumentingAgents, state)
     , m_pageAgent(pageAgent)
     , m_frontend(0)
@@ -470,7 +488,7 @@
     , m_id(1)
     , m_maxCallStackDepth(5)
     , m_inspectorType(type)
-    , m_frameInstrumentationSupport(frameInstrumentationSupport)
+    , m_client(client)
 {
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.h (119896 => 119897)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -60,11 +60,10 @@
     WTF_MAKE_NONCOPYABLE(InspectorTimelineAgent);
 public:
     enum InspectorType { PageInspector, WorkerInspector };
-    enum FrameInstrumentationSupport { FrameInstrumentationNotSupported, FrameInstrumentationSupported };
 
-    static PassOwnPtr<InspectorTimelineAgent> create(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state, InspectorType type, FrameInstrumentationSupport frameInstrumentationSupport)
+    static PassOwnPtr<InspectorTimelineAgent> create(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state, InspectorType type, InspectorClient* client)
     {
-        return adoptPtr(new InspectorTimelineAgent(instrumentingAgents, pageAgent, state, type, frameInstrumentationSupport));
+        return adoptPtr(new InspectorTimelineAgent(instrumentingAgents, pageAgent, state, type, client));
     }
 
     ~InspectorTimelineAgent();
@@ -141,6 +140,9 @@
 
     virtual void didGC(double, double, size_t);
 
+    void willProcessTask();
+    void didProcessTask();
+
 private:
     struct TimelineRecordEntry {
         TimelineRecordEntry(PassRefPtr<InspectorObject> record, PassRefPtr<InspectorObject> data, PassRefPtr<InspectorArray> children, const String& type, const String& frameId, bool cancelable = false)
@@ -155,7 +157,7 @@
         bool cancelable;
     };
         
-    InspectorTimelineAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorState*, InspectorType, FrameInstrumentationSupport);
+    InspectorTimelineAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorState*, InspectorType, InspectorClient*);
 
     void pushCurrentRecord(PassRefPtr<InspectorObject>, const String& type, bool captureCallStack, Frame*);
     void setHeapSizeStatistic(InspectorObject* record);
@@ -195,7 +197,7 @@
     GCEvents m_gcEvents;
     int m_maxCallStackDepth;
     InspectorType m_inspectorType;
-    FrameInstrumentationSupport m_frameInstrumentationSupport;
+    InspectorClient* m_client;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.cpp (119896 => 119897)


--- trunk/Source/WebCore/inspector/WorkerInspectorController.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -102,7 +102,7 @@
     m_debuggerAgent = WorkerDebuggerAgent::create(m_instrumentingAgents.get(), m_state.get(), workerContext, m_injectedScriptManager.get());
     m_profilerAgent = InspectorProfilerAgent::create(m_instrumentingAgents.get(), m_consoleAgent.get(), workerContext, m_state.get(), m_injectedScriptManager.get());
 #endif
-    m_timelineAgent = InspectorTimelineAgent::create(m_instrumentingAgents.get(), 0, m_state.get(), InspectorTimelineAgent::WorkerInspector, InspectorTimelineAgent::FrameInstrumentationNotSupported);
+    m_timelineAgent = InspectorTimelineAgent::create(m_instrumentingAgents.get(), 0, m_state.get(), InspectorTimelineAgent::WorkerInspector, 0);
 
     m_injectedScriptManager->injectedScriptHost()->init(0
         , 0

Modified: trunk/Source/WebKit/chromium/ChangeLog (119896 => 119897)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-06-09 10:16:10 UTC (rev 119897)
@@ -1,3 +1,42 @@
+2012-06-09  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: Add message loop instrumentation to public API and timeline agent
+        https://bugs.webkit.org/show_bug.cgi?id=88639
+
+        Reviewed by Vsevolod Vlasov.
+
+        Message loop instrumentation will show when the render thread is busy.
+        That way developer can discover if a render thread business causes low fps, or not.
+
+        * public/WebDevToolsAgent.h:
+        (WebDevToolsAgent):
+        * public/WebDevToolsAgentClient.h:
+        (WebDevToolsAgentClient):
+        (WebKit::WebDevToolsAgentClient::startMessageLoopMonitoring):
+        Request message loop notifications.
+        (WebKit::WebDevToolsAgentClient::stopMessageLoopMonitoring):
+        Cancel message loop notifications.
+        * src/InspectorClientImpl.cpp:
+        (WebKit::InspectorClientImpl::startMessageLoopMonitoring):
+        Request message loop notifications.
+        (WebKit):
+        (WebKit::InspectorClientImpl::stopMessageLoopMonitoring):
+        Cancel message loop notifications.
+        * src/InspectorClientImpl.h:
+        (InspectorClientImpl):
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::startMessageLoopMonitoring):
+        Request message loop notifications.
+        (WebKit):
+        (WebKit::WebDevToolsAgentImpl::stopMessageLoopMonitoring):
+        Cancel message loop notifications.
+        (WebKit::WebDevToolsAgentImpl::instrumentWillProcessTask):
+        Message loop notification.
+        (WebKit::WebDevToolsAgentImpl::instrumentDidProcessTask):
+        Ditto.
+        * src/WebDevToolsAgentImpl.h:
+        (WebDevToolsAgentImpl):
+
 2012-06-08  David Reveman  <[email protected]>
 
         [Chromium] Compositor doesn't support translucent root layers.

Modified: trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h (119896 => 119897)


--- trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -69,6 +69,14 @@
     // Exposed for LayoutTestController.
     virtual void evaluateInWebInspector(long callId, const WebString& script) = 0;
 
+    // Instrumentation method that marks beginning of task processing
+    // in renderer message loop.
+    virtual void instrumentWillProcessTask() = 0;
+
+    // Instrumentation method that marks end of task processing
+    // in renderer message loop.
+    virtual void instrumentDidProcessTask() = 0;
+
     class MessageDescriptor {
     public:
         virtual ~MessageDescriptor() { }

Modified: trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h (119896 => 119897)


--- trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -58,6 +58,14 @@
     };
     virtual WebKitClientMessageLoop* createClientMessageLoop() { return 0; }
 
+    // Add task observer to message loop that is responsible for rendering
+    // of instrumented page. Corresponding WebDevToolsAgent should be notified
+    // about beginning and finishing of task processing in message loop.
+    virtual void startMessageLoopMonitoring() { }
+
+    // Remove task observer added by "startMessageLoopMonitoring".
+    virtual void stopMessageLoopMonitoring() { }
+
     virtual void clearBrowserCache() { }
     virtual void clearBrowserCookies() { }
 

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp (119896 => 119897)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -128,6 +128,18 @@
         agent->clearBrowserCookies();
 }
 
+void InspectorClientImpl::startMessageLoopMonitoring()
+{
+    if (WebDevToolsAgentImpl* agent = devToolsAgent())
+        agent->startMessageLoopMonitoring();
+}
+
+void InspectorClientImpl::stopMessageLoopMonitoring()
+{
+    if (WebDevToolsAgentImpl* agent = devToolsAgent())
+        agent->stopMessageLoopMonitoring();
+}
+
 bool InspectorClientImpl::canOverrideDeviceMetrics()
 {
     return true;

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.h (119896 => 119897)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -64,6 +64,9 @@
     virtual bool canClearBrowserCookies();
     virtual void clearBrowserCookies();
 
+    virtual void startMessageLoopMonitoring();
+    virtual void stopMessageLoopMonitoring();
+
     virtual bool canOverrideDeviceMetrics();
     virtual void overrideDeviceMetrics(int, int, float, bool);
     virtual void autoZoomPageToFitWidth();

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (119896 => 119897)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-06-09 10:16:10 UTC (rev 119897)
@@ -549,6 +549,28 @@
     m_client->clearBrowserCookies();
 }
 
+void WebDevToolsAgentImpl::startMessageLoopMonitoring()
+{
+    m_client->startMessageLoopMonitoring();
+}
+
+void WebDevToolsAgentImpl::stopMessageLoopMonitoring()
+{
+    m_client->stopMessageLoopMonitoring();
+}
+
+void WebDevToolsAgentImpl::instrumentWillProcessTask()
+{
+    if (Page* page = m_webViewImpl->page())
+        InspectorInstrumentation::willProcessTask(page);
+}
+
+void WebDevToolsAgentImpl::instrumentDidProcessTask()
+{
+    if (Page* page = m_webViewImpl->page())
+        InspectorInstrumentation::didProcessTask(page);
+}
+
 void WebDevToolsAgentImpl::setProcessId(long processId)
 {
     inspectorController()->setProcessId(processId);

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (119896 => 119897)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-06-09 10:13:21 UTC (rev 119896)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-06-09 10:16:10 UTC (rev 119897)
@@ -85,6 +85,8 @@
     virtual void inspectElementAt(const WebPoint& point);
     virtual void evaluateInWebInspector(long callId, const WebString& script);
     virtual void setProcessId(long);
+    virtual void instrumentWillProcessTask();
+    virtual void instrumentDidProcessTask();
 
     // InspectorClient implementation.
     virtual void inspectorDestroyed();
@@ -100,6 +102,9 @@
     virtual void clearBrowserCache();
     virtual void clearBrowserCookies();
 
+    virtual void startMessageLoopMonitoring();
+    virtual void stopMessageLoopMonitoring();
+
     virtual void overrideDeviceMetrics(int width, int height, float fontScaleFactor, bool fitWindow);
     virtual void autoZoomPageToFitWidth();
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to