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 68245c175ace138c74ec20643214f529dd656f65..e1968c01c71ab6d358077703b8f61e7d2121e6c5 100644 |
| --- a/chrome/browser/devtools/device/devtools_android_bridge.cc |
| +++ b/chrome/browser/devtools/device/devtools_android_bridge.cc |
| @@ -5,6 +5,7 @@ |
| #include "chrome/browser/devtools/device/devtools_android_bridge.h" |
| #include <map> |
| +#include <set> |
| #include <vector> |
| #include "base/base64.h" |
| @@ -45,6 +46,7 @@ |
| #include "content/public/browser/devtools_external_agent_proxy_delegate.h" |
| #include "content/public/browser/user_metrics.h" |
| #include "net/base/escape.h" |
| +#include "net/base/host_port_pair.h" |
| #include "net/base/net_errors.h" |
| using content::BrowserThread; |
| @@ -909,13 +911,34 @@ void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) { |
| void DevToolsAndroidBridge::CreateDeviceProviders() { |
| AndroidDeviceManager::DeviceProviders device_providers; |
| + |
| + std::set<net::HostPortPair> targets; |
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
| + if (command_line->HasSwitch(switches::kRemoteDebuggingTargets)) { |
|
dgozman
2015/07/06 10:08:33
Could you please extract a method?
yurys
2015/07/06 13:57:07
Done.
|
| + std::string value = |
| + command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets); |
| + std::vector<std::string> addresses = base::SplitString( |
| + value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
| + for (const std::string& address : addresses) { |
| + net::HostPortPair target = net::HostPortPair::FromString(address); |
| + if (target.IsEmpty()) { |
| + LOG(WARNING) << "Invalid target: " << address; |
| + continue; |
| + } |
| + targets.insert(target); |
| + } |
| #if defined(DEBUG_DEVTOOLS) |
| - RemoteDebuggingServer::EnableTetheringForDebug(); |
| - // We cannot rely on command line switch here as we might want to connect |
| - // to another instance of Chrome. Using hard-coded port number instead. |
| - const int kDefaultDebuggingPort = 9222; |
| - device_providers.push_back(new SelfAsDeviceProvider(kDefaultDebuggingPort)); |
| + } else { |
| + RemoteDebuggingServer::EnableTetheringForDebug(); |
| + // We cannot rely on command line switch here as we might want to connect |
| + // to another instance of Chrome. Using hard-coded port number instead. |
| + const int kDefaultDebuggingPort = 9222; |
| + targets.insert(net::HostPortPair("127.0.0.1", kDefaultDebuggingPort)); |
| #endif |
| + } |
| + if (!targets.empty()) { |
|
pfeldman
2015/07/06 10:10:04
s/{}//
yurys
2015/07/06 12:49:00
Done.
|
| + device_providers.push_back(new SelfAsDeviceProvider(targets)); |
| + } |
| device_providers.push_back(new AdbDeviceProvider()); |
| PrefService* service = profile_->GetPrefs(); |