Re-subimission of https://codereview.chromium.org/1041213003/
[chromium-blink-merge.git] / content / browser / devtools / ipc_devtools_agent_host.h
blob754be5ee2e4a36b33011e8426beee13aeef61886
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 #ifndef CONTENT_BROWSER_DEVTOOLS_IPC_DEVTOOLS_AGENT_HOST_H_
6 #define CONTENT_BROWSER_DEVTOOLS_IPC_DEVTOOLS_AGENT_HOST_H_
8 #include "content/browser/devtools/devtools_agent_host_impl.h"
9 #include "content/common/devtools_messages.h"
11 namespace IPC {
12 class Message;
15 namespace content {
17 class CONTENT_EXPORT IPCDevToolsAgentHost : public DevToolsAgentHostImpl {
18 public:
19 // DevToolsAgentHostImpl implementation.
20 void Attach() override;
21 void Detach() override;
22 bool DispatchProtocolMessage(const std::string& message) override;
23 void InspectElement(int x, int y) override;
25 protected:
26 IPCDevToolsAgentHost();
27 ~IPCDevToolsAgentHost() override;
29 void Reattach();
30 void ProcessChunkedMessageFromAgent(const DevToolsMessageChunk& chunk);
32 virtual void SendMessageToAgent(IPC::Message* msg) = 0;
33 virtual void OnClientAttached() = 0;
34 virtual void OnClientDetached() = 0;
36 private:
37 std::string message_buffer_;
38 uint32 message_buffer_size_;
39 std::string state_cookie_;
42 } // namespace content
44 #endif // CONTENT_BROWSER_DEVTOOLS_IPC_DEVTOOLS_AGENT_HOST_H_