Chromium Code Reviews| 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 43eb41908fcebf091a852a7ef52bad598ba915ec..5f10528364ede525ce9f80349e7c173c9680378b 100644 |
| --- a/chrome/browser/devtools/device/devtools_android_bridge.cc |
| +++ b/chrome/browser/devtools/device/devtools_android_bridge.cc |
| @@ -728,6 +728,9 @@ DevToolsAndroidBridge::DevToolsAndroidBridge( |
| pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled, |
| base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, |
| base::Unretained(this))); |
| + pref_change_registrar_.Add(prefs::kDevToolsTargetDiscoveryConfig, |
| + base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, |
| + base::Unretained(this))); |
| CreateDeviceProviders(); |
| } |
| @@ -903,9 +906,11 @@ void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) { |
| base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); |
| } |
| -static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() { |
| +static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider( |
| + const base::ListValue* targetDiscoveryConfig) { |
| base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
| - if (!command_line->HasSwitch(switches::kRemoteDebuggingTargets)) |
| + if (targetDiscoveryConfig->empty() && |
| + !command_line->HasSwitch(switches::kRemoteDebuggingTargets)) |
| return nullptr; |
| std::string value = |
| command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets); |
| @@ -920,6 +925,17 @@ static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() { |
| } |
| targets.insert(target); |
| } |
| + std::string address; |
| + for (size_t i = 0; i < targetDiscoveryConfig->GetSize(); i++) { |
| + if (!targetDiscoveryConfig->GetString(i, &address)) |
| + continue; |
| + net::HostPortPair target = net::HostPortPair::FromString(address); |
| + if (target.IsEmpty()) { |
| + LOG(WARNING) << "Invalid target: " << address; |
| + continue; |
| + } |
| + targets.insert(target); |
| + } |
| if (targets.empty()) |
| return nullptr; |
| return new TCPDeviceProvider(targets); |
| @@ -927,8 +943,14 @@ static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() { |
| void DevToolsAndroidBridge::CreateDeviceProviders() { |
| AndroidDeviceManager::DeviceProviders device_providers; |
| + PrefService* service = profile_->GetPrefs(); |
| + const PrefService::Preference* discoveryPref = |
| + service->FindPreference(prefs::kDevToolsTargetDiscoveryConfig); |
| + const base::ListValue* targets; |
| + 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
|
| - if (scoped_refptr<TCPDeviceProvider> provider = CreateTCPDeviceProvider()) |
| + if (scoped_refptr<TCPDeviceProvider> provider = |
| + CreateTCPDeviceProvider(targets)) |
| device_providers.push_back(provider); |
| #if defined(ENABLE_SERVICE_DISCOVERY) |
| @@ -937,7 +959,6 @@ void DevToolsAndroidBridge::CreateDeviceProviders() { |
| device_providers.push_back(new AdbDeviceProvider()); |
| - PrefService* service = profile_->GetPrefs(); |
| const PrefService::Preference* pref = |
| service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled); |
| const base::Value* pref_value = pref->GetValue(); |