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

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

Issue 1560583002: DevTools: remove experimental webrtc-based remote debugging device provider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more tests/gyp removals Created 4 years, 11 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
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 <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 15 matching lines...) Expand all
26 #include "base/strings/string_util.h" 26 #include "base/strings/string_util.h"
27 #include "base/strings/stringprintf.h" 27 #include "base/strings/stringprintf.h"
28 #include "base/strings/utf_string_conversions.h" 28 #include "base/strings/utf_string_conversions.h"
29 #include "base/threading/thread.h" 29 #include "base/threading/thread.h"
30 #include "base/values.h" 30 #include "base/values.h"
31 #include "chrome/browser/devtools/device/adb/adb_device_provider.h" 31 #include "chrome/browser/devtools/device/adb/adb_device_provider.h"
32 #include "chrome/browser/devtools/device/cast_device_provider.h" 32 #include "chrome/browser/devtools/device/cast_device_provider.h"
33 #include "chrome/browser/devtools/device/port_forwarding_controller.h" 33 #include "chrome/browser/devtools/device/port_forwarding_controller.h"
34 #include "chrome/browser/devtools/device/tcp_device_provider.h" 34 #include "chrome/browser/devtools/device/tcp_device_provider.h"
35 #include "chrome/browser/devtools/device/usb/usb_device_provider.h" 35 #include "chrome/browser/devtools/device/usb/usb_device_provider.h"
36 #include "chrome/browser/devtools/device/webrtc/webrtc_device_provider.h"
37 #include "chrome/browser/devtools/devtools_protocol.h" 36 #include "chrome/browser/devtools/devtools_protocol.h"
38 #include "chrome/browser/devtools/devtools_target_impl.h" 37 #include "chrome/browser/devtools/devtools_target_impl.h"
39 #include "chrome/browser/devtools/devtools_window.h" 38 #include "chrome/browser/devtools/devtools_window.h"
40 #include "chrome/browser/devtools/remote_debugging_server.h" 39 #include "chrome/browser/devtools/remote_debugging_server.h"
41 #include "chrome/browser/profiles/profile.h" 40 #include "chrome/browser/profiles/profile.h"
42 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
43 #include "chrome/browser/signin/signin_manager_factory.h"
44 #include "chrome/common/chrome_switches.h" 41 #include "chrome/common/chrome_switches.h"
45 #include "chrome/common/pref_names.h" 42 #include "chrome/common/pref_names.h"
46 #include "components/keyed_service/content/browser_context_dependency_manager.h" 43 #include "components/keyed_service/content/browser_context_dependency_manager.h"
47 #include "components/signin/core/browser/profile_oauth2_token_service.h" 44 #include "components/signin/core/browser/profile_oauth2_token_service.h"
48 #include "components/signin/core/browser/signin_manager.h" 45 #include "components/signin/core/browser/signin_manager.h"
49 #include "content/public/browser/devtools_agent_host.h" 46 #include "content/public/browser/devtools_agent_host.h"
50 #include "content/public/browser/devtools_external_agent_proxy.h" 47 #include "content/public/browser/devtools_external_agent_proxy.h"
51 #include "content/public/browser/devtools_external_agent_proxy_delegate.h" 48 #include "content/public/browser/devtools_external_agent_proxy_delegate.h"
52 #include "content/public/browser/user_metrics.h" 49 #include "content/public/browser/user_metrics.h"
53 #include "net/base/escape.h" 50 #include "net/base/escape.h"
54 #include "net/base/host_port_pair.h" 51 #include "net/base/host_port_pair.h"
55 #include "net/base/net_errors.h" 52 #include "net/base/net_errors.h"
56 53
57 using content::BrowserThread; 54 using content::BrowserThread;
58 55
59 namespace { 56 namespace {
60 57
61 const char kPageListRequest[] = "/json"; 58 const char kPageListRequest[] = "/json";
62 const char kVersionRequest[] = "/json/version"; 59 const char kVersionRequest[] = "/json/version";
63 const char kClosePageRequest[] = "/json/close/%s"; 60 const char kClosePageRequest[] = "/json/close/%s";
64 const char kNewPageRequestWithURL[] = "/json/new?%s"; 61 const char kNewPageRequestWithURL[] = "/json/new?%s";
65 const char kActivatePageRequest[] = "/json/activate/%s"; 62 const char kActivatePageRequest[] = "/json/activate/%s";
66 const char kBrowserTargetSocket[] = "/devtools/browser"; 63 const char kBrowserTargetSocket[] = "/devtools/browser";
67 const int kAdbPollingIntervalMs = 1000; 64 const int kAdbPollingIntervalMs = 1000;
68 65
69 const char kPageReloadCommand[] = "Page.reload"; 66 const char kPageReloadCommand[] = "Page.reload";
70 67
71 const char kWebViewSocketPrefix[] = "webview_devtools_remote"; 68 const char kWebViewSocketPrefix[] = "webview_devtools_remote";
72 69
73 bool IsWebRTCDeviceProviderEnabled() {
74 return base::CommandLine::ForCurrentProcess()->HasSwitch(
75 switches::kEnableDevToolsExperiments);
76 }
77
78 bool BrowserIdFromString(const std::string& browser_id_str, 70 bool BrowserIdFromString(const std::string& browser_id_str,
79 DevToolsAndroidBridge::BrowserId* browser_id) { 71 DevToolsAndroidBridge::BrowserId* browser_id) {
80 size_t colon_pos = browser_id_str.find(':'); 72 size_t colon_pos = browser_id_str.find(':');
81 if (colon_pos == std::string::npos) 73 if (colon_pos == std::string::npos)
82 return false; 74 return false;
83 browser_id->first = browser_id_str.substr(0, colon_pos); 75 browser_id->first = browser_id_str.substr(0, colon_pos);
84 browser_id->second = browser_id_str.substr(colon_pos + 1); 76 browser_id->second = browser_id_str.substr(colon_pos + 1);
85 return true; 77 return true;
86 } 78 }
87 79
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 DevToolsAndroidBridge* DevToolsAndroidBridge::Factory::GetForProfile( 261 DevToolsAndroidBridge* DevToolsAndroidBridge::Factory::GetForProfile(
270 Profile* profile) { 262 Profile* profile) {
271 return static_cast<DevToolsAndroidBridge*>(GetInstance()-> 263 return static_cast<DevToolsAndroidBridge*>(GetInstance()->
272 GetServiceForBrowserContext(profile->GetOriginalProfile(), true)); 264 GetServiceForBrowserContext(profile->GetOriginalProfile(), true));
273 } 265 }
274 266
275 DevToolsAndroidBridge::Factory::Factory() 267 DevToolsAndroidBridge::Factory::Factory()
276 : BrowserContextKeyedServiceFactory( 268 : BrowserContextKeyedServiceFactory(
277 "DevToolsAndroidBridge", 269 "DevToolsAndroidBridge",
278 BrowserContextDependencyManager::GetInstance()) { 270 BrowserContextDependencyManager::GetInstance()) {
279 if (IsWebRTCDeviceProviderEnabled()) {
280 DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance());
281 DependsOn(SigninManagerFactory::GetInstance());
282 }
283 } 271 }
284 272
285 DevToolsAndroidBridge::Factory::~Factory() {} 273 DevToolsAndroidBridge::Factory::~Factory() {}
286 274
287 KeyedService* DevToolsAndroidBridge::Factory::BuildServiceInstanceFor( 275 KeyedService* DevToolsAndroidBridge::Factory::BuildServiceInstanceFor(
288 content::BrowserContext* context) const { 276 content::BrowserContext* context) const {
289 Profile* profile = Profile::FromBrowserContext(context); 277 Profile* profile = Profile::FromBrowserContext(context);
290 278
291 ProfileOAuth2TokenService* token_service = nullptr; 279 return new DevToolsAndroidBridge(profile);
292 SigninManagerBase* signin_manager = nullptr;
293
294 if (IsWebRTCDeviceProviderEnabled()) {
295 token_service = ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
296 signin_manager = SigninManagerFactory::GetForProfile(profile);
297 }
298
299 return new DevToolsAndroidBridge(
300 profile, signin_manager, token_service);
301 } 280 }
302 281
303 // AgentHostDelegate ---------------------------------------------------------- 282 // AgentHostDelegate ----------------------------------------------------------
304 283
305 class DevToolsAndroidBridge::AgentHostDelegate 284 class DevToolsAndroidBridge::AgentHostDelegate
306 : public content::DevToolsExternalAgentProxyDelegate, 285 : public content::DevToolsExternalAgentProxyDelegate,
307 public AndroidDeviceManager::AndroidWebSocket::Delegate { 286 public AndroidDeviceManager::AndroidWebSocket::Delegate {
308 public: 287 public:
309 static scoped_refptr<content::DevToolsAgentHost> GetOrCreateAgentHost( 288 static scoped_refptr<content::DevToolsAgentHost> GetOrCreateAgentHost(
310 DevToolsAndroidBridge* bridge, 289 DevToolsAndroidBridge* bridge,
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 browsers_.push_back(new RemoteBrowser(serial, *it)); 704 browsers_.push_back(new RemoteBrowser(serial, *it));
726 } 705 }
727 } 706 }
728 707
729 DevToolsAndroidBridge::RemoteDevice::~RemoteDevice() { 708 DevToolsAndroidBridge::RemoteDevice::~RemoteDevice() {
730 } 709 }
731 710
732 // DevToolsAndroidBridge ------------------------------------------------------ 711 // DevToolsAndroidBridge ------------------------------------------------------
733 712
734 DevToolsAndroidBridge::DevToolsAndroidBridge( 713 DevToolsAndroidBridge::DevToolsAndroidBridge(
735 Profile* profile, 714 Profile* profile)
736 SigninManagerBase* signin_manager,
737 ProfileOAuth2TokenService* const token_service)
738 : profile_(profile), 715 : profile_(profile),
739 signin_manager_(signin_manager),
740 token_service_(token_service),
741 device_manager_(AndroidDeviceManager::Create()), 716 device_manager_(AndroidDeviceManager::Create()),
742 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)), 717 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)),
743 port_forwarding_controller_(new PortForwardingController(profile, this)), 718 port_forwarding_controller_(new PortForwardingController(profile, this)),
744 weak_factory_(this) { 719 weak_factory_(this) {
745 DCHECK_CURRENTLY_ON(BrowserThread::UI); 720 DCHECK_CURRENTLY_ON(BrowserThread::UI);
746 pref_change_registrar_.Init(profile_->GetPrefs()); 721 pref_change_registrar_.Init(profile_->GetPrefs());
747 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled, 722 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled,
748 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, 723 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders,
749 base::Unretained(this))); 724 base::Unretained(this)));
750 CreateDeviceProviders(); 725 CreateDeviceProviders();
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 PrefService* service = profile_->GetPrefs(); 930 PrefService* service = profile_->GetPrefs();
956 const PrefService::Preference* pref = 931 const PrefService::Preference* pref =
957 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled); 932 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled);
958 const base::Value* pref_value = pref->GetValue(); 933 const base::Value* pref_value = pref->GetValue();
959 934
960 bool enabled; 935 bool enabled;
961 if (pref_value->GetAsBoolean(&enabled) && enabled) { 936 if (pref_value->GetAsBoolean(&enabled) && enabled) {
962 device_providers.push_back(new UsbDeviceProvider(profile_)); 937 device_providers.push_back(new UsbDeviceProvider(profile_));
963 } 938 }
964 939
965 if (IsWebRTCDeviceProviderEnabled()) {
966 device_providers.push_back(
967 new WebRTCDeviceProvider(profile_, signin_manager_, token_service_));
968 }
969
970 device_manager_->SetDeviceProviders(device_providers); 940 device_manager_->SetDeviceProviders(device_providers);
971 if (NeedsDeviceListPolling()) { 941 if (NeedsDeviceListPolling()) {
972 StopDeviceListPolling(); 942 StopDeviceListPolling();
973 StartDeviceListPolling(); 943 StartDeviceListPolling();
974 } 944 }
975 } 945 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/device/devtools_android_bridge.h ('k') | chrome/browser/devtools/device/webrtc/background_worker.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698