Commit b83aa83d authored by dgozman@chromium.org's avatar dgozman@chromium.org

[DevTools] Ignore docking calls after closing started.

BUG=338618

Review URL: https://codereview.chromium.org/145353014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247824 0039d316-1c4b-4281-b951-d872f2087c98
parent 1a05bc5f
...@@ -483,6 +483,7 @@ void DevToolsWindow::InspectedContentsClosing() { ...@@ -483,6 +483,7 @@ void DevToolsWindow::InspectedContentsClosing() {
intercepted_page_beforeunload_ = false; intercepted_page_beforeunload_ = false;
// This will prevent any activity after frontend is loaded. // This will prevent any activity after frontend is loaded.
action_on_load_ = DevToolsToggleAction::NoOp(); action_on_load_ = DevToolsToggleAction::NoOp();
ignore_set_is_docked_ = true;
web_contents_->GetRenderViewHost()->ClosePage(); web_contents_->GetRenderViewHost()->ClosePage();
} }
...@@ -653,7 +654,7 @@ DevToolsWindow::DevToolsWindow(Profile* profile, ...@@ -653,7 +654,7 @@ DevToolsWindow::DevToolsWindow(Profile* profile,
// Passing "dockSide=undocked" parameter ensures proper UI. // Passing "dockSide=undocked" parameter ensures proper UI.
load_state_(can_dock ? kNotLoaded : kIsDockedSet), load_state_(can_dock ? kNotLoaded : kIsDockedSet),
action_on_load_(DevToolsToggleAction::NoOp()), action_on_load_(DevToolsToggleAction::NoOp()),
ignore_set_is_docked_for_test_(false), ignore_set_is_docked_(false),
intercepted_page_beforeunload_(false), intercepted_page_beforeunload_(false),
weak_factory_(this) { weak_factory_(this) {
web_contents_ = web_contents_ =
...@@ -840,6 +841,7 @@ void DevToolsWindow::CloseContents(content::WebContents* source) { ...@@ -840,6 +841,7 @@ void DevToolsWindow::CloseContents(content::WebContents* source) {
CHECK(is_docked_); CHECK(is_docked_);
// This will prevent any activity after frontend is loaded. // This will prevent any activity after frontend is loaded.
action_on_load_ = DevToolsToggleAction::NoOp(); action_on_load_ = DevToolsToggleAction::NoOp();
ignore_set_is_docked_ = true;
// Update dev tools to reflect removed dev tools window. // Update dev tools to reflect removed dev tools window.
BrowserWindow* inspected_window = GetInspectedBrowserWindow(); BrowserWindow* inspected_window = GetInspectedBrowserWindow();
if (inspected_window) if (inspected_window)
...@@ -979,6 +981,7 @@ void DevToolsWindow::CloseWindow() { ...@@ -979,6 +981,7 @@ void DevToolsWindow::CloseWindow() {
DCHECK(is_docked_); DCHECK(is_docked_);
// This will prevent any activity after frontend is loaded. // This will prevent any activity after frontend is loaded.
action_on_load_ = DevToolsToggleAction::NoOp(); action_on_load_ = DevToolsToggleAction::NoOp();
ignore_set_is_docked_ = true;
web_contents_->GetRenderViewHost()->FirePageBeforeUnload(false); web_contents_->GetRenderViewHost()->FirePageBeforeUnload(false);
} }
...@@ -1023,11 +1026,11 @@ void DevToolsWindow::SetIsDockedAndShowImmediatelyForTest(bool is_docked) { ...@@ -1023,11 +1026,11 @@ void DevToolsWindow::SetIsDockedAndShowImmediatelyForTest(bool is_docked) {
if (load_state_ == kLoadCompleted) if (load_state_ == kLoadCompleted)
LoadCompleted(); LoadCompleted();
} }
ignore_set_is_docked_for_test_ = true; ignore_set_is_docked_ = true;
} }
void DevToolsWindow::SetIsDocked(bool dock_requested) { void DevToolsWindow::SetIsDocked(bool dock_requested) {
if (ignore_set_is_docked_for_test_) if (ignore_set_is_docked_)
return; return;
DCHECK(can_dock_ || !dock_requested); DCHECK(can_dock_ || !dock_requested);
......
...@@ -368,7 +368,7 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -368,7 +368,7 @@ class DevToolsWindow : private content::NotificationObserver,
bool can_dock_; bool can_dock_;
LoadState load_state_; LoadState load_state_;
DevToolsToggleAction action_on_load_; DevToolsToggleAction action_on_load_;
bool ignore_set_is_docked_for_test_; bool ignore_set_is_docked_;
content::NotificationRegistrar registrar_; content::NotificationRegistrar registrar_;
scoped_ptr<content::DevToolsClientHost> frontend_host_; scoped_ptr<content::DevToolsClientHost> frontend_host_;
scoped_ptr<DevToolsFileHelper> file_helper_; scoped_ptr<DevToolsFileHelper> file_helper_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment