Diff
Modified: trunk/Source/WebCore/ChangeLog (101165 => 101166)
--- trunk/Source/WebCore/ChangeLog 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebCore/ChangeLog 2011-11-25 13:39:37 UTC (rev 101166)
@@ -1,5 +1,17 @@
2011-11-25 Yury Semikhatsky <[email protected]>
+ [Chromium] Web Inspector: get rid of WebDevToolsFrontendClient::sendFrontendLoaded method
+ https://bugs.webkit.org/show_bug.cgi?id=73126
+
+ Notify embedder that front-end is loadded only when all dispatchers, panels and models
+ have been created so that it could dispatch messages synchronously in the loaded handler.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/inspector.js:
+
+2011-11-25 Yury Semikhatsky <[email protected]>
+
Web Inspector: don't send Console.messagesCleared on front-end connection if console agent is not enabled
https://bugs.webkit.org/show_bug.cgi?id=73122
Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (101165 => 101166)
--- trunk/Source/WebCore/inspector/front-end/inspector.js 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js 2011-11-25 13:39:37 UTC (rev 101166)
@@ -318,7 +318,6 @@
WebInspector.doLoadedDone = function()
{
WebInspector.WorkerManager.loaded();
- InspectorFrontendHost.loaded();
WebInspector.installPortStyles();
@@ -394,6 +393,7 @@
WebInspector.CSSCompletions.requestCSSNameCompletions();
WebInspector.WorkerManager.loadCompleted();
+ InspectorFrontendHost.loaded();
}
WebInspector.addPanel = function(panel)
Modified: trunk/Source/WebKit/chromium/ChangeLog (101165 => 101166)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-11-25 13:39:37 UTC (rev 101166)
@@ -1,3 +1,25 @@
+2011-11-25 Yury Semikhatsky <[email protected]>
+
+ [Chromium] Web Inspector: get rid of WebDevToolsFrontendClient::sendFrontendLoaded method
+ https://bugs.webkit.org/show_bug.cgi?id=73126
+
+ No need to have a separate client call for this. The front-end can store messages
+ which arrive before front-end loaded and dispatch them later. This happens in layout
+ tests only by the way as all other messages should be initiated by the front-end code.
+
+ Reviewed by Pavel Feldman.
+
+ * public/WebDevToolsFrontendClient.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::attach):
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+ * src/WebDevToolsFrontendImpl.cpp:
+ (WebKit::WebDevToolsFrontendImpl::WebDevToolsFrontendImpl):
+ (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
+ (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
+ (WebKit::WebDevToolsFrontendImpl::doDispatchOnInspectorFrontend):
+ * src/WebDevToolsFrontendImpl.h:
+
2011-11-24 Yury Semikhatsky <[email protected]>
[Chromium] Web Inspector: remove legacy debugger support
Modified: trunk/Source/WebKit/chromium/public/WebDevToolsFrontendClient.h (101165 => 101166)
--- trunk/Source/WebKit/chromium/public/WebDevToolsFrontendClient.h 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsFrontendClient.h 2011-11-25 13:39:37 UTC (rev 101166)
@@ -41,7 +41,6 @@
public:
WebDevToolsFrontendClient() { }
- virtual void sendFrontendLoaded() { }
virtual void sendMessageToBackend(const WebString&) { }
virtual void activateWindow() { }
Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (101165 => 101166)
--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp 2011-11-25 13:39:37 UTC (rev 101166)
@@ -195,6 +195,7 @@
return;
ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
+ inspectorController()->connectFrontend();
m_attached = true;
}
@@ -216,7 +217,6 @@
void WebDevToolsAgentImpl::frontendLoaded()
{
- inspectorController()->connectFrontend();
}
void WebDevToolsAgentImpl::didNavigate()
Modified: trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp (101165 => 101166)
--- trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp 2011-11-25 13:39:37 UTC (rev 101166)
@@ -91,6 +91,7 @@
: m_webViewImpl(webViewImpl)
, m_client(client)
, m_applicationLocale(applicationLocale)
+ , m_loaded(false)
{
InspectorController* ic = m_webViewImpl->page()->inspectorController();
ic->setInspectorFrontendClient(adoptPtr(new InspectorFrontendClientImpl(m_webViewImpl->page(), m_client, this)));
@@ -106,6 +107,22 @@
void WebDevToolsFrontendImpl::dispatchOnInspectorFrontend(const WebString& message)
{
+ if (m_loaded)
+ doDispatchOnInspectorFrontend(message);
+ else
+ m_pendingMessages.append(message);
+}
+
+void WebDevToolsFrontendImpl::frontendLoaded()
+{
+ m_loaded = true;
+ for (Vector<String>::iterator it = m_pendingMessages.begin(); it != m_pendingMessages.end(); ++it)
+ doDispatchOnInspectorFrontend(*it);
+ m_pendingMessages.clear();
+}
+
+void WebDevToolsFrontendImpl::doDispatchOnInspectorFrontend(const String& message)
+{
WebFrameImpl* frame = m_webViewImpl->mainFrameImpl();
v8::HandleScope scope;
v8::Handle<v8::Context> frameContext = V8Proxy::context(frame->frame());
@@ -126,9 +143,4 @@
V8Proxy::instrumentedCallFunction(frame->frame()->page(), function, inspectorBackend, args.size(), args.data());
}
-void WebDevToolsFrontendImpl::frontendLoaded()
-{
- m_client->sendFrontendLoaded();
-}
-
} // namespace WebKit
Modified: trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h (101165 => 101166)
--- trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h 2011-11-25 13:39:37 UTC (rev 101166)
@@ -33,20 +33,10 @@
#include "PlatformString.h"
#include "WebDevToolsFrontend.h"
-#include <v8.h>
#include <wtf/Forward.h>
-#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
-namespace WebCore {
-class ContextMenuItem;
-class Node;
-class Page;
-}
-
namespace WebKit {
class WebDevToolsClientDelegate;
@@ -70,9 +60,13 @@
void frontendLoaded();
private:
+ void doDispatchOnInspectorFrontend(const String& message);
+
WebKit::WebViewImpl* m_webViewImpl;
WebKit::WebDevToolsFrontendClient* m_client;
String m_applicationLocale;
+ bool m_loaded;
+ Vector<String> m_pendingMessages;
};
} // namespace WebKit
Modified: trunk/Tools/ChangeLog (101165 => 101166)
--- trunk/Tools/ChangeLog 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Tools/ChangeLog 2011-11-25 13:39:37 UTC (rev 101166)
@@ -1,3 +1,19 @@
+2011-11-25 Yury Semikhatsky <[email protected]>
+
+ [Chromium] Web Inspector: get rid of WebDevToolsFrontendClient::sendFrontendLoaded method
+ https://bugs.webkit.org/show_bug.cgi?id=73126
+
+ No need to have a separate client call for this. The front-end can store messages
+ which arrive before front-end loaded and dispatch them later. This happens in layout
+ tests only by the way as all other messages should be initiated by the front-end code.
+
+ Reviewed by Pavel Feldman.
+
+ * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+ * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+ * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+ * DumpRenderTree/chromium/DRTDevToolsClient.h:
+
2011-11-24 Kentaro Hara <[email protected]>
Replace subprocess.call() with subprocess.Popen()
Modified: trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp (101165 => 101166)
--- trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp 2011-11-25 13:39:37 UTC (rev 101166)
@@ -87,14 +87,6 @@
agent->dispatchOnInspectorBackend(args);
}
-void DRTDevToolsAgent::delayedFrontendLoaded()
-{
- WebDevToolsAgent* agent = webDevToolsAgent();
- if (agent)
- agent->frontendLoaded();
-}
-
-
WebDevToolsAgent* DRTDevToolsAgent::webDevToolsAgent()
{
if (!m_webView)
@@ -120,11 +112,6 @@
m_drtDevToolsClient = 0;
}
-void DRTDevToolsAgent::frontendLoaded()
-{
- postTask(new DelayedFrontendLoadedTask(this));
-}
-
bool DRTDevToolsAgent::setJavaScriptProfilingEnabled(bool enabled)
{
WebDevToolsAgent* agent = webDevToolsAgent();
Modified: trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.h (101165 => 101166)
--- trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.h 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Tools/DumpRenderTree/chromium/DRTDevToolsAgent.h 2011-11-25 13:39:37 UTC (rev 101166)
@@ -67,7 +67,6 @@
void attach(DRTDevToolsClient*);
void detach();
- void frontendLoaded();
bool evaluateInWebInspector(long callID, const std::string& script);
bool setJavaScriptProfilingEnabled(bool);
@@ -75,7 +74,6 @@
private:
void call(const WebKit::WebString& args);
- void delayedFrontendLoaded();
WebKit::WebDevToolsAgent* webDevToolsAgent();
class AsyncCallTask: public MethodTask<DRTDevToolsAgent> {
@@ -88,11 +86,6 @@
WebKit::WebString m_args;
};
- struct DelayedFrontendLoadedTask: public MethodTask<DRTDevToolsAgent> {
- DelayedFrontendLoadedTask(DRTDevToolsAgent* object) : MethodTask<DRTDevToolsAgent>(object) { }
- virtual void runIfValid() { m_object->delayedFrontendLoaded(); }
- };
-
TaskList m_taskList;
DRTDevToolsClient* m_drtDevToolsClient;
int m_routingID;
Modified: trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.cpp (101165 => 101166)
--- trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.cpp 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.cpp 2011-11-25 13:39:37 UTC (rev 101166)
@@ -64,12 +64,6 @@
m_taskList.revokeAll();
}
-void DRTDevToolsClient::sendFrontendLoaded()
-{
- if (m_drtDevToolsAgent)
- m_drtDevToolsAgent->frontendLoaded();
-}
-
void DRTDevToolsClient::sendMessageToBackend(const WebString& data)
{
if (m_drtDevToolsAgent)
Modified: trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.h (101165 => 101166)
--- trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.h 2011-11-25 12:54:15 UTC (rev 101165)
+++ trunk/Tools/DumpRenderTree/chromium/DRTDevToolsClient.h 2011-11-25 13:39:37 UTC (rev 101166)
@@ -54,7 +54,6 @@
void reset();
// WebDevToolsFrontendClient implementation
- virtual void sendFrontendLoaded();
virtual void sendMessageToBackend(const WebKit::WebString&);
virtual void activateWindow();