Title: [120318] trunk/Source
Revision
120318
Author
[email protected]
Date
2012-06-14 06:26:51 -0700 (Thu, 14 Jun 2012)

Log Message

Web Inspector: Refactor message loop instrumentation.
https://bugs.webkit.org/show_bug.cgi?id=88978

Patch by Eugene Klyuchnikov <[email protected]> on 2012-06-14
Reviewed by Pavel Feldman.

1) Remove "messageLoop" term
2) Reuse WebThread::TaskObserver interface
3) Move implementation (from embedder) to platform code.

Source/Platform:

* chromium/public/WebThread.h:
(TaskObserver): add "willProcessTask" method.

Source/WebCore:

* inspector/InspectorClient.h:
(WebCore::InspectorClient::startMainThreadMonitoring): Renamed method.
(WebCore::InspectorClient::stopMainThreadMonitoring): Ditto.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):

Source/WebKit/chromium:

* public/WebDevToolsAgent.h:
(WebDevToolsAgent):
* public/WebDevToolsAgentClient.h:
(WebDevToolsAgentClient):
(WebKit::WebDevToolsAgentClient::startMainThreadMonitoring): Renamed medthod.
(WebKit::WebDevToolsAgentClient::stopMainThreadMonitoring): Ditto.
* src/InspectorClientImpl.cpp:
(WebKit::InspectorClientImpl::startMainThreadMonitoring): Ditto.
(WebKit::InspectorClientImpl::stopMainThreadMonitoring): Ditto.
* src/InspectorClientImpl.h:
(InspectorClientImpl):
* src/WebDevToolsAgentImpl.cpp:
(WebKit::WebDevToolsAgentImpl::startMainThreadMonitoring): Use platform threading.
(WebKit::WebDevToolsAgentImpl::stopMainThreadMonitoring): Ditto.
(WebKit::WebDevToolsAgentImpl::willProcessTask): Renamed medthod.
(WebKit::WebDevToolsAgentImpl::didProcessTask): Ditto.
* src/WebDevToolsAgentImpl.h:
(WebDevToolsAgentImpl):
* src/WebKit.cpp:

Modified Paths

Diff

Modified: trunk/Source/Platform/ChangeLog (120317 => 120318)


--- trunk/Source/Platform/ChangeLog	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/Platform/ChangeLog	2012-06-14 13:26:51 UTC (rev 120318)
@@ -1,3 +1,17 @@
+2012-06-14  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: Refactor message loop instrumentation.
+        https://bugs.webkit.org/show_bug.cgi?id=88978
+
+        Reviewed by Pavel Feldman.
+
+        1) Remove "messageLoop" term
+        2) Reuse WebThread::TaskObserver interface
+        3) Move implementation (from embedder) to platform code.
+
+        * chromium/public/WebThread.h:
+        (TaskObserver): add "willProcessTask" method.
+
 2012-06-13  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r120268.

Modified: trunk/Source/Platform/chromium/public/WebThread.h (120317 => 120318)


--- trunk/Source/Platform/chromium/public/WebThread.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/Platform/chromium/public/WebThread.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -46,6 +46,7 @@
     class TaskObserver {
     public:
         virtual ~TaskObserver() { }
+        virtual void willProcessTask() = 0;
         virtual void didProcessTask() = 0;
     };
 

Modified: trunk/Source/WebCore/ChangeLog (120317 => 120318)


