Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ | 5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ |
| 6 #define CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ | 6 #define CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 64 | 64 |
| 65 Factory(); | 65 Factory(); |
| 66 virtual ~Factory(); | 66 virtual ~Factory(); |
| 67 | 67 |
| 68 // BrowserContextKeyedServiceFactory overrides: | 68 // BrowserContextKeyedServiceFactory overrides: |
| 69 virtual KeyedService* BuildServiceInstanceFor( | 69 virtual KeyedService* BuildServiceInstanceFor( |
| 70 content::BrowserContext* context) const OVERRIDE; | 70 content::BrowserContext* context) const OVERRIDE; |
| 71 DISALLOW_COPY_AND_ASSIGN(Factory); | 71 DISALLOW_COPY_AND_ASSIGN(Factory); |
| 72 }; | 72 }; |
| 73 | 73 |
| 74 class RemotePage { | 74 typedef std::pair<std::string, std::string> BrowserId; |
| 75 | |
| 76 class RemotePage : public base::RefCounted<RemotePage> { | |
| 75 public: | 77 public: |
| 76 virtual ~RemotePage() {} | 78 const std::string& serial() { return browser_id_.first; } |
| 77 virtual DevToolsTargetImpl* GetTarget() = 0; | 79 const std::string& socket() { return browser_id_.second; } |
| 78 virtual std::string GetFrontendURL() = 0; | 80 const std::string& frontend_url() { return frontend_url_; } |
| 81 const base::DictionaryValue& dict(); | |
| 82 bool is_web_view() { return is_web_view_; } | |
| 83 | |
| 84 private: | |
| 85 friend class base::RefCounted<RemotePage>; | |
| 86 friend class DevToolsAndroidBridge; | |
| 87 | |
| 88 RemotePage(const BrowserId& browser_id, | |
| 89 const base::DictionaryValue& dict, | |
| 90 bool is_web_view); | |
| 91 | |
| 92 virtual ~RemotePage(); | |
| 93 | |
| 94 BrowserId browser_id_; | |
| 95 std::string frontend_url_; | |
| 96 bool is_web_view_; | |
| 97 scoped_ptr<base::DictionaryValue> dict_; | |
| 98 | |
| 99 DISALLOW_COPY_AND_ASSIGN(RemotePage); | |
| 79 }; | 100 }; |
| 80 | 101 |
| 102 typedef std::vector<scoped_refptr<RemotePage> > RemotePages; | |
| 81 typedef base::Callback<void(int, const std::string&)> JsonRequestCallback; | 103 typedef base::Callback<void(int, const std::string&)> JsonRequestCallback; |
| 82 | 104 |
| 83 class RemoteBrowser : public base::RefCounted<RemoteBrowser> { | 105 class RemoteBrowser : public base::RefCounted<RemoteBrowser> { |
| 84 public: | 106 public: |
| 85 const std::string& serial() { return serial_; } | 107 const std::string& serial() { return browser_id_.first; } |
| 86 const std::string& socket() { return socket_; } | 108 const std::string& socket() { return browser_id_.second; } |
| 87 const std::string& display_name() { return display_name_; } | 109 const std::string& display_name() { return display_name_; } |
| 88 const std::string& version() { return version_; } | 110 const std::string& version() { return version_; } |
| 111 const RemotePages& pages() { return pages_; } | |
| 89 | 112 |
| 90 bool IsChrome(); | 113 bool IsChrome(); |
| 91 bool IsWebView(); | 114 bool IsWebView(); |
| 92 | 115 |
| 93 typedef std::vector<int> ParsedVersion; | 116 typedef std::vector<int> ParsedVersion; |
| 94 ParsedVersion GetParsedVersion(); | 117 ParsedVersion GetParsedVersion(); |
| 95 | 118 |
| 96 const base::ListValue& page_descriptors(); | |
| 97 | |
| 98 private: | 119 private: |
| 99 friend class base::RefCounted<RemoteBrowser>; | 120 friend class base::RefCounted<RemoteBrowser>; |
| 100 friend class DevToolsAndroidBridge; | 121 friend class DevToolsAndroidBridge; |
| 101 | 122 |
| 102 RemoteBrowser(const std::string& serial, | 123 RemoteBrowser(const std::string& serial, |
| 103 const AndroidDeviceManager::BrowserInfo& browser_info); | 124 const AndroidDeviceManager::BrowserInfo& browser_info); |
| 104 | 125 |
| 105 virtual ~RemoteBrowser(); | 126 virtual ~RemoteBrowser(); |
| 106 | 127 |
| 107 std::string serial_; | 128 BrowserId browser_id_; |
| 108 const std::string socket_; | |
| 109 std::string display_name_; | 129 std::string display_name_; |
| 110 const AndroidDeviceManager::BrowserInfo::Type type_; | 130 AndroidDeviceManager::BrowserInfo::Type type_; |
| 111 std::string version_; | 131 std::string version_; |
| 112 scoped_ptr<base::ListValue> page_descriptors_; | 132 RemotePages pages_; |
| 113 | 133 |
| 114 DISALLOW_COPY_AND_ASSIGN(RemoteBrowser); | 134 DISALLOW_COPY_AND_ASSIGN(RemoteBrowser); |
| 115 }; | 135 }; |
| 116 | 136 |
| 117 typedef std::vector<scoped_refptr<RemoteBrowser> > RemoteBrowsers; | 137 typedef std::vector<scoped_refptr<RemoteBrowser> > RemoteBrowsers; |
| 118 | 138 |
| 119 class RemoteDevice : public base::RefCounted<RemoteDevice> { | 139 class RemoteDevice : public base::RefCounted<RemoteDevice> { |
| 120 public: | 140 public: |
| 121 std::string serial() { return serial_; } | 141 std::string serial() { return serial_; } |
| 122 std::string model() { return model_; } | 142 std::string model() { return model_; } |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 187 device_manager_->SetDeviceProviders(device_providers); | 207 device_manager_->SetDeviceProviders(device_providers); |
| 188 } | 208 } |
| 189 | 209 |
| 190 void set_task_scheduler_for_test( | 210 void set_task_scheduler_for_test( |
| 191 base::Callback<void(const base::Closure&)> scheduler) { | 211 base::Callback<void(const base::Closure&)> scheduler) { |
| 192 task_scheduler_ = scheduler; | 212 task_scheduler_ = scheduler; |
| 193 } | 213 } |
| 194 | 214 |
| 195 bool HasDevToolsWindow(const std::string& agent_id); | 215 bool HasDevToolsWindow(const std::string& agent_id); |
| 196 | 216 |
| 197 std::vector<RemotePage*> CreatePages(scoped_refptr<RemoteBrowser> browser); | 217 DevToolsTargetImpl* CreatePageTarget(scoped_refptr<RemotePage> browser); |
|
dgozman
2014/09/30 09:23:48
browser->page
dgozman
2014/09/30 09:23:48
We should comment that caller gets ownership of th
vkuzkokov
2014/10/01 09:05:17
Done.
| |
| 198 | 218 |
| 199 typedef base::Callback<void(RemotePage*)> RemotePageCallback; | 219 typedef base::Callback<void(scoped_refptr<RemotePage>)> RemotePageCallback; |
| 200 void Open(scoped_refptr<RemoteBrowser> browser, | 220 void Open(scoped_refptr<RemoteBrowser> browser, |
| 201 const std::string& url, | 221 const std::string& url, |
| 202 const RemotePageCallback& callback); | 222 const RemotePageCallback& callback); |
| 203 | 223 |
| 204 scoped_refptr<content::DevToolsAgentHost> GetBrowserAgentHost( | 224 scoped_refptr<content::DevToolsAgentHost> GetBrowserAgentHost( |
| 205 scoped_refptr<RemoteBrowser> browser); | 225 scoped_refptr<RemoteBrowser> browser); |
| 206 | 226 |
| 207 private: | 227 private: |
| 208 friend struct content::BrowserThread::DeleteOnThread< | 228 friend struct content::BrowserThread::DeleteOnThread< |
| 209 content::BrowserThread::UI>; | 229 content::BrowserThread::UI>; |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 229 | 249 |
| 230 void StartDeviceCountPolling(); | 250 void StartDeviceCountPolling(); |
| 231 void StopDeviceCountPolling(); | 251 void StopDeviceCountPolling(); |
| 232 void RequestDeviceCount(const base::Callback<void(int)>& callback); | 252 void RequestDeviceCount(const base::Callback<void(int)>& callback); |
| 233 void ReceivedDeviceCount(int count); | 253 void ReceivedDeviceCount(int count); |
| 234 | 254 |
| 235 static void ScheduleTaskDefault(const base::Closure& task); | 255 static void ScheduleTaskDefault(const base::Closure& task); |
| 236 | 256 |
| 237 void CreateDeviceProviders(); | 257 void CreateDeviceProviders(); |
| 238 | 258 |
| 239 void SendJsonRequest(scoped_refptr<RemoteBrowser> browser, | 259 void SendJsonRequest(const BrowserId& browser_id, |
| 240 const std::string& url, | 260 const std::string& url, |
| 241 const JsonRequestCallback& callback); | 261 const JsonRequestCallback& callback); |
| 242 | 262 |
| 243 void SendProtocolCommand(scoped_refptr<RemoteBrowser> browser, | 263 void SendProtocolCommand(const BrowserId& browser_id, |
| 244 const std::string& debug_url, | 264 const std::string& debug_url, |
| 245 const std::string& method, | 265 const std::string& method, |
| 246 base::DictionaryValue* params, | 266 base::DictionaryValue* params, |
| 247 const base::Closure callback); | 267 const base::Closure callback); |
| 248 | 268 |
| 249 AndroidDeviceManager::AndroidWebSocket* CreateWebSocket( | 269 AndroidDeviceManager::AndroidWebSocket* CreateWebSocket( |
| 250 scoped_refptr<RemoteBrowser> browser, | 270 const BrowserId& browser_id, |
| 251 const std::string& url, | 271 const std::string& url, |
| 252 AndroidDeviceManager::AndroidWebSocket::Delegate* delegate); | 272 AndroidDeviceManager::AndroidWebSocket::Delegate* delegate); |
| 253 | 273 |
| 254 void PageCreatedOnUIThread(scoped_refptr<RemoteBrowser> browser, | 274 void PageCreatedOnUIThread(scoped_refptr<RemoteBrowser> browser, |
| 255 const RemotePageCallback& callback, | 275 const RemotePageCallback& callback, |
| 256 const std::string& url, | 276 const std::string& url, |
| 257 int result, | 277 int result, |
| 258 const std::string& response); | 278 const std::string& response); |
| 259 | 279 |
| 260 void NavigatePageOnUIThread(scoped_refptr<RemoteBrowser> browser, | 280 void NavigatePageOnUIThread(scoped_refptr<RemoteBrowser> browser, |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 290 | 310 |
| 291 typedef std::vector<PortForwardingListener*> PortForwardingListeners; | 311 typedef std::vector<PortForwardingListener*> PortForwardingListeners; |
| 292 PortForwardingListeners port_forwarding_listeners_; | 312 PortForwardingListeners port_forwarding_listeners_; |
| 293 scoped_ptr<PortForwardingController> port_forwarding_controller_; | 313 scoped_ptr<PortForwardingController> port_forwarding_controller_; |
| 294 | 314 |
| 295 PrefChangeRegistrar pref_change_registrar_; | 315 PrefChangeRegistrar pref_change_registrar_; |
| 296 DISALLOW_COPY_AND_ASSIGN(DevToolsAndroidBridge); | 316 DISALLOW_COPY_AND_ASSIGN(DevToolsAndroidBridge); |
| 297 }; | 317 }; |
| 298 | 318 |
| 299 #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ | 319 #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_DEVTOOLS_ANDROID_BRIDGE_H_ |
| OLD | NEW |