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(); |