Fix crash when the silent extension install policy is set to an empty list
Empty lists were not properly handled when the policy was refreshed.
BUG=64871
TEST=ExtensionManagementTest.ExternalPolicyRefresh
Review URL: http://codereview.chromium.org/5472002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67988 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
index 8284def..9e7b3592b 100644
--- a/chrome/browser/extensions/extensions_service.cc
+++ b/chrome/browser/extensions/extensions_service.cc
@@ -1437,14 +1437,16 @@
void ExtensionsService::UpdateExternalPolicyExtensionProvider() {
const ListValue* list_pref =
profile_->GetPrefs()->GetList(prefs::kExtensionInstallForceList);
- RefCountedList* list_copy = new RefCountedList(
- static_cast<ListValue*>(list_pref->DeepCopy()));
+ ListValue* list_copy = NULL;
+ if (list_pref)
+ list_copy = static_cast<ListValue*>(list_pref->DeepCopy());
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
NewRunnableMethod(
backend_.get(),
&ExtensionsServiceBackend::UpdateExternalPolicyExtensionProvider,
- scoped_refptr<RefCountedList>(list_copy)));
+ scoped_refptr<RefCountedList>(
+ new RefCountedList(list_copy))));
}
void ExtensionsService::UnloadExtension(const std::string& extension_id) {