Title: [136426] trunk/Source
Revision
136426
Author
ca...@chromium.org
Date
2012-12-03 12:04:05 -0800 (Mon, 03 Dec 2012)

Log Message

Web Inspector: Make main-thread monitoring go through InspectorController
https://bugs.webkit.org/show_bug.cgi?id=103550

Patch by Eugene Klyuchnikov <eus...@chromium.org> on 2012-12-03
Reviewed by Pavel Feldman.

InspectorInstrumentation was a wrong path.

Source/WebCore:

* inspector/InspectorClient.h: Remove start/stop methods.
* inspector/InspectorController.cpp:
Dispatch main thread activity notifications.
* inspector/InspectorController.h: Ditto.
* inspector/InspectorInstrumentation.cpp: Remove dispatchng.
* inspector/InspectorInstrumentation.h: Ditto.
* inspector/InspectorTimelineAgent.cpp:
Do not subscribe for notifications explicitly.

Source/WebKit/chromium:

* src/InspectorClientImpl.cpp: Remove TaskObserver implementation, and
listen/unlisten methods.
* src/InspectorClientImpl.h: Ditto.
* src/WebDevToolsAgentImpl.cpp:
(WebKit::WebDevToolsAgentImpl::~WebDevToolsAgentImpl):
Unsubscribe for main thread activity events.
(WebKit::WebDevToolsAgentImpl::detach): Ditto.
(WebKit::WebDevToolsAgentImpl::attach):
Subscribe for main thread activity events.
(WebKit::WebDevToolsAgentImpl::willProcessTask): Implement TasObserver
interface. Froward to InspectorController.
(WebKit::WebDevToolsAgentImpl::didProcessTask): Ditto.
* src/WebDevToolsAgentImpl.h: Implement TasObserver interface.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (136425 => 136426)


--- trunk/Source/WebCore/ChangeLog	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/ChangeLog	2012-12-03 20:04:05 UTC (rev 136426)
@@ -1,3 +1,21 @@
+2012-12-03  Eugene Klyuchnikov  <eus...@chromium.org>
+
+        Web Inspector: Make main-thread monitoring go through InspectorController
+        https://bugs.webkit.org/show_bug.cgi?id=103550
+
+        Reviewed by Pavel Feldman.
+
+        InspectorInstrumentation was a wrong path.
+
+        * inspector/InspectorClient.h: Remove start/stop methods.
+        * inspector/InspectorController.cpp:
+        Dispatch main thread activity notifications.
+        * inspector/InspectorController.h: Ditto.
+        * inspector/InspectorInstrumentation.cpp: Remove dispatchng.
+        * inspector/InspectorInstrumentation.h: Ditto.
+        * inspector/InspectorTimelineAgent.cpp:
+        Do not subscribe for notifications explicitly.
+
 2012-12-03  Philip Rogers  <p...@google.com>
 
         Invalidate SVG width on width attribute changes.

Modified: trunk/Source/WebCore/inspector/InspectorClient.h (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorClient.h	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorClient.h	2012-12-03 20:04:05 UTC (rev 136426)
@@ -58,8 +58,6 @@
     virtual bool canClearBrowserCookies() { return false; }
     virtual void clearBrowserCookies() { }
     virtual bool canMonitorMainThread() { return false; }
-    virtual void startMainThreadMonitoring() { }
-    virtual void stopMainThreadMonitoring() { }
 
     virtual bool canOverrideDeviceMetrics() { return false; }
 

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2012-12-03 20:04:05 UTC (rev 136426)
@@ -401,6 +401,18 @@
     info.addMember(m_agents);
 }
 
+void InspectorController::willProcessTask()
+{
+    if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspectorTimelineAgent())
+        timelineAgent->willProcessTask();
+}
+
+void InspectorController::didProcessTask()
+{
+    if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspectorTimelineAgent())
+        timelineAgent->didProcessTask();
+}
+
 } // namespace WebCore
 
 #endif // ENABLE(INSPECTOR)

