Commit 0b6a6681 authored by vkuzkokov's avatar vkuzkokov Committed by Commit bot

[DevTools] Simplify choice of UMA on remote inspect

BUG=

Review URL: https://codereview.chromium.org/1034693003

Cr-Commit-Position: refs/heads/master@{#322358}
parent 93c5d63e
...@@ -66,6 +66,8 @@ const char kPageNavigateCommand[] = "Page.navigate"; ...@@ -66,6 +66,8 @@ const char kPageNavigateCommand[] = "Page.navigate";
const int kMinVersionNewWithURL = 32; const int kMinVersionNewWithURL = 32;
const int kNewPageNavigateDelayMs = 500; const int kNewPageNavigateDelayMs = 500;
const char kWebViewSocketPrefix[] = "webview_devtools_remote";
bool IsWebRTCDeviceProviderEnabled() { bool IsWebRTCDeviceProviderEnabled() {
return base::CommandLine::ForCurrentProcess()->HasSwitch( return base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableDevToolsExperiments); switches::kEnableDevToolsExperiments);
...@@ -193,10 +195,8 @@ void DevToolsAndroidBridge::DiscoveryRequest::ReceivedPages( ...@@ -193,10 +195,8 @@ void DevToolsAndroidBridge::DiscoveryRequest::ReceivedPages(
if (value && value->GetAsList(&list_value)) { if (value && value->GetAsList(&list_value)) {
for (const auto& page_value : *list_value) { for (const auto& page_value : *list_value) {
base::DictionaryValue* dict; base::DictionaryValue* dict;
if (page_value->GetAsDictionary(&dict)) { if (page_value->GetAsDictionary(&dict))
browser->pages_.push_back( browser->pages_.push_back(new RemotePage(browser->browser_id_, *dict));
new RemotePage(browser->browser_id_, *dict, browser->IsWebView()));
}
} }
} }
} }
...@@ -308,16 +308,14 @@ class DevToolsAndroidBridge::AgentHostDelegate ...@@ -308,16 +308,14 @@ class DevToolsAndroidBridge::AgentHostDelegate
DevToolsAndroidBridge* bridge, DevToolsAndroidBridge* bridge,
const std::string& id, const std::string& id,
const BrowserId& browser_id, const BrowserId& browser_id,
const std::string& debug_url, const std::string& debug_url);
bool is_web_view);
private: private:
AgentHostDelegate( AgentHostDelegate(
DevToolsAndroidBridge* bridge, DevToolsAndroidBridge* bridge,
const std::string& id, const std::string& id,
const BrowserId& browser_id, const BrowserId& browser_id,
const std::string& debug_url, const std::string& debug_url);
bool is_web_view);
~AgentHostDelegate() override; ~AgentHostDelegate() override;
void Attach(content::DevToolsExternalAgentProxy* proxy) override; void Attach(content::DevToolsExternalAgentProxy* proxy) override;
void Detach() override; void Detach() override;
...@@ -331,7 +329,6 @@ class DevToolsAndroidBridge::AgentHostDelegate ...@@ -331,7 +329,6 @@ class DevToolsAndroidBridge::AgentHostDelegate
BrowserId browser_id_; BrowserId browser_id_;
std::string debug_url_; std::string debug_url_;
bool socket_opened_; bool socket_opened_;
bool is_web_view_;
std::vector<std::string> pending_messages_; std::vector<std::string> pending_messages_;
scoped_refptr<AndroidDeviceManager::Device> device_; scoped_refptr<AndroidDeviceManager::Device> device_;
scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_; scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_;
...@@ -346,15 +343,14 @@ DevToolsAndroidBridge::AgentHostDelegate::GetOrCreateAgentHost( ...@@ -346,15 +343,14 @@ DevToolsAndroidBridge::AgentHostDelegate::GetOrCreateAgentHost(
DevToolsAndroidBridge* bridge, DevToolsAndroidBridge* bridge,
const std::string& id, const std::string& id,
const BrowserId& browser_id, const BrowserId& browser_id,
const std::string& debug_url, const std::string& debug_url) {
bool is_web_view) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
AgentHostDelegates::iterator it = bridge->host_delegates_.find(id); AgentHostDelegates::iterator it = bridge->host_delegates_.find(id);
if (it != bridge->host_delegates_.end()) if (it != bridge->host_delegates_.end())
return it->second->agent_host_; return it->second->agent_host_;
AgentHostDelegate* delegate = 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 = scoped_refptr<content::DevToolsAgentHost> result =
content::DevToolsAgentHost::Create(delegate); content::DevToolsAgentHost::Create(delegate);
delegate->agent_host_ = result.get(); delegate->agent_host_ = result.get();
...@@ -365,14 +361,12 @@ DevToolsAndroidBridge::AgentHostDelegate::AgentHostDelegate( ...@@ -365,14 +361,12 @@ DevToolsAndroidBridge::AgentHostDelegate::AgentHostDelegate(
DevToolsAndroidBridge* bridge, DevToolsAndroidBridge* bridge,
const std::string& id, const std::string& id,
const BrowserId& browser_id, const BrowserId& browser_id,
const std::string& debug_url, const std::string& debug_url)
bool is_web_view)
: id_(id), : id_(id),
bridge_(bridge->AsWeakPtr()), bridge_(bridge->AsWeakPtr()),
browser_id_(browser_id), browser_id_(browser_id),
debug_url_(debug_url), debug_url_(debug_url),
socket_opened_(false), socket_opened_(false),
is_web_view_(is_web_view),
agent_host_(NULL), agent_host_(NULL),
proxy_(NULL) { proxy_(NULL) {
bridge_->host_delegates_[id] = this; bridge_->host_delegates_[id] = this;
...@@ -386,7 +380,7 @@ DevToolsAndroidBridge::AgentHostDelegate::~AgentHostDelegate() { ...@@ -386,7 +380,7 @@ DevToolsAndroidBridge::AgentHostDelegate::~AgentHostDelegate() {
void DevToolsAndroidBridge::AgentHostDelegate::Attach( void DevToolsAndroidBridge::AgentHostDelegate::Attach(
content::DevToolsExternalAgentProxy* proxy) { content::DevToolsExternalAgentProxy* proxy) {
proxy_ = proxy; proxy_ = proxy;
content::RecordAction(is_web_view_ ? content::RecordAction(browser_id_.second.find(kWebViewSocketPrefix) == 0 ?
base::UserMetricsAction("DevTools_InspectAndroidWebView") : base::UserMetricsAction("DevTools_InspectAndroidWebView") :
base::UserMetricsAction("DevTools_InspectAndroidPage")); base::UserMetricsAction("DevTools_InspectAndroidPage"));
...@@ -439,8 +433,7 @@ class DevToolsAndroidBridge::RemotePageTarget : public DevToolsTargetImpl { ...@@ -439,8 +433,7 @@ class DevToolsAndroidBridge::RemotePageTarget : public DevToolsTargetImpl {
public: public:
RemotePageTarget(DevToolsAndroidBridge* bridge, RemotePageTarget(DevToolsAndroidBridge* bridge,
const BrowserId& browser_id, const BrowserId& browser_id,
const base::DictionaryValue& value, const base::DictionaryValue& value);
bool is_web_view_);
~RemotePageTarget() override; ~RemotePageTarget() override;
// DevToolsTargetImpl overrides. // DevToolsTargetImpl overrides.
...@@ -501,14 +494,12 @@ static std::string GetDebugURL(const base::DictionaryValue& value) { ...@@ -501,14 +494,12 @@ static std::string GetDebugURL(const base::DictionaryValue& value) {
DevToolsAndroidBridge::RemotePageTarget::RemotePageTarget( DevToolsAndroidBridge::RemotePageTarget::RemotePageTarget(
DevToolsAndroidBridge* bridge, DevToolsAndroidBridge* bridge,
const BrowserId& browser_id, const BrowserId& browser_id,
const base::DictionaryValue& value, const base::DictionaryValue& value)
bool is_web_view)
: DevToolsTargetImpl(AgentHostDelegate::GetOrCreateAgentHost( : DevToolsTargetImpl(AgentHostDelegate::GetOrCreateAgentHost(
bridge, bridge,
BuildUniqueTargetId(browser_id, value), BuildUniqueTargetId(browser_id, value),
browser_id, browser_id,
GetDebugURL(value), GetDebugURL(value))),
is_web_view)),
bridge_(bridge->AsWeakPtr()), bridge_(bridge->AsWeakPtr()),
browser_id_(browser_id), browser_id_(browser_id),
debug_url_(GetDebugURL(value)), debug_url_(GetDebugURL(value)),
...@@ -588,13 +579,10 @@ void DevToolsAndroidBridge::RemotePageTarget::Navigate( ...@@ -588,13 +579,10 @@ void DevToolsAndroidBridge::RemotePageTarget::Navigate(
// DevToolsAndroidBridge::RemotePage ------------------------------------------ // DevToolsAndroidBridge::RemotePage ------------------------------------------
DevToolsAndroidBridge::RemotePage::RemotePage( DevToolsAndroidBridge::RemotePage::RemotePage(const BrowserId& browser_id,
const BrowserId& browser_id, const base::DictionaryValue& dict)
const base::DictionaryValue& dict,
bool is_web_view)
: browser_id_(browser_id), : browser_id_(browser_id),
frontend_url_(GetFrontendURL(dict)), frontend_url_(GetFrontendURL(dict)),
is_web_view_(is_web_view),
dict_(dict.DeepCopy()) { dict_(dict.DeepCopy()) {
} }
...@@ -616,10 +604,6 @@ bool DevToolsAndroidBridge::RemoteBrowser::IsChrome() { ...@@ -616,10 +604,6 @@ bool DevToolsAndroidBridge::RemoteBrowser::IsChrome() {
return type_ == AndroidDeviceManager::BrowserInfo::kTypeChrome; return type_ == AndroidDeviceManager::BrowserInfo::kTypeChrome;
} }
bool DevToolsAndroidBridge::RemoteBrowser::IsWebView() {
return type_ == AndroidDeviceManager::BrowserInfo::kTypeWebView;
}
std::string DevToolsAndroidBridge::RemoteBrowser::GetId() { std::string DevToolsAndroidBridge::RemoteBrowser::GetId() {
return serial() + ":" + socket(); return serial() + ":" + socket();
} }
...@@ -639,8 +623,7 @@ DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() { ...@@ -639,8 +623,7 @@ DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() {
DevToolsTargetImpl* DevToolsTargetImpl*
DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) { DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) {
return new RemotePageTarget(this, page->browser_id_, *page->dict_, return new RemotePageTarget(this, page->browser_id_, *page->dict_);
page->is_web_view_);
} }
void DevToolsAndroidBridge::SendJsonRequest( void DevToolsAndroidBridge::SendJsonRequest(
...@@ -684,8 +667,7 @@ DevToolsAndroidBridge::GetBrowserAgentHost( ...@@ -684,8 +667,7 @@ DevToolsAndroidBridge::GetBrowserAgentHost(
this, this,
"adb:" + browser->serial() + ":" + browser->socket(), "adb:" + browser->serial() + ":" + browser->socket(),
browser->browser_id_, browser->browser_id_,
kBrowserTargetSocket, kBrowserTargetSocket);
browser->IsWebView());
} }
void DevToolsAndroidBridge::SendJsonRequest( void DevToolsAndroidBridge::SendJsonRequest(
...@@ -718,11 +700,8 @@ void DevToolsAndroidBridge::RespondToOpenOnUIThread( ...@@ -718,11 +700,8 @@ void DevToolsAndroidBridge::RespondToOpenOnUIThread(
} }
scoped_ptr<base::Value> value(base::JSONReader::Read(response)); scoped_ptr<base::Value> value(base::JSONReader::Read(response));
base::DictionaryValue* dict; base::DictionaryValue* dict;
if (value && value->GetAsDictionary(&dict)) { if (value && value->GetAsDictionary(&dict))
scoped_refptr<RemotePage> new_page( callback.Run(new RemotePage(browser->browser_id_, *dict));
new RemotePage(browser->browser_id_, *dict, browser->IsWebView()));
callback.Run(new_page);
}
} }
void DevToolsAndroidBridge::OpenRemotePage( void DevToolsAndroidBridge::OpenRemotePage(
...@@ -785,8 +764,7 @@ void DevToolsAndroidBridge::NavigatePageOnUIThread( ...@@ -785,8 +764,7 @@ void DevToolsAndroidBridge::NavigatePageOnUIThread(
base::DictionaryValue* dict; base::DictionaryValue* dict;
if (value && value->GetAsDictionary(&dict)) { if (value && value->GetAsDictionary(&dict)) {
RemotePageTarget new_page(this, browser->browser_id_, *dict, RemotePageTarget new_page(this, browser->browser_id_, *dict);
browser->IsWebView());
new_page.Navigate(url, new_page.Navigate(url,
base::Bind(&DevToolsAndroidBridge::RespondToOpenOnUIThread, base::Bind(&DevToolsAndroidBridge::RespondToOpenOnUIThread,
AsWeakPtr(), browser, callback, result, response)); AsWeakPtr(), browser, callback, result, response));
......
...@@ -69,21 +69,17 @@ class DevToolsAndroidBridge : public KeyedService { ...@@ -69,21 +69,17 @@ class DevToolsAndroidBridge : public KeyedService {
const std::string& serial() { return browser_id_.first; } const std::string& serial() { return browser_id_.first; }
const std::string& socket() { return browser_id_.second; } const std::string& socket() { return browser_id_.second; }
const std::string& frontend_url() { return frontend_url_; } const std::string& frontend_url() { return frontend_url_; }
bool is_web_view() { return is_web_view_; }
private: private:
friend class base::RefCounted<RemotePage>; friend class base::RefCounted<RemotePage>;
friend class DevToolsAndroidBridge; friend class DevToolsAndroidBridge;
RemotePage(const BrowserId& browser_id, RemotePage(const BrowserId& browser_id, const base::DictionaryValue& dict);
const base::DictionaryValue& dict,
bool is_web_view);
virtual ~RemotePage(); virtual ~RemotePage();
BrowserId browser_id_; BrowserId browser_id_;
std::string frontend_url_; std::string frontend_url_;
bool is_web_view_;
scoped_ptr<base::DictionaryValue> dict_; scoped_ptr<base::DictionaryValue> dict_;
DISALLOW_COPY_AND_ASSIGN(RemotePage); DISALLOW_COPY_AND_ASSIGN(RemotePage);
...@@ -102,7 +98,6 @@ class DevToolsAndroidBridge : public KeyedService { ...@@ -102,7 +98,6 @@ class DevToolsAndroidBridge : public KeyedService {
const RemotePages& pages() { return pages_; } const RemotePages& pages() { return pages_; }
bool IsChrome(); bool IsChrome();
bool IsWebView();
std::string GetId(); std::string GetId();
typedef std::vector<int> ParsedVersion; typedef std::vector<int> ParsedVersion;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment