summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraltimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 14:28:30 +0000
committeraltimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 14:28:30 +0000
commit0e22fde2f0b3e769b266d721bc0d00131cb69ec9 (patch)
tree5ca4c7c8729bd0a7ae21ffdc6ac1201a68b76ec0
parent50f8a5a25236352442d1f5ae5407998dcd31e9ca (diff)
downloadchromium_src-0e22fde2f0b3e769b266d721bc0d00131cb69ec9.zip
chromium_src-0e22fde2f0b3e769b266d721bc0d00131cb69ec9.tar.gz
chromium_src-0e22fde2f0b3e769b266d721bc0d00131cb69ec9.tar.bz2
Handles path absence instead of CHECKing.
In Chromium OS there is no 'extensions' directory, so this case should be handled correctly. BUG=chromium-os:11107,70197 TEST=login to CrOS, no crashing Review URL: http://codereview.chromium.org/6265014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71952 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/external_pref_extension_loader.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/chrome/browser/extensions/external_pref_extension_loader.cc b/chrome/browser/extensions/external_pref_extension_loader.cc
index fc84b1e..0d246b0 100644
--- a/chrome/browser/extensions/external_pref_extension_loader.cc
+++ b/chrome/browser/extensions/external_pref_extension_loader.cc
@@ -60,19 +60,22 @@ void ExternalPrefExtensionLoader::StartLoading() {
void ExternalPrefExtensionLoader::LoadOnFileThread() {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- CHECK(PathService::Get(base_path_key_, &base_path_));
+ scoped_ptr<DictionaryValue> prefs;
- FilePath json_file;
- json_file = base_path_.Append(FILE_PATH_LITERAL("external_extensions.json"));
+ if (PathService::Get(base_path_key_, &base_path_)) {
+ FilePath json_file;
+ json_file =
+ base_path_.Append(FILE_PATH_LITERAL("external_extensions.json"));
- scoped_ptr<DictionaryValue> prefs;
- if (file_util::PathExists(json_file)) {
- JSONFileValueSerializer serializer(json_file);
- prefs.reset(ExtractPrefs(&serializer));
- } else {
- prefs.reset(new DictionaryValue());
+ if (file_util::PathExists(json_file)) {
+ JSONFileValueSerializer serializer(json_file);
+ prefs.reset(ExtractPrefs(&serializer));
+ }
}
+ if (!prefs.get())
+ prefs.reset(new DictionaryValue());
+
prefs_.reset(prefs.release());
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,