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. 4 5 #ifndef CONTENT_PUBLIC_BROWSER_DEVTOOLS_EXTERNAL_AGENT_PROXY_H_ 6 #define CONTENT_PUBLIC_BROWSER_DEVTOOLS_EXTERNAL_AGENT_PROXY_H_ 7 8 #include <string> 9 10 #include "content/common/content_export.h" 11 12 namespace content { 13 14 class DevToolsAgentHost; 15 class DevToolsExternalAgentProxyDelegate; 16 17 // Describes interface for communication with an external DevTools agent. 18 class DevToolsExternalAgentProxy { 19 public: 20 // Creates DevToolsExternalAgentProxy to communicate with an agent 21 // via the provided |delegate|. 22 // Caller get the proxy ownership and keeps the |delegate| ownership. 23 static CONTENT_EXPORT DevToolsExternalAgentProxy* Create( 24 DevToolsExternalAgentProxyDelegate* delegate); 25 26 // Returns the local DevToolsAgentHost for the external agent. 27 virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() = 0; 28 29 // Sends the message to the client host. 30 virtual void DispatchOnClientHost(const std::string& message) = 0; 31 32 // Informs the client that the connection has closed. 33 virtual void ConnectionClosed() = 0; 34 35 virtual ~DevToolsExternalAgentProxy() {} 36 }; 37 38 } // namespace content 39 40 #endif // CONTENT_PUBLIC_BROWSER_DEVTOOLS_EXTERNAL_AGENT_PROXY_H_ 41