Index: extensions/browser/extension_prefs.cc |
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc |
index 58ccad71e6c0e4fd030571804bc5a99f79d80d5c..2571fe9e71f499b37449a46ce8e499e561d0d1f7 100644 |
--- a/extensions/browser/extension_prefs.cc |
+++ b/extensions/browser/extension_prefs.cc |
@@ -196,6 +196,8 @@ const char kCorruptedDisableCount[] = "extensions.corrupted_disable_count"; |
// that need to be synced. Default value is false. |
const char kPrefNeedsSync[] = "needs_sync"; |
+ExtensionPrefs* g_instance_for_testing = nullptr; |
+ |
// Provider of write access to a dictionary storing extension prefs. |
class ScopedExtensionPrefUpdate : public DictionaryPrefUpdate { |
public: |
@@ -341,13 +343,11 @@ ExtensionPrefs* ExtensionPrefs::Create( |
PrefService* prefs, |
const base::FilePath& root_dir, |
ExtensionPrefValueMap* extension_pref_value_map, |
- scoped_ptr<AppSorting> app_sorting, |
bool extensions_disabled, |
const std::vector<ExtensionPrefsObserver*>& early_observers) { |
return ExtensionPrefs::Create(prefs, |
root_dir, |
extension_pref_value_map, |
- app_sorting.Pass(), |
extensions_disabled, |
early_observers, |
make_scoped_ptr(new TimeProvider())); |
@@ -358,14 +358,12 @@ ExtensionPrefs* ExtensionPrefs::Create( |
PrefService* pref_service, |
const base::FilePath& root_dir, |
ExtensionPrefValueMap* extension_pref_value_map, |
- scoped_ptr<AppSorting> app_sorting, |
bool extensions_disabled, |
const std::vector<ExtensionPrefsObserver*>& early_observers, |
scoped_ptr<TimeProvider> time_provider) { |
return new ExtensionPrefs(pref_service, |
root_dir, |
extension_pref_value_map, |
- app_sorting.Pass(), |
time_provider.Pass(), |
extensions_disabled, |
early_observers); |
@@ -376,9 +374,16 @@ ExtensionPrefs::~ExtensionPrefs() { |
// static |
ExtensionPrefs* ExtensionPrefs::Get(content::BrowserContext* context) { |
+ if (g_instance_for_testing) |
+ return g_instance_for_testing; |
Marc Treib
2015/07/30 14:04:12
This is super-hacky. We should really go through t
|
return ExtensionPrefsFactory::GetInstance()->GetForBrowserContext(context); |
} |
+// static |
+void ExtensionPrefs::SetInstanceForTesting(ExtensionPrefs* prefs) { |
+ g_instance_for_testing = prefs; |
+} |
+ |
static base::FilePath::StringType MakePathRelative(const base::FilePath& parent, |
const base::FilePath& child) { |
if (!parent.IsParent(child)) |
@@ -1780,7 +1785,6 @@ void ExtensionPrefs::InitPrefStore() { |
FixMissingPrefs(extension_ids); |
MigratePermissions(extension_ids); |
MigrateDisableReasons(extension_ids); |
- app_sorting_->Initialize(extension_ids); |
InitExtensionControlledPrefs(extension_pref_value_map_); |
@@ -1870,21 +1874,15 @@ ExtensionPrefs::ExtensionPrefs( |
PrefService* prefs, |
const base::FilePath& root_dir, |
ExtensionPrefValueMap* extension_pref_value_map, |
- scoped_ptr<AppSorting> app_sorting, |
scoped_ptr<TimeProvider> time_provider, |
bool extensions_disabled, |
const std::vector<ExtensionPrefsObserver*>& early_observers) |
: prefs_(prefs), |
install_directory_(root_dir), |
extension_pref_value_map_(extension_pref_value_map), |
- app_sorting_(app_sorting.Pass()), |
+ app_sorting_(nullptr), |
time_provider_(time_provider.Pass()), |
extensions_disabled_(extensions_disabled) { |
- // TODO(mgiuca): Added these checks to try and diagnose |
- // http://crbug.com/476648. Remove them after the investigation is concluded. |
- CHECK(this); |
- app_sorting_->SetExtensionScopedPrefs(this); |
- app_sorting_->CheckExtensionScopedPrefs(); |
MakePathsRelative(); |
// Ensure that any early observers are watching before prefs are initialized. |