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

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

Issue 612913002: DevTools: Split RemotePage and RemotePageTarget (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@values
Patch Set: Created 6 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/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 c7edc5bff8ab6ca5d5b1a4757fe0b54b5520641b..b900f91608b73569cf18030ef9b43c969f457e21 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.h
+++ b/chrome/browser/devtools/device/devtools_android_bridge.h
@@ -71,21 +71,43 @@ class DevToolsAndroidBridge
DISALLOW_COPY_AND_ASSIGN(Factory);
};
- class RemotePage {
+ typedef std::pair<std::string, std::string> BrowserId;
+
+ class RemotePage : public base::RefCounted<RemotePage> {
public:
- virtual ~RemotePage() {}
- virtual DevToolsTargetImpl* GetTarget() = 0;
- virtual std::string GetFrontendURL() = 0;
+ const std::string& serial() { return browser_id_.first; }
+ const std::string& socket() { return browser_id_.second; }
+ const std::string& frontend_url() { return frontend_url_; }
+ bool is_web_view() { return is_web_view_; }
+
+ private:
+ friend class base::RefCounted<RemotePage>;
+ friend class DevToolsAndroidBridge;
+
+ RemotePage(const BrowserId& browser_id,
+ const base::DictionaryValue& dict,
+ bool is_web_view);
+
+ virtual ~RemotePage();
+
+ BrowserId browser_id_;
+ std::string frontend_url_;
+ bool is_web_view_;
+ scoped_ptr<base::DictionaryValue> dict_;
+
+ DISALLOW_COPY_AND_ASSIGN(RemotePage);
};
+ typedef std::vector<scoped_refptr<RemotePage> > RemotePages;
typedef base::Callback<void(int, const std::string&)> JsonRequestCallback;
class RemoteBrowser : public base::RefCounted<RemoteBrowser> {
public:
- const std::string& serial() { return serial_; }
- const std::string& socket() { return socket_; }
+ const std::string& serial() { return browser_id_.first; }
+ const std::string& socket() { return browser_id_.second; }
const std::string& display_name() { return display_name_; }
const std::string& version() { return version_; }
+ const RemotePages& pages() { return pages_; }
bool IsChrome();
bool IsWebView();
@@ -93,8 +115,6 @@ class DevToolsAndroidBridge
typedef std::vector<int> ParsedVersion;
ParsedVersion GetParsedVersion();
- const base::ListValue& page_descriptors();
-
private:
friend class base::RefCounted<RemoteBrowser>;
friend class DevToolsAndroidBridge;
@@ -104,12 +124,11 @@ class DevToolsAndroidBridge
virtual ~RemoteBrowser();
- std::string serial_;
- const std::string socket_;
+ BrowserId browser_id_;
std::string display_name_;
- const AndroidDeviceManager::BrowserInfo::Type type_;
+ AndroidDeviceManager::BrowserInfo::Type type_;
std::string version_;
- scoped_ptr<base::ListValue> page_descriptors_;
+ RemotePages pages_;
DISALLOW_COPY_AND_ASSIGN(RemoteBrowser);
};
@@ -197,9 +216,10 @@ class DevToolsAndroidBridge
bool HasDevToolsWindow(const std::string& agent_id);
- std::vector<RemotePage*> CreatePages(scoped_refptr<RemoteBrowser> browser);
+ // Creates new target instance owned by caller.
+ DevToolsTargetImpl* CreatePageTarget(scoped_refptr<RemotePage> browser);
- typedef base::Callback<void(RemotePage*)> RemotePageCallback;
+ typedef base::Callback<void(scoped_refptr<RemotePage>)> RemotePageCallback;
void OpenRemotePage(scoped_refptr<RemoteBrowser> browser,
const std::string& url,
const RemotePageCallback& callback);
@@ -240,18 +260,18 @@ class DevToolsAndroidBridge
void CreateDeviceProviders();
- void SendJsonRequest(scoped_refptr<RemoteBrowser> browser,
+ void SendJsonRequest(const BrowserId& browser_id,
const std::string& url,
const JsonRequestCallback& callback);
- void SendProtocolCommand(scoped_refptr<RemoteBrowser> browser,
+ void SendProtocolCommand(const BrowserId& browser_id,
const std::string& debug_url,
const std::string& method,
base::DictionaryValue* params,
const base::Closure callback);
AndroidDeviceManager::AndroidWebSocket* CreateWebSocket(
- scoped_refptr<RemoteBrowser> browser,
+ const BrowserId& browser_id,
const std::string& url,
AndroidDeviceManager::AndroidWebSocket::Delegate* delegate);

Powered by Google App Engine
This is Rietveld 408576698