1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/browser/devtools/devtools_external_agent_proxy_impl.h"
7 #include "content/browser/devtools/devtools_agent_host_impl.h"
8 #include "content/browser/devtools/devtools_manager_impl.h"
9 #include "content/public/browser/devtools_external_agent_proxy_delegate.h"
13 class DevToolsExternalAgentProxyImpl::ForwardingAgentHost
14 : public DevToolsAgentHostImpl {
16 ForwardingAgentHost(DevToolsExternalAgentProxyDelegate* delegate)
17 : delegate_(delegate) {
20 void ConnectionClosed() {
21 NotifyCloseListener();
25 virtual ~ForwardingAgentHost() {
28 // DevToolsAgentHostImpl implementation.
29 virtual void Attach() OVERRIDE {
33 virtual void Detach() OVERRIDE {
37 virtual void DispatchOnInspectorBackend(const std::string& message) OVERRIDE {
38 delegate_->SendMessageToBackend(message);
41 DevToolsExternalAgentProxyDelegate* delegate_;
45 DevToolsExternalAgentProxy* DevToolsExternalAgentProxy::Create(
46 DevToolsExternalAgentProxyDelegate* delegate) {
47 return new DevToolsExternalAgentProxyImpl(delegate);
50 DevToolsExternalAgentProxyImpl::DevToolsExternalAgentProxyImpl(
51 DevToolsExternalAgentProxyDelegate* delegate)
52 : agent_host_(new ForwardingAgentHost(delegate)) {
55 DevToolsExternalAgentProxyImpl::~DevToolsExternalAgentProxyImpl() {
58 scoped_refptr<DevToolsAgentHost> DevToolsExternalAgentProxyImpl::
63 void DevToolsExternalAgentProxyImpl::DispatchOnClientHost(
64 const std::string& message) {
65 DevToolsManagerImpl::GetInstance()->DispatchOnInspectorFrontend(
66 agent_host_.get(), message);
69 void DevToolsExternalAgentProxyImpl::ConnectionClosed() {
70 agent_host_->ConnectionClosed();