Index: chrome/browser/extensions/external_policy_extension_provider.cc |
diff --git a/chrome/browser/extensions/external_policy_extension_provider.cc b/chrome/browser/extensions/external_policy_extension_provider.cc |
index 5b0e489032763df9273c56e3e0efe7f86c123acd..5e873793c9e9dcf87f09d4977c69a7682520ed16 100644 |
--- a/chrome/browser/extensions/external_policy_extension_provider.cc |
+++ b/chrome/browser/extensions/external_policy_extension_provider.cc |
@@ -7,6 +7,7 @@ |
#include "base/logging.h" |
#include "base/values.h" |
#include "chrome/common/pref_names.h" |
+#include "chrome/browser/browser_thread.h" |
#include "chrome/browser/extensions/stateful_external_extension_provider.h" |
#include "chrome/browser/prefs/pref_service.h" |
@@ -30,16 +31,27 @@ bool CheckExtension(std::string id, std::string update_url) { |
} |
-ExternalPolicyExtensionProvider::ExternalPolicyExtensionProvider() |
- : StatefulExternalExtensionProvider(Extension::INVALID, |
- Extension::EXTERNAL_POLICY_DOWNLOAD) { |
+ExternalPolicyExtensionProvider::ExternalPolicyExtensionProvider( |
+ const ListValue* forcelist) |
+ : StatefulExternalExtensionProvider( |
+ Extension::INVALID, |
+ Extension::EXTERNAL_POLICY_DOWNLOAD) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ ProcessPreferences(forcelist); |
} |
ExternalPolicyExtensionProvider::~ExternalPolicyExtensionProvider() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
} |
void ExternalPolicyExtensionProvider::SetPreferences( |
const ListValue* forcelist) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
+ ProcessPreferences(forcelist); |
+} |
+ |
+void ExternalPolicyExtensionProvider::ProcessPreferences( |
+ const ListValue* forcelist) { |
DictionaryValue* result = new DictionaryValue(); |
if (forcelist != NULL) { |
std::string extension_desc; |
@@ -60,5 +72,5 @@ void ExternalPolicyExtensionProvider::SetPreferences( |
} |
} |
} |
- prefs_.reset(result); |
+ set_prefs(result); |
} |