| Index: chrome/browser/debugger/devtools_window.cc
|
| diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc
|
| index c89a391be81632c97b5f40cfde228d335a533970..1df3ee7bdd88edf9bebe86a0046fc454fc73cd7b 100644
|
| --- a/chrome/browser/debugger/devtools_window.cc
|
| +++ b/chrome/browser/debugger/devtools_window.cc
|
| @@ -6,7 +6,6 @@
|
|
|
| #include "base/command_line.h"
|
| #include "base/json/json_writer.h"
|
| -#include "base/lazy_instance.h"
|
| #include "base/stringprintf.h"
|
| #include "base/string_number_conversions.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -45,13 +44,6 @@
|
| #include "content/public/common/bindings_policy.h"
|
| #include "grit/generated_resources.h"
|
|
|
| -typedef std::vector<DevToolsWindow*> DevToolsWindowList;
|
| -namespace {
|
| -base::LazyInstance<DevToolsWindowList,
|
| - base::LeakyLazyInstanceTraits<DevToolsWindowList> >
|
| - g_instances = LAZY_INSTANCE_INITIALIZER;
|
| -} // namespace
|
| -
|
| const char DevToolsWindow::kDevToolsApp[] = "DevToolsApp";
|
|
|
| // static
|
| @@ -68,6 +60,9 @@ TabContentsWrapper* DevToolsWindow::GetDevToolsContents(
|
| return NULL;
|
|
|
| DevToolsManager* manager = DevToolsManager::GetInstance();
|
| + if (!manager)
|
| + return NULL; // Happens only in tests.
|
| +
|
| DevToolsClientHost* client_host = manager->
|
| GetDevToolsClientHostFor(inspected_tab->render_view_host());
|
| DevToolsWindow* window = AsDevToolsWindow(client_host);
|
| @@ -77,6 +72,15 @@ TabContentsWrapper* DevToolsWindow::GetDevToolsContents(
|
| }
|
|
|
| // static
|
| +DevToolsWindow* DevToolsWindow::FindDevToolsWindow(
|
| + RenderViewHost* window_rvh) {
|
| + DevToolsClientHost* client_host =
|
| + DevToolsClientHost::FindOwnerClientHost(window_rvh);
|
| + return client_host != NULL ? DevToolsWindow::AsDevToolsWindow(client_host)
|
| + : NULL;
|
| +}
|
| +
|
| +// static
|
| DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker(
|
| Profile* profile,
|
| DevToolsAgentHost* worker_agent) {
|
| @@ -159,7 +163,6 @@ DevToolsWindow::DevToolsWindow(TabContentsWrapper* tab_contents,
|
| docked_(docked),
|
| is_loaded_(false),
|
| action_on_load_(DEVTOOLS_TOGGLE_ACTION_NONE) {
|
| - g_instances.Get().push_back(this);
|
| // Wipe out page icon so that the default application icon is used.
|
| NavigationEntry* entry = tab_contents_->controller().GetActiveEntry();
|
| entry->favicon().set_bitmap(SkBitmap());
|
| @@ -188,12 +191,6 @@ DevToolsWindow::DevToolsWindow(TabContentsWrapper* tab_contents,
|
| }
|
|
|
| DevToolsWindow::~DevToolsWindow() {
|
| - DevToolsWindowList& instances = g_instances.Get();
|
| - DevToolsWindowList::iterator it = std::find(instances.begin(),
|
| - instances.end(),
|
| - this);
|
| - DCHECK(it != instances.end());
|
| - instances.erase(it);
|
| }
|
|
|
| void DevToolsWindow::SendMessageToClient(const IPC::Message& message) {
|
| @@ -234,6 +231,10 @@ void DevToolsWindow::TabReplaced(TabContents* new_tab) {
|
| inspected_tab_ = new_tab_wrapper;
|
| }
|
|
|
| +RenderViewHost* DevToolsWindow::GetClientRenderViewHost() {
|
| + return tab_contents_->render_view_host();
|
| +}
|
| +
|
| void DevToolsWindow::Show(DevToolsToggleAction action) {
|
| if (docked_) {
|
| Browser* inspected_browser;
|
| @@ -645,15 +646,10 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
|
| // static
|
| DevToolsWindow* DevToolsWindow::AsDevToolsWindow(
|
| DevToolsClientHost* client_host) {
|
| - if (!client_host || g_instances == NULL)
|
| + if (!client_host)
|
| return NULL;
|
| - DevToolsWindowList& instances = g_instances.Get();
|
| - for (DevToolsWindowList::iterator it = instances.begin();
|
| - it != instances.end(); ++it) {
|
| - DevToolsClientHost* client = *it;
|
| - if (client == client_host)
|
| - return *it;
|
| - }
|
| + if (client_host->GetClientRenderViewHost() != NULL)
|
| + return static_cast<DevToolsWindow*>(client_host);
|
| return NULL;
|
| }
|
|
|
|
|