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

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

Issue 13305002: Remove redundant DevToolsManager methods and clean up its clients. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/devtools/devtools_manager_impl.cc
diff --git a/content/browser/devtools/devtools_manager_impl.cc b/content/browser/devtools/devtools_manager_impl.cc
index 4ae34da1c3f59683811fd5b89f42b09910709e06..757e517d4d39872f828fb77c7adac3424bf1f1fe 100644
--- a/content/browser/devtools/devtools_manager_impl.cc
+++ b/content/browser/devtools/devtools_manager_impl.cc
@@ -36,10 +36,14 @@ DevToolsManagerImpl::~DevToolsManagerImpl() {
DCHECK(client_to_agent_host_.empty());
}
-DevToolsClientHost* DevToolsManagerImpl::GetDevToolsClientHostFor(
- DevToolsAgentHost* agent_host) {
+bool DevToolsManagerImpl::IsAttached(DevToolsAgentHost* agent_host) {
DevToolsAgentHostImpl* agent_host_impl =
static_cast<DevToolsAgentHostImpl*>(agent_host);
+ return !!GetDevToolsClientHostFor(agent_host_impl);
+}
+
+DevToolsClientHost* DevToolsManagerImpl::GetDevToolsClientHostFor(
+ DevToolsAgentHostImpl* agent_host_impl) {
AgentToClientHostMap::iterator it =
agent_to_client_host_.find(agent_host_impl);
if (it != agent_to_client_host_.end())
@@ -60,6 +64,12 @@ void DevToolsManagerImpl::RegisterDevToolsClientHostFor(
DevToolsClientHost* client_host) {
DevToolsAgentHostImpl* agent_host_impl =
static_cast<DevToolsAgentHostImpl*>(agent_host);
+ DevToolsClientHost* old_client_host =
+ GetDevToolsClientHostFor(agent_host_impl);
+ if (old_client_host) {
+ old_client_host->ReplacedWithAnotherClient();
pfeldman 2013/03/29 14:59:23 Ok. Only DevToolsWindow is allowed to kick other c
Vladislav Kaznacheev 2013/03/29 15:15:35 It was doing it through a public API which anyone
+ UnregisterDevToolsClientHostFor(agent_host_impl);
+ }
BindClientHost(agent_host_impl, client_host);
agent_host_impl->Attach();
}
@@ -79,7 +89,9 @@ bool DevToolsManagerImpl::DispatchOnInspectorBackend(
void DevToolsManagerImpl::DispatchOnInspectorFrontend(
DevToolsAgentHost* agent_host,
const std::string& message) {
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
+ DevToolsAgentHostImpl* agent_host_impl =
+ static_cast<DevToolsAgentHostImpl*>(agent_host);
+ DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host_impl);
if (!client_host) {
// Client window was closed while there were messages
// being sent to it.
@@ -98,17 +110,16 @@ void DevToolsManagerImpl::ClientHostClosing(DevToolsClientHost* client_host) {
}
void DevToolsManagerImpl::AgentHostClosing(DevToolsAgentHostImpl* agent_host) {
- UnregisterDevToolsClientHostFor(agent_host);
+ UnregisterDevToolsClientHostFor(
+ static_cast<DevToolsAgentHostImpl*>(agent_host));
}
void DevToolsManagerImpl::UnregisterDevToolsClientHostFor(
- DevToolsAgentHost* agent_host) {
+ DevToolsAgentHostImpl* agent_host) {
DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
if (!client_host)
return;
- DevToolsAgentHostImpl* agent_host_impl =
- static_cast<DevToolsAgentHostImpl*>(agent_host);
- UnbindClientHost(agent_host_impl, client_host);
+ UnbindClientHost(agent_host, client_host);
client_host->InspectedContentsClosing();
}
@@ -156,13 +167,13 @@ void DevToolsManagerImpl::UnbindClientHost(DevToolsAgentHostImpl* agent_host,
}
void DevToolsManagerImpl::CloseAllClientHosts() {
- std::vector<DevToolsAgentHost*> agents;
+ std::vector<DevToolsAgentHostImpl*> agents;
for (AgentToClientHostMap::iterator it =
agent_to_client_host_.begin();
it != agent_to_client_host_.end(); ++it) {
agents.push_back(it->first);
}
- for (std::vector<DevToolsAgentHost*>::iterator it = agents.begin();
+ for (std::vector<DevToolsAgentHostImpl*>::iterator it = agents.begin();
it != agents.end(); ++it) {
UnregisterDevToolsClientHostFor(*it);
}

Powered by Google App Engine
This is Rietveld 408576698