diff options
Diffstat (limited to 'chrome/browser/debugger/devtools_window.cc')
-rw-r--r-- | chrome/browser/debugger/devtools_window.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc index 41e6f5f..26c1025 100644 --- a/chrome/browser/debugger/devtools_window.cc +++ b/chrome/browser/debugger/devtools_window.cc @@ -136,7 +136,8 @@ void DevToolsWindow::Show(DevToolsToggleAction action) { Browser* inspected_browser; int inspected_tab_index; // Tell inspected browser to update splitter and switch to inspected panel. - if (FindInspectedBrowserAndTabIndex(&inspected_browser, + if (!IsInspectedBrowserPopup() && + FindInspectedBrowserAndTabIndex(&inspected_browser, &inspected_tab_index)) { BrowserWindow* inspected_window = inspected_browser->window(); tab_contents_->tab_contents()->set_delegate(this); @@ -186,7 +187,7 @@ void DevToolsWindow::Activate() { void DevToolsWindow::SetDocked(bool docked) { if (docked_ == docked) return; - if (docked && !GetInspectedBrowserWindow()) { + if (docked && (!GetInspectedBrowserWindow() || IsInspectedBrowserPopup())) { // Cannot dock, avoid window flashing due to close-reopen cycle. return; } @@ -265,6 +266,15 @@ BrowserWindow* DevToolsWindow::GetInspectedBrowserWindow() { browser->window() : NULL; } +bool DevToolsWindow::IsInspectedBrowserPopup() { + Browser* browser = NULL; + int tab; + if (!FindInspectedBrowserAndTabIndex(&browser, &tab)) + return false; + + return (browser->type() & Browser::TYPE_POPUP) != 0; +} + void DevToolsWindow::SetAttachedWindow() { tab_contents_->render_view_host()-> ExecuteJavascriptInWebFrame( |