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

Unified Diff: content/browser/debugger/devtools_manager_impl.cc

Issue 8549022: Define DevTools content API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 9 years, 1 month 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: content/browser/debugger/devtools_manager_impl.cc
diff --git a/content/browser/debugger/devtools_manager.cc b/content/browser/debugger/devtools_manager_impl.cc
similarity index 71%
rename from content/browser/debugger/devtools_manager.cc
rename to content/browser/debugger/devtools_manager_impl.cc
index 11b661f95c76a0bf69b400d8d3b8ba9a6a81729f..bcd74174d391f1cfd58f2598033f5aa770d4f4db 100644
--- a/content/browser/debugger/devtools_manager.cc
+++ b/content/browser/debugger/devtools_manager_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/debugger/devtools_manager.h"
+#include "content/browser/debugger/devtools_manager_impl.h"
#include <vector>
@@ -10,27 +10,42 @@
#include "base/message_loop.h"
#include "content/browser/browsing_instance.h"
#include "content/browser/child_process_security_policy.h"
-#include "content/browser/debugger/devtools_client_host.h"
#include "content/browser/debugger/devtools_netlog_observer.h"
#include "content/browser/debugger/render_view_devtools_agent_host.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/content_browser_client.h"
+#include "content/public/browser/devtools/devtools_client_host.h"
+#include "content/public/browser/devtools/devtools_agent_host_registry.h"
+#include "content/public/browser/notification_service.h"
+#include "content/public/browser/notification_types.h"
#include "googleurl/src/gurl.h"
using content::BrowserThread;
+using content::DevToolsAgentHost;
+using content::DevToolsAgentHostRegistry;
jam 2011/11/21 21:16:04 nit: these using statements aren't needed anymore?
yurys 2011/11/30 15:49:43 Done.
+
+namespace content {
// static
DevToolsManager* DevToolsManager::GetInstance() {
- return content::GetContentClient()->browser()->GetDevToolsManager();
+ return DevToolsManagerImpl::GetInstance();
}
-DevToolsManager::DevToolsManager()
+// static
+DevToolsManagerImpl* DevToolsManagerImpl::GetInstance() {
+ return Singleton<DevToolsManagerImpl,
+ LeakySingletonTraits<DevToolsManagerImpl> >::get();
+}
+
+DevToolsManagerImpl::DevToolsManagerImpl()
: last_orphan_cookie_(0) {
+ notification_registrar_.Add(this,
+ content::NOTIFICATION_MAIN_MESSAGE_LOOP_EXITING,
+ content::NotificationService::AllSources());
}
-DevToolsManager::~DevToolsManager() {
+DevToolsManagerImpl::~DevToolsManagerImpl() {
DCHECK(agent_to_client_host_.empty());
DCHECK(client_to_agent_host_.empty());
// By the time we destroy devtools manager, all orphan client hosts should
@@ -38,14 +53,7 @@ DevToolsManager::~DevToolsManager() {
DCHECK(orphan_client_hosts_.empty());
}
-DevToolsClientHost* DevToolsManager::GetDevToolsClientHostFor(
- RenderViewHost* inspected_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
- return GetDevToolsClientHostFor(agent_host);
-}
-
-DevToolsClientHost* DevToolsManager::GetDevToolsClientHostFor(
+DevToolsClientHost* DevToolsManagerImpl::GetDevToolsClientHostFor(
DevToolsAgentHost* agent_host) {
AgentToClientHostMap::iterator it = agent_to_client_host_.find(agent_host);
if (it != agent_to_client_host_.end())
@@ -53,16 +61,7 @@ DevToolsClientHost* DevToolsManager::GetDevToolsClientHostFor(
return NULL;
}
-void DevToolsManager::RegisterDevToolsClientHostFor(
- RenderViewHost* inspected_rvh,
- DevToolsClientHost* client_host) {
- DCHECK(!GetDevToolsClientHostFor(inspected_rvh));
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
- RegisterDevToolsClientHostFor(agent_host, client_host);
-}
-
-void DevToolsManager::RegisterDevToolsClientHostFor(
+void DevToolsManagerImpl::RegisterDevToolsClientHostFor(
DevToolsAgentHost* agent_host,
DevToolsClientHost* client_host) {
BindClientHost(agent_host, client_host);
@@ -70,7 +69,7 @@ void DevToolsManager::RegisterDevToolsClientHostFor(
client_host->set_close_listener(this);
}
-bool DevToolsManager::ForwardToDevToolsAgent(DevToolsClientHost* from,
+bool DevToolsManagerImpl::ForwardToDevToolsAgent(DevToolsClientHost* from,
const IPC::Message& message) {
DevToolsAgentHost* agent_host = GetAgentHost(from);
if (!agent_host)
@@ -80,7 +79,7 @@ bool DevToolsManager::ForwardToDevToolsAgent(DevToolsClientHost* from,
return true;
}
-void DevToolsManager::ForwardToDevToolsClient(DevToolsAgentHost* agent_host,
+void DevToolsManagerImpl::ForwardToDevToolsClient(DevToolsAgentHost* agent_host,
const IPC::Message& message) {
DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
if (!client_host) {
@@ -91,12 +90,12 @@ void DevToolsManager::ForwardToDevToolsClient(DevToolsAgentHost* agent_host,
client_host->SendMessageToClient(message);
}
-void DevToolsManager::SaveAgentRuntimeState(DevToolsAgentHost* agent_host,
+void DevToolsManagerImpl::SaveAgentRuntimeState(DevToolsAgentHost* agent_host,
const std::string& state) {
agent_runtime_states_[agent_host] = state;
}
-void DevToolsManager::ClientHostClosing(DevToolsClientHost* client_host) {
+void DevToolsManagerImpl::ClientHostClosing(DevToolsClientHost* client_host) {
DevToolsAgentHost* agent_host = GetAgentHost(client_host);
if (!agent_host) {
// It might be in the list of orphan client hosts, remove it from there.
@@ -115,11 +114,17 @@ void DevToolsManager::ClientHostClosing(DevToolsClientHost* client_host) {
UnbindClientHost(agent_host, client_host);
}
-void DevToolsManager::AgentHostClosing(DevToolsAgentHost* agent_host) {
+void DevToolsManagerImpl::AgentHostClosing(DevToolsAgentHost* agent_host) {
UnregisterDevToolsClientHostFor(agent_host);
}
-DevToolsAgentHost* DevToolsManager::GetAgentHost(
+void DevToolsManagerImpl::Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) {
+ delete this;
jam 2011/11/21 21:16:04 why do you care about deleting this object at shut
yurys 2011/11/30 15:49:43 Removed this method and all the stuff related to t
+}
+
+DevToolsAgentHost* DevToolsManagerImpl::GetAgentHost(
DevToolsClientHost* client_host) {
ClientHostToInspectedRvhMap::iterator it =
client_to_agent_host_.find(client_host);
@@ -128,14 +133,7 @@ DevToolsAgentHost* DevToolsManager::GetAgentHost(
return NULL;
}
-void DevToolsManager::UnregisterDevToolsClientHostFor(
- RenderViewHost* inspected_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
- UnregisterDevToolsClientHostFor(agent_host);
-}
-
-void DevToolsManager::UnregisterDevToolsClientHostFor(
+void DevToolsManagerImpl::UnregisterDevToolsClientHostFor(
DevToolsAgentHost* agent_host) {
DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
if (!client_host)
@@ -144,7 +142,7 @@ void DevToolsManager::UnregisterDevToolsClientHostFor(
client_host->InspectedTabClosing();
}
-void DevToolsManager::OnNavigatingToPendingEntry(RenderViewHost* rvh,
+void DevToolsManagerImpl::OnNavigatingToPendingEntry(RenderViewHost* rvh,
RenderViewHost* dest_rvh,
const GURL& gurl) {
if (rvh == dest_rvh && rvh->render_view_termination_status() ==
@@ -155,12 +153,15 @@ void DevToolsManager::OnNavigatingToPendingEntry(RenderViewHost* rvh,
// Navigating to URL in the inspected window.
AttachClientHost(cookie, dest_rvh);
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(dest_rvh);
+ DevToolsAgentHost* dest_agent_host =
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(dest_rvh);
+ DevToolsClientHost* client_host = GetDevToolsClientHostFor(
+ dest_agent_host);
client_host->FrameNavigating(gurl.spec());
}
}
-void DevToolsManager::OnCancelPendingNavigation(RenderViewHost* pending,
+void DevToolsManagerImpl::OnCancelPendingNavigation(RenderViewHost* pending,
RenderViewHost* current) {
int cookie = DetachClientHost(pending);
if (cookie != -1) {
@@ -169,10 +170,15 @@ void DevToolsManager::OnCancelPendingNavigation(RenderViewHost* pending,
}
}
-void DevToolsManager::TabReplaced(TabContents* old_tab,
+void DevToolsManagerImpl::TabReplaced(TabContents* old_tab,
TabContents* new_tab) {
RenderViewHost* old_rvh = old_tab->render_view_host();
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(old_rvh);
+ if (!DevToolsAgentHostRegistry::HasDevToolsAgentHost(old_rvh))
+ return;
+
+ DevToolsAgentHost* old_agent_host =
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(old_rvh);
+ DevToolsClientHost* client_host = GetDevToolsClientHostFor(old_agent_host);
if (!client_host)
return; // Didn't know about old_tab.
int cookie = DetachClientHost(old_rvh);
@@ -183,13 +189,13 @@ void DevToolsManager::TabReplaced(TabContents* old_tab,
AttachClientHost(cookie, new_tab->render_view_host());
}
-int DevToolsManager::DetachClientHost(RenderViewHost* from_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- from_rvh);
+int DevToolsManagerImpl::DetachClientHost(RenderViewHost* from_rvh) {
+ DevToolsAgentHost* agent_host =
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(from_rvh);
return DetachClientHost(agent_host);
}
-int DevToolsManager::DetachClientHost(DevToolsAgentHost* agent_host) {
+int DevToolsManagerImpl::DetachClientHost(DevToolsAgentHost* agent_host) {
DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
if (!client_host)
return -1;
@@ -203,14 +209,14 @@ int DevToolsManager::DetachClientHost(DevToolsAgentHost* agent_host) {
return cookie;
}
-void DevToolsManager::AttachClientHost(int client_host_cookie,
+void DevToolsManagerImpl::AttachClientHost(int client_host_cookie,
RenderViewHost* to_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- to_rvh);
+ DevToolsAgentHost* agent_host =
+ DevToolsAgentHostRegistry::GetDevToolsAgentHost(to_rvh);
AttachClientHost(client_host_cookie, agent_host);
}
-void DevToolsManager::AttachClientHost(int client_host_cookie,
+void DevToolsManagerImpl::AttachClientHost(int client_host_cookie,
DevToolsAgentHost* agent_host) {
OrphanClientHosts::iterator it = orphan_client_hosts_.find(
client_host_cookie);
@@ -226,7 +232,7 @@ void DevToolsManager::AttachClientHost(int client_host_cookie,
orphan_client_hosts_.erase(it);
}
-void DevToolsManager::BindClientHost(
+void DevToolsManagerImpl::BindClientHost(
DevToolsAgentHost* agent_host,
DevToolsClientHost* client_host) {
DCHECK(agent_to_client_host_.find(agent_host) ==
@@ -249,7 +255,7 @@ void DevToolsManager::BindClientHost(
ChildProcessSecurityPolicy::GetInstance()->GrantReadRawCookies(process_id);
}
-void DevToolsManager::UnbindClientHost(DevToolsAgentHost* agent_host,
+void DevToolsManagerImpl::UnbindClientHost(DevToolsAgentHost* agent_host,
DevToolsClientHost* client_host) {
DCHECK(agent_host);
DCHECK(agent_to_client_host_.find(agent_host)->second ==
@@ -283,7 +289,7 @@ void DevToolsManager::UnbindClientHost(DevToolsAgentHost* agent_host,
ChildProcessSecurityPolicy::GetInstance()->RevokeReadRawCookies(process_id);
}
-void DevToolsManager::CloseAllClientHosts() {
+void DevToolsManagerImpl::CloseAllClientHosts() {
std::vector<DevToolsAgentHost*> agents;
for (AgentToClientHostMap::iterator it =
agent_to_client_host_.begin();
@@ -295,3 +301,5 @@ void DevToolsManager::CloseAllClientHosts() {
UnregisterDevToolsClientHostFor(*it);
}
}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698