| Index: chrome/test/webdriver/commands/create_session.cc
|
| diff --git a/chrome/test/webdriver/commands/create_session.cc b/chrome/test/webdriver/commands/create_session.cc
|
| index 60b7809e0541436085df9d7abe49f5890bbc5035..14ecbf5f514f30ef64da48c0ff03413424419f48 100644
|
| --- a/chrome/test/webdriver/commands/create_session.cc
|
| +++ b/chrome/test/webdriver/commands/create_session.cc
|
| @@ -73,7 +73,11 @@ void CreateSession::ExecutePost(Response* const response) {
|
| return;
|
| }
|
|
|
| - CommandLine command_line_options(CommandLine::NO_PROGRAM);
|
| + Automation::BrowserOptions browser_options;
|
| + FilePath::StringType path;
|
| + if (capabilities->GetStringWithoutPathExpansion("chrome.binary", &path))
|
| + browser_options.command = CommandLine(FilePath(path));
|
| +
|
| ListValue* switches = NULL;
|
| const char* kCustomSwitchesKey = "chrome.switches";
|
| if (capabilities->GetListWithoutPathExpansion(kCustomSwitchesKey,
|
| @@ -93,11 +97,11 @@ void CreateSession::ExecutePost(Response* const response) {
|
| kBadRequest, "Custom switch is not a string"));
|
| return;
|
| }
|
| - command_line_options.AppendSwitchNative(
|
| + browser_options.command.AppendSwitchNative(
|
| switch_string.substr(0, separator_index),
|
| switch_string_native.substr(separator_index + 1));
|
| } else {
|
| - command_line_options.AppendSwitch(switch_string);
|
| + browser_options.command.AppendSwitch(switch_string);
|
| }
|
| }
|
| } else if (capabilities->HasKey(kCustomSwitchesKey)) {
|
| @@ -105,14 +109,16 @@ void CreateSession::ExecutePost(Response* const response) {
|
| kBadRequest, "Custom switches must be a list"));
|
| return;
|
| }
|
| +
|
| Value* verbose_value;
|
| if (capabilities->GetWithoutPathExpansion("chrome.verbose", &verbose_value)) {
|
| - bool verbose;
|
| - if (verbose_value->GetAsBoolean(&verbose) && verbose) {
|
| + bool verbose = false;
|
| + if (verbose_value->GetAsBoolean(&verbose)) {
|
| // Since logging is shared among sessions, if any session requests verbose
|
| // logging, verbose logging will be enabled for all sessions. It is not
|
| // possible to turn it off.
|
| - logging::SetMinLogLevel(logging::LOG_INFO);
|
| + if (verbose)
|
| + logging::SetMinLogLevel(logging::LOG_INFO);
|
| } else {
|
| response->SetError(new Error(
|
| kBadRequest, "verbose must be a boolean true or false"));
|
| @@ -120,14 +126,10 @@ void CreateSession::ExecutePost(Response* const response) {
|
| }
|
| }
|
|
|
| - FilePath browser_exe;
|
| - FilePath::StringType path;
|
| - if (capabilities->GetStringWithoutPathExpansion("chrome.binary", &path))
|
| - browser_exe = FilePath(path);
|
| + capabilities->GetStringWithoutPathExpansion(
|
| + "chrome.channel", &browser_options.channel_id);
|
|
|
| ScopedTempDir temp_profile_dir;
|
| - FilePath temp_user_data_dir;
|
| -
|
| std::string base64_profile;
|
| if (capabilities->GetStringWithoutPathExpansion("chrome.profile",
|
| &base64_profile)) {
|
| @@ -144,8 +146,9 @@ void CreateSession::ExecutePost(Response* const response) {
|
| return;
|
| }
|
|
|
| - temp_user_data_dir = temp_profile_dir.path().AppendASCII("user_data_dir");
|
| - if (!Unzip(temp_profile_zip, temp_user_data_dir)) {
|
| + browser_options.user_data_dir =
|
| + temp_profile_dir.path().AppendASCII("user_data_dir");
|
| + if (!Unzip(temp_profile_zip, browser_options.user_data_dir)) {
|
| response->SetError(new Error(
|
| kBadRequest, "Could not unarchive provided user profile"));
|
| return;
|
| @@ -186,13 +189,13 @@ void CreateSession::ExecutePost(Response* const response) {
|
| return;
|
| }
|
|
|
| - Session::Options options;
|
| + Session::Options session_options;
|
| Error* error = NULL;
|
| error = GetBooleanCapability(capabilities, "chrome.nativeEvents",
|
| - &options.use_native_events);
|
| + &session_options.use_native_events);
|
| if (!error) {
|
| error = GetBooleanCapability(capabilities, "chrome.loadAsync",
|
| - &options.load_async);
|
| + &session_options.load_async);
|
| }
|
| if (error) {
|
| response->SetError(error);
|
| @@ -200,10 +203,8 @@ void CreateSession::ExecutePost(Response* const response) {
|
| }
|
|
|
| // Session manages its own liftime, so do not call delete.
|
| - Session* session = new Session(options);
|
| - error = session->Init(browser_exe,
|
| - temp_user_data_dir,
|
| - command_line_options);
|
| + Session* session = new Session(session_options);
|
| + error = session->Init(browser_options);
|
| if (error) {
|
| response->SetError(error);
|
| return;
|
|
|