| Index: chrome/browser/devtools/devtools_ui_bindings.cc
|
| diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
|
| index acd7397bd037ed93d328383b7d014fea6ab04cda..a86a9242593c9b2681312f36deabe313aced54df 100644
|
| --- a/chrome/browser/devtools/devtools_ui_bindings.cc
|
| +++ b/chrome/browser/devtools/devtools_ui_bindings.cc
|
| @@ -286,6 +286,7 @@ class DevToolsUIBindings::FrontendWebContentsObserver
|
| void DidStartNavigationToPendingEntry(
|
| const GURL& url,
|
| content::NavigationController::ReloadType reload_type) override;
|
| + void DocumentAvailableInMainFrame() override;
|
| void DocumentOnLoadCompletedInMainFrame() override;
|
| void DidNavigateMainFrame(
|
| const content::LoadCommittedDetails& details,
|
| @@ -338,6 +339,11 @@ void DevToolsUIBindings::FrontendWebContentsObserver::
|
| }
|
|
|
| void DevToolsUIBindings::FrontendWebContentsObserver::
|
| + DocumentAvailableInMainFrame() {
|
| + devtools_bindings_->DocumentAvailableInMainFrame();
|
| +}
|
| +
|
| +void DevToolsUIBindings::FrontendWebContentsObserver::
|
| DocumentOnLoadCompletedInMainFrame() {
|
| devtools_bindings_->DocumentOnLoadCompletedInMainFrame();
|
| }
|
| @@ -484,6 +490,7 @@ DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents)
|
| delegate_(new DefaultBindingsDelegate(web_contents_)),
|
| devices_updates_enabled_(false),
|
| frontend_loaded_(false),
|
| + reattaching_(false),
|
| weak_factory_(this) {
|
| g_instances.Get().push_back(this);
|
| frontend_contents_observer_.reset(new FrontendWebContentsObserver(this));
|
| @@ -1127,8 +1134,7 @@ void DevToolsUIBindings::AttachTo(
|
|
|
| void DevToolsUIBindings::Reattach() {
|
| DCHECK(agent_host_.get());
|
| - agent_host_->DetachClient();
|
| - agent_host_->AttachClient(this);
|
| + reattaching_ = true;
|
| }
|
|
|
| void DevToolsUIBindings::Detach() {
|
| @@ -1174,6 +1180,14 @@ void DevToolsUIBindings::CallClientFunction(const std::string& function_name,
|
| base::UTF8ToUTF16(javascript));
|
| }
|
|
|
| +void DevToolsUIBindings::DocumentAvailableInMainFrame() {
|
| + if (!reattaching_)
|
| + return;
|
| + reattaching_ = false;
|
| + agent_host_->DetachClient();
|
| + agent_host_->AttachClient(this);
|
| +}
|
| +
|
| void DevToolsUIBindings::DocumentOnLoadCompletedInMainFrame() {
|
| // In the DEBUG_DEVTOOLS mode, the DocumentOnLoadCompletedInMainFrame event
|
| // arrives before the LoadCompleted event, thus it should not trigger the
|
|
|