summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webdevtoolsagent_impl.cc
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-02 13:07:03 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-02 13:07:03 +0000
commit51996efd0e452dc7cea81616783958cb3fbf81e2 (patch)
treedb60636fbdd6668d24add5183e42c4d844cf2b8d /webkit/glue/webdevtoolsagent_impl.cc
parentce99295021b01038cd03d67e98b920c58c250578 (diff)
downloadchromium_src-51996efd0e452dc7cea81616783958cb3fbf81e2.zip
chromium_src-51996efd0e452dc7cea81616783958cb3fbf81e2.tar.gz
chromium_src-51996efd0e452dc7cea81616783958cb3fbf81e2.tar.bz2
DevTools: add support for provisional load tracking.
Review URL: http://codereview.chromium.org/56149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13008 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webdevtoolsagent_impl.cc')
-rw-r--r--webkit/glue/webdevtoolsagent_impl.cc45
1 files changed, 27 insertions, 18 deletions
diff --git a/webkit/glue/webdevtoolsagent_impl.cc b/webkit/glue/webdevtoolsagent_impl.cc
index 8d3ae90..05984f4 100644
--- a/webkit/glue/webdevtoolsagent_impl.cc
+++ b/webkit/glue/webdevtoolsagent_impl.cc
@@ -42,10 +42,10 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
web_view_impl_(web_view_impl),
document_(NULL),
attached_(false) {
- debugger_agent_delegate_stub_.reset(new DebuggerAgentDelegateStub(this));
- dom_agent_delegate_stub_.reset(new DomAgentDelegateStub(this));
- net_agent_delegate_stub_.reset(new NetAgentDelegateStub(this));
- tools_agent_delegate_stub_.reset(new ToolsAgentDelegateStub(this));
+ debugger_agent_delegate_stub_.set(new DebuggerAgentDelegateStub(this));
+ dom_agent_delegate_stub_.set(new DomAgentDelegateStub(this));
+ net_agent_delegate_stub_.set(new NetAgentDelegateStub(this));
+ tools_agent_delegate_stub_.set(new ToolsAgentDelegateStub(this));
}
WebDevToolsAgentImpl::~WebDevToolsAgentImpl() {
@@ -55,10 +55,10 @@ void WebDevToolsAgentImpl::Attach() {
if (attached_) {
return;
}
- debugger_agent_impl_.reset(
+ debugger_agent_impl_.set(
new DebuggerAgentImpl(debugger_agent_delegate_stub_.get()));
- dom_agent_impl_.reset(new DomAgentImpl(dom_agent_delegate_stub_.get()));
- net_agent_impl_.reset(new NetAgentImpl(net_agent_delegate_stub_.get()));
+ dom_agent_impl_.set(new DomAgentImpl(dom_agent_delegate_stub_.get()));
+ net_agent_impl_.set(new NetAgentImpl(net_agent_delegate_stub_.get()));
if (document_) {
debugger_agent_impl_->SetDocument(document_);
dom_agent_impl_->SetDocument(document_);
@@ -68,13 +68,14 @@ void WebDevToolsAgentImpl::Attach() {
}
void WebDevToolsAgentImpl::Detach() {
- debugger_agent_impl_.reset(NULL);
- dom_agent_impl_.reset(NULL);
- net_agent_impl_.reset(NULL);
+ debugger_agent_impl_.set(NULL);
+ dom_agent_impl_.set(NULL);
+ net_agent_impl_.set(NULL);
attached_ = false;
}
void WebDevToolsAgentImpl::SetMainFrameDocumentReady(bool ready) {
+ // Store document reference no matter if client is attached.
if (ready) {
Page* page = web_view_impl_->page();
document_ = page->mainFrame()->document();
@@ -106,11 +107,13 @@ void WebDevToolsAgentImpl::DidCommitLoadForFrame(
}
void WebDevToolsAgentImpl::HighlightDOMNode(int node_id) {
- if (!attached_)
+ if (!attached_) {
return;
+ }
Node* node = dom_agent_impl_->GetNodeForId(node_id);
- if (!node)
+ if (!node) {
return;
+ }
Page* page = web_view_impl_->page();
page->inspectorController()->highlight(node);
}
@@ -152,28 +155,34 @@ void WebDevToolsAgentImpl::DispatchMessageFromClient(
const std::string& raw_msg) {
OwnPtr<ListValue> message(
static_cast<ListValue*>(DevToolsRpc::ParseMessage(raw_msg)));
- if (ToolsAgentDispatch::Dispatch(this, *message.get()))
+ if (ToolsAgentDispatch::Dispatch(this, *message.get())) {
return;
+ }
- if (!attached_)
+ if (!attached_) {
return;
+ }
if (debugger_agent_impl_.get() &&
DebuggerAgentDispatch::Dispatch(
debugger_agent_impl_.get(),
- *message.get()))
+ *message.get())) {
return;
+ }
- if (DomAgentDispatch::Dispatch(dom_agent_impl_.get(), *message.get()))
+ if (DomAgentDispatch::Dispatch(dom_agent_impl_.get(), *message.get())) {
return;
- if (NetAgentDispatch::Dispatch(net_agent_impl_.get(), *message.get()))
+ }
+ if (NetAgentDispatch::Dispatch(net_agent_impl_.get(), *message.get())) {
return;
+ }
}
void WebDevToolsAgentImpl::InspectElement(int x, int y) {
Node* node = web_view_impl_->GetNodeForWindowPos(x, y);
- if (!node)
+ if (!node) {
return;
+ }
int node_id = dom_agent_impl_->PushNodePathToClient(node);
tools_agent_delegate_stub_->UpdateFocusedNode(node_id);