diff options
-rw-r--r-- | chrome/renderer/devtools_agent.cc | 15 | ||||
-rw-r--r-- | chrome/renderer/devtools_agent.h | 2 | ||||
-rw-r--r-- | webkit/glue/devtools/debugger_agent_impl.cc | 8 | ||||
-rw-r--r-- | webkit/glue/webdevtoolsagent_impl.cc | 16 | ||||
-rw-r--r-- | webkit/glue/webdevtoolsagent_impl.h | 1 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_shell_devtools_agent.cc | 15 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_shell_devtools_agent.h | 2 |
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); |