Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5968)

Unified Diff: chrome/browser/devtools/devtools_adb_bridge.h

Issue 26568004: Introduced AndroidDeviceProvider to simplify testing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added files to changelist. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698