Index: chrome/browser/devtools/devtools_adb_bridge.h |
diff --git a/chrome/browser/devtools/devtools_adb_bridge.h b/chrome/browser/devtools/devtools_adb_bridge.h |
index 5774a0114d75b894d495ddd7f683db3616eee1b2..bbf4c1ca3e3f73466e43c61ca318108d1d10bdae 100644 |
--- a/chrome/browser/devtools/devtools_adb_bridge.h |
+++ b/chrome/browser/devtools/devtools_adb_bridge.h |
@@ -12,6 +12,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/devtools/adb/android_usb_device.h" |
+#include "chrome/browser/devtools/devtools_device_provider.h" |
#include "components/browser_context_keyed_service/browser_context_keyed_service.h" |
#include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h" |
#include "content/public/browser/browser_thread.h" |
@@ -39,9 +40,6 @@ class Profile; |
// The format used for constructing DevTools server socket names. |
extern const char kDevToolsChannelNameFormat[]; |
-typedef base::Callback<void(int, const std::string&)> CommandCallback; |
-typedef base::Callback<void(int result, net::StreamSocket*)> SocketCallback; |
- |
class DevToolsAdbBridge |
: public base::RefCountedThreadSafe< |
DevToolsAdbBridge, |
@@ -50,9 +48,11 @@ class DevToolsAdbBridge |
typedef base::Callback<void(int result, |
const std::string& response)> Callback; |
+ typedef std::vector<scoped_refptr<DevToolsDeviceProvider>> DeviceProviders; |
+ |
class Wrapper : public BrowserContextKeyedService { |
public: |
- explicit Wrapper(Profile* profile); |
+ explicit Wrapper(Profile* profile, const DeviceProviders& device_providers); |
virtual ~Wrapper(); |
DevToolsAdbBridge* Get(); |
@@ -70,7 +70,6 @@ class DevToolsAdbBridge |
private: |
friend struct DefaultSingletonTraits<Factory>; |
- friend class DevToolsAdbBridge; |
Factory(); |
virtual ~Factory(); |
@@ -81,11 +80,9 @@ class DevToolsAdbBridge |
DISALLOW_COPY_AND_ASSIGN(Factory); |
}; |
- class AndroidDevice; |
- |
class RemotePage : public base::RefCounted<RemotePage> { |
public: |
- RemotePage(scoped_refptr<DevToolsAdbBridge> bridge, |
+ RemotePage(scoped_refptr<RefCountedAdbThread> adb_thread, |
Vladislav Kaznacheev
2013/10/16 11:27:04
This patch is obviously not rebased on the latest
Dmitry Zvorygin
2013/10/17 16:19:37
Done.
|
scoped_refptr<AndroidDevice> device, |
const std::string& socket, |
const base::DictionaryValue& value); |
@@ -116,7 +113,7 @@ class DevToolsAdbBridge |
void InspectOnUIThread(Profile* profile); |
- scoped_refptr<DevToolsAdbBridge> bridge_; |
+ scoped_refptr<RefCountedAdbThread> adb_thread_; |
scoped_refptr<AndroidDevice> device_; |
std::string socket_; |
std::string id_; |
@@ -133,9 +130,10 @@ class DevToolsAdbBridge |
class RemoteBrowser : public base::RefCounted<RemoteBrowser> { |
public: |
- RemoteBrowser(scoped_refptr<DevToolsAdbBridge> bridge, |
- scoped_refptr<AndroidDevice> device, |
- const std::string& socket); |
+ RemoteBrowser( |
+ scoped_refptr<RefCountedAdbThread> adb_thread, |
+ scoped_refptr<AndroidDevice> device, |
+ const std::string& socket); |
scoped_refptr<AndroidDevice> device() { return device_; } |
std::string socket() { return socket_; } |
@@ -164,7 +162,7 @@ class DevToolsAdbBridge |
void PageCreatedOnUIThread( |
const std::string& response, const std::string& url); |
- scoped_refptr<DevToolsAdbBridge> bridge_; |
+ scoped_refptr<RefCountedAdbThread> adb_thread_; |
scoped_refptr<AndroidDevice> device_; |
const std::string socket_; |
std::string product_; |
@@ -180,8 +178,7 @@ class DevToolsAdbBridge |
class RemoteDevice : public base::RefCounted<RemoteDevice> { |
public: |
- explicit RemoteDevice(scoped_refptr<DevToolsAdbBridge> bridge, |
- scoped_refptr<AndroidDevice> device); |
+ explicit RemoteDevice(scoped_refptr<AndroidDevice> device); |
scoped_refptr<AndroidDevice> device() { return device_; } |
std::string serial() { return device_->serial(); } |
@@ -199,7 +196,6 @@ class DevToolsAdbBridge |
friend class base::RefCounted<RemoteDevice>; |
virtual ~RemoteDevice(); |
- scoped_refptr<DevToolsAdbBridge> bridge_; |
scoped_refptr<AndroidDevice> device_; |
RemoteBrowsers browsers_; |
gfx::Size screen_size_; |
@@ -209,47 +205,6 @@ class DevToolsAdbBridge |
typedef std::vector<scoped_refptr<RemoteDevice> > RemoteDevices; |
- class AndroidDevice : public base::RefCounted<AndroidDevice> { |
- public: |
- explicit AndroidDevice(const std::string& serial); |
- |
- virtual void RunCommand(const std::string& command, |
- const CommandCallback& callback) = 0; |
- virtual void OpenSocket(const std::string& socket_name, |
- const SocketCallback& callback) = 0; |
- void HttpQuery(const std::string& la_name, |
- const std::string& request, |
- const CommandCallback& callback); |
- void HttpUpgrade(const std::string& la_name, |
- const std::string& request, |
- const SocketCallback& callback); |
- |
- std::string serial() { return serial_; } |
- |
- std::string model() { return model_; } |
- void set_model(const std::string& model) { model_ = model; } |
- |
- protected: |
- friend class base::RefCounted<AndroidDevice>; |
- virtual ~AndroidDevice(); |
- |
- private: |
- void OnHttpSocketOpened(const std::string& request, |
- const CommandCallback& callback, |
- int result, |
- net::StreamSocket* socket); |
- void OnHttpSocketOpened2(const std::string& request, |
- const SocketCallback& callback, |
- int result, |
- net::StreamSocket* socket); |
- |
- std::string serial_; |
- std::string model_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AndroidDevice); |
- }; |
- |
- typedef std::vector<scoped_refptr<AndroidDevice> > AndroidDevices; |
typedef base::Callback<void(const AndroidDevices&)> AndroidDevicesCallback; |
class Listener { |
@@ -259,33 +214,18 @@ class DevToolsAdbBridge |
virtual ~Listener() {} |
}; |
- explicit DevToolsAdbBridge(Profile* profile); |
+ explicit DevToolsAdbBridge(Profile* profile, |
Vladislav Kaznacheev
2013/10/16 11:27:04
explicit is no longer needed
Dmitry Zvorygin
2013/10/17 16:19:37
Done.
|
+ const DeviceProviders& device_providers_); |
Vladislav Kaznacheev
2013/10/16 11:27:04
indent
Dmitry Zvorygin
2013/10/17 16:19:37
Done.
|
void AddListener(Listener* listener); |
void RemoveListener(Listener* listener); |
- base::MessageLoop* GetAdbMessageLoop(); |
private: |
friend struct content::BrowserThread::DeleteOnThread< |
content::BrowserThread::UI>; |
friend class base::DeleteHelper<DevToolsAdbBridge>; |
- class RefCountedAdbThread : public base::RefCounted<RefCountedAdbThread> { |
- public: |
- static scoped_refptr<RefCountedAdbThread> GetInstance(); |
- RefCountedAdbThread(); |
- base::MessageLoop* message_loop(); |
- |
- private: |
- friend class base::RefCounted<RefCountedAdbThread>; |
- static DevToolsAdbBridge::RefCountedAdbThread* instance_; |
- static void StopThread(base::Thread* thread); |
- |
- virtual ~RefCountedAdbThread(); |
- base::Thread* thread_; |
- }; |
- |
virtual ~DevToolsAdbBridge(); |
void RequestRemoteDevices(); |
@@ -293,6 +233,7 @@ class DevToolsAdbBridge |
Profile* profile_; |
scoped_refptr<RefCountedAdbThread> adb_thread_; |
+ DeviceProviders device_providers_; |
bool has_message_loop_; |
scoped_ptr<crypto::RSAPrivateKey> rsa_key_; |
typedef std::vector<Listener*> Listeners; |