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_ANDROID_DEVICE_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_ |
6 #define CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_ | 6 #define CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
12 #include "base/threading/non_thread_safe.h" | 12 #include "base/threading/non_thread_safe.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
14 #include "content/public/browser/browser_thread.h" | 14 #include "content/public/browser/browser_thread.h" |
15 #include "ui/gfx/size.h" | 15 #include "ui/gfx/size.h" |
16 | 16 |
17 namespace net { | 17 namespace net { |
18 class StreamSocket; | 18 class StreamSocket; |
19 } | 19 } |
20 | 20 |
21 class AndroidDeviceManager : public base::NonThreadSafe { | 21 class AndroidDeviceManager : public base::NonThreadSafe { |
22 public: | 22 public: |
23 typedef base::Callback<void(int, const std::string&)> CommandCallback; | 23 typedef base::Callback<void(int, const std::string&)> CommandCallback; |
24 typedef base::Callback<void(int result, scoped_ptr<net::StreamSocket>)> | 24 typedef base::Callback<void(int result, scoped_ptr<net::StreamSocket>)> |
25 SocketCallback; | 25 SocketCallback; |
| 26 typedef base::Callback<void( |
| 27 int result, const std::string& extensions, scoped_ptr<net::StreamSocket>)> |
| 28 HttpUpgradeCallback; |
26 typedef base::Callback<void(const std::vector<std::string>&)> SerialsCallback; | 29 typedef base::Callback<void(const std::vector<std::string>&)> SerialsCallback; |
27 | 30 |
28 struct BrowserInfo { | 31 struct BrowserInfo { |
29 BrowserInfo(); | 32 BrowserInfo(); |
30 | 33 |
31 enum Type { | 34 enum Type { |
32 kTypeChrome, | 35 kTypeChrome, |
33 kTypeWebView, | 36 kTypeWebView, |
34 kTypeOther | 37 kTypeOther |
35 }; | 38 }; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 73 |
71 private: | 74 private: |
72 friend class Device; | 75 friend class Device; |
73 class WebSocketImpl; | 76 class WebSocketImpl; |
74 | 77 |
75 AndroidWebSocket( | 78 AndroidWebSocket( |
76 scoped_refptr<Device> device, | 79 scoped_refptr<Device> device, |
77 const std::string& socket_name, | 80 const std::string& socket_name, |
78 const std::string& url, | 81 const std::string& url, |
79 AndroidWebSocket::Delegate* delegate); | 82 AndroidWebSocket::Delegate* delegate); |
80 void Connected(int result, scoped_ptr<net::StreamSocket> socket); | 83 void Connected(int result, |
| 84 const std::string& extensions, |
| 85 scoped_ptr<net::StreamSocket> socket); |
81 void OnFrameRead(const std::string& message); | 86 void OnFrameRead(const std::string& message); |
82 void OnSocketClosed(); | 87 void OnSocketClosed(); |
83 void Terminate(); | 88 void Terminate(); |
84 | 89 |
85 Device* device_; | 90 Device* device_; |
86 WebSocketImpl* socket_impl_; | 91 WebSocketImpl* socket_impl_; |
87 Delegate* delegate_; | 92 Delegate* delegate_; |
88 base::WeakPtrFactory<AndroidWebSocket> weak_factory_; | 93 base::WeakPtrFactory<AndroidWebSocket> weak_factory_; |
89 DISALLOW_COPY_AND_ASSIGN(AndroidWebSocket); | 94 DISALLOW_COPY_AND_ASSIGN(AndroidWebSocket); |
90 }; | 95 }; |
91 | 96 |
92 class DeviceProvider; | 97 class DeviceProvider; |
93 | 98 |
94 class Device : public base::RefCountedThreadSafe<Device>, | 99 class Device : public base::RefCountedThreadSafe<Device>, |
95 public base::NonThreadSafe { | 100 public base::NonThreadSafe { |
96 public: | 101 public: |
97 void QueryDeviceInfo(const DeviceInfoCallback& callback); | 102 void QueryDeviceInfo(const DeviceInfoCallback& callback); |
98 | 103 |
99 void OpenSocket(const std::string& socket_name, | 104 void OpenSocket(const std::string& socket_name, |
100 const SocketCallback& callback); | 105 const SocketCallback& callback); |
101 | 106 |
102 void SendJsonRequest(const std::string& socket_name, | 107 void SendJsonRequest(const std::string& socket_name, |
103 const std::string& request, | 108 const std::string& request, |
104 const CommandCallback& callback); | 109 const CommandCallback& callback); |
105 | 110 |
106 void HttpUpgrade(const std::string& socket_name, | 111 void HttpUpgrade(const std::string& socket_name, |
107 const std::string& url, | 112 const std::string& url, |
108 const SocketCallback& callback); | 113 const std::string& extensions, |
| 114 const HttpUpgradeCallback& callback); |
109 AndroidWebSocket* CreateWebSocket( | 115 AndroidWebSocket* CreateWebSocket( |
110 const std::string& socket_name, | 116 const std::string& socket_name, |
111 const std::string& url, | 117 const std::string& url, |
112 AndroidWebSocket::Delegate* delegate); | 118 AndroidWebSocket::Delegate* delegate); |
113 | 119 |
114 std::string serial() { return serial_; } | 120 std::string serial() { return serial_; } |
115 | 121 |
116 private: | 122 private: |
117 friend class base::RefCountedThreadSafe<Device>; | 123 friend class base::RefCountedThreadSafe<Device>; |
118 friend class AndroidDeviceManager; | 124 friend class AndroidDeviceManager; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 const SocketCallback& callback) = 0; | 159 const SocketCallback& callback) = 0; |
154 | 160 |
155 virtual void SendJsonRequest(const std::string& serial, | 161 virtual void SendJsonRequest(const std::string& serial, |
156 const std::string& socket_name, | 162 const std::string& socket_name, |
157 const std::string& request, | 163 const std::string& request, |
158 const CommandCallback& callback); | 164 const CommandCallback& callback); |
159 | 165 |
160 virtual void HttpUpgrade(const std::string& serial, | 166 virtual void HttpUpgrade(const std::string& serial, |
161 const std::string& socket_name, | 167 const std::string& socket_name, |
162 const std::string& url, | 168 const std::string& url, |
163 const SocketCallback& callback); | 169 const std::string& extensions, |
| 170 const HttpUpgradeCallback& callback); |
164 | 171 |
165 virtual void ReleaseDevice(const std::string& serial); | 172 virtual void ReleaseDevice(const std::string& serial); |
166 | 173 |
167 protected: | 174 protected: |
168 friend class base::RefCountedThreadSafe<DeviceProvider>; | 175 friend class base::RefCountedThreadSafe<DeviceProvider>; |
169 DeviceProvider(); | 176 DeviceProvider(); |
170 virtual ~DeviceProvider(); | 177 virtual ~DeviceProvider(); |
171 }; | 178 }; |
172 | 179 |
173 typedef std::vector<scoped_refptr<DeviceProvider> > DeviceProviders; | 180 typedef std::vector<scoped_refptr<DeviceProvider> > DeviceProviders; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 typedef std::map<std::string, base::WeakPtr<Device> > DeviceWeakMap; | 221 typedef std::map<std::string, base::WeakPtr<Device> > DeviceWeakMap; |
215 | 222 |
216 scoped_refptr<HandlerThread> handler_thread_; | 223 scoped_refptr<HandlerThread> handler_thread_; |
217 DeviceProviders providers_; | 224 DeviceProviders providers_; |
218 DeviceWeakMap devices_; | 225 DeviceWeakMap devices_; |
219 | 226 |
220 base::WeakPtrFactory<AndroidDeviceManager> weak_factory_; | 227 base::WeakPtrFactory<AndroidDeviceManager> weak_factory_; |
221 }; | 228 }; |
222 | 229 |
223 #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_ | 230 #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_ |
OLD | NEW |