| 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);
|
|
|
|
|