Index: chrome/browser/debugger/devtools_manager.cc |
=================================================================== |
--- chrome/browser/debugger/devtools_manager.cc (revision 11854) |
+++ chrome/browser/debugger/devtools_manager.cc (working copy) |
@@ -4,10 +4,8 @@ |
#include "chrome/browser/debugger/devtools_manager.h" |
-#include "chrome/browser/browser_process.h" |
#include "chrome/browser/debugger/devtools_window.h" |
#include "chrome/browser/renderer_host/render_view_host.h" |
-#include "chrome/browser/tab_contents/render_view_host_manager.h" |
#include "chrome/browser/tab_contents/tab_contents.h" |
#include "chrome/browser/tab_contents/web_contents.h" |
#include "chrome/common/notification_registrar.h" |
@@ -17,8 +15,10 @@ |
class DevToolsInstanceDescriptorImpl : public DevToolsInstanceDescriptor { |
public: |
explicit DevToolsInstanceDescriptorImpl( |
+ DevToolsManager* manager, |
NavigationController* navigation_controller) |
- : navigation_controller_(navigation_controller), |
+ : manager_(manager), |
+ navigation_controller_(navigation_controller), |
devtools_host_(NULL), |
devtools_window_(NULL) { |
} |
@@ -33,11 +33,7 @@ |
} |
virtual void Destroy() { |
- DevToolsManager* manager = g_browser_process->devtools_manager(); |
- DCHECK(manager); |
- if (manager) { |
- manager->RemoveDescriptor(this); |
- } |
+ manager_->RemoveDescriptor(this); |
delete this; |
} |
@@ -54,6 +50,7 @@ |
} |
private: |
+ DevToolsManager* manager_; |
NavigationController* navigation_controller_; |
RenderViewHost* devtools_host_; |
DevToolsWindow* devtools_window_; |
@@ -61,7 +58,9 @@ |
DISALLOW_COPY_AND_ASSIGN(DevToolsInstanceDescriptorImpl); |
}; |
-DevToolsManager::DevToolsManager() : web_contents_listeners_(NULL) { |
+DevToolsManager::DevToolsManager(DevToolsWindowFactory* factory) |
+ : web_contents_listeners_(NULL), |
+ devtools_window_factory_(factory) { |
} |
DevToolsManager::~DevToolsManager() { |
@@ -69,6 +68,15 @@ |
"All devtools windows must alredy have been closed."; |
} |
+DevToolsWindow* DevToolsManager::CreateDevToolsWindow( |
+ DevToolsInstanceDescriptor* descriptor) { |
+ if (devtools_window_factory_) { |
+ return devtools_window_factory_->CreateDevToolsWindow(descriptor); |
+ } else { |
+ return DevToolsWindow::Create(descriptor); |
+ } |
+} |
+ |
void DevToolsManager::Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |
@@ -100,12 +108,12 @@ |
desc = it->second; |
window = desc->devtools_window(); |
} else { |
- desc = new DevToolsInstanceDescriptorImpl(navigation_controller); |
+ desc = new DevToolsInstanceDescriptorImpl(this, navigation_controller); |
navcontroller_to_descriptor_[navigation_controller] = desc; |
StartListening(navigation_controller); |
- window = DevToolsWindow::Create(desc); |
+ window = CreateDevToolsWindow(desc); |
} |
window->Show(); |