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

Side by Side Diff: chrome/browser/debugger/devtools_window.cc

Issue 10825217: Revert "Make F12 close an undocked DevTools window rather than open another DevTools window for thi… (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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 DevToolsManager* manager = DevToolsManager::GetInstance(); 96 DevToolsManager* manager = DevToolsManager::GetInstance();
97 DevToolsClientHost* client_host = manager->GetDevToolsClientHostFor(agent); 97 DevToolsClientHost* client_host = manager->GetDevToolsClientHostFor(agent);
98 DevToolsWindow* window = AsDevToolsWindow(client_host); 98 DevToolsWindow* window = AsDevToolsWindow(client_host);
99 if (!window || !window->is_docked()) 99 if (!window || !window->is_docked())
100 return NULL; 100 return NULL;
101 return window->tab_contents(); 101 return window->tab_contents();
102 } 102 }
103 103
104 // static 104 // static
105 bool DevToolsWindow::IsDevToolsWindow(RenderViewHost* window_rvh) { 105 bool DevToolsWindow::IsDevToolsWindow(RenderViewHost* window_rvh) {
106 return AsDevToolsWindow(window_rvh) != NULL; 106 if (g_instances == NULL)
107 return false;
108 DevToolsWindowList& instances = g_instances.Get();
109 for (DevToolsWindowList::iterator it = instances.begin();
110 it != instances.end(); ++it) {
111 if ((*it)->tab_contents_->web_contents()->GetRenderViewHost() == window_rvh)
112 return true;
113 }
114 return false;
107 } 115 }
108 116
109 // static 117 // static
110 DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker( 118 DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker(
111 Profile* profile, 119 Profile* profile,
112 DevToolsAgentHost* worker_agent) { 120 DevToolsAgentHost* worker_agent) {
113 DevToolsWindow* window; 121 DevToolsWindow* window;
114 DevToolsClientHost* client = content::DevToolsManager::GetInstance()-> 122 DevToolsClientHost* client = content::DevToolsManager::GetInstance()->
115 GetDevToolsClientHostFor(worker_agent); 123 GetDevToolsClientHostFor(worker_agent);
116 if (client) { 124 if (client) {
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 if (inspected_window) 609 if (inspected_window)
602 inspected_window->HandleKeyboardEvent(event); 610 inspected_window->HandleKeyboardEvent(event);
603 } 611 }
604 } 612 }
605 613
606 // static 614 // static
607 DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( 615 DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
608 RenderViewHost* inspected_rvh, 616 RenderViewHost* inspected_rvh,
609 bool force_open, 617 bool force_open,
610 DevToolsToggleAction action) { 618 DevToolsToggleAction action) {
611 if (!force_open) {
612 DevToolsWindow* currentDevToolsWindow = AsDevToolsWindow(inspected_rvh);
613 if (currentDevToolsWindow) {
614 chrome::CloseAllTabs(currentDevToolsWindow->browser());
615 return currentDevToolsWindow;
616 }
617 }
618
619 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( 619 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
620 inspected_rvh); 620 inspected_rvh);
621 DevToolsManager* manager = DevToolsManager::GetInstance(); 621 DevToolsManager* manager = DevToolsManager::GetInstance();
622 DevToolsClientHost* host = manager->GetDevToolsClientHostFor(agent); 622 DevToolsClientHost* host = manager->GetDevToolsClientHostFor(agent);
623 DevToolsWindow* window = AsDevToolsWindow(host); 623 DevToolsWindow* window = AsDevToolsWindow(host);
624 if (host != NULL && window == NULL) { 624 if (host != NULL && window == NULL) {
625 // Break remote debugging / extension debugging session. 625 // Break remote debugging / extension debugging session.
626 manager->UnregisterDevToolsClientHostFor(agent); 626 manager->UnregisterDevToolsClientHostFor(agent);
627 } 627 }
628 628
(...skipping 27 matching lines...) Expand all
656 return NULL; 656 return NULL;
657 DevToolsWindowList& instances = g_instances.Get(); 657 DevToolsWindowList& instances = g_instances.Get();
658 for (DevToolsWindowList::iterator it = instances.begin(); 658 for (DevToolsWindowList::iterator it = instances.begin();
659 it != instances.end(); ++it) { 659 it != instances.end(); ++it) {
660 if ((*it)->frontend_host_ == client_host) 660 if ((*it)->frontend_host_ == client_host)
661 return *it; 661 return *it;
662 } 662 }
663 return NULL; 663 return NULL;
664 } 664 }
665 665
666 // static
667 DevToolsWindow* DevToolsWindow::AsDevToolsWindow(RenderViewHost* rvh) {
668 if (g_instances == NULL)
669 return NULL;
670 DevToolsWindowList& instances = g_instances.Get();
671 for (DevToolsWindowList::iterator it = instances.begin();
672 it != instances.end(); ++it) {
673 if ((*it)->tab_contents_->web_contents()->GetRenderViewHost() == rvh)
674 return *it;
675 }
676 return NULL;
677 }
678
679 void DevToolsWindow::ActivateWindow() { 666 void DevToolsWindow::ActivateWindow() {
680 if (!docked_) { 667 if (!docked_) {
681 if (!browser_->window()->IsActive()) { 668 if (!browser_->window()->IsActive()) {
682 browser_->window()->Activate(); 669 browser_->window()->Activate();
683 } 670 }
684 } else { 671 } else {
685 BrowserWindow* inspected_window = GetInspectedBrowserWindow(); 672 BrowserWindow* inspected_window = GetInspectedBrowserWindow();
686 if (inspected_window) 673 if (inspected_window)
687 tab_contents_->web_contents()->GetView()->Focus(); 674 tab_contents_->web_contents()->GetView()->Focus();
688 } 675 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 } 764 }
778 765
779 void DevToolsWindow::UpdateBrowserToolbar() { 766 void DevToolsWindow::UpdateBrowserToolbar() {
780 if (!inspected_tab_) 767 if (!inspected_tab_)
781 return; 768 return;
782 BrowserWindow* inspected_window = GetInspectedBrowserWindow(); 769 BrowserWindow* inspected_window = GetInspectedBrowserWindow();
783 if (inspected_window) 770 if (inspected_window)
784 inspected_window->UpdateToolbar(inspected_tab_, false); 771 inspected_window->UpdateToolbar(inspected_tab_, false);
785 } 772 }
786 773
OLDNEW
« no previous file with comments | « chrome/browser/debugger/devtools_window.h ('k') | chrome/browser/tab_contents/render_view_context_menu.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698