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/devtools_protocol_dispatcher.h" | 11 #include "content/browser/devtools/protocol/target.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 devtools { | 20 namespace protocol { |
21 namespace target { | |
22 | 21 |
23 class TargetHandler : public DevToolsAgentHostClient, | 22 class TargetHandler : public Target::Backend, |
| 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 | |
29 TargetHandler(); | 27 TargetHandler(); |
30 ~TargetHandler() override; | 28 ~TargetHandler() override; |
31 | 29 |
| 30 void Wire(UberDispatcher*); |
32 void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host); | 31 void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host); |
33 void SetClient(std::unique_ptr<Client> client); | 32 Response Disable() override; |
34 void Detached(); | |
35 | 33 |
36 void UpdateServiceWorkers(); | 34 void UpdateServiceWorkers(); |
37 void UpdateFrames(); | 35 void UpdateFrames(); |
38 | 36 |
39 // Domain implementation. | 37 // Domain implementation. |
40 Response SetDiscoverTargets(bool discover); | 38 Response SetDiscoverTargets(bool discover) override; |
41 Response SetAutoAttach(bool auto_attach, bool wait_for_debugger_on_start); | 39 Response SetAutoAttach(bool auto_attach, |
42 Response SetAttachToFrames(bool value); | 40 bool wait_for_debugger_on_start) override; |
| 41 Response SetAttachToFrames(bool value) override; |
43 Response SetRemoteLocations( | 42 Response SetRemoteLocations( |
44 const std::vector<std::unique_ptr<base::DictionaryValue>>&); | 43 std::unique_ptr<protocol::Array<Target::RemoteLocation>>) override; |
45 Response AttachToTarget(const std::string& target_id, bool* out_success); | 44 Response AttachToTarget(const std::string& target_id, |
46 Response DetachFromTarget(const std::string& target_id); | 45 bool* out_success) override; |
| 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); | 48 const std::string& message) override; |
49 Response GetTargetInfo(const std::string& target_id, | 49 Response GetTargetInfo( |
50 scoped_refptr<TargetInfo>* target_info); | 50 const std::string& target_id, |
51 Response ActivateTarget(const std::string& target_id); | 51 std::unique_ptr<Target::TargetInfo>* target_info) override; |
52 Response CloseTarget(const std::string& target_id, bool* out_success); | 52 Response ActivateTarget(const std::string& target_id) override; |
53 Response CreateBrowserContext(std::string* out_context_id); | 53 Response CloseTarget(const std::string& target_id, |
| 54 bool* out_success) override; |
| 55 Response CreateBrowserContext(std::string* out_context_id) override; |
54 Response DisposeBrowserContext(const std::string& context_id, | 56 Response DisposeBrowserContext(const std::string& context_id, |
55 bool* out_success); | 57 bool* out_success) override; |
56 Response CreateTarget(const std::string& url, | 58 Response CreateTarget(const std::string& url, |
57 const int* width, | 59 Maybe<int> width, |
58 const int* height, | 60 Maybe<int> height, |
59 const std::string* context_id, | 61 Maybe<std::string> context_id, |
60 std::string* out_target_id); | 62 std::string* out_target_id) override; |
61 Response GetTargets(std::vector<scoped_refptr<TargetInfo>>* target_infos); | 63 Response GetTargets( |
| 64 std::unique_ptr<protocol::Array<Target::TargetInfo>>* target_infos) |
| 65 override; |
62 | 66 |
63 private: | 67 private: |
64 using HostsMap = std::map<std::string, scoped_refptr<DevToolsAgentHost>>; | 68 using HostsMap = std::map<std::string, scoped_refptr<DevToolsAgentHost>>; |
65 using RawHostsMap = std::map<std::string, DevToolsAgentHost*>; | 69 using RawHostsMap = std::map<std::string, DevToolsAgentHost*>; |
66 | 70 |
67 void UpdateServiceWorkers(bool waiting_for_debugger); | 71 void UpdateServiceWorkers(bool waiting_for_debugger); |
68 void ReattachTargetsOfType(const HostsMap& new_hosts, | 72 void ReattachTargetsOfType(const HostsMap& new_hosts, |
69 const std::string& type, | 73 const std::string& type, |
70 bool waiting_for_debugger); | 74 bool waiting_for_debugger); |
71 void TargetCreatedInternal(DevToolsAgentHost* host); | 75 void TargetCreatedInternal(DevToolsAgentHost* host); |
(...skipping 13 matching lines...) Expand all Loading... |
85 bool ShouldForceDevToolsAgentHostCreation() override; | 89 bool ShouldForceDevToolsAgentHostCreation() override; |
86 void DevToolsAgentHostCreated(DevToolsAgentHost* agent_host) override; | 90 void DevToolsAgentHostCreated(DevToolsAgentHost* agent_host) override; |
87 void DevToolsAgentHostDestroyed(DevToolsAgentHost* agent_host) override; | 91 void DevToolsAgentHostDestroyed(DevToolsAgentHost* agent_host) override; |
88 | 92 |
89 // DevToolsAgentHostClient implementation. | 93 // DevToolsAgentHostClient implementation. |
90 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, | 94 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, |
91 const std::string& message) override; | 95 const std::string& message) override; |
92 void AgentHostClosed(DevToolsAgentHost* agent_host, | 96 void AgentHostClosed(DevToolsAgentHost* agent_host, |
93 bool replaced_with_another_client) override; | 97 bool replaced_with_another_client) override; |
94 | 98 |
95 std::unique_ptr<Client> client_; | 99 std::unique_ptr<Target::Frontend> frontend_; |
96 bool discover_; | 100 bool discover_; |
97 bool auto_attach_; | 101 bool auto_attach_; |
98 bool wait_for_debugger_on_start_; | 102 bool wait_for_debugger_on_start_; |
99 bool attach_to_frames_; | 103 bool attach_to_frames_; |
100 RenderFrameHostImpl* render_frame_host_; | 104 RenderFrameHostImpl* render_frame_host_; |
101 HostsMap attached_hosts_; | 105 HostsMap attached_hosts_; |
102 std::set<GURL> frame_urls_; | 106 std::set<GURL> frame_urls_; |
103 RawHostsMap reported_hosts_; | 107 RawHostsMap reported_hosts_; |
104 | 108 |
105 DISALLOW_COPY_AND_ASSIGN(TargetHandler); | 109 DISALLOW_COPY_AND_ASSIGN(TargetHandler); |
106 }; | 110 }; |
107 | 111 |
108 } // namespace target | 112 } // namespace protocol |
109 } // namespace devtools | |
110 } // namespace content | 113 } // namespace content |
111 | 114 |
112 #endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ | 115 #endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_TARGET_HANDLER_H_ |
OLD | NEW |