Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1897)

Unified Diff: chrome/browser/debugger/devtools_window.cc

Issue 10823233: Close detached DevTools window (rather than open a new instance) when it receives an F12 keypress (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/debugger/devtools_window.cc
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc
index 2de9c7d6ec244b00e3495549b1aecb17810ad0dd..97846860bf2f408a6ff87a7a538045b46e312843 100644
--- a/chrome/browser/debugger/devtools_window.cc
+++ b/chrome/browser/debugger/devtools_window.cc
@@ -103,15 +103,7 @@ TabContents* DevToolsWindow::GetDevToolsContents(WebContents* inspected_tab) {
// static
bool DevToolsWindow::IsDevToolsWindow(RenderViewHost* window_rvh) {
- if (g_instances == NULL)
- return false;
- DevToolsWindowList& instances = g_instances.Get();
- for (DevToolsWindowList::iterator it = instances.begin();
- it != instances.end(); ++it) {
- if ((*it)->tab_contents_->web_contents()->GetRenderViewHost() == window_rvh)
- return true;
- }
- return false;
+ return AsDevToolsWindow(window_rvh) != NULL;
}
// static
@@ -618,6 +610,18 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
RenderViewHost* inspected_rvh,
bool force_open,
DevToolsToggleAction action) {
+ if (action == DEVTOOLS_TOGGLE_ACTION_TOGGLE_INSPECTOR) {
pfeldman 2012/08/14 11:04:11 You should add event source browser here. Then you
+ DevToolsWindow* currentDevToolsWindow = AsDevToolsWindow(inspected_rvh);
+ if (currentDevToolsWindow) {
+ chrome::CloseAllTabs(currentDevToolsWindow->browser());
+ return currentDevToolsWindow;
+ }
+
+ // If invoked not on a DevTools window, behave as if it were a normal
+ // "Open DevTools window" shortcut.
+ action = DEVTOOLS_TOGGLE_ACTION_NONE;
+ }
+
DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
inspected_rvh);
DevToolsManager* manager = DevToolsManager::GetInstance();
@@ -665,6 +669,19 @@ DevToolsWindow* DevToolsWindow::AsDevToolsWindow(
return NULL;
}
+// static
+DevToolsWindow* DevToolsWindow::AsDevToolsWindow(RenderViewHost* rvh) {
+ if (g_instances == NULL)
+ return NULL;
+ DevToolsWindowList& instances = g_instances.Get();
+ for (DevToolsWindowList::iterator it = instances.begin();
+ it != instances.end(); ++it) {
+ if ((*it)->tab_contents_->web_contents()->GetRenderViewHost() == rvh)
+ return *it;
+ }
+ return NULL;
+}
+
void DevToolsWindow::ActivateWindow() {
if (!docked_) {
if (!browser_->window()->IsActive()) {

Powered by Google App Engine
This is Rietveld 408576698