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

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

Issue 2253683002: [DevTools] Introduce a target discovery preference (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 | « no previous file | chrome/browser/devtools/devtools_window.cc » ('j') | chrome/common/pref_names.cc » ('J')
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 <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 710 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 : profile_(profile), 721 : profile_(profile),
722 device_manager_(AndroidDeviceManager::Create()), 722 device_manager_(AndroidDeviceManager::Create()),
723 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)), 723 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)),
724 port_forwarding_controller_(new PortForwardingController(profile, this)), 724 port_forwarding_controller_(new PortForwardingController(profile, this)),
725 weak_factory_(this) { 725 weak_factory_(this) {
726 DCHECK_CURRENTLY_ON(BrowserThread::UI); 726 DCHECK_CURRENTLY_ON(BrowserThread::UI);
727 pref_change_registrar_.Init(profile_->GetPrefs()); 727 pref_change_registrar_.Init(profile_->GetPrefs());
728 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled, 728 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled,
729 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, 729 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders,
730 base::Unretained(this))); 730 base::Unretained(this)));
731 pref_change_registrar_.Add(prefs::kDevToolsTargetDiscoveryConfig,
732 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders,
733 base::Unretained(this)));
731 CreateDeviceProviders(); 734 CreateDeviceProviders();
732 } 735 }
733 736
734 void DevToolsAndroidBridge::AddDeviceListListener( 737 void DevToolsAndroidBridge::AddDeviceListListener(
735 DeviceListListener* listener) { 738 DeviceListListener* listener) {
736 DCHECK_CURRENTLY_ON(BrowserThread::UI); 739 DCHECK_CURRENTLY_ON(BrowserThread::UI);
737 bool polling_was_off = !NeedsDeviceListPolling(); 740 bool polling_was_off = !NeedsDeviceListPolling();
738 device_list_listeners_.push_back(listener); 741 device_list_listeners_.push_back(listener);
739 if (polling_was_off) 742 if (polling_was_off)
740 StartDeviceListPolling(); 743 StartDeviceListPolling();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 899
897 // static 900 // static
898 void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) { 901 void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) {
899 BrowserThread::PostDelayedTask( 902 BrowserThread::PostDelayedTask(
900 BrowserThread::UI, 903 BrowserThread::UI,
901 FROM_HERE, 904 FROM_HERE,
902 task, 905 task,
903 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); 906 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs));
904 } 907 }
905 908
906 static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() { 909 static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider(
910 const base::ListValue* targetDiscoveryConfig) {
907 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 911 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
908 if (!command_line->HasSwitch(switches::kRemoteDebuggingTargets)) 912 if (targetDiscoveryConfig->empty() &&
913 !command_line->HasSwitch(switches::kRemoteDebuggingTargets))
909 return nullptr; 914 return nullptr;
910 std::string value = 915 std::string value =
911 command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets); 916 command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets);
912 std::vector<std::string> addresses = base::SplitString( 917 std::vector<std::string> addresses = base::SplitString(
913 value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); 918 value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
914 std::set<net::HostPortPair> targets; 919 std::set<net::HostPortPair> targets;
915 for (const std::string& address : addresses) { 920 for (const std::string& address : addresses) {
916 net::HostPortPair target = net::HostPortPair::FromString(address); 921 net::HostPortPair target = net::HostPortPair::FromString(address);
917 if (target.IsEmpty()) { 922 if (target.IsEmpty()) {
918 LOG(WARNING) << "Invalid target: " << address; 923 LOG(WARNING) << "Invalid target: " << address;
919 continue; 924 continue;
920 } 925 }
921 targets.insert(target); 926 targets.insert(target);
922 } 927 }
928 std::string address;
929 for (size_t i = 0; i < targetDiscoveryConfig->GetSize(); i++) {
930 if (!targetDiscoveryConfig->GetString(i, &address))
931 continue;
932 net::HostPortPair target = net::HostPortPair::FromString(address);
933 if (target.IsEmpty()) {
934 LOG(WARNING) << "Invalid target: " << address;
935 continue;
936 }
937 targets.insert(target);
938 }
923 if (targets.empty()) 939 if (targets.empty())
924 return nullptr; 940 return nullptr;
925 return new TCPDeviceProvider(targets); 941 return new TCPDeviceProvider(targets);
926 } 942 }
927 943
928 void DevToolsAndroidBridge::CreateDeviceProviders() { 944 void DevToolsAndroidBridge::CreateDeviceProviders() {
929 AndroidDeviceManager::DeviceProviders device_providers; 945 AndroidDeviceManager::DeviceProviders device_providers;
946 PrefService* service = profile_->GetPrefs();
947 const PrefService::Preference* discoveryPref =
948 service->FindPreference(prefs::kDevToolsTargetDiscoveryConfig);
949 const base::ListValue* targets;
950 discoveryPref->GetValue()->GetAsList(&targets);
dgozman 2016/08/16 20:24:33 What if it's not there?
eostroukhov-old 2016/08/16 23:55:33 I updated the code - please let me know if I under
930 951
931 if (scoped_refptr<TCPDeviceProvider> provider = CreateTCPDeviceProvider()) 952 if (scoped_refptr<TCPDeviceProvider> provider =
953 CreateTCPDeviceProvider(targets))
932 device_providers.push_back(provider); 954 device_providers.push_back(provider);
933 955
934 #if defined(ENABLE_SERVICE_DISCOVERY) 956 #if defined(ENABLE_SERVICE_DISCOVERY)
935 device_providers.push_back(new CastDeviceProvider()); 957 device_providers.push_back(new CastDeviceProvider());
936 #endif 958 #endif
937 959
938 device_providers.push_back(new AdbDeviceProvider()); 960 device_providers.push_back(new AdbDeviceProvider());
939 961
940 PrefService* service = profile_->GetPrefs();
941 const PrefService::Preference* pref = 962 const PrefService::Preference* pref =
942 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled); 963 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled);
943 const base::Value* pref_value = pref->GetValue(); 964 const base::Value* pref_value = pref->GetValue();
944 965
945 bool enabled; 966 bool enabled;
946 if (pref_value->GetAsBoolean(&enabled) && enabled) { 967 if (pref_value->GetAsBoolean(&enabled) && enabled) {
947 device_providers.push_back(new UsbDeviceProvider(profile_)); 968 device_providers.push_back(new UsbDeviceProvider(profile_));
948 } 969 }
949 970
950 device_manager_->SetDeviceProviders(device_providers); 971 device_manager_->SetDeviceProviders(device_providers);
951 if (NeedsDeviceListPolling()) { 972 if (NeedsDeviceListPolling()) {
952 StopDeviceListPolling(); 973 StopDeviceListPolling();
953 StartDeviceListPolling(); 974 StartDeviceListPolling();
954 } 975 }
955 } 976 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/devtools/devtools_window.cc » ('j') | chrome/common/pref_names.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698