--- trunk/Source/WebCore/ChangeLog	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebCore/ChangeLog	2012-06-14 13:26:51 UTC (rev 120318)
@@ -1,3 +1,21 @@
+2012-06-14  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: Refactor message loop instrumentation.
+        https://bugs.webkit.org/show_bug.cgi?id=88978
+
+        Reviewed by Pavel Feldman.
+
+        1) Remove "messageLoop" term
+        2) Reuse WebThread::TaskObserver interface
+        3) Move implementation (from embedder) to platform code.
+
+        * inspector/InspectorClient.h:
+        (WebCore::InspectorClient::startMainThreadMonitoring): Renamed method.
+        (WebCore::InspectorClient::stopMainThreadMonitoring): Ditto.
+        * inspector/InspectorTimelineAgent.cpp:
+        (WebCore::InspectorTimelineAgent::start):
+        (WebCore::InspectorTimelineAgent::stop):
+
 2012-06-14  Dominik Röttsches  <[email protected]>
 
         [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations

Modified: trunk/Source/WebCore/inspector/InspectorClient.h (120317 => 120318)


--- trunk/Source/WebCore/inspector/InspectorClient.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebCore/inspector/InspectorClient.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -55,8 +55,8 @@
     virtual void clearBrowserCache() { }
     virtual bool canClearBrowserCookies() { return false; }
     virtual void clearBrowserCookies() { }
-    virtual void startMessageLoopMonitoring() { }
-    virtual void stopMessageLoopMonitoring() { }
+    virtual void startMainThreadMonitoring() { }
+    virtual void stopMainThreadMonitoring() { }
 
     virtual bool canOverrideDeviceMetrics() { return false; }
 

Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp (120317 => 120318)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-06-14 13:26:51 UTC (rev 120318)
@@ -156,7 +156,7 @@
     m_timestampOffset = currentTime() - monotonicallyIncreasingTime();
 
     if (m_client)
-        m_client->startMessageLoopMonitoring();
+        m_client->startMainThreadMonitoring();
 
     m_instrumentingAgents->setInspectorTimelineAgent(this);
     ScriptGCEvent::addEventListener(this);
@@ -169,7 +169,7 @@
         return;
 
     if (m_client)
-        m_client->stopMessageLoopMonitoring();
+        m_client->stopMainThreadMonitoring();
 
     m_instrumentingAgents->setInspectorTimelineAgent(0);
     ScriptGCEvent::removeEventListener(this);

Modified: trunk/Source/WebKit/chromium/ChangeLog (120317 => 120318)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-06-14 13:26:51 UTC (rev 120318)
@@ -1,3 +1,34 @@
+2012-06-14  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: Refactor message loop instrumentation.
+        https://bugs.webkit.org/show_bug.cgi?id=88978
+
+        Reviewed by Pavel Feldman.
+
+        1) Remove "messageLoop" term
+        2) Reuse WebThread::TaskObserver interface
+        3) Move implementation (from embedder) to platform code.
+
+        * public/WebDevToolsAgent.h:
+        (WebDevToolsAgent):
+        * public/WebDevToolsAgentClient.h:
+        (WebDevToolsAgentClient):
+        (WebKit::WebDevToolsAgentClient::startMainThreadMonitoring): Renamed medthod.
+        (WebKit::WebDevToolsAgentClient::stopMainThreadMonitoring): Ditto.
+        * src/InspectorClientImpl.cpp:
+        (WebKit::InspectorClientImpl::startMainThreadMonitoring): Ditto.
+        (WebKit::InspectorClientImpl::stopMainThreadMonitoring): Ditto.
+        * src/InspectorClientImpl.h:
+        (InspectorClientImpl):
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::startMainThreadMonitoring): Use platform threading.
+        (WebKit::WebDevToolsAgentImpl::stopMainThreadMonitoring): Ditto.
+        (WebKit::WebDevToolsAgentImpl::willProcessTask): Renamed medthod.
+        (WebKit::WebDevToolsAgentImpl::didProcessTask): Ditto.
+        * src/WebDevToolsAgentImpl.h:
+        (WebDevToolsAgentImpl):
+        * src/WebKit.cpp:
+
 2012-06-14  Alexander Pavlov  <[email protected]>
 
         Web Inspector: [Device Metrics] "Fit window" results in duplicate rescaling in WebDevToolsAgentImpl::autoZoomPageToFitWidth()

Modified: trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h (120317 => 120318)


--- trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -69,14 +69,6 @@
     // 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 (120317 => 120318)


--- trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -58,13 +58,12 @@
     };
     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() { }
+    // Add task observer to main thread. Corresponding WebDevToolsAgent
+    // should be notified about beginning and finishing of task processing.
+    virtual void startMainThreadMonitoring() { }
 
-    // Remove task observer added by "startMessageLoopMonitoring".
-    virtual void stopMessageLoopMonitoring() { }
+    // Remove task observer added by "startMainThreadMonitoring".
+    virtual void stopMainThreadMonitoring() { }
 
     virtual void clearBrowserCache() { }
     virtual void clearBrowserCookies() { }

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp (120317 => 120318)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-06-14 13:26:51 UTC (rev 120318)
@@ -128,16 +128,16 @@
         agent->clearBrowserCookies();
 }
 
-void InspectorClientImpl::startMessageLoopMonitoring()
+void InspectorClientImpl::startMainThreadMonitoring()
 {
     if (WebDevToolsAgentImpl* agent = devToolsAgent())
-        agent->startMessageLoopMonitoring();
+        agent->startMainThreadMonitoring();
 }
 
