summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-16 13:25:32 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-16 13:25:32 +0000
commit3693df59ae0e5b86ff59f24061e4937b16efe80a (patch)
tree0c5e40f550732d6bc0ea72364516dc4622b965e2
parentdc4a33d365332b89f34044b508e8333297582ae4 (diff)
downloadchromium_src-3693df59ae0e5b86ff59f24061e4937b16efe80a.zip
chromium_src-3693df59ae0e5b86ff59f24061e4937b16efe80a.tar.gz
chromium_src-3693df59ae0e5b86ff59f24061e4937b16efe80a.tar.bz2
Revert "DevTools: introduce DevToolsAgentHost"
This reverts r96927 due to sporadic RenderProcessHostTest.DevToolsOnSelfInOwnProcess* tests failures on win and mac. TBR=pfeldman BUG= TEST= Review URL: http://codereview.chromium.org/7658013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96935 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/debugger/devtools_agent_host.cc18
-rw-r--r--content/browser/debugger/devtools_agent_host.h44
-rw-r--r--content/browser/debugger/devtools_manager.cc204
-rw-r--r--content/browser/debugger/devtools_manager.h47
-rw-r--r--content/browser/debugger/render_view_devtools_agent_host.cc77
-rw-r--r--content/browser/debugger/render_view_devtools_agent_host.h47
-rw-r--r--content/content_browser.gypi4
7 files changed, 125 insertions, 316 deletions
diff --git a/content/browser/debugger/devtools_agent_host.cc b/content/browser/debugger/devtools_agent_host.cc
deleted file mode 100644
index 3e897e3..0000000
--- a/content/browser/debugger/devtools_agent_host.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// 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_agent_host.h"
-
-#include "base/basictypes.h"
-
-DevToolsAgentHost::DevToolsAgentHost() : close_listener_(NULL) {
-}
-
-void DevToolsAgentHost::NotifyCloseListener() {
- if (close_listener_) {
- close_listener_->AgentHostClosing(this);
- close_listener_ = NULL;
- }
-}
-
diff --git a/content/browser/debugger/devtools_agent_host.h b/content/browser/debugger/devtools_agent_host.h
deleted file mode 100644
index 465dbe5..0000000
--- a/content/browser/debugger/devtools_agent_host.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_DEBUGGER_DEVTOOLS_AGENT_HOST_H_
-#define CONTENT_BROWSER_DEBUGGER_DEVTOOLS_AGENT_HOST_H_
-#pragma once
-
-namespace IPC {
-class Message;
-}
-
-// Describes interface for managing devtools agents from the browser process.
-class DevToolsAgentHost {
- public:
- class CloseListener {
- public:
- virtual void AgentHostClosing(DevToolsAgentHost*) = 0;
- protected:
- virtual ~CloseListener() {}
- };
-
- // Sends the message to the devtools agent hosted by this object.
- virtual void SendMessageToAgent(IPC::Message* msg) = 0;
-
- // TODO(yurys): get rid of this method
- virtual void NotifyClientClosing() = 0;
-
- virtual void ClientDetached() = 0;
-
- void set_close_listener(CloseListener* listener) {
- close_listener_ = listener;
- }
-
- protected:
- DevToolsAgentHost();
- virtual ~DevToolsAgentHost() {}
-
- void NotifyCloseListener();
-
- CloseListener* close_listener_;
-};
-
-#endif // CONTENT_BROWSER_DEBUGGER_DEVTOOLS_AGENT_HOST_H_
diff --git a/content/browser/debugger/devtools_manager.cc b/content/browser/debugger/devtools_manager.cc
index 2d289a6..383d6c4 100644
--- a/content/browser/debugger/devtools_manager.cc
+++ b/content/browser/debugger/devtools_manager.cc
@@ -9,14 +9,16 @@
#include "base/message_loop.h"
#include "content/browser/browser_thread.h"
#include "content/browser/browsing_instance.h"
+#include "content/browser/child_process_security_policy.h"
#include "content/browser/content_browser_client.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/site_instance.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/common/content_client.h"
#include "content/common/devtools_messages.h"
+#include "content/common/notification_service.h"
#include "googleurl/src/gurl.h"
// static
@@ -26,11 +28,13 @@ DevToolsManager* DevToolsManager::GetInstance() {
DevToolsManager::DevToolsManager()
: last_orphan_cookie_(0) {
+ registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_DELETED,
+ NotificationService::AllSources());
}
DevToolsManager::~DevToolsManager() {
- DCHECK(agent_to_client_host_.empty());
- DCHECK(client_to_agent_host_.empty());
+ DCHECK(inspected_rvh_to_client_host_.empty());
+ DCHECK(client_host_to_inspected_rvh_.empty());
// By the time we destroy devtools manager, all orphan client hosts should
// have been delelted, no need to notify them upon tab closing.
DCHECK(orphan_client_hosts_.empty());
@@ -38,17 +42,9 @@ DevToolsManager::~DevToolsManager() {
DevToolsClientHost* DevToolsManager::GetDevToolsClientHostFor(
RenderViewHost* inspected_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
- if (!agent_host)
- return NULL;
- return GetDevToolsClientHostFor(agent_host);
-}
-
-DevToolsClientHost* DevToolsManager::GetDevToolsClientHostFor(
- DevToolsAgentHost* agent_host) {
- AgentToClientHostMap::iterator it = agent_to_client_host_.find(agent_host);
- if (it != agent_to_client_host_.end())
+ InspectedRvhToClientHostMap::iterator it =
+ inspected_rvh_to_client_host_.find(inspected_rvh);
+ if (it != inspected_rvh_to_client_host_.end())
return it->second;
return NULL;
}
@@ -59,20 +55,20 @@ void DevToolsManager::RegisterDevToolsClientHostFor(
DCHECK(!GetDevToolsClientHostFor(inspected_rvh));
DevToolsRuntimeProperties initial_properties;
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::CreateFor(
- inspected_rvh);
- BindClientHost(agent_host, client_host, initial_properties);
+ BindClientHost(inspected_rvh, client_host, initial_properties);
client_host->set_close_listener(this);
- SendAttachToAgent(agent_host);
+ SendAttachToAgent(inspected_rvh);
}
bool DevToolsManager::ForwardToDevToolsAgent(DevToolsClientHost* from,
const IPC::Message& message) {
- DevToolsAgentHost* agent_host = GetAgentHost(from);
- if (!agent_host)
+ RenderViewHost* inspected_rvh = GetInspectedRenderViewHost(from);
+ if (!inspected_rvh)
return false;
- agent_host->SendMessageToAgent(new IPC::Message(message));
+ IPC::Message* m = new IPC::Message(message);
+ m->set_routing_id(inspected_rvh->routing_id());
+ inspected_rvh->Send(m);
return true;
}
@@ -90,13 +86,11 @@ void DevToolsManager::ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
void DevToolsManager::RuntimePropertyChanged(RenderViewHost* inspected_rvh,
const std::string& name,
const std::string& value) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
RuntimePropertiesMap::iterator it =
- runtime_properties_map_.find(agent_host);
+ runtime_properties_map_.find(inspected_rvh);
if (it == runtime_properties_map_.end()) {
- std::pair<DevToolsAgentHost*, DevToolsRuntimeProperties> value(
- agent_host,
+ std::pair<RenderViewHost*, DevToolsRuntimeProperties> value(
+ inspected_rvh,
DevToolsRuntimeProperties());
it = runtime_properties_map_.insert(value).first;
}
@@ -112,13 +106,13 @@ void DevToolsManager::SendInspectElement(RenderViewHost* inspected_rvh,
y));
}
-void DevToolsManager::ClientHostClosing(DevToolsClientHost* client_host) {
- DevToolsAgentHost* agent_host = GetAgentHost(client_host);
- if (!agent_host) {
+void DevToolsManager::ClientHostClosing(DevToolsClientHost* host) {
+ RenderViewHost* inspected_rvh = GetInspectedRenderViewHost(host);
+ if (!inspected_rvh) {
// It might be in the list of orphan client hosts, remove it from there.
for (OrphanClientHosts::iterator it = orphan_client_hosts_.begin();
it != orphan_client_hosts_.end(); ++it) {
- if (it->second.first == client_host) {
+ if (it->second.first == host) {
orphan_client_hosts_.erase(it->first);
return;
}
@@ -126,39 +120,38 @@ void DevToolsManager::ClientHostClosing(DevToolsClientHost* client_host) {
return;
}
- agent_host->NotifyClientClosing();
+ NotificationService::current()->Notify(
+ content::NOTIFICATION_DEVTOOLS_WINDOW_CLOSING,
+ Source<content::BrowserContext>(
+ inspected_rvh->site_instance()->GetProcess()->browser_context()),
+ Details<RenderViewHost>(inspected_rvh));
- UnbindClientHost(agent_host, client_host);
+ UnbindClientHost(inspected_rvh, host);
}
-void DevToolsManager::AgentHostClosing(DevToolsAgentHost* agent_host) {
- UnregisterDevToolsClientHostFor(agent_host);
+void DevToolsManager::Observe(int type,
+ const NotificationSource& source,
+ const NotificationDetails& details) {
+ DCHECK(type == content::NOTIFICATION_RENDER_VIEW_HOST_DELETED);
+ UnregisterDevToolsClientHostFor(Source<RenderViewHost>(source).ptr());
}
-DevToolsAgentHost* DevToolsManager::GetAgentHost(
+RenderViewHost* DevToolsManager::GetInspectedRenderViewHost(
DevToolsClientHost* client_host) {
ClientHostToInspectedRvhMap::iterator it =
- client_to_agent_host_.find(client_host);
- if (it != client_to_agent_host_.end())
+ client_host_to_inspected_rvh_.find(client_host);
+ if (it != client_host_to_inspected_rvh_.end())
return it->second;
return NULL;
}
void DevToolsManager::UnregisterDevToolsClientHostFor(
RenderViewHost* inspected_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- inspected_rvh);
- if (agent_host)
- UnregisterDevToolsClientHostFor(agent_host);
-}
-
-void DevToolsManager::UnregisterDevToolsClientHostFor(
- DevToolsAgentHost* agent_host) {
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
- if (!client_host)
+ DevToolsClientHost* host = GetDevToolsClientHostFor(inspected_rvh);
+ if (!host)
return;
- UnbindClientHost(agent_host, client_host);
- client_host->InspectedTabClosing();
+ UnbindClientHost(inspected_rvh, host);
+ host->InspectedTabClosing();
}
void DevToolsManager::OnNavigatingToPendingEntry(RenderViewHost* rvh,
@@ -189,20 +182,16 @@ void DevToolsManager::TabReplaced(TabContents* old_tab,
}
int DevToolsManager::DetachClientHost(RenderViewHost* from_rvh) {
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(
- from_rvh);
- if (!agent_host)
- return -1;
- DevToolsClientHost* client_host = GetDevToolsClientHostFor(agent_host);
+ DevToolsClientHost* client_host = GetDevToolsClientHostFor(from_rvh);
if (!client_host)
return -1;
int cookie = last_orphan_cookie_++;
orphan_client_hosts_[cookie] =
std::pair<DevToolsClientHost*, DevToolsRuntimeProperties>(
- client_host, runtime_properties_map_[agent_host]);
+ client_host, runtime_properties_map_[from_rvh]);
- UnbindClientHost(agent_host, client_host);
+ UnbindClientHost(from_rvh, client_host);
return cookie;
}
@@ -214,86 +203,97 @@ void DevToolsManager::AttachClientHost(int client_host_cookie,
return;
DevToolsClientHost* client_host = (*it).second.first;
- DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::CreateFor(
- to_rvh);
- BindClientHost(agent_host, client_host, (*it).second.second);
- SendAttachToAgent(agent_host);
+ BindClientHost(to_rvh, client_host, (*it).second.second);
+ SendAttachToAgent(to_rvh);
orphan_client_hosts_.erase(client_host_cookie);
}
-void DevToolsManager::SendAttachToAgent(DevToolsAgentHost* agent_host) {
- DevToolsRuntimeProperties properties;
- RuntimePropertiesMap::iterator it =
- runtime_properties_map_.find(agent_host);
- if (it != runtime_properties_map_.end()) {
- properties = DevToolsRuntimeProperties(it->second.begin(),
- it->second.end());
+void DevToolsManager::SendAttachToAgent(RenderViewHost* inspected_rvh) {
+ if (inspected_rvh) {
+ ChildProcessSecurityPolicy::GetInstance()->GrantReadRawCookies(
+ inspected_rvh->process()->id());
+
+ DevToolsRuntimeProperties properties;
+ RuntimePropertiesMap::iterator it =
+ runtime_properties_map_.find(inspected_rvh);
+ if (it != runtime_properties_map_.end()) {
+ properties = DevToolsRuntimeProperties(it->second.begin(),
+ it->second.end());
+ }
+ inspected_rvh->Send(new DevToolsAgentMsg_Attach(
+ inspected_rvh->routing_id(),
+ properties));
}
- agent_host->SendMessageToAgent(new DevToolsAgentMsg_Attach(
- MSG_ROUTING_NONE,
- properties));
}
-void DevToolsManager::SendDetachToAgent(DevToolsAgentHost* agent_host) {
- if (agent_host) {
- agent_host->SendMessageToAgent(new DevToolsAgentMsg_Detach(
- MSG_ROUTING_NONE));
+void DevToolsManager::SendDetachToAgent(RenderViewHost* inspected_rvh) {
+ if (inspected_rvh) {
+ inspected_rvh->Send(new DevToolsAgentMsg_Detach(
+ inspected_rvh->routing_id()));
}
}
void DevToolsManager::BindClientHost(
- DevToolsAgentHost* agent_host,
+ RenderViewHost* inspected_rvh,
DevToolsClientHost* client_host,
const DevToolsRuntimeProperties& runtime_properties) {
- DCHECK(agent_to_client_host_.find(agent_host) ==
- agent_to_client_host_.end());
- DCHECK(client_to_agent_host_.find(client_host) ==
- client_to_agent_host_.end());
+ DCHECK(inspected_rvh_to_client_host_.find(inspected_rvh) ==
+ inspected_rvh_to_client_host_.end());
+ DCHECK(client_host_to_inspected_rvh_.find(client_host) ==
+ client_host_to_inspected_rvh_.end());
- if (client_to_agent_host_.empty()) {
+ if (client_host_to_inspected_rvh_.empty()) {
BrowserThread::PostTask(
BrowserThread::IO,
FROM_HERE,
NewRunnableFunction(&DevToolsNetLogObserver::Attach));
}
- agent_to_client_host_[agent_host] = client_host;
- client_to_agent_host_[client_host] = agent_host;
- runtime_properties_map_[agent_host] = runtime_properties;
- agent_host->set_close_listener(this);
+ inspected_rvh_to_client_host_[inspected_rvh] = client_host;
+ client_host_to_inspected_rvh_[client_host] = inspected_rvh;
+ runtime_properties_map_[inspected_rvh] = runtime_properties;
}
-void DevToolsManager::UnbindClientHost(DevToolsAgentHost* agent_host,
+void DevToolsManager::UnbindClientHost(RenderViewHost* inspected_rvh,
DevToolsClientHost* client_host) {
- DCHECK(agent_host);
- DCHECK(agent_to_client_host_.find(agent_host)->second ==
+ DCHECK(inspected_rvh_to_client_host_.find(inspected_rvh)->second ==
client_host);
- DCHECK(client_to_agent_host_.find(client_host)->second ==
- agent_host);
+ DCHECK(client_host_to_inspected_rvh_.find(client_host)->second ==
+ inspected_rvh);
- agent_to_client_host_.erase(agent_host);
- client_to_agent_host_.erase(client_host);
- runtime_properties_map_.erase(agent_host);
+ inspected_rvh_to_client_host_.erase(inspected_rvh);
+ client_host_to_inspected_rvh_.erase(client_host);
+ runtime_properties_map_.erase(inspected_rvh);
- if (client_to_agent_host_.empty()) {
+ if (client_host_to_inspected_rvh_.empty()) {
BrowserThread::PostTask(
BrowserThread::IO,
FROM_HERE,
NewRunnableFunction(&DevToolsNetLogObserver::Detach));
}
- SendDetachToAgent(agent_host);
- agent_host->ClientDetached();
+ SendDetachToAgent(inspected_rvh);
+
+ int process_id = inspected_rvh->process()->id();
+ for (InspectedRvhToClientHostMap::iterator it =
+ inspected_rvh_to_client_host_.begin();
+ it != inspected_rvh_to_client_host_.end();
+ ++it) {
+ if (it->first->process()->id() == process_id)
+ return;
+ }
+ // We've disconnected from the last renderer -> revoke cookie permissions.
+ ChildProcessSecurityPolicy::GetInstance()->RevokeReadRawCookies(process_id);
}
void DevToolsManager::CloseAllClientHosts() {
- std::vector<DevToolsAgentHost*> agents;
- for (AgentToClientHostMap::iterator it =
- agent_to_client_host_.begin();
- it != agent_to_client_host_.end(); ++it) {
- agents.push_back(it->first);
+ std::vector<RenderViewHost*> rhvs;
+ for (InspectedRvhToClientHostMap::iterator it =
+ inspected_rvh_to_client_host_.begin();
+ it != inspected_rvh_to_client_host_.end(); ++it) {
+ rhvs.push_back(it->first);
}
- for (std::vector<DevToolsAgentHost*>::iterator it = agents.begin();
- it != agents.end(); ++it) {
+ for (std::vector<RenderViewHost*>::iterator it = rhvs.begin();
+ it != rhvs.end(); ++it) {
UnregisterDevToolsClientHostFor(*it);
}
}
diff --git a/content/browser/debugger/devtools_manager.h b/content/browser/debugger/devtools_manager.h
index 8aabfd6..4334904 100644
--- a/content/browser/debugger/devtools_manager.h
+++ b/content/browser/debugger/devtools_manager.h
@@ -9,14 +9,14 @@
#include <map>
#include <string>
-#include "content/browser/debugger/devtools_agent_host.h"
#include "content/browser/debugger/devtools_client_host.h"
+#include "content/common/notification_observer.h"
+#include "content/common/notification_registrar.h"
namespace IPC {
class Message;
}
-class DevToolsAgentHost;
class DevToolsNetLogObserver;
class GURL;
class IOThread;
@@ -28,12 +28,8 @@ typedef std::map<std::string, std::string> DevToolsRuntimeProperties;
// This class is a singleton that manages DevToolsClientHost instances and
// routes messages between developer tools clients and agents.
-//
-// Methods below that accept inspected RenderViewHost as a parameter are
-// just convenience methods that call corresponding methods accepting
-// DevToolAgentHost.
class DevToolsManager : public DevToolsClientHost::CloseListener,
- public DevToolsAgentHost::CloseListener {
+ public NotificationObserver {
public:
static DevToolsManager* GetInstance();
@@ -83,9 +79,6 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
// Closes all open developer tools windows.
void CloseAllClientHosts();
- DevToolsClientHost* GetDevToolsClientHostFor(DevToolsAgentHost* agent_host);
- void UnregisterDevToolsClientHostFor(DevToolsAgentHost* agent_host);
-
private:
// DevToolsClientHost::CloseListener override.
// This method will remove all references from the manager to the
@@ -93,19 +86,23 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
// DevToolsClientHost.
virtual void ClientHostClosing(DevToolsClientHost* host);
- // DevToolsAgentHost::CloseListener implementation.
- virtual void AgentHostClosing(DevToolsAgentHost* host);
+ // Overridden from NotificationObserver:
+ virtual void Observe(int type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
- // Returns DevToolsAgentHost inspected by the DevToolsClientHost.
- DevToolsAgentHost* GetAgentHost(DevToolsClientHost* client_host);
+ // Returns RenderViewHost for the tab that is inspected by devtools
+ // client hosted by DevToolsClientHost.
+ RenderViewHost* GetInspectedRenderViewHost(DevToolsClientHost* client_host);
- void SendAttachToAgent(DevToolsAgentHost*);
- void SendDetachToAgent(DevToolsAgentHost*);
+ void SendAttachToAgent(RenderViewHost* inspected_rvh);
+ void SendDetachToAgent(RenderViewHost* inspected_rvh);
- void BindClientHost(DevToolsAgentHost* agent_host,
+ void BindClientHost(RenderViewHost* inspected_rvh,
DevToolsClientHost* client_host,
const DevToolsRuntimeProperties& runtime_properties);
- void UnbindClientHost(DevToolsAgentHost* agent_host,
+
+ void UnbindClientHost(RenderViewHost* inspected_rvh,
DevToolsClientHost* client_host);
// These two maps are for tracking dependencies between inspected tabs and
@@ -114,15 +111,15 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
//
// DevToolsManager start listening to DevToolsClientHosts when they are put
// into these maps and removes them when they are closing.
- typedef std::map<DevToolsAgentHost*, DevToolsClientHost*>
- AgentToClientHostMap;
- AgentToClientHostMap agent_to_client_host_;
+ typedef std::map<RenderViewHost*, DevToolsClientHost*>
+ InspectedRvhToClientHostMap;
+ InspectedRvhToClientHostMap inspected_rvh_to_client_host_;
- typedef std::map<DevToolsClientHost*, DevToolsAgentHost*>
+ typedef std::map<DevToolsClientHost*, RenderViewHost*>
ClientHostToInspectedRvhMap;
- ClientHostToInspectedRvhMap client_to_agent_host_;
+ ClientHostToInspectedRvhMap client_host_to_inspected_rvh_;
- typedef std::map<DevToolsAgentHost*, DevToolsRuntimeProperties>
+ typedef std::map<RenderViewHost*, DevToolsRuntimeProperties>
RuntimePropertiesMap;
RuntimePropertiesMap runtime_properties_map_;
@@ -132,6 +129,8 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
OrphanClientHosts orphan_client_hosts_;
int last_orphan_cookie_;
+ NotificationRegistrar registrar_;
+
DISALLOW_COPY_AND_ASSIGN(DevToolsManager);
};
diff --git a/content/browser/debugger/render_view_devtools_agent_host.cc b/content/browser/debugger/render_view_devtools_agent_host.cc
deleted file mode 100644
index a88f129..0000000
--- a/content/browser/debugger/render_view_devtools_agent_host.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/debugger/render_view_devtools_agent_host.h"
-
-#include "base/basictypes.h"
-#include "content/browser/child_process_security_policy.h"
-#include "content/browser/renderer_host/render_process_host.h"
-#include "content/browser/renderer_host/render_view_host.h"
-#include "content/browser/site_instance.h"
-#include "content/common/notification_service.h"
-
-RenderViewDevToolsAgentHost::Instances RenderViewDevToolsAgentHost::instances_;
-
-DevToolsAgentHost* RenderViewDevToolsAgentHost::FindFor(
- RenderViewHost* rvh) {
- Instances::iterator it = instances_.find(rvh);
- if (it != instances_.end())
- return it->second;
- return NULL;
-}
-
-DevToolsAgentHost* RenderViewDevToolsAgentHost::CreateFor(
- RenderViewHost* rvh) {
- DCHECK(!FindFor(rvh));
- RenderViewDevToolsAgentHost* result = new RenderViewDevToolsAgentHost(rvh);
- return result;
-}
-
-RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh)
- : render_view_host_(rvh) {
- ChildProcessSecurityPolicy::GetInstance()->GrantReadRawCookies(
- rvh->process()->id());
- registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_DELETED,
- Source<RenderViewHost>(rvh));
- instances_[rvh] = this;
-}
-
-void RenderViewDevToolsAgentHost::SendMessageToAgent(IPC::Message* msg) {
- msg->set_routing_id(render_view_host_->routing_id());
- render_view_host_->Send(msg);
-}
-
-void RenderViewDevToolsAgentHost::NotifyClientClosing() {
- NotificationService::current()->Notify(
- content::NOTIFICATION_DEVTOOLS_WINDOW_CLOSING,
- Source<content::BrowserContext>(
- render_view_host_->site_instance()->GetProcess()->browser_context()),
- Details<RenderViewHost>(render_view_host_));
-}
-
-void RenderViewDevToolsAgentHost::ClientDetached() {
- delete this;
-}
-
-void RenderViewDevToolsAgentHost::Observe(int type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- DCHECK(type == content::NOTIFICATION_RENDER_VIEW_HOST_DELETED);
- NotifyCloseListener();
-}
-
-RenderViewDevToolsAgentHost::~RenderViewDevToolsAgentHost() {
- instances_.erase(render_view_host_);
-
- int process_id = render_view_host_->process()->id();
- for (Instances::iterator it = instances_.begin();
- it != instances_.end();
- ++it) {
- if (it->first->process()->id() == process_id)
- return;
- }
- // We've disconnected from the last renderer -> revoke cookie permissions.
- ChildProcessSecurityPolicy::GetInstance()->RevokeReadRawCookies(process_id);
-}
-
diff --git a/content/browser/debugger/render_view_devtools_agent_host.h b/content/browser/debugger/render_view_devtools_agent_host.h
deleted file mode 100644
index 972f09e..0000000
--- a/content/browser/debugger/render_view_devtools_agent_host.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_DEBUGGER_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_
-#define CONTENT_BROWSER_DEBUGGER_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_
-#pragma once
-
-#include <map>
-
-#include "base/basictypes.h"
-#include "content/browser/debugger/devtools_agent_host.h"
-#include "content/common/notification_observer.h"
-#include "content/common/notification_registrar.h"
-
-class RenderViewHost;
-
-class RenderViewDevToolsAgentHost : public DevToolsAgentHost,
- public NotificationObserver {
- public:
- static DevToolsAgentHost* FindFor(RenderViewHost*);
- static DevToolsAgentHost* CreateFor(RenderViewHost*);
-
- private:
- RenderViewDevToolsAgentHost(RenderViewHost*);
- virtual ~RenderViewDevToolsAgentHost();
-
- // DevToolsAgentHost implementation.
- virtual void SendMessageToAgent(IPC::Message* msg);
- virtual void NotifyClientClosing();
- virtual void ClientDetached();
-
- // Overridden from NotificationObserver:
- virtual void Observe(int type,
- const NotificationSource& source,
- const NotificationDetails& details);
-
- RenderViewHost* render_view_host_;
- NotificationRegistrar registrar_;
-
- typedef std::map<RenderViewHost*, RenderViewDevToolsAgentHost*> Instances;
- static Instances instances_;
-
- DISALLOW_COPY_AND_ASSIGN(RenderViewDevToolsAgentHost);
-};
-
-#endif // CONTENT_BROWSER_DEBUGGER_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index ffc48e0..fdf5075 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -79,8 +79,6 @@
'browser/content_browser_client.h',
'browser/cross_site_request_manager.cc',
'browser/cross_site_request_manager.h',
- 'browser/debugger/devtools_agent_host.cc',
- 'browser/debugger/devtools_agent_host.h',
'browser/debugger/devtools_client_host.cc',
'browser/debugger/devtools_client_host.h',
'browser/debugger/devtools_handler.cc',
@@ -91,8 +89,6 @@
'browser/debugger/devtools_manager.h',
'browser/debugger/devtools_netlog_observer.cc',
'browser/debugger/devtools_netlog_observer.h',
- 'browser/debugger/render_view_devtools_agent_host.cc',
- 'browser/debugger/render_view_devtools_agent_host.h',
'browser/debugger/worker_devtools_manager_io.cc',
'browser/debugger/worker_devtools_manager_io.h',
'browser/debugger/worker_devtools_message_filter.cc',