Chromium Code Reviews| 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. |