diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 17:30:16 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 17:30:16 +0000 |
commit | d1aed1f5d4a59371b0b041884089745d65b29cf3 (patch) | |
tree | 9911b54f322194a0588763167d9d0820725e11be /webkit/glue/devtools/dom_agent_impl.cc | |
parent | 54d8d45198e73c705030f2bb9cb67d91808141e6 (diff) | |
download | chromium_src-d1aed1f5d4a59371b0b041884089745d65b29cf3.zip chromium_src-d1aed1f5d4a59371b0b041884089745d65b29cf3.tar.gz chromium_src-d1aed1f5d4a59371b0b041884089745d65b29cf3.tar.bz2 |
DevTools: Fix errors found during dogfooding.
Review URL: http://codereview.chromium.org/62152
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13362 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/devtools/dom_agent_impl.cc')
-rw-r--r-- | webkit/glue/devtools/dom_agent_impl.cc | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/webkit/glue/devtools/dom_agent_impl.cc b/webkit/glue/devtools/dom_agent_impl.cc index f67dfdd..04b11da 100644 --- a/webkit/glue/devtools/dom_agent_impl.cc +++ b/webkit/glue/devtools/dom_agent_impl.cc @@ -71,10 +71,10 @@ DomAgentImpl::DomAgentImpl(DomAgentDelegate* delegate) } DomAgentImpl::~DomAgentImpl() { - SetDocument(NULL, false); + SetDocument(NULL); } -void DomAgentImpl::SetDocument(Document* doc, bool loaded) { +void DomAgentImpl::SetDocument(Document* doc) { if (doc == GetMainFrameDocument()) { return; } @@ -85,12 +85,12 @@ void DomAgentImpl::SetDocument(Document* doc, bool loaded) { StopListening((*it).get()); } ASSERT(documents_.size() == 0); - ASSERT(loaded_documents_.size() == 0); if (doc) { StartListening(doc); - if (loaded) { - loaded_documents_.add(doc); + if (document_element_requested_) { + GetDocumentElement(); + document_element_requested_ = false; } } else { DiscardBindings(); @@ -125,7 +125,6 @@ void DomAgentImpl::StopListening(Document* doc) { doc->removeEventListener(eventNames().DOMAttrModifiedEvent, event_listener_.get(), false); documents_.remove(doc); - loaded_documents_.remove(doc); } int DomAgentImpl::Bind(Node* node) { @@ -250,18 +249,15 @@ void DomAgentImpl::handleEvent(Event* event, bool isWindowEvent) { delegate_->ChildNodeRemoved(parent_id, id); } } else if (type == eventNames().DOMContentLoadedEvent) { - Document* doc = static_cast<Document*>(node); - loaded_documents_.add(doc); - if (document_element_requested_ && - loaded_documents_.contains(GetMainFrameDocument())) { - GetDocumentElement(); - document_element_requested_ = false; - } + // Re-push document once it is loaded. + DiscardBindings(); + PushDocumentElementToClient(); } } void DomAgentImpl::GetDocumentElement() { - if (loaded_documents_.contains(GetMainFrameDocument())) { + Document* main_document = GetMainFrameDocument(); + if (main_document) { PushDocumentElementToClient(); } else { document_element_requested_ = true; |