• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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_CLIENT_HOST_H_
6 #define CONTENT_PUBLIC_BROWSER_DEVTOOLS_CLIENT_HOST_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 #include "content/common/content_export.h"
12 
13 namespace IPC {
14 class Message;
15 }
16 
17 namespace content {
18 
19 class RenderViewHost;
20 class WebContents;
21 
22 class DevToolsFrontendHostDelegate;
23 
24 // Describes interface for managing devtools clients from browser process. There
25 // are currently two types of clients: devtools windows and TCP socket
26 // debuggers.
27 class CONTENT_EXPORT DevToolsClientHost {
28  public:
~DevToolsClientHost()29   virtual ~DevToolsClientHost() {}
30 
31   // Dispatches given message on the front-end.
32   virtual void DispatchOnInspectorFrontend(const std::string& message) = 0;
33 
34   // This method is called when the contents inspected by this devtools client
35   // is closing.
36   virtual void InspectedContentsClosing() = 0;
37 
38   // Called to notify client that it has been kicked out by some other client
39   // with greater priority.
40   virtual void ReplacedWithAnotherClient() = 0;
41 
42   // Creates a DevToolsClientHost for a WebContents containing the default
43   // DevTools frontend implementation.
44   static DevToolsClientHost* CreateDevToolsFrontendHost(
45       WebContents* client_web_contents,
46       DevToolsFrontendHostDelegate* delegate);
47 
48   // Sets up DevToolsClient on the corresponding RenderView.
49   static void SetupDevToolsFrontendClient(RenderViewHost* frontend_rvh);
50 };
51 
52 }  // namespace content
53 
54 #endif  // CONTENT_PUBLIC_BROWSER_DEVTOOLS_CLIENT_HOST_H_
55