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

Unified Diff: chrome/browser/devtools/device/devtools_android_bridge.cc

Issue 1224743002: DevTools: allow to pass list of remote debugging targets as command line argument (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renamed SelfAsDeviceProvider to TCPDeviceProvider Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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..cd0886c441a4d6761b753bcd0c46058dda6d74cb 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"
@@ -25,7 +26,7 @@
#include "base/values.h"
#include "chrome/browser/devtools/device/adb/adb_device_provider.h"
#include "chrome/browser/devtools/device/port_forwarding_controller.h"
-#include "chrome/browser/devtools/device/self_device_provider.h"
+#include "chrome/browser/devtools/device/tcp_device_provider.h"
#include "chrome/browser/devtools/device/usb/usb_device_provider.h"
#include "chrome/browser/devtools/device/webrtc/webrtc_device_provider.h"
#include "chrome/browser/devtools/devtools_protocol.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;
@@ -907,15 +909,43 @@ void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) {
base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs));
}
-void DevToolsAndroidBridge::CreateDeviceProviders() {
- AndroidDeviceManager::DeviceProviders device_providers;
+static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kRemoteDebuggingTargets)) {
+ std::string value =
+ command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets);
+ std::vector<std::string> addresses = base::SplitString(
+ value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ std::set<net::HostPortPair> targets;
+ 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 (targets.empty())
+ return nullptr;
+ return new TCPDeviceProvider(targets);
#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;
+ return TCPDeviceProvider::CreateForLocalhost(kDefaultDebuggingPort);
#endif
+ }
+ return nullptr;
+}
+
+void DevToolsAndroidBridge::CreateDeviceProviders() {
+ AndroidDeviceManager::DeviceProviders device_providers;
+
+ if (scoped_refptr<TCPDeviceProvider> provider = CreateTCPDeviceProvider()) {
dgozman 2015/07/06 14:10:55 nit: no {}
yurys 2015/07/06 14:14:52 Done.
+ device_providers.push_back(provider);
+ }
device_providers.push_back(new AdbDeviceProvider());
PrefService* service = profile_->GetPrefs();

Powered by Google App Engine
This is Rietveld 408576698