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

Side by Side Diff: chrome/browser/devtools/device/devtools_android_bridge.cc

Issue 1034693003: [DevTools] Simplify choice of UMA on remote inspect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/devtools/device/devtools_android_bridge.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/devtools/device/devtools_android_bridge.h" 5 #include "chrome/browser/devtools/device/devtools_android_bridge.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 const char kBrowserTargetSocket[] = "/devtools/browser"; 59 const char kBrowserTargetSocket[] = "/devtools/browser";
60 const int kAdbPollingIntervalMs = 1000; 60 const int kAdbPollingIntervalMs = 1000;
61 61
62 const char kUrlParam[] = "url"; 62 const char kUrlParam[] = "url";
63 const char kPageReloadCommand[] = "Page.reload"; 63 const char kPageReloadCommand[] = "Page.reload";
64 const char kPageNavigateCommand[] = "Page.navigate"; 64 const char kPageNavigateCommand[] = "Page.navigate";
65 65
66 const int kMinVersionNewWithURL = 32; 66 const int kMinVersionNewWithURL = 32;
67 const int kNewPageNavigateDelayMs = 500; 67 const int kNewPageNavigateDelayMs = 500;
68 68
69 const char kWebViewSocketPrefix[] = "webview_devtools_remote";
70
69 bool IsWebRTCDeviceProviderEnabled() { 71 bool IsWebRTCDeviceProviderEnabled() {
70 return base::CommandLine::ForCurrentProcess()->HasSwitch( 72 return base::CommandLine::ForCurrentProcess()->HasSwitch(
71 switches::kEnableDevToolsExperiments); 73 switches::kEnableDevToolsExperiments);
72 } 74 }
73 75
74 bool BrowserIdFromString(const std::string& browser_id_str, 76 bool BrowserIdFromString(const std::string& browser_id_str,
75 DevToolsAndroidBridge::BrowserId* browser_id) { 77 DevToolsAndroidBridge::BrowserId* browser_id) {
76 size_t colon_pos = browser_id_str.find(':'); 78 size_t colon_pos = browser_id_str.find(':');
77 if (colon_pos == std::string::npos) 79 if (colon_pos == std::string::npos)
78 return false; 80 return false;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 int result, 188 int result,
187 const std::string& response) { 189 const std::string& response) {
188 DCHECK_CURRENTLY_ON(BrowserThread::UI); 190 DCHECK_CURRENTLY_ON(BrowserThread::UI);
189 if (result < 0) 191 if (result < 0)
190 return; 192 return;
191 scoped_ptr<base::Value> value(base::JSONReader::Read(response)); 193 scoped_ptr<base::Value> value(base::JSONReader::Read(response));
192 base::ListValue* list_value; 194 base::ListValue* list_value;
193 if (value && value->GetAsList(&list_value)) { 195 if (value && value->GetAsList(&list_value)) {
194 for (const auto& page_value : *list_value) { 196 for (const auto& page_value : *list_value) {
195 base::DictionaryValue* dict; 197 base::DictionaryValue* dict;
196 if (page_value->GetAsDictionary(&dict)) { 198 if (page_value->GetAsDictionary(&dict))
197 browser->pages_.push_back( 199 browser->pages_.push_back(new RemotePage(browser->browser_id_, *dict));
198 new RemotePage(browser->browser_id_, *dict, browser->IsWebView()));
199 }
200 } 200 }
201 } 201 }
202 } 202 }
203 203
204 // ProtocolCommand ------------------------------------------------------------ 204 // ProtocolCommand ------------------------------------------------------------
205 205
206 namespace { 206 namespace {
207 207
208 class ProtocolCommand 208 class ProtocolCommand
209 : public AndroidDeviceManager::AndroidWebSocket::Delegate { 209 : public AndroidDeviceManager::AndroidWebSocket::Delegate {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 // AgentHostDelegate ---------------------------------------------------------- 301 // AgentHostDelegate ----------------------------------------------------------
302 302
303 class DevToolsAndroidBridge::AgentHostDelegate 303 class DevToolsAndroidBridge::AgentHostDelegate
304 : public content::DevToolsExternalAgentProxyDelegate, 304 : public content::DevToolsExternalAgentProxyDelegate,
305 public AndroidDeviceManager::AndroidWebSocket::Delegate { 305 public AndroidDeviceManager::AndroidWebSocket::Delegate {
306 public: 306 public:
307 static scoped_refptr<content::DevToolsAgentHost> GetOrCreateAgentHost( 307 static scoped_refptr<content::DevToolsAgentHost> GetOrCreateAgentHost(
308 DevToolsAndroidBridge* bridge, 308 DevToolsAndroidBridge* bridge,
309 const std::string& id, 309 const std::string& id,
310 const BrowserId& browser_id, 310 const BrowserId& browser_id,
311 const std::string& debug_url, 311 const std::string& debug_url);
312 bool is_web_view);
313 312
314 private: 313 private:
315 AgentHostDelegate( 314 AgentHostDelegate(
316 DevToolsAndroidBridge* bridge, 315 DevToolsAndroidBridge* bridge,
317 const std::string& id, 316 const std::string& id,
318 const BrowserId& browser_id, 317 const BrowserId& browser_id,
319 const std::string& debug_url, 318 const std::string& debug_url);
320 bool is_web_view);
321 ~AgentHostDelegate() override; 319 ~AgentHostDelegate() override;
322 void Attach(content::DevToolsExternalAgentProxy* proxy) override; 320 void Attach(content::DevToolsExternalAgentProxy* proxy) override;
323 void Detach() override; 321 void Detach() override;
324 void SendMessageToBackend(const std::string& message) override; 322 void SendMessageToBackend(const std::string& message) override;
325 void OnSocketOpened() override; 323 void OnSocketOpened() override;
326 void OnFrameRead(const std::string& message) override; 324 void OnFrameRead(const std::string& message) override;
327 void OnSocketClosed() override; 325 void OnSocketClosed() override;
328 326
329 std::string id_; 327 std::string id_;
330 base::WeakPtr<DevToolsAndroidBridge> bridge_; 328 base::WeakPtr<DevToolsAndroidBridge> bridge_;
331 BrowserId browser_id_; 329 BrowserId browser_id_;
332 std::string debug_url_; 330 std::string debug_url_;
333 bool socket_opened_; 331 bool socket_opened_;
334 bool is_web_view_;
335 std::vector<std::string> pending_messages_; 332 std::vector<std::string> pending_messages_;
336 scoped_refptr<AndroidDeviceManager::Device> device_; 333 scoped_refptr<AndroidDeviceManager::Device> device_;
337 scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_; 334 scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_;
338 content::DevToolsAgentHost* agent_host_; 335 content::DevToolsAgentHost* agent_host_;
339 content::DevToolsExternalAgentProxy* proxy_; 336 content::DevToolsExternalAgentProxy* proxy_;
340 DISALLOW_COPY_AND_ASSIGN(AgentHostDelegate); 337 DISALLOW_COPY_AND_ASSIGN(AgentHostDelegate);
341 }; 338 };
342 339
343 // static 340 // static
344 scoped_refptr<content::DevToolsAgentHost> 341 scoped_refptr<content::DevToolsAgentHost>
345 DevToolsAndroidBridge::AgentHostDelegate::GetOrCreateAgentHost( 342 DevToolsAndroidBridge::AgentHostDelegate::GetOrCreateAgentHost(
346 DevToolsAndroidBridge* bridge, 343 DevToolsAndroidBridge* bridge,
347 const std::string& id, 344 const std::string& id,
348 const BrowserId& browser_id, 345 const BrowserId& browser_id,
349 const std::string& debug_url, 346 const std::string& debug_url) {
350 bool is_web_view) {
351 DCHECK_CURRENTLY_ON(BrowserThread::UI); 347 DCHECK_CURRENTLY_ON(BrowserThread::UI);
352 AgentHostDelegates::iterator it = bridge->host_delegates_.find(id); 348 AgentHostDelegates::iterator it = bridge->host_delegates_.find(id);
353 if (it != bridge->host_delegates_.end()) 349 if (it != bridge->host_delegates_.end())
354 return it->second->agent_host_; 350 return it->second->agent_host_;
355 351
356 AgentHostDelegate* delegate = 352 AgentHostDelegate* delegate =
357 new AgentHostDelegate(bridge, id, browser_id, debug_url, is_web_view); 353 new AgentHostDelegate(bridge, id, browser_id, debug_url);
358 scoped_refptr<content::DevToolsAgentHost> result = 354 scoped_refptr<content::DevToolsAgentHost> result =
359 content::DevToolsAgentHost::Create(delegate); 355 content::DevToolsAgentHost::Create(delegate);
360 delegate->agent_host_ = result.get(); 356 delegate->agent_host_ = result.get();
361 return result; 357 return result;
362 } 358 }
363 359
364 DevToolsAndroidBridge::AgentHostDelegate::AgentHostDelegate( 360 DevToolsAndroidBridge::AgentHostDelegate::AgentHostDelegate(
365 DevToolsAndroidBridge* bridge, 361 DevToolsAndroidBridge* bridge,
366 const std::string& id, 362 const std::string& id,
367 const BrowserId& browser_id, 363 const BrowserId& browser_id,
368 const std::string& debug_url, 364 const std::string& debug_url)
369 bool is_web_view)
370 : id_(id), 365 : id_(id),
371 bridge_(bridge->AsWeakPtr()), 366 bridge_(bridge->AsWeakPtr()),
372 browser_id_(browser_id), 367 browser_id_(browser_id),
373 debug_url_(debug_url), 368 debug_url_(debug_url),
374 socket_opened_(false), 369 socket_opened_(false),
375 is_web_view_(is_web_view),
376 agent_host_(NULL), 370 agent_host_(NULL),
377 proxy_(NULL) { 371 proxy_(NULL) {
378 bridge_->host_delegates_[id] = this; 372 bridge_->host_delegates_[id] = this;
379 } 373 }
380 374
381 DevToolsAndroidBridge::AgentHostDelegate::~AgentHostDelegate() { 375 DevToolsAndroidBridge::AgentHostDelegate::~AgentHostDelegate() {
382 if (bridge_) 376 if (bridge_)
383 bridge_->host_delegates_.erase(id_); 377 bridge_->host_delegates_.erase(id_);
384 } 378 }
385 379
386 void DevToolsAndroidBridge::AgentHostDelegate::Attach( 380 void DevToolsAndroidBridge::AgentHostDelegate::Attach(
387 content::DevToolsExternalAgentProxy* proxy) { 381 content::DevToolsExternalAgentProxy* proxy) {
388 proxy_ = proxy; 382 proxy_ = proxy;
389 content::RecordAction(is_web_view_ ? 383 content::RecordAction(browser_id_.second.find(kWebViewSocketPrefix) == 0 ?
390 base::UserMetricsAction("DevTools_InspectAndroidWebView") : 384 base::UserMetricsAction("DevTools_InspectAndroidWebView") :
391 base::UserMetricsAction("DevTools_InspectAndroidPage")); 385 base::UserMetricsAction("DevTools_InspectAndroidPage"));
392 386
393 // Retain the device so it's not released until AgentHost is detached. 387 // Retain the device so it's not released until AgentHost is detached.
394 if (bridge_) 388 if (bridge_)
395 device_ = bridge_->FindDevice(browser_id_.first); 389 device_ = bridge_->FindDevice(browser_id_.first);
396 if (!device_.get()) 390 if (!device_.get())
397 return; 391 return;
398 392
399 web_socket_.reset( 393 web_socket_.reset(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 if (proxy_) 426 if (proxy_)
433 proxy_->ConnectionClosed(); 427 proxy_->ConnectionClosed();
434 } 428 }
435 429
436 //// RemotePageTarget ---------------------------------------------- 430 //// RemotePageTarget ----------------------------------------------
437 431
438 class DevToolsAndroidBridge::RemotePageTarget : public DevToolsTargetImpl { 432 class DevToolsAndroidBridge::RemotePageTarget : public DevToolsTargetImpl {
439 public: 433 public:
440 RemotePageTarget(DevToolsAndroidBridge* bridge, 434 RemotePageTarget(DevToolsAndroidBridge* bridge,
441 const BrowserId& browser_id, 435 const BrowserId& browser_id,
442 const base::DictionaryValue& value, 436 const base::DictionaryValue& value);
443 bool is_web_view_);
444 ~RemotePageTarget() override; 437 ~RemotePageTarget() override;
445 438
446 // DevToolsTargetImpl overrides. 439 // DevToolsTargetImpl overrides.
447 std::string GetId() const override; 440 std::string GetId() const override;
448 bool IsAttached() const override; 441 bool IsAttached() const override;
449 bool Activate() const override; 442 bool Activate() const override;
450 bool Close() const override; 443 bool Close() const override;
451 void Inspect(Profile* profile) const override; 444 void Inspect(Profile* profile) const override;
452 void Reload() const override; 445 void Reload() const override;
453 446
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 if (debug_url.find("ws://") == 0) 487 if (debug_url.find("ws://") == 0)
495 debug_url = debug_url.substr(5); 488 debug_url = debug_url.substr(5);
496 else 489 else
497 debug_url = std::string(); 490 debug_url = std::string();
498 return debug_url; 491 return debug_url;
499 } 492 }
500 493
501 DevToolsAndroidBridge::RemotePageTarget::RemotePageTarget( 494 DevToolsAndroidBridge::RemotePageTarget::RemotePageTarget(
502 DevToolsAndroidBridge* bridge, 495 DevToolsAndroidBridge* bridge,
503 const BrowserId& browser_id, 496 const BrowserId& browser_id,
504 const base::DictionaryValue& value, 497 const base::DictionaryValue& value)
505 bool is_web_view)
506 : DevToolsTargetImpl(AgentHostDelegate::GetOrCreateAgentHost( 498 : DevToolsTargetImpl(AgentHostDelegate::GetOrCreateAgentHost(
507 bridge, 499 bridge,
508 BuildUniqueTargetId(browser_id, value), 500 BuildUniqueTargetId(browser_id, value),
509 browser_id, 501 browser_id,
510 GetDebugURL(value), 502 GetDebugURL(value))),
511 is_web_view)),
512 bridge_(bridge->AsWeakPtr()), 503 bridge_(bridge->AsWeakPtr()),
513 browser_id_(browser_id), 504 browser_id_(browser_id),
514 debug_url_(GetDebugURL(value)), 505 debug_url_(GetDebugURL(value)),
515 frontend_url_(GetFrontendURL(value)), 506 frontend_url_(GetFrontendURL(value)),
516 remote_id_(GetStringProperty(value, "id")), 507 remote_id_(GetStringProperty(value, "id")),
517 remote_type_(GetStringProperty(value, "type")), 508 remote_type_(GetStringProperty(value, "type")),
518 local_id_(BuildUniqueTargetId(browser_id, value)) { 509 local_id_(BuildUniqueTargetId(browser_id, value)) {
519 set_type("adb_page"); 510 set_type("adb_page");
520 set_url(GURL(GetStringProperty(value, "url"))); 511 set_url(GURL(GetStringProperty(value, "url")));
521 set_title(base::UTF16ToUTF8(net::UnescapeForHTML(base::UTF8ToUTF16( 512 set_title(base::UTF16ToUTF8(net::UnescapeForHTML(base::UTF8ToUTF16(
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return; 572 return;
582 573
583 scoped_ptr<base::DictionaryValue> params(new base::DictionaryValue); 574 scoped_ptr<base::DictionaryValue> params(new base::DictionaryValue);
584 params->SetString(kUrlParam, url); 575 params->SetString(kUrlParam, url);
585 bridge_->SendProtocolCommand(browser_id_, debug_url_, kPageNavigateCommand, 576 bridge_->SendProtocolCommand(browser_id_, debug_url_, kPageNavigateCommand,
586 params.Pass(), callback); 577 params.Pass(), callback);
587 } 578 }
588 579
589 // DevToolsAndroidBridge::RemotePage ------------------------------------------ 580 // DevToolsAndroidBridge::RemotePage ------------------------------------------
590 581
591 DevToolsAndroidBridge::RemotePage::RemotePage( 582 DevToolsAndroidBridge::RemotePage::RemotePage(const BrowserId& browser_id,
592 const BrowserId& browser_id, 583 const base::DictionaryValue& dict)
593 const base::DictionaryValue& dict,
594 bool is_web_view)
595 : browser_id_(browser_id), 584 : browser_id_(browser_id),
596 frontend_url_(GetFrontendURL(dict)), 585 frontend_url_(GetFrontendURL(dict)),
597 is_web_view_(is_web_view),
598 dict_(dict.DeepCopy()) { 586 dict_(dict.DeepCopy()) {
599 } 587 }
600 588
601 DevToolsAndroidBridge::RemotePage::~RemotePage() { 589 DevToolsAndroidBridge::RemotePage::~RemotePage() {
602 } 590 }
603 591
604 // DevToolsAndroidBridge::RemoteBrowser --------------------------------------- 592 // DevToolsAndroidBridge::RemoteBrowser ---------------------------------------
605 593
606 DevToolsAndroidBridge::RemoteBrowser::RemoteBrowser( 594 DevToolsAndroidBridge::RemoteBrowser::RemoteBrowser(
607 const std::string& serial, 595 const std::string& serial,
608 const AndroidDeviceManager::BrowserInfo& browser_info) 596 const AndroidDeviceManager::BrowserInfo& browser_info)
609 : browser_id_(std::make_pair(serial, browser_info.socket_name)), 597 : browser_id_(std::make_pair(serial, browser_info.socket_name)),
610 display_name_(browser_info.display_name), 598 display_name_(browser_info.display_name),
611 user_(browser_info.user), 599 user_(browser_info.user),
612 type_(browser_info.type) { 600 type_(browser_info.type) {
613 } 601 }
614 602
615 bool DevToolsAndroidBridge::RemoteBrowser::IsChrome() { 603 bool DevToolsAndroidBridge::RemoteBrowser::IsChrome() {
616 return type_ == AndroidDeviceManager::BrowserInfo::kTypeChrome; 604 return type_ == AndroidDeviceManager::BrowserInfo::kTypeChrome;
617 } 605 }
618 606
619 bool DevToolsAndroidBridge::RemoteBrowser::IsWebView() {
620 return type_ == AndroidDeviceManager::BrowserInfo::kTypeWebView;
621 }
622
623 std::string DevToolsAndroidBridge::RemoteBrowser::GetId() { 607 std::string DevToolsAndroidBridge::RemoteBrowser::GetId() {
624 return serial() + ":" + socket(); 608 return serial() + ":" + socket();
625 } 609 }
626 610
627 DevToolsAndroidBridge::RemoteBrowser::ParsedVersion 611 DevToolsAndroidBridge::RemoteBrowser::ParsedVersion
628 DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() { 612 DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() {
629 ParsedVersion result; 613 ParsedVersion result;
630 std::vector<std::string> parts; 614 std::vector<std::string> parts;
631 Tokenize(version_, ".", &parts); 615 Tokenize(version_, ".", &parts);
632 for (size_t i = 0; i != parts.size(); ++i) { 616 for (size_t i = 0; i != parts.size(); ++i) {
633 int value = 0; 617 int value = 0;
634 base::StringToInt(parts[i], &value); 618 base::StringToInt(parts[i], &value);
635 result.push_back(value); 619 result.push_back(value);
636 } 620 }
637 return result; 621 return result;
638 } 622 }
639 623
640 DevToolsTargetImpl* 624 DevToolsTargetImpl*
641 DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) { 625 DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) {
642 return new RemotePageTarget(this, page->browser_id_, *page->dict_, 626 return new RemotePageTarget(this, page->browser_id_, *page->dict_);
643 page->is_web_view_);
644 } 627 }
645 628
646 void DevToolsAndroidBridge::SendJsonRequest( 629 void DevToolsAndroidBridge::SendJsonRequest(
647 const BrowserId& browser_id, 630 const BrowserId& browser_id,
648 const std::string& request, 631 const std::string& request,
649 const JsonRequestCallback& callback) { 632 const JsonRequestCallback& callback) {
650 scoped_refptr<AndroidDeviceManager::Device> device( 633 scoped_refptr<AndroidDeviceManager::Device> device(
651 FindDevice(browser_id.first)); 634 FindDevice(browser_id.first));
652 if (!device.get()) { 635 if (!device.get()) {
653 callback.Run(net::ERR_FAILED, std::string()); 636 callback.Run(net::ERR_FAILED, std::string());
(...skipping 23 matching lines...) Expand all
677 callback); 660 callback);
678 } 661 }
679 662
680 scoped_refptr<content::DevToolsAgentHost> 663 scoped_refptr<content::DevToolsAgentHost>
681 DevToolsAndroidBridge::GetBrowserAgentHost( 664 DevToolsAndroidBridge::GetBrowserAgentHost(
682 scoped_refptr<RemoteBrowser> browser) { 665 scoped_refptr<RemoteBrowser> browser) {
683 return AgentHostDelegate::GetOrCreateAgentHost( 666 return AgentHostDelegate::GetOrCreateAgentHost(
684 this, 667 this,
685 "adb:" + browser->serial() + ":" + browser->socket(), 668 "adb:" + browser->serial() + ":" + browser->socket(),
686 browser->browser_id_, 669 browser->browser_id_,
687 kBrowserTargetSocket, 670 kBrowserTargetSocket);
688 browser->IsWebView());
689 } 671 }
690 672
691 void DevToolsAndroidBridge::SendJsonRequest( 673 void DevToolsAndroidBridge::SendJsonRequest(
692 const std::string& browser_id_str, 674 const std::string& browser_id_str,
693 const std::string& url, 675 const std::string& url,
694 const JsonRequestCallback& callback) { 676 const JsonRequestCallback& callback) {
695 BrowserId browser_id; 677 BrowserId browser_id;
696 if (!BrowserIdFromString(browser_id_str, &browser_id)) { 678 if (!BrowserIdFromString(browser_id_str, &browser_id)) {
697 callback.Run(net::ERR_FAILED, std::string()); 679 callback.Run(net::ERR_FAILED, std::string());
698 return; 680 return;
(...skipping 12 matching lines...) Expand all
711 const RemotePageCallback& callback, 693 const RemotePageCallback& callback,
712 int result, 694 int result,
713 const std::string& response) { 695 const std::string& response) {
714 DCHECK_CURRENTLY_ON(BrowserThread::UI); 696 DCHECK_CURRENTLY_ON(BrowserThread::UI);
715 if (result < 0) { 697 if (result < 0) {
716 callback.Run(NULL); 698 callback.Run(NULL);
717 return; 699 return;
718 } 700 }
719 scoped_ptr<base::Value> value(base::JSONReader::Read(response)); 701 scoped_ptr<base::Value> value(base::JSONReader::Read(response));
720 base::DictionaryValue* dict; 702 base::DictionaryValue* dict;
721 if (value && value->GetAsDictionary(&dict)) { 703 if (value && value->GetAsDictionary(&dict))
722 scoped_refptr<RemotePage> new_page( 704 callback.Run(new RemotePage(browser->browser_id_, *dict));
723 new RemotePage(browser->browser_id_, *dict, browser->IsWebView()));
724 callback.Run(new_page);
725 }
726 } 705 }
727 706
728 void DevToolsAndroidBridge::OpenRemotePage( 707 void DevToolsAndroidBridge::OpenRemotePage(
729 scoped_refptr<RemoteBrowser> browser, 708 scoped_refptr<RemoteBrowser> browser,
730 const std::string& input_url, 709 const std::string& input_url,
731 const DevToolsAndroidBridge::RemotePageCallback& callback) { 710 const DevToolsAndroidBridge::RemotePageCallback& callback) {
732 DCHECK_CURRENTLY_ON(BrowserThread::UI); 711 DCHECK_CURRENTLY_ON(BrowserThread::UI);
733 GURL gurl(input_url); 712 GURL gurl(input_url);
734 if (!gurl.is_valid()) { 713 if (!gurl.is_valid()) {
735 gurl = GURL("http://" + input_url); 714 gurl = GURL("http://" + input_url);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 scoped_refptr<RemoteBrowser> browser, 757 scoped_refptr<RemoteBrowser> browser,
779 const RemotePageCallback& callback, 758 const RemotePageCallback& callback,
780 int result, 759 int result,
781 const std::string& response, 760 const std::string& response,
782 const std::string& url) { 761 const std::string& url) {
783 DCHECK_CURRENTLY_ON(BrowserThread::UI); 762 DCHECK_CURRENTLY_ON(BrowserThread::UI);
784 scoped_ptr<base::Value> value(base::JSONReader::Read(response)); 763 scoped_ptr<base::Value> value(base::JSONReader::Read(response));
785 base::DictionaryValue* dict; 764 base::DictionaryValue* dict;
786 765
787 if (value && value->GetAsDictionary(&dict)) { 766 if (value && value->GetAsDictionary(&dict)) {
788 RemotePageTarget new_page(this, browser->browser_id_, *dict, 767 RemotePageTarget new_page(this, browser->browser_id_, *dict);
789 browser->IsWebView());
790 new_page.Navigate(url, 768 new_page.Navigate(url,
791 base::Bind(&DevToolsAndroidBridge::RespondToOpenOnUIThread, 769 base::Bind(&DevToolsAndroidBridge::RespondToOpenOnUIThread,
792 AsWeakPtr(), browser, callback, result, response)); 770 AsWeakPtr(), browser, callback, result, response));
793 } 771 }
794 } 772 }
795 773
796 DevToolsAndroidBridge::RemoteBrowser::~RemoteBrowser() { 774 DevToolsAndroidBridge::RemoteBrowser::~RemoteBrowser() {
797 } 775 }
798 776
799 // DevToolsAndroidBridge::RemoteDevice ---------------------------------------- 777 // DevToolsAndroidBridge::RemoteDevice ----------------------------------------
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 device_providers.push_back( 1012 device_providers.push_back(
1035 new WebRTCDeviceProvider(profile_, signin_manager_, token_service_)); 1013 new WebRTCDeviceProvider(profile_, signin_manager_, token_service_));
1036 } 1014 }
1037 1015
1038 device_manager_->SetDeviceProviders(device_providers); 1016 device_manager_->SetDeviceProviders(device_providers);
1039 if (NeedsDeviceListPolling()) { 1017 if (NeedsDeviceListPolling()) {
1040 StopDeviceListPolling(); 1018 StopDeviceListPolling();
1041 StartDeviceListPolling(); 1019 StartDeviceListPolling();
1042 } 1020 }
1043 } 1021 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/device/devtools_android_bridge.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698