Home | History | Annotate | Download | only in browser
      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