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) {