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();