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

Unified Diff: chrome/test/chromedriver/chrome_launcher.cc

Issue 13185004: [chromedriver] Implement proxy capability. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments. Created 7 years, 9 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/test/chromedriver/chrome_launcher.cc
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc
index 161377b16add638b735486e623e9d66d8719d512..77422957ff8a24541c2a7295e85e8a15a5db799a 100644
--- a/chrome/test/chromedriver/chrome_launcher.cc
+++ b/chrome/test/chromedriver/chrome_launcher.cc
@@ -34,15 +34,11 @@
namespace {
Status PrepareCommandLine(int port,
- const base::FilePath& exe,
- const base::ListValue* args,
- const base::ListValue* extensions,
- const base::DictionaryValue* prefs,
- const base::DictionaryValue* local_state,
+ const Capabilities& capabilities,
CommandLine* prepared_command,
base::ScopedTempDir* user_data_dir,
base::ScopedTempDir* extension_dir) {
- base::FilePath program = exe;
+ base::FilePath program = capabilities.chrome_exe;
if (program.empty()) {
if (!FindChrome(&program))
return Status(kUnknownError, "cannot find Chrome binary");
@@ -56,8 +52,9 @@ Status PrepareCommandLine(int port,
command.AppendSwitchASCII("logging-level", "1");
command.AppendArg("data:text/html;charset=utf-8,");
- if (args) {
- Status status = internal::ProcessCommandLineArgs(args, &command);
+ if (!capabilities.args.empty()) {
+ Status status = internal::ProcessCommandLineArgs(
+ &capabilities.args, &command);
if (status.IsError())
return status;
}
@@ -67,17 +64,17 @@ Status PrepareCommandLine(int port,
return Status(kUnknownError, "cannot create temp dir for user data dir");
command.AppendSwitchPath("user-data-dir", user_data_dir->path());
Status status = internal::PrepareUserDataDir(
- user_data_dir->path(), prefs, local_state);
+ user_data_dir->path(), capabilities.prefs, capabilities.local_state);
if (status.IsError())
return status;
}
- if (extensions) {
+ if (capabilities.extensions) {
if (!extension_dir->CreateUniqueTempDir())
return Status(kUnknownError,
"cannot create temp dir for unpacking extensions");
Status status = internal::ProcessExtensions(
- extensions, extension_dir->path(), &command);
+ capabilities.extensions, extension_dir->path(), &command);
if (status.IsError())
return status;
}
@@ -159,30 +156,24 @@ Status WaitForDevToolsAndCheckVersion(
return Status(kUnknownError, "unable to discover open pages");
}
-} // namespace
-
Status LaunchDesktopChrome(URLRequestContextGetter* context_getter,
int port,
const SyncWebSocketFactory& socket_factory,
- const base::FilePath& exe,
- const base::ListValue* args,
- const base::ListValue* extensions,
- const base::DictionaryValue* prefs,
- const base::DictionaryValue* local_state,
- const std::string& log_path,
+ const Capabilities& capabilities,
scoped_ptr<Chrome>* chrome) {
CommandLine command(CommandLine::NO_PROGRAM);
base::ScopedTempDir user_data_dir;
base::ScopedTempDir extension_dir;
- PrepareCommandLine(port, exe, args, extensions, prefs, local_state,
+ PrepareCommandLine(port, capabilities,
&command, &user_data_dir, &extension_dir);
base::LaunchOptions options;
#if !defined(OS_WIN)
base::EnvironmentVector environ;
- if (!log_path.empty()) {
- environ.push_back(base::EnvironmentVector::value_type("CHROME_LOG_FILE",
- log_path));
+ if (!capabilities.log_path.empty()) {
+ environ.push_back(
+ base::EnvironmentVector::value_type("CHROME_LOG_FILE",
+ capabilities.log_path));
options.environ = &environ;
}
#endif
@@ -241,13 +232,13 @@ Status LaunchDesktopChrome(URLRequestContextGetter* context_getter,
Status LaunchAndroidChrome(URLRequestContextGetter* context_getter,
int port,
const SyncWebSocketFactory& socket_factory,
- const std::string& package_name,
+ const Capabilities& capabilities,
scoped_ptr<Chrome>* chrome) {
// TODO(frankf): Figure out how this should be installed to
// make this work for all platforms.
base::FilePath adb_commands(FILE_PATH_LITERAL("adb_commands.py"));
CommandLine command(adb_commands);
- command.AppendSwitchASCII("package", package_name);
+ command.AppendSwitchASCII("package", capabilities.android_package);
command.AppendSwitch("launch");
command.AppendSwitchASCII("port", base::IntToString(port));
@@ -275,6 +266,22 @@ Status LaunchAndroidChrome(URLRequestContextGetter* context_getter,
return Status(kOk);
}
+} // namespace
+
+Status LaunchChrome(URLRequestContextGetter* context_getter,
+ int port,
+ const SyncWebSocketFactory& socket_factory,
+ const Capabilities& capabilities,
+ scoped_ptr<Chrome>* chrome) {
+ if (capabilities.HasAndroidPackage()) {
+ return LaunchAndroidChrome(
+ context_getter, port, socket_factory, capabilities, chrome);
+ } else {
+ return LaunchDesktopChrome(
+ context_getter, port, socket_factory, capabilities, chrome);
+ }
+}
+
namespace internal {
Status ProcessCommandLineArgs(const base::ListValue* args,

Powered by Google App Engine
This is Rietveld 408576698