-void InspectorClientImpl::stopMessageLoopMonitoring()
+void InspectorClientImpl::stopMainThreadMonitoring()
 {
     if (WebDevToolsAgentImpl* agent = devToolsAgent())
-        agent->stopMessageLoopMonitoring();
+        agent->stopMainThreadMonitoring();
 }
 
 bool InspectorClientImpl::canOverrideDeviceMetrics()

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.h (120317 => 120318)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -64,8 +64,8 @@
     virtual bool canClearBrowserCookies();
     virtual void clearBrowserCookies();
 
-    virtual void startMessageLoopMonitoring();
-    virtual void stopMessageLoopMonitoring();
+    virtual void startMainThreadMonitoring();
+    virtual void stopMainThreadMonitoring();
 
     virtual bool canOverrideDeviceMetrics();
     virtual void overrideDeviceMetrics(int, int, float, bool);

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (120317 => 120318)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-06-14 13:26:51 UTC (rev 120318)
@@ -65,6 +65,7 @@
 #include "platform/WebURLResponse.h"
 #include "WebViewClient.h"
 #include "WebViewImpl.h"
+#include <public/Platform.h>
 #include <wtf/CurrentTime.h>
 #include <wtf/MathExtras.h>
 #include <wtf/Noncopyable.h>
@@ -547,23 +548,23 @@
     m_client->clearBrowserCookies();
 }
 
-void WebDevToolsAgentImpl::startMessageLoopMonitoring()
+void WebDevToolsAgentImpl::startMainThreadMonitoring()
 {
-    m_client->startMessageLoopMonitoring();
+    WebKit::Platform::current()->currentThread()->addTaskObserver(this);
 }
 
-void WebDevToolsAgentImpl::stopMessageLoopMonitoring()
+void WebDevToolsAgentImpl::stopMainThreadMonitoring()
 {
-    m_client->stopMessageLoopMonitoring();
+    WebKit::Platform::current()->currentThread()->removeTaskObserver(this);
 }
 
-void WebDevToolsAgentImpl::instrumentWillProcessTask()
+void WebDevToolsAgentImpl::willProcessTask()
 {
     if (Page* page = m_webViewImpl->page())
         InspectorInstrumentation::willProcessTask(page);
 }
 
-void WebDevToolsAgentImpl::instrumentDidProcessTask()
+void WebDevToolsAgentImpl::didProcessTask()
 {
     if (Page* page = m_webViewImpl->page())
         InspectorInstrumentation::didProcessTask(page);

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (120317 => 120318)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-06-14 13:26:51 UTC (rev 120318)
@@ -36,6 +36,7 @@
 #include "WebDevToolsAgentPrivate.h"
 #include "WebPageOverlay.h"
 #include "platform/WebSize.h"
+#include "platform/WebThread.h"
 
 #include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
@@ -65,7 +66,8 @@
 
 class WebDevToolsAgentImpl : public WebDevToolsAgentPrivate,
                              public WebCore::InspectorClient,
-                             public WebPageOverlay {
+                             public WebPageOverlay,
+                             public WebThread::TaskObserver {
 public:
     WebDevToolsAgentImpl(WebViewImpl* webViewImpl, WebDevToolsAgentClient* client);
     virtual ~WebDevToolsAgentImpl();
@@ -85,8 +87,6 @@
     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();
@@ -102,8 +102,8 @@
     virtual void clearBrowserCache();
     virtual void clearBrowserCookies();
 
-    virtual void startMessageLoopMonitoring();
-    virtual void stopMessageLoopMonitoring();
+    virtual void startMainThreadMonitoring();
+    virtual void stopMainThreadMonitoring();
 
     virtual void overrideDeviceMetrics(int width, int height, float fontScaleFactor, bool fitWindow);
     virtual void autoZoomPageToFitWidth();
@@ -113,6 +113,10 @@
     // WebPageOverlay
     virtual void paintPageOverlay(WebCanvas*);
 
+    // WebThread::TaskObserver
+    virtual void willProcessTask();
+    virtual void didProcessTask();
+
 private:
     WebCore::InspectorController* inspectorController();
     WebCore::Frame* mainFrame();

Modified: trunk/Source/WebKit/chromium/src/WebKit.cpp (120317 => 120318)


--- trunk/Source/WebKit/chromium/src/WebKit.cpp	2012-06-14 13:05:00 UTC (rev 120317)
+++ trunk/Source/WebKit/chromium/src/WebKit.cpp	2012-06-14 13:26:51 UTC (rev 120318)
@@ -63,6 +63,7 @@
 
 class EndOfTaskRunner : public WebThread::TaskObserver {
 public:
+    virtual void willProcessTask() { }
     virtual void didProcessTask()
     {
         WebCore::WebKitMutationObserver::deliverAllMutations();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to