Modified: trunk/Source/WebCore/inspector/InspectorController.h (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorController.h	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorController.h	2012-12-03 20:04:05 UTC (rev 136426)
@@ -119,6 +119,9 @@
 
     void reportMemoryUsage(MemoryObjectInfo*) const;
 
+    void willProcessTask();
+    void didProcessTask();
+
 private:
     InspectorController(Page*, InspectorClient*);
 

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2012-12-03 20:04:05 UTC (rev 136426)
@@ -607,18 +607,6 @@
         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 (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2012-12-03 20:04:05 UTC (rev 136426)
@@ -154,8 +154,6 @@
     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*);
@@ -348,8 +346,6 @@
     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*);
@@ -1032,24 +1028,6 @@
 #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 (136425 => 136426)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2012-12-03 20:04:05 UTC (rev 136426)
@@ -168,9 +168,6 @@
     m_state->setLong(TimelineAgentState::timelineMaxCallStackDepth, m_maxCallStackDepth);
     m_timestampOffset = currentTime() - monotonicallyIncreasingTime();
 
-    if (m_client)
-        m_client->startMainThreadMonitoring();
-
     m_instrumentingAgents->setInspectorTimelineAgent(this);
     ScriptGCEvent::addEventListener(this);
     m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, true);
@@ -181,9 +178,6 @@
     if (!m_state->getBoolean(TimelineAgentState::timelineAgentEnabled))
         return;
 
-    if (m_client)
-        m_client->stopMainThreadMonitoring();
-
     m_instrumentingAgents->setInspectorTimelineAgent(0);
     ScriptGCEvent::removeEventListener(this);
 

Modified: trunk/Source/WebKit/chromium/ChangeLog (136425 => 136426)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-12-03 20:04:05 UTC (rev 136426)
@@ -1,3 +1,26 @@
+2012-12-03  Eugene Klyuchnikov  <eus...@chromium.org>
+
+        Web Inspector: Make main-thread monitoring go through InspectorController
+        https://bugs.webkit.org/show_bug.cgi?id=103550
+
+        Reviewed by Pavel Feldman.
+
+        InspectorInstrumentation was a wrong path.
+
+        * src/InspectorClientImpl.cpp: Remove TaskObserver implementation, and
+        listen/unlisten methods.
+        * src/InspectorClientImpl.h: Ditto.
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::~WebDevToolsAgentImpl):
+        Unsubscribe for main thread activity events.
+        (WebKit::WebDevToolsAgentImpl::detach): Ditto.
+        (WebKit::WebDevToolsAgentImpl::attach):
+        Subscribe for main thread activity events.
+        (WebKit::WebDevToolsAgentImpl::willProcessTask): Implement TasObserver
+        interface. Froward to InspectorController.
+        (WebKit::WebDevToolsAgentImpl::didProcessTask): Ditto.
+        * src/WebDevToolsAgentImpl.h: Implement TasObserver interface.
+
 2012-12-03  Alec Flett  <alecfl...@chromium.org>
 
         IndexedDB: remove IDBDatabaseBackendInterface::transaction()

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp (136425 => 136426)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2012-12-03 20:04:05 UTC (rev 136426)
@@ -39,7 +39,6 @@
 #include "WebDevToolsAgentImpl.h"
 #include "WebViewClient.h"
 #include "WebViewImpl.h"
-#include <public/Platform.h>
 #include <public/WebRect.h>
 #include <public/WebURL.h>
 #include <public/WebURLRequest.h>
@@ -136,16 +135,6 @@
     return true;
 }
 
-void InspectorClientImpl::startMainThreadMonitoring()
-{
-    WebKit::Platform::current()->currentThread()->addTaskObserver(this);
-}
-
-void InspectorClientImpl::stopMainThreadMonitoring()
-{
-    WebKit::Platform::current()->currentThread()->removeTaskObserver(this);
-}
-
 bool InspectorClientImpl::canOverrideDeviceMetrics()
 {
     return true;
@@ -200,16 +189,6 @@
         agent->dumpUncountedAllocatedObjects(map);
 }
 
-void InspectorClientImpl::willProcessTask()
-{
-    InspectorInstrumentation::willProcessTask(m_inspectedWebView->page());
-}
-
-void InspectorClientImpl::didProcessTask()
-{
-    InspectorInstrumentation::didProcessTask(m_inspectedWebView->page());
-}
-
 WebDevToolsAgentImpl* InspectorClientImpl::devToolsAgent()
 {
     return static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent());

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.h (136425 => 136426)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2012-12-03 20:04:05 UTC (rev 136426)
@@ -34,7 +34,6 @@
 #include "InspectorClient.h"
 #include "InspectorController.h"
 #include "InspectorFrontendChannel.h"
-#include <public/WebThread.h>
 #include <wtf/OwnPtr.h>
 
 namespace WebKit {
@@ -44,8 +43,7 @@
 class WebViewImpl;
 
 class InspectorClientImpl : public WebCore::InspectorClient,
-                            public WebCore::InspectorFrontendChannel,
-                            public WebThread::TaskObserver {
+                            public WebCore::InspectorFrontendChannel {
 public:
     InspectorClientImpl(WebViewImpl*);
     ~InspectorClientImpl();
@@ -70,8 +68,6 @@
     virtual void clearBrowserCookies();
 
     virtual bool canMonitorMainThread();
-    virtual void startMainThreadMonitoring();
-    virtual void stopMainThreadMonitoring();
 
     virtual bool canOverrideDeviceMetrics();
     virtual void overrideDeviceMetrics(int, int, float, bool);
@@ -89,10 +85,6 @@
     virtual void dumpUncountedAllocatedObjects(const HashMap<const void*, size_t>&);
 
 private:
-    // WebThread::TaskObserver
-    virtual void willProcessTask();
-    virtual void didProcessTask();
-
     WebDevToolsAgentImpl* devToolsAgent();
 
     // The WebViewImpl of the page being inspected; gets passed to the constructor

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (136425 => 136426)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-12-03 20:04:05 UTC (rev 136426)
@@ -56,6 +56,7 @@
 #include "WebFrameImpl.h"
 #include "WebViewClient.h"
 #include "WebViewImpl.h"
+#include <public/Platform.h>
 #include <public/WebRect.h>
 #include <public/WebString.h>
 #include <public/WebURL.h>
@@ -372,6 +373,8 @@
 WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
 {
     ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl);
+    if (m_attached)
+        WebKit::Platform::current()->currentThread()->removeTaskObserver(this);
 }
 
 void WebDevToolsAgentImpl::attach()
@@ -382,6 +385,7 @@
     ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
     inspectorController()->connectFrontend(this);
     inspectorController()->webViewResized(m_webViewImpl->size());
+    WebKit::Platform::current()->currentThread()->addTaskObserver(this);
     m_attached = true;
 }
 
@@ -397,6 +401,8 @@
 
 void WebDevToolsAgentImpl::detach()
 {
+    WebKit::Platform::current()->currentThread()->removeTaskObserver(this);
+
     // Prevent controller from sending messages to the frontend.
     InspectorController* ic = inspectorController();
     ic->disconnectFrontend();
@@ -656,6 +662,18 @@
     ic->evaluateForTestInFrontend(callId, script);
 }
 
+void WebDevToolsAgentImpl::willProcessTask()
+{
+    if (InspectorController* ic = inspectorController())
+        ic->willProcessTask();
+}
+
+void WebDevToolsAgentImpl::didProcessTask()
+{
+    if (InspectorController* ic = inspectorController())
+        ic->didProcessTask();
+}
+
 WebString WebDevToolsAgent::inspectorProtocolVersion()
 {
     return WebCore::inspectorProtocolVersion();

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (136425 => 136426)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-12-03 19:55:33 UTC (rev 136425)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-12-03 20:04:05 UTC (rev 136426)
@@ -37,6 +37,7 @@
 #include "WebDevToolsAgentPrivate.h"
 #include "WebPageOverlay.h"
 #include <public/WebSize.h>
+#include <public/WebThread.h>
 #include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 
@@ -66,7 +67,8 @@
 class WebDevToolsAgentImpl : public WebDevToolsAgentPrivate,
                              public WebCore::InspectorClient,
                              public WebCore::InspectorFrontendChannel,
-                             public WebPageOverlay {
+                             public WebPageOverlay,
+                             private WebThread::TaskObserver {
 public:
     WebDevToolsAgentImpl(WebViewImpl* webViewImpl, WebDevToolsAgentClient* client);
     virtual ~WebDevToolsAgentImpl();
@@ -114,6 +116,10 @@
     virtual void paintPageOverlay(WebCanvas*);
 
 private:
+    // WebThread::TaskObserver
+    virtual void willProcessTask();
+    virtual void didProcessTask();
+
     WebCore::InspectorController* inspectorController();
     WebCore::Frame* mainFrame();
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to