summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 17:14:52 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 17:14:52 +0000
commit5ae9a87e83b7b7486d9197456a7ad42cb6600d33 (patch)
tree09f5e8b9ad7dc1694281c00677948a38a8efee8d /webkit/glue
parent362d5e2f627d28f68965db12021248bcbfefab4c (diff)
downloadchromium_src-5ae9a87e83b7b7486d9197456a7ad42cb6600d33.zip
chromium_src-5ae9a87e83b7b7486d9197456a7ad42cb6600d33.tar.gz
chromium_src-5ae9a87e83b7b7486d9197456a7ad42cb6600d33.tar.bz2
DevTools: fix interactive tests flakiness appeared after http://src.chromium.org/viewvc/chrome?view=rev&revision=36518.
The console messages are pushed to the frontend on attach as it used to be before. To ensure that injected script source is available when WebDevToolsAgent::attach is called it is loaded from Chromium resource(temporary measure until we come up with something better). BUG=29068 Review URL: http://codereview.chromium.org/546086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36635 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/webdevtoolsagent_impl.cc23
-rw-r--r--webkit/glue/webdevtoolsfrontend_impl.cc7
2 files changed, 11 insertions, 19 deletions
diff --git a/webkit/glue/webdevtoolsagent_impl.cc b/webkit/glue/webdevtoolsagent_impl.cc
index 4cc154e1..42dfadd 100644
--- a/webkit/glue/webdevtoolsagent_impl.cc
+++ b/webkit/glue/webdevtoolsagent_impl.cc
@@ -28,6 +28,7 @@
#include <wtf/OwnPtr.h>
#undef LOG
+#include "grit/webkit_resources.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDataSource.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgentClient.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDevToolsMessageData.h"
@@ -45,6 +46,7 @@
#include "webkit/glue/devtools/profiler_agent_impl.h"
#include "webkit/glue/glue_util.h"
#include "webkit/glue/webdevtoolsagent_impl.h"
+#include "webkit/glue/webkit_glue.h"
using WebCore::Document;
using WebCore::DocumentLoader;
@@ -175,6 +177,15 @@ void WebDevToolsAgentImpl::attach() {
this));
ResetInspectorFrontendProxy();
UnhideResourcesPanelIfNecessary();
+ // Allow controller to send messages to the frontend.
+ InspectorController* ic = web_view_impl_->page()->inspectorController();
+
+ // TODO(yurys): the source should have already been pushed by the frontend.
+ base::StringPiece injectjs_webkit =
+ webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_WEBKIT_JS);
+ ic->injectedScriptHost()->setInjectedScriptSource(
+ injectjs_webkit.as_string().c_str());
+ ic->setWindowVisible(true, false);
attached_ = true;
}
@@ -284,18 +295,6 @@ void WebDevToolsAgentImpl::dispatchMessageFromFrontend(
return;
}
- if (webkit_glue::WebStringToStdString(data.className) ==
- "WebDevToolsAgentImpl" &&
- webkit_glue::WebStringToStdString(data.methodName) ==
- "didLoadFrontend") {
- // Allow controller to send messages to the frontend. We need to wait until
- // front-end is loaded because it pushes injected script source
- // to the backend and the injected script is used for console message
- // serialization.
- GetInspectorController()->setWindowVisible(true, false);
- return;
- }
-
if (debugger_agent_impl_.get() &&
DebuggerAgentDispatch::Dispatch(debugger_agent_impl_.get(), data)) {
return;
diff --git a/webkit/glue/webdevtoolsfrontend_impl.cc b/webkit/glue/webdevtoolsfrontend_impl.cc
index 51e97bb..cce10b53 100644
--- a/webkit/glue/webdevtoolsfrontend_impl.cc
+++ b/webkit/glue/webdevtoolsfrontend_impl.cc
@@ -385,13 +385,6 @@ v8::Handle<v8::Value> WebDevToolsFrontendImpl::JsLoaded(
frontend->ExecuteScript(*it);
}
frontend->pending_incoming_messages_.clear();
-
- // Notify the agent that front-end is loaded.
- WebKit::WebDevToolsMessageData data;
- data.className = "WebDevToolsAgentImpl";
- data.methodName = "didLoadFrontend";
- frontend->SendRpcMessage(data);
-
return v8::Undefined();
}