summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webdevtoolsagent_impl.cc
diff options
context:
space:
mode:
authorlaforge@chromium.org <laforge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-16 18:50:02 +0000
committerlaforge@chromium.org <laforge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-16 18:50:02 +0000
commita360423cf37548920b3a1c517190ec642a224396 (patch)
tree644f3404ef8384752b8b37481ef030430bbf87f8 /webkit/glue/webdevtoolsagent_impl.cc
parent2b1393cf7bb206e79a5bf08424ac464da049e7d4 (diff)
downloadchromium_src-a360423cf37548920b3a1c517190ec642a224396.zip
chromium_src-a360423cf37548920b3a1c517190ec642a224396.tar.gz
chromium_src-a360423cf37548920b3a1c517190ec642a224396.tar.bz2
Revert 18484 - DevTools: Add support for dumping objects into the console.
Review URL: http://codereview.chromium.org/126132 TBR=pfeldman@chromium.org Review URL: http://codereview.chromium.org/126217 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18509 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webdevtoolsagent_impl.cc')
-rw-r--r--webkit/glue/webdevtoolsagent_impl.cc60
1 files changed, 28 insertions, 32 deletions
diff --git a/webkit/glue/webdevtoolsagent_impl.cc b/webkit/glue/webdevtoolsagent_impl.cc
index cd8e30ac..c3a6181 100644
--- a/webkit/glue/webdevtoolsagent_impl.cc
+++ b/webkit/glue/webdevtoolsagent_impl.cc
@@ -42,8 +42,6 @@ using WebCore::Node;
using WebCore::Page;
using WebCore::ScriptValue;
using WebCore::String;
-using WebCore::V8ClassIndex;
-using WebCore::V8Proxy;
WebDevToolsAgentImpl::WebDevToolsAgentImpl(
WebViewImpl* web_view_impl,
@@ -85,15 +83,21 @@ void WebDevToolsAgentImpl::Attach() {
// Reuse existing context in case detached/attached.
if (utility_context_.IsEmpty()) {
debugger_agent_impl_->ResetUtilityContext(doc, &utility_context_);
- InitDevToolsAgentHost();
}
-
dom_agent_impl_->SetDocument(doc);
+ web_inspector_stub_.set(
+ new BoundObject(utility_context_, this, "RemoteWebInspector"));
+ web_inspector_stub_->AddProtoFunction(
+ "dispatch",
+ WebDevToolsAgentImpl::JsDispatchOnClient);
+ web_inspector_stub_->Build();
InspectorController* ic = web_view_impl_->page()->inspectorController();
+
// Unhide resources panel if necessary.
tools_agent_delegate_stub_->SetResourcesPanelEnabled(
ic->resourceTrackingEnabled());
+
v8::HandleScope scope;
ic->setFrontendProxyObject(
scriptStateFromPage(web_view_impl_->page()),
@@ -109,7 +113,7 @@ void WebDevToolsAgentImpl::Detach() {
InspectorController* ic = web_view_impl_->page()->inspectorController();
ic->setWindowVisible(false, false);
HideDOMNodeHighlight();
- devtools_agent_host_.set(NULL);
+ web_inspector_stub_.set(NULL);
debugger_agent_impl_.set(NULL);
dom_agent_impl_.set(NULL);
attached_ = false;
@@ -129,9 +133,6 @@ void WebDevToolsAgentImpl::SetMainFrameDocumentReady(bool ready) {
doc = NULL;
}
debugger_agent_impl_->ResetUtilityContext(doc, &utility_context_);
- if (doc) {
- InitDevToolsAgentHost();
- }
dom_agent_impl_->SetDocument(doc);
}
@@ -183,14 +184,31 @@ void WebDevToolsAgentImpl::HideDOMNodeHighlight() {
}
}
+void WebDevToolsAgentImpl::EvaluateJavaScript(int call_id, const String& js) {
+ String result;
+ bool is_exception = false;
+
+ Page* page = web_view_impl_->page();
+ if (page->mainFrame()) {
+ result = debugger_agent_impl_->EvaluateJavaScript(page->mainFrame(),
+ js, &is_exception);
+ }
+ tools_agent_delegate_stub_->DidEvaluateJavaScript(
+ call_id, result, is_exception);
+}
+
void WebDevToolsAgentImpl::ExecuteUtilityFunction(
int call_id,
const String& function_name,
+ int node_id,
const String& json_args) {
+ Node* node = dom_agent_impl_->GetNodeForId(node_id);
String result;
String exception;
- result = debugger_agent_impl_->ExecuteUtilityFunction(utility_context_,
- function_name, json_args, &exception);
+ if (node) {
+ result = debugger_agent_impl_->ExecuteUtilityFunction(utility_context_,
+ function_name, node, json_args, &exception);
+ }
tools_agent_delegate_stub_->DidExecuteUtilityFunction(call_id,
result, exception);
}
@@ -276,18 +294,6 @@ void WebDevToolsAgentImpl::SendRpcMessage(
delegate_->SendMessageToClient(class_name, method_name, raw_msg);
}
-void WebDevToolsAgentImpl::InitDevToolsAgentHost() {
- devtools_agent_host_.set(
- new BoundObject(utility_context_, this, "DevToolsAgentHost"));
- devtools_agent_host_->AddProtoFunction(
- "dispatch",
- WebDevToolsAgentImpl::JsDispatchOnClient);
- devtools_agent_host_->AddProtoFunction(
- "getNodeForId",
- WebDevToolsAgentImpl::JsGetNodeForId);
- devtools_agent_host_->Build();
-}
-
// static
v8::Handle<v8::Value> WebDevToolsAgentImpl::JsDispatchOnClient(
const v8::Arguments& args) {
@@ -303,16 +309,6 @@ v8::Handle<v8::Value> WebDevToolsAgentImpl::JsDispatchOnClient(
}
// static
-v8::Handle<v8::Value> WebDevToolsAgentImpl::JsGetNodeForId(
- const v8::Arguments& args) {
- int node_id = static_cast<int>(args[0]->NumberValue());
- WebDevToolsAgentImpl* agent = static_cast<WebDevToolsAgentImpl*>(
- v8::External::Cast(*args.Data())->Value());
- Node* node = agent->dom_agent_impl_->GetNodeForId(node_id);
- return V8Proxy::ToV8Object(V8ClassIndex::NODE, node);
-}
-
-// static
void WebDevToolsAgent::ExecuteDebuggerCommand(
const std::string& command,
int caller_id) {