OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |