diff options
author | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 22:47:40 +0000 |
---|---|---|
committer | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 22:47:40 +0000 |
commit | 780dba318497d91316fb032b3cff4a5c525b3c30 (patch) | |
tree | 221387b9ce0e798478eefb664b38257a9a7ee6f8 | |
parent | 3cbf4301de544730d007c8699152834f56fbf8e6 (diff) | |
download | chromium_src-780dba318497d91316fb032b3cff4a5c525b3c30.zip chromium_src-780dba318497d91316fb032b3cff4a5c525b3c30.tar.gz chromium_src-780dba318497d91316fb032b3cff4a5c525b3c30.tar.bz2 |
Merge 193844 "Fix uninintialized ResourceBundle in ShowUserDataD..."
> Fix uninintialized ResourceBundle in ShowUserDataDirDialog.
>
> Make sure ResourceBundle is initialized when showing the user
> data dir dialog. The dialog needs to access string resources.
>
> BUG=230432
> TEST=CQ
>
> Review URL: https://chromiumcodereview.appspot.com/13825003
TBR=hshi@chromium.org
Review URL: https://codereview.chromium.org/14205025
git-svn-id: svn://svn.chromium.org/chrome/branches/1453/src@194703 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/user_data_dir_extractor_win.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/user_data_dir_extractor_win.cc b/chrome/browser/user_data_dir_extractor_win.cc index 5c4b941..793991a 100644 --- a/chrome/browser/user_data_dir_extractor_win.cc +++ b/chrome/browser/user_data_dir_extractor_win.cc @@ -14,6 +14,8 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "content/public/common/main_function_params.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/base/resource/resource_bundle.h" namespace chrome { @@ -21,6 +23,8 @@ namespace { GetUserDataDirCallback* custom_get_user_data_dir_callback = NULL; +const char kUserDataDirDialogFallbackLocale[] = "en-US"; + } // namespace void InstallCustomGetUserDataDirCallbackForTest( @@ -46,6 +50,16 @@ base::FilePath GetUserDataDir(const content::MainFunctionParams& parameters) { // TODO(beng): NOTIMPLEMENTED(); #else + // Make sure ResourceBundle is initialized. The user data dialog needs to + // access string resources. See http://crbug.com/230432 + if (!ResourceBundle::HasSharedInstance()) { + std::string locale = l10n_util::GetApplicationLocale(std::string()); + DCHECK(!locale.empty()); + if (locale.empty()) + locale = kUserDataDirDialogFallbackLocale; + ResourceBundle::InitSharedInstanceWithLocale(locale, NULL); + } + base::FilePath new_user_data_dir = chrome::ShowUserDataDirDialog(user_data_dir); |