Index: chrome/app/chrome_main_delegate.cc |
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc |
index 7f4aebbc6dbc2e2ee9bcc15ad8c5f658cf198d85..d105144bb2c1d3e8c697a85189cdee73519c86ba 100644 |
--- a/chrome/app/chrome_main_delegate.cc |
+++ b/chrome/app/chrome_main_delegate.cc |
@@ -72,6 +72,7 @@ |
#include "chrome/browser/downgrade/user_data_downgrade.h" |
#include "chrome/child/v8_breakpad_support_win.h" |
#include "chrome/common/child_process_logging.h" |
+#include "chrome/install_static/install_util.h" |
#include "sandbox/win/src/sandbox.h" |
#include "ui/base/resource/resource_bundle_win.h" |
#endif |
@@ -386,23 +387,18 @@ struct MainFunction { |
// Initializes the user data dir. Must be called before InitializeLocalState(). |
void InitializeUserDataDir(base::CommandLine* command_line) { |
#if defined(OS_WIN) |
- wchar_t user_data_dir_buf[MAX_PATH], invalid_user_data_dir_buf[MAX_PATH]; |
- |
- using GetUserDataDirectoryThunkFunction = |
- void (*)(wchar_t*, size_t, wchar_t*, size_t); |
HMODULE elf_module = GetModuleHandle(chrome::kChromeElfDllName); |
if (elf_module) { |
// If we're in a test, chrome_elf won't be loaded. |
- GetUserDataDirectoryThunkFunction get_user_data_directory_thunk = |
- reinterpret_cast<GetUserDataDirectoryThunkFunction>( |
- GetProcAddress(elf_module, "GetUserDataDirectoryThunk")); |
- get_user_data_directory_thunk( |
- user_data_dir_buf, arraysize(user_data_dir_buf), |
- invalid_user_data_dir_buf, arraysize(invalid_user_data_dir_buf)); |
- base::FilePath user_data_dir(user_data_dir_buf); |
- if (invalid_user_data_dir_buf[0] != 0) { |
- chrome::SetInvalidSpecifiedUserDataDir( |
- base::FilePath(invalid_user_data_dir_buf)); |
+ |
+ base::FilePath user_data_dir(install_static::GetUserDataDirectory()); |
+ // An empty user data directory means a failure (no fallback/default could |
+ // be retrieved either). |
+ CHECK(!user_data_dir.empty()); |
+ base::FilePath invalid_user_data_dir( |
+ install_static::GetInvalidUserDataDirectory()); |
+ if (!invalid_user_data_dir.empty()) { |
+ chrome::SetInvalidSpecifiedUserDataDir(invalid_user_data_dir); |
command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); |
} |
CHECK(PathService::OverrideAndCreateIfNeeded(chrome::DIR_USER_DATA, |