summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/renderer/devtools_agent.cc15
-rw-r--r--chrome/renderer/devtools_agent.h2
-rw-r--r--webkit/glue/devtools/debugger_agent_impl.cc8
-rw-r--r--webkit/glue/webdevtoolsagent_impl.cc16
-rw-r--r--webkit/glue/webdevtoolsagent_impl.h1
-rw-r--r--webkit/tools/test_shell/test_shell_devtools_agent.cc15
-rw-r--r--webkit/tools/test_shell/test_shell_devtools_agent.h2
7 files changed, 51 insertions, 8 deletions
diff --git a/chrome/renderer/devtools_agent.cc b/chrome/renderer/devtools_agent.cc
index 5d5373a..57c2f20 100644
--- a/chrome/renderer/devtools_agent.cc
+++ b/chrome/renderer/devtools_agent.cc
@@ -8,15 +8,18 @@
#include "chrome/common/render_messages.h"
#include "chrome/renderer/devtools_agent_filter.h"
#include "chrome/renderer/render_view.h"
+#include "grit/webkit_resources.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgent.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDevToolsMessageData.h"
#include "third_party/WebKit/WebKit/chromium/public/WebPoint.h"
#include "third_party/WebKit/WebKit/chromium/public/WebString.h"
#include "webkit/glue/devtools/devtools_message_data.h"
+#include "webkit/glue/webkit_glue.h"
using WebKit::WebDevToolsAgent;
using WebKit::WebPoint;
using WebKit::WebString;
+using WebKit::WebCString;
using WebKit::WebVector;
using WebKit::WebView;
@@ -79,6 +82,18 @@ void DevToolsAgent::runtimeFeatureStateChanged(const WebKit::WebString& feature,
enabled));
}
+WebCString DevToolsAgent::injectedScriptSource() {
+ base::StringPiece injectjsWebkit =
+ webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_WEBKIT_JS);
+ return WebCString(injectjsWebkit.as_string().c_str());
+}
+
+WebCString DevToolsAgent::injectedScriptDispatcherSource() {
+ base::StringPiece injectDispatchjs =
+ webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_DISPATCH_JS);
+ return WebCString(injectDispatchjs.as_string().c_str());
+}
+
// static
DevToolsAgent* DevToolsAgent::FromHostId(int host_id) {
std::map<int, DevToolsAgent*>::iterator it =
diff --git a/chrome/renderer/devtools_agent.h b/chrome/renderer/devtools_agent.h
index 4d05fe0..64302f9 100644
--- a/chrome/renderer/devtools_agent.h
+++ b/chrome/renderer/devtools_agent.h
@@ -45,6 +45,8 @@ class DevToolsAgent : public WebKit::WebDevToolsAgentClient {
virtual void forceRepaint();
virtual void runtimeFeatureStateChanged(const WebKit::WebString& feature,
bool enabled);
+ virtual WebKit::WebCString injectedScriptSource();
+ virtual WebKit::WebCString injectedScriptDispatcherSource();
// Returns agent instance for its host id.
static DevToolsAgent* FromHostId(int host_id);
diff --git a/webkit/glue/devtools/debugger_agent_impl.cc b/webkit/glue/devtools/debugger_agent_impl.cc
index b4b51a1..f58e558 100644
--- a/webkit/glue/devtools/debugger_agent_impl.cc
+++ b/webkit/glue/devtools/debugger_agent_impl.cc
@@ -43,12 +43,10 @@
#include "V8Proxy.h"
#undef LOG
-#include "grit/webkit_resources.h"
#include "third_party/WebKit/WebKit/chromium/src/WebViewImpl.h"
#include "webkit/glue/devtools/debugger_agent_impl.h"
#include "webkit/glue/devtools/debugger_agent_manager.h"
#include "webkit/glue/webdevtoolsagent_impl.h"
-#include "webkit/glue/webkit_glue.h"
using WebCore::DOMWindow;
using WebCore::Document;
@@ -132,12 +130,6 @@ void DebuggerAgentImpl::createUtilityContext(Frame* frame, v8::Persistent<v8::Co
// Give the code running in the new context a way to get access to the
// original context.
global->Set(v8::String::New("contentWindow"), windowGlobal);
-
- // Inject javascript into the context.
- base::StringPiece injectjsWebkit = webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_WEBKIT_JS);
- v8::Script::Compile(v8::String::New(injectjsWebkit.as_string().c_str()))->Run();
- base::StringPiece injectDispatchjs = webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_DISPATCH_JS);
- v8::Script::Compile(v8::String::New(injectDispatchjs.as_string().c_str()))->Run();
}
String DebuggerAgentImpl::executeUtilityFunction(
diff --git a/webkit/glue/webdevtoolsagent_impl.cc b/webkit/glue/webdevtoolsagent_impl.cc
index a4fef52..2e92587 100644
--- a/webkit/glue/webdevtoolsagent_impl.cc
+++ b/webkit/glue/webdevtoolsagent_impl.cc
@@ -323,6 +323,21 @@ void WebDevToolsAgentImpl::sendRpcMessage(const WebKit::WebDevToolsMessageData&
m_client->sendMessageToFrontend(data);
}
+void WebDevToolsAgentImpl::compileUtilityScripts()
+{
+ v8::HandleScope handleScope;
+ v8::Context::Scope contextScope(m_utilityContext);
+ // Inject javascript into the context.
+ WebCString injectedScriptJs = m_client->injectedScriptSource();
+ v8::Script::Compile(v8::String::New(
+ injectedScriptJs.data(),
+ injectedScriptJs.length()))->Run();
+ WebCString injectDispatchJs = m_client->injectedScriptDispatcherSource();
+ v8::Script::Compile(v8::String::New(
+ injectDispatchJs.data(),
+ injectDispatchJs.length()))->Run();
+}
+
void WebDevToolsAgentImpl::initDevToolsAgentHost()
{
BoundObject devtoolsAgentHost(m_utilityContext, this, "DevToolsAgentHost");
@@ -378,6 +393,7 @@ void WebDevToolsAgentImpl::resetInspectorFrontendProxy()
{
disposeUtilityContext();
m_debuggerAgentImpl->createUtilityContext(m_webViewImpl->page()->mainFrame(), &m_utilityContext);
+ compileUtilityScripts();
initDevToolsAgentHost();
v8::HandleScope scope;
diff --git a/webkit/glue/webdevtoolsagent_impl.h b/webkit/glue/webdevtoolsagent_impl.h
index 263b9d4..e5471cd 100644
--- a/webkit/glue/webdevtoolsagent_impl.h
+++ b/webkit/glue/webdevtoolsagent_impl.h
@@ -119,6 +119,7 @@ private:
void disposeUtilityContext();
void unhideResourcesPanelIfNecessary();
+ void compileUtilityScripts();
void initDevToolsAgentHost();
void resetInspectorFrontendProxy();
void setApuAgentEnabled(bool enabled);
diff --git a/webkit/tools/test_shell/test_shell_devtools_agent.cc b/webkit/tools/test_shell/test_shell_devtools_agent.cc
index dd04b2e..04308cd 100644
--- a/webkit/tools/test_shell/test_shell_devtools_agent.cc
+++ b/webkit/tools/test_shell/test_shell_devtools_agent.cc
@@ -6,12 +6,15 @@
#include "third_party/WebKit/WebKit/chromium/src/WebViewImpl.h"
#undef LOG
+#include "grit/webkit_resources.h"
#include "webkit/tools/test_shell/test_shell_devtools_agent.h"
#include "webkit/tools/test_shell/test_shell_devtools_callargs.h"
#include "webkit/tools/test_shell/test_shell_devtools_client.h"
+#include "webkit/glue/webkit_glue.h"
#include "base/message_loop.h"
+using WebKit::WebCString;
using WebKit::WebDevToolsAgent;
using WebKit::WebDevToolsMessageData;
using WebKit::WebString;
@@ -60,6 +63,18 @@ void TestShellDevToolsAgent::runtimeFeatureStateChanged(
// TODO(loislo): implement this.
}
+WebCString TestShellDevToolsAgent::injectedScriptSource() {
+ base::StringPiece injectjsWebkit =
+ webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_WEBKIT_JS);
+ return WebCString(injectjsWebkit.as_string().c_str());
+}
+
+WebCString TestShellDevToolsAgent::injectedScriptDispatcherSource() {
+ base::StringPiece injectDispatchjs =
+ webkit_glue::GetDataResource(IDR_DEVTOOLS_INJECT_DISPATCH_JS);
+ return WebCString(injectDispatchjs.as_string().c_str());
+}
+
void TestShellDevToolsAgent::AsyncCall(const TestShellDevToolsCallArgs &args) {
MessageLoop::current()->PostDelayedTask(
FROM_HERE,
diff --git a/webkit/tools/test_shell/test_shell_devtools_agent.h b/webkit/tools/test_shell/test_shell_devtools_agent.h
index 516ba14..9ce2498 100644
--- a/webkit/tools/test_shell/test_shell_devtools_agent.h
+++ b/webkit/tools/test_shell/test_shell_devtools_agent.h
@@ -32,6 +32,8 @@ class TestShellDevToolsAgent : public WebKit::WebDevToolsAgentClient {
virtual void forceRepaint();
virtual void runtimeFeatureStateChanged(const WebKit::WebString& feature,
bool enabled);
+ virtual WebKit::WebCString injectedScriptSource();
+ virtual WebKit::WebCString injectedScriptDispatcherSource();
void AsyncCall(const TestShellDevToolsCallArgs& args);