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

Unified Diff: chrome/browser/devtools/device/devtools_android_bridge.h

Issue 287643002: DevTools: Partially redesigned DevToolsAndroidBridge and AndroidDeviceManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Little simplification Created 6 years, 7 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/device/devtools_android_bridge.h
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.h b/chrome/browser/devtools/device/devtools_android_bridge.h
index d35f8e1c91b166f5e1f370cf88243b1da2417951..4dc7bc303933462125aab781256a1167d51c1800 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.h
+++ b/chrome/browser/devtools/device/devtools_android_bridge.h
@@ -107,14 +107,32 @@ class DevToolsAndroidBridge
typedef base::Callback<void(RemotePage*)> RemotePageCallback;
+ class DeviceHandle : public base::RefCounted<DeviceHandle> {
+ public:
+ DeviceHandle(scoped_refptr<DevToolsAndroidBridge> android_bridge,
+ const std::string& serial);
+
+ std::string serial() const { return serial_; }
+ DevToolsAndroidBridge* android_bridge() const {
+ return android_bridge_.get();
+ }
+ private:
+ friend class base::RefCounted<DeviceHandle>;
+ virtual ~DeviceHandle();
+
+ scoped_refptr<DevToolsAndroidBridge> android_bridge_;
+ const std::string serial_;
+ };
+
+ typedef std::map<std::string, scoped_refptr<DeviceHandle> > DeviceHandleMap;
+
class RemoteBrowser : public base::RefCounted<RemoteBrowser> {
public:
RemoteBrowser(
- scoped_refptr<DevToolsAndroidBridge> android_bridge,
- const std::string& serial,
+ scoped_refptr<DeviceHandle> device_handle,
const std::string& socket);
- std::string serial() { return serial_; }
+ std::string serial() { return device_handle_->serial(); }
std::string socket() { return socket_; }
std::string display_name() { return display_name_; }
@@ -167,8 +185,7 @@ class DevToolsAndroidBridge
int result,
const std::string& response);
- scoped_refptr<DevToolsAndroidBridge> android_bridge_;
- const std::string serial_;
+ scoped_refptr<DeviceHandle> device_handle_;
const std::string socket_;
std::string display_name_;
std::string version_;
@@ -181,12 +198,11 @@ class DevToolsAndroidBridge
class RemoteDevice : public base::RefCounted<RemoteDevice> {
public:
- RemoteDevice(scoped_refptr<DevToolsAndroidBridge> android_bridge,
- const std::string& serial,
+ RemoteDevice(scoped_refptr<DeviceHandle> device_handle,
const std::string& model,
bool connected);
- std::string serial() { return serial_; }
+ std::string serial() { return device_handle_->serial(); }
std::string model() { return model_; }
bool is_connected() { return connected_; }
void AddBrowser(scoped_refptr<RemoteBrowser> browser);
@@ -202,8 +218,7 @@ class DevToolsAndroidBridge
friend class base::RefCounted<RemoteDevice>;
virtual ~RemoteDevice();
- scoped_refptr<DevToolsAndroidBridge> android_bridge_;
- std::string serial_;
+ scoped_refptr<DeviceHandle> device_handle_;
std::string model_;
bool connected_;
RemoteBrowsers browsers_;
@@ -242,6 +257,9 @@ class DevToolsAndroidBridge
static bool HasDevToolsWindow(const std::string& agent_id);
+ void IsConnectedForTest(const std::string& serial,
+ const base::Callback<void(bool)>& callback);
+
private:
friend struct content::BrowserThread::DeleteOnThread<
content::BrowserThread::UI>;
@@ -274,7 +292,8 @@ class DevToolsAndroidBridge
void CreatedDeviceManager(scoped_refptr<AndroidDeviceManager> device_manager);
void RequestDeviceList();
- void ReceivedDeviceList(RemoteDevices* devices);
+ void ReceivedDeviceList(RemoteDevices* devices,
+ DeviceHandleMap* device_handles);
void RequestDeviceCount();
void ReceivedDeviceCount(int count);
@@ -287,6 +306,7 @@ class DevToolsAndroidBridge
typedef std::vector<DeviceListListener*> DeviceListListeners;
DeviceListListeners device_list_listeners_;
+ DeviceHandleMap device_handles_;
typedef std::vector<DeviceCountListener*> DeviceCountListeners;
DeviceCountListeners device_count_listeners_;

Powered by Google App Engine
This is Rietveld 408576698