Index: chrome/test/chromedriver/chrome_launcher.cc |
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc |
index 21595b0c8b3fab8f83af37918ef29e7f2e2eb8b5..21f68d9e1f24ad9e4df1b4ddc94b66bac8bd1181 100644 |
--- a/chrome/test/chromedriver/chrome_launcher.cc |
+++ b/chrome/test/chromedriver/chrome_launcher.cc |
@@ -128,24 +128,29 @@ Status PrepareCommandLine(int port, |
switches.RemoveSwitch(*iter); |
} |
switches.SetFromSwitches(capabilities.switches); |
- |
+ base::FilePath user_data_dir_path; |
if (!switches.HasSwitch("user-data-dir")) { |
command.AppendArg("data:,"); |
if (!user_data_dir->CreateUniqueTempDir()) |
return Status(kUnknownError, "cannot create temp dir for user data dir"); |
switches.SetSwitch("user-data-dir", user_data_dir->path().value()); |
- Status status = internal::PrepareUserDataDir( |
- user_data_dir->path(), capabilities.prefs.get(), |
- capabilities.local_state.get()); |
- if (status.IsError()) |
- return status; |
+ user_data_dir_path = user_data_dir->path(); |
+ } else { |
+ user_data_dir_path = base::FilePath( |
+ switches.GetSwitchValue("user-data-dir")); |
} |
+ Status status = internal::PrepareUserDataDir( |
+ user_data_dir_path , capabilities.prefs.get(), |
+ capabilities.local_state.get()); |
samuong
2014/10/17 21:52:25
fix indent and whitespace
andrewcheng
2014/10/17 22:59:56
Done.
|
+ if (status.IsError()) |
+ return status; |
+ |
if (!extension_dir->CreateUniqueTempDir()) { |
return Status(kUnknownError, |
"cannot create temp dir for unpacking extensions"); |
} |
- Status status = internal::ProcessExtensions(capabilities.extensions, |
+ status = internal::ProcessExtensions(capabilities.extensions, |
extension_dir->path(), |
true, |
&switches, |
@@ -772,14 +777,32 @@ Status PrepareUserDataDir( |
if (!base::CreateDirectory(default_dir)) |
return Status(kUnknownError, "cannot create default profile directory"); |
+ std::string preferences; |
+ base::FilePath preferences_path = |
+ default_dir.Append(chrome::kPreferencesFilename); |
+ |
+ if (base::PathExists(preferences_path)) |
+ base::ReadFileToString(preferences_path, &preferences); |
+ else |
+ preferences = std::string(kPreferences); |
+ |
Status status = |
- WritePrefsFile(kPreferences, |
+ WritePrefsFile(preferences, |
custom_prefs, |
default_dir.Append(chrome::kPreferencesFilename)); |
if (status.IsError()) |
return status; |
- status = WritePrefsFile(kLocalState, |
+ std::string local_state; |
+ base::FilePath local_state_path = |
+ user_data_dir.Append(chrome::kLocalStateFilename); |
+ |
+ if (base::PathExists(local_state_path)) |
+ base::ReadFileToString(local_state_path, &local_state); |
+ else |
+ local_state = std::string(kLocalState); |
+ |
+ status = WritePrefsFile(local_state, |
custom_local_state, |
user_data_dir.Append(chrome::kLocalStateFilename)); |
if (status.IsError()) |