Index: chrome/browser/devtools/device/devtools_android_bridge.cc |
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.cc b/chrome/browser/devtools/device/devtools_android_bridge.cc |
index 4f6762a2c945e84de40c7c3dd36ac1ae2e21f893..a3af606ea2d483db3209080ddba1be52346f3e61 100644 |
--- a/chrome/browser/devtools/device/devtools_android_bridge.cc |
+++ b/chrome/browser/devtools/device/devtools_android_bridge.cc |
@@ -66,6 +66,8 @@ const char kPageNavigateCommand[] = "Page.navigate"; |
const int kMinVersionNewWithURL = 32; |
const int kNewPageNavigateDelayMs = 500; |
+const char kWebViewSocketPrefix[] = "webview_devtools_remote"; |
+ |
bool IsWebRTCDeviceProviderEnabled() { |
return base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableDevToolsExperiments); |
@@ -193,10 +195,8 @@ void DevToolsAndroidBridge::DiscoveryRequest::ReceivedPages( |
if (value && value->GetAsList(&list_value)) { |
for (const auto& page_value : *list_value) { |
base::DictionaryValue* dict; |
- if (page_value->GetAsDictionary(&dict)) { |
- browser->pages_.push_back( |
- new RemotePage(browser->browser_id_, *dict, browser->IsWebView())); |
- } |
+ if (page_value->GetAsDictionary(&dict)) |
+ browser->pages_.push_back(new RemotePage(browser->browser_id_, *dict)); |
} |
} |
} |
@@ -308,16 +308,14 @@ class DevToolsAndroidBridge::AgentHostDelegate |
DevToolsAndroidBridge* bridge, |
const std::string& id, |
const BrowserId& browser_id, |
- const std::string& debug_url, |
- bool is_web_view); |
+ const std::string& debug_url); |
private: |
AgentHostDelegate( |
DevToolsAndroidBridge* bridge, |
const std::string& id, |
const BrowserId& browser_id, |
- const std::string& debug_url, |
- bool is_web_view); |
+ const std::string& debug_url); |
~AgentHostDelegate() override; |
void Attach(content::DevToolsExternalAgentProxy* proxy) override; |
void Detach() override; |
@@ -331,7 +329,6 @@ class DevToolsAndroidBridge::AgentHostDelegate |
BrowserId browser_id_; |
std::string debug_url_; |
bool socket_opened_; |
- bool is_web_view_; |
std::vector<std::string> pending_messages_; |
scoped_refptr<AndroidDeviceManager::Device> device_; |
scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_; |
@@ -346,15 +343,14 @@ DevToolsAndroidBridge::AgentHostDelegate::GetOrCreateAgentHost( |
DevToolsAndroidBridge* bridge, |
const std::string& id, |
const BrowserId& browser_id, |
- const std::string& debug_url, |
- bool is_web_view) { |
+ const std::string& debug_url) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
AgentHostDelegates::iterator it = bridge->host_delegates_.find(id); |
if (it != bridge->host_delegates_.end()) |
return it->second->agent_host_; |
AgentHostDelegate* delegate = |
- new AgentHostDelegate(bridge, id, browser_id, debug_url, is_web_view); |
+ new AgentHostDelegate(bridge, id, browser_id, debug_url); |
scoped_refptr<content::DevToolsAgentHost> result = |
content::DevToolsAgentHost::Create(delegate); |
delegate->agent_host_ = result.get(); |
@@ -365,14 +361,12 @@ DevToolsAndroidBridge::AgentHostDelegate::AgentHostDelegate( |
DevToolsAndroidBridge* bridge, |
const std::string& id, |
const BrowserId& browser_id, |
- const std::string& debug_url, |
- bool is_web_view) |
+ const std::string& debug_url) |
: id_(id), |
bridge_(bridge->AsWeakPtr()), |
browser_id_(browser_id), |
debug_url_(debug_url), |
socket_opened_(false), |
- is_web_view_(is_web_view), |
agent_host_(NULL), |
proxy_(NULL) { |
bridge_->host_delegates_[id] = this; |
@@ -386,7 +380,7 @@ DevToolsAndroidBridge::AgentHostDelegate::~AgentHostDelegate() { |
void DevToolsAndroidBridge::AgentHostDelegate::Attach( |
content::DevToolsExternalAgentProxy* proxy) { |
proxy_ = proxy; |
- content::RecordAction(is_web_view_ ? |
+ content::RecordAction(browser_id_.second.find(kWebViewSocketPrefix) == 0 ? |
base::UserMetricsAction("DevTools_InspectAndroidWebView") : |
base::UserMetricsAction("DevTools_InspectAndroidPage")); |
@@ -439,8 +433,7 @@ class DevToolsAndroidBridge::RemotePageTarget : public DevToolsTargetImpl { |
public: |
RemotePageTarget(DevToolsAndroidBridge* bridge, |
const BrowserId& browser_id, |
- const base::DictionaryValue& value, |
- bool is_web_view_); |
+ const base::DictionaryValue& value); |
~RemotePageTarget() override; |
// DevToolsTargetImpl overrides. |
@@ -501,14 +494,12 @@ static std::string GetDebugURL(const base::DictionaryValue& value) { |
DevToolsAndroidBridge::RemotePageTarget::RemotePageTarget( |
DevToolsAndroidBridge* bridge, |
const BrowserId& browser_id, |
- const base::DictionaryValue& value, |
- bool is_web_view) |
+ const base::DictionaryValue& value) |
: DevToolsTargetImpl(AgentHostDelegate::GetOrCreateAgentHost( |
bridge, |
BuildUniqueTargetId(browser_id, value), |
browser_id, |
- GetDebugURL(value), |
- is_web_view)), |
+ GetDebugURL(value))), |
bridge_(bridge->AsWeakPtr()), |
browser_id_(browser_id), |
debug_url_(GetDebugURL(value)), |
@@ -588,13 +579,10 @@ void DevToolsAndroidBridge::RemotePageTarget::Navigate( |
// DevToolsAndroidBridge::RemotePage ------------------------------------------ |
-DevToolsAndroidBridge::RemotePage::RemotePage( |
- const BrowserId& browser_id, |
- const base::DictionaryValue& dict, |
- bool is_web_view) |
+DevToolsAndroidBridge::RemotePage::RemotePage(const BrowserId& browser_id, |
+ const base::DictionaryValue& dict) |
: browser_id_(browser_id), |
frontend_url_(GetFrontendURL(dict)), |
- is_web_view_(is_web_view), |
dict_(dict.DeepCopy()) { |
} |
@@ -616,10 +604,6 @@ bool DevToolsAndroidBridge::RemoteBrowser::IsChrome() { |
return type_ == AndroidDeviceManager::BrowserInfo::kTypeChrome; |
dgozman
2015/03/25 16:11:50
Let's remove |type| everywhere, move GetBrowserTyp
vkuzkokov
2015/03/26 09:46:31
Moving GetBrowserType here would require splitting
|
} |
-bool DevToolsAndroidBridge::RemoteBrowser::IsWebView() { |
- return type_ == AndroidDeviceManager::BrowserInfo::kTypeWebView; |
-} |
- |
std::string DevToolsAndroidBridge::RemoteBrowser::GetId() { |
return serial() + ":" + socket(); |
} |
@@ -639,8 +623,7 @@ DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() { |
DevToolsTargetImpl* |
DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) { |
- return new RemotePageTarget(this, page->browser_id_, *page->dict_, |
- page->is_web_view_); |
+ return new RemotePageTarget(this, page->browser_id_, *page->dict_); |
} |
void DevToolsAndroidBridge::SendJsonRequest( |
@@ -684,8 +667,7 @@ DevToolsAndroidBridge::GetBrowserAgentHost( |
this, |
"adb:" + browser->serial() + ":" + browser->socket(), |
browser->browser_id_, |
- kBrowserTargetSocket, |
- browser->IsWebView()); |
+ kBrowserTargetSocket); |
} |
void DevToolsAndroidBridge::SendJsonRequest( |
@@ -718,11 +700,8 @@ void DevToolsAndroidBridge::RespondToOpenOnUIThread( |
} |
scoped_ptr<base::Value> value(base::JSONReader::Read(response)); |
base::DictionaryValue* dict; |
- if (value && value->GetAsDictionary(&dict)) { |
- scoped_refptr<RemotePage> new_page( |
- new RemotePage(browser->browser_id_, *dict, browser->IsWebView())); |
- callback.Run(new_page); |
- } |
+ if (value && value->GetAsDictionary(&dict)) |
+ callback.Run(new RemotePage(browser->browser_id_, *dict)); |
} |
void DevToolsAndroidBridge::OpenRemotePage( |
@@ -785,8 +764,7 @@ void DevToolsAndroidBridge::NavigatePageOnUIThread( |
base::DictionaryValue* dict; |
if (value && value->GetAsDictionary(&dict)) { |
- RemotePageTarget new_page(this, browser->browser_id_, *dict, |
- browser->IsWebView()); |
+ RemotePageTarget new_page(this, browser->browser_id_, *dict); |
new_page.Navigate(url, |
base::Bind(&DevToolsAndroidBridge::RespondToOpenOnUIThread, |
AsWeakPtr(), browser, callback, result, response)); |