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

Unified Diff: tools/android/forwarder2/host_forwarder_main.cc

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « third_party/khronos/noninclude/GL/wglext.h ('k') | tools/linux/PRESUBMIT.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/forwarder2/host_forwarder_main.cc
diff --git a/tools/android/forwarder2/host_forwarder_main.cc b/tools/android/forwarder2/host_forwarder_main.cc
index 47f2252f04df6cd34532bedfffff2e1ecde70d67..a94a97b8c2faa6ba730b6f3b66441fd959b1e8d9 100644
--- a/tools/android/forwarder2/host_forwarder_main.cc
+++ b/tools/android/forwarder2/host_forwarder_main.cc
@@ -98,7 +98,8 @@ class HostControllersManager {
FROM_HERE, controllers_.release());
}
- void HandleRequest(const std::string& device_serial,
+ void HandleRequest(const std::string& adb_path,
+ const std::string& device_serial,
int device_port,
int host_port,
scoped_ptr<Socket> client_socket) {
@@ -106,10 +107,9 @@ class HostControllersManager {
InitOnce();
thread_->message_loop_proxy()->PostTask(
FROM_HERE,
- base::Bind(
- &HostControllersManager::HandleRequestOnInternalThread,
- base::Unretained(this), device_serial, device_port, host_port,
- base::Passed(&client_socket)));
+ base::Bind(&HostControllersManager::HandleRequestOnInternalThread,
+ base::Unretained(this), adb_path, device_serial, device_port,
+ host_port, base::Passed(&client_socket)));
}
bool has_failed() const { return has_failed_; }
@@ -152,11 +152,12 @@ class HostControllersManager {
manager->controllers_.get());
}
- void HandleRequestOnInternalThread(const std::string& device_serial,
+ void HandleRequestOnInternalThread(const std::string& adb_path,
+ const std::string& device_serial,
int device_port,
int host_port,
scoped_ptr<Socket> client_socket) {
- const int adb_port = GetAdbPortForDevice(device_serial);
+ const int adb_port = GetAdbPortForDevice(adb_path, device_serial);
if (adb_port < 0) {
SendMessage(
"ERROR: could not get adb port for device. You might need to add "
@@ -174,7 +175,7 @@ class HostControllersManager {
!controller_did_exist ? "ERROR: could not unmap port" : "OK",
client_socket.get());
- RemoveAdbPortForDeviceIfNeeded(device_serial);
+ RemoveAdbPortForDeviceIfNeeded(adb_path, device_serial);
return;
}
if (host_port < 0) {
@@ -217,7 +218,8 @@ class HostControllersManager {
linked_ptr<HostController>(host_controller.release())));
}
- void RemoveAdbPortForDeviceIfNeeded(const std::string& device_serial) {
+ void RemoveAdbPortForDeviceIfNeeded(const std::string& adb_path,
+ const std::string& device_serial) {
base::hash_map<std::string, int>::const_iterator it =
device_serial_to_adb_port_map_.find(device_serial);
if (it == device_serial_to_adb_port_map_.end())
@@ -238,7 +240,8 @@ class HostControllersManager {
const std::string serial_part = device_serial.empty() ?
std::string() : std::string("-s ") + device_serial;
const std::string command = base::StringPrintf(
- "adb %s forward --remove tcp:%d",
+ "%s %s forward --remove tcp:%d",
+ adb_path.c_str(),
serial_part.c_str(),
port);
const int ret = system(command.c_str());
@@ -260,7 +263,8 @@ class HostControllersManager {
}
}
- int GetAdbPortForDevice(const std::string& device_serial) {
+ int GetAdbPortForDevice(const std::string adb_path,
+ const std::string& device_serial) {
base::hash_map<std::string, int>::const_iterator it =
device_serial_to_adb_port_map_.find(device_serial);
if (it != device_serial_to_adb_port_map_.end())
@@ -272,7 +276,8 @@ class HostControllersManager {
const std::string serial_part = device_serial.empty() ?
std::string() : std::string("-s ") + device_serial;
const std::string command = base::StringPrintf(
- "adb %s forward tcp:%d localabstract:chrome_device_forwarder",
+ "%s %s forward tcp:%d localabstract:chrome_device_forwarder",
+ adb_path.c_str(),
serial_part.c_str(),
port);
LOG(INFO) << command;
@@ -301,7 +306,8 @@ class HostControllersManager {
class ServerDelegate : public Daemon::ServerDelegate {
public:
- ServerDelegate() : has_failed_(false) {}
+ ServerDelegate(const std::string& adb_path)
+ : adb_path_(adb_path), has_failed_(false) {}
bool has_failed() const {
return has_failed_ || controllers_manager_.has_failed();
@@ -338,11 +344,12 @@ class ServerDelegate : public Daemon::ServerDelegate {
int host_port;
if (!pickle_it.ReadInt(&host_port))
host_port = -1;
- controllers_manager_.HandleRequest(
- device_serial, device_port, host_port, client_socket.Pass());
+ controllers_manager_.HandleRequest(adb_path_, device_serial, device_port,
+ host_port, client_socket.Pass());
}
private:
+ std::string adb_path_;
bool has_failed_;
HostControllersManager controllers_manager_;
@@ -390,6 +397,7 @@ void ExitWithUsage() {
" --serial-id=[0-9A-Z]{16}]\n"
" --map DEVICE_PORT HOST_PORT\n"
" --unmap DEVICE_PORT\n"
+ " --adb PATH_TO_ADB\n"
" --kill-server\n";
exit(1);
}
@@ -408,6 +416,7 @@ int PortToInt(const std::string& s) {
int RunHostForwarder(int argc, char** argv) {
base::CommandLine::Init(argc, argv);
const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
+ std::string adb_path = "adb";
bool kill_server = false;
Pickle pickle;
@@ -432,11 +441,15 @@ int RunHostForwarder(int argc, char** argv) {
ExitWithUsage();
}
+ if (cmd_line.HasSwitch("adb")) {
+ adb_path = cmd_line.GetSwitchValueASCII("adb");
+ }
+
if (kill_server && args.size() > 0)
ExitWithUsage();
ClientDelegate client_delegate(pickle);
- ServerDelegate daemon_delegate;
+ ServerDelegate daemon_delegate(adb_path);
Daemon daemon(
kLogFilePath, kDaemonIdentifier, &client_delegate, &daemon_delegate,
&GetExitNotifierFD);
« no previous file with comments | « third_party/khronos/noninclude/GL/wglext.h ('k') | tools/linux/PRESUBMIT.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698