OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ | 5 #ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ |
6 #define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ | 6 #define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 | 10 |
11 #include "content/browser/devtools/protocol/target.h" | 11 #include "content/browser/devtools/protocol/devtools_protocol_dispatcher.h" |
12 #include "content/browser/devtools/service_worker_devtools_manager.h" | 12 #include "content/browser/devtools/service_worker_devtools_manager.h" |
13 #include "content/public/browser/devtools_agent_host_client.h" | 13 #include "content/public/browser/devtools_agent_host_client.h" |
14 #include "content/public/browser/devtools_agent_host_observer.h" | 14 #include "content/public/browser/devtools_agent_host_observer.h" |
15 | 15 |
16 namespace content { | 16 namespace content { |
17 | 17 |
18 class RenderFrameHostImpl; | 18 class RenderFrameHostImpl; |
19 | 19 |
20 namespace protocol { | 20 namespace devtools { |
| 21 namespace target { |
21 | 22 |
22 class TargetHandler : public Target::Backend, | 23 class TargetHandler : public DevToolsAgentHostClient, |
23 public DevToolsAgentHostClient, | |
24 public ServiceWorkerDevToolsManager::Observer, | 24 public ServiceWorkerDevToolsManager::Observer, |
25 public DevToolsAgentHostObserver { | 25 public DevToolsAgentHostObserver { |
26 public: | 26 public: |
| 27 using Response = DevToolsProtocolClient::Response; |
| 28 |
27 TargetHandler(); | 29 TargetHandler(); |
28 ~TargetHandler() override; | 30 ~TargetHandler() override; |
29 | 31 |
30 void Wire(UberDispatcher*); | |
31 void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host); | 32 void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host); |
32 Response Disable() override; | 33 void SetClient(std::unique_ptr<Client> client); |
| 34 void Detached(); |
33 | 35 |
34 void UpdateServiceWorkers(); | 36 void UpdateServiceWorkers(); |
35 void UpdateFrames(); | 37 void UpdateFrames(); |
36 | 38 |
37 // Domain implementation. | 39 // Domain implementation. |
38 Response SetDiscoverTargets(bool discover) override; | 40 Response SetDiscoverTargets(bool discover); |
39 Response SetAutoAttach(bool auto_attach, | 41 Response SetAutoAttach(bool auto_attach, bool wait_for_debugger_on_start); |
40 bool wait_for_debugger_on_start) override; | 42 Response SetAttachToFrames(bool value); |
41 Response SetAttachToFrames(bool value) override; | |
42 Response SetRemoteLocations( | 43 Response SetRemoteLocations( |
43 std::unique_ptr<protocol::Array<Target::RemoteLocation>>) override; | 44 const std::vector<std::unique_ptr<base::DictionaryValue>>&); |
44 Response AttachToTarget(const std::string& target_id, | 45 Response AttachToTarget(const std::string& target_id, bool* out_success); |
45 bool* out_success) override; | 46 Response DetachFromTarget(const std::string& target_id); |
46 Response DetachFromTarget(const std::string& target_id) override; | |
47 Response SendMessageToTarget(const std::string& target_id, | 47 Response SendMessageToTarget(const std::string& target_id, |
48 const std::string& message) override; | 48 const std::string& message); |
49 Response GetTargetInfo( | 49 Response GetTargetInfo(const std::string& target_id, |
50 const std::string& target_id, | 50 scoped_refptr<TargetInfo>* target_info); |
51 std::unique_ptr<Target::TargetInfo>* target_info) override; | 51 Response ActivateTarget(const std::string& target_id); |
52 Response ActivateTarget(const std::string& target_id) override; | 52 Response CloseTarget(const std::string& target_id, bool* out_success); |
53 Response CloseTarget(const std::string& target_id, | 53 Response CreateBrowserContext(std::string* out_context_id); |
54 bool* out_success) override; | |
55 Response CreateBrowserContext(std::string* out_context_id) override; | |
56 Response DisposeBrowserContext(const std::string& context_id, | 54 Response DisposeBrowserContext(const std::string& context_id, |
57 bool* out_success) override; | 55 bool* out_success); |
58 Response CreateTarget(const std::string& url, | 56 Response CreateTarget(const std::string& url, |
59 Maybe<int> width, | 57 const int* width, |
60 Maybe<int> height, | 58 const int* height, |
61 Maybe<std::string> context_id, | 59 const std::string* context_id, |
62 std::string* out_target_id) override; | 60 std::string* out_target_id); |
63 Response GetTargets( | 61 Response GetTargets(std::vector<scoped_refptr<TargetInfo>>* target_infos); |
64 std::unique_ptr<protocol::Array<Target::TargetInfo>>* target_infos) | |
65 override; | |
66 | 62 |
67 private: | 63 private: |
68 using HostsMap = std::map<std::string, scoped_refptr<DevToolsAgentHost>>; | 64 using HostsMap = std::map<std::string, scoped_refptr<DevToolsAgentHost>>; |
69 using RawHostsMap = std::map<std::string, DevToolsAgentHost*>; | 65 using RawHostsMap = std::map<std::string, DevToolsAgentHost*>; |
70 | 66 |
71 void UpdateServiceWorkers(bool waiting_for_debugger); | 67 void UpdateServiceWorkers(bool waiting_for_debugger); |
72 void ReattachTargetsOfType(const HostsMap& new_hosts, | 68 void ReattachTargetsOfType(const HostsMap& new_hosts, |
73 const std::string& type, | 69 const std::string& type, |
74 bool waiting_for_debugger); | 70 bool waiting_for_debugger); |
75 void TargetCreatedInternal(DevToolsAgentHost* host); | 71 void TargetCreatedInternal(DevToolsAgentHost* host); |
(...skipping 13 matching lines...) Expand all Loading... |
89 bool ShouldForceDevToolsAgentHostCreation() override; | 85 bool ShouldForceDevToolsAgentHostCreation() override; |
90 void DevToolsAgentHostCreated(DevToolsAgentHost* agent_host) override; | 86 void DevToolsAgentHostCreated(DevToolsAgentHost* agent_host) override; |
91 void DevToolsAgentHostDestroyed(DevToolsAgentHost* agent_host) override; | 87 void DevToolsAgentHostDestroyed(DevToolsAgentHost* agent_host) override; |
92 | 88 |
93 // DevToolsAgentHostClient implementation. | 89 // DevToolsAgentHostClient implementation. |
94 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, | 90 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, |
95 const std::string& message) override; | 91 const std::string& message) override; |
96 void AgentHostClosed(DevToolsAgentHost* agent_host, | 92 void AgentHostClosed(DevToolsAgentHost* agent_host, |
97 bool replaced_with_another_client) override; | 93 bool replaced_with_another_client) override; |
98 | 94 |
99 std::unique_ptr<Target::Frontend> frontend_; | 95 std::unique_ptr<Client> client_; |
100 bool discover_; | 96 bool discover_; |
101 bool auto_attach_; | 97 bool auto_attach_; |
102 bool wait_for_debugger_on_start_; | 98 bool wait_for_debugger_on_start_; |
103 bool attach_to_frames_; | 99 bool attach_to_frames_; |
104 RenderFrameHostImpl* render_frame_host_; | 100 RenderFrameHostImpl* render_frame_host_; |
105 HostsMap attached_hosts_; | 101 HostsMap attached_hosts_; |
106 std::set<GURL> frame_urls_; | 102 std::set<GURL> frame_urls_; |
107 RawHostsMap reported_hosts_; | 103 RawHostsMap reported_hosts_; |
108 | 104 |
109 DISALLOW_COPY_AND_ASSIGN(TargetHandler); | 105 DISALLOW_COPY_AND_ASSIGN(TargetHandler); |
110 }; | 106 }; |
111 | 107 |
112 } // namespace protocol | 108 } // namespace target |
| 109 } // namespace devtools |
113 } // namespace content | 110 } // namespace content |
114 | 111 |
115 #endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ | 112 #endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ |
OLD | NEW |