diff options
author | treib <treib@chromium.org> | 2015-08-06 03:55:42 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-06 10:56:16 +0000 |
commit | 926ee2dccf73a971e1f78e80d09231f8ba19aff3 (patch) | |
tree | 6bfeb8e29cdddb7e765003e6265ef3aba5eb3621 /extensions/browser/extension_prefs.cc | |
parent | cac01ee2465f98273202a67a1d1d95ccb381fa90 (diff) | |
download | chromium_src-926ee2dccf73a971e1f78e80d09231f8ba19aff3.zip chromium_src-926ee2dccf73a971e1f78e80d09231f8ba19aff3.tar.gz chromium_src-926ee2dccf73a971e1f78e80d09231f8ba19aff3.tar.bz2 |
Move ownership of AppSorting from ExtensionPrefs to ExtensionSystem
BUG=None
Review URL: https://codereview.chromium.org/1254363004
Cr-Commit-Position: refs/heads/master@{#342093}
Diffstat (limited to 'extensions/browser/extension_prefs.cc')
-rw-r--r-- | extensions/browser/extension_prefs.cc | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index 58ccad7..e4114d7 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc @@ -21,6 +21,7 @@ #include "extensions/browser/extension_pref_store.h" #include "extensions/browser/extension_prefs_factory.h" #include "extensions/browser/extension_prefs_observer.h" +#include "extensions/browser/extension_system.h" #include "extensions/browser/install_flag.h" #include "extensions/browser/pref_names.h" #include "extensions/common/feature_switch.h" @@ -338,37 +339,30 @@ template class ExtensionPrefs::ScopedUpdate<base::ListValue, // static ExtensionPrefs* ExtensionPrefs::Create( + content::BrowserContext* browser_context, 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, + return ExtensionPrefs::Create(browser_context, prefs, root_dir, + extension_pref_value_map, extensions_disabled, early_observers, make_scoped_ptr(new TimeProvider())); } // static ExtensionPrefs* ExtensionPrefs::Create( + content::BrowserContext* browser_context, 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); + return new ExtensionPrefs(browser_context, pref_service, root_dir, + extension_pref_value_map, time_provider.Pass(), + extensions_disabled, early_observers); } ExtensionPrefs::~ExtensionPrefs() { @@ -1202,7 +1196,7 @@ void ExtensionPrefs::OnExtensionInstalled( void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, const Manifest::Location& location, bool external_uninstall) { - app_sorting_->ClearOrdinals(extension_id); + app_sorting()->ClearOrdinals(extension_id); // For external extensions, we save a preference reminding ourself not to try // and install the extension anymore (except when |external_uninstall| is @@ -1780,7 +1774,6 @@ void ExtensionPrefs::InitPrefStore() { FixMissingPrefs(extension_ids); MigratePermissions(extension_ids); MigrateDisableReasons(extension_ids); - app_sorting_->Initialize(extension_ids); InitExtensionControlledPrefs(extension_pref_value_map_); @@ -1867,24 +1860,19 @@ void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, } ExtensionPrefs::ExtensionPrefs( + content::BrowserContext* browser_context, 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), + : browser_context_(browser_context), + prefs_(prefs), install_directory_(root_dir), extension_pref_value_map_(extension_pref_value_map), - app_sorting_(app_sorting.Pass()), 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. @@ -1898,6 +1886,10 @@ ExtensionPrefs::ExtensionPrefs( InitPrefStore(); } +AppSorting* ExtensionPrefs::app_sorting() const { + return ExtensionSystem::Get(browser_context_)->app_sorting(); +} + void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) { prefs_->SetBoolean(pref_names::kStorageGarbageCollect, value); } @@ -2107,11 +2099,11 @@ void ExtensionPrefs::FinishExtensionInfoPrefs( extension_dict->Remove(EventRouter::kRegisteredEvents, NULL); // FYI, all code below here races on sudden shutdown because |extension_dict|, - // |app_sorting_|, |extension_pref_value_map_|, and (potentially) observers + // |app_sorting|, |extension_pref_value_map_|, and (potentially) observers // are updated non-transactionally. This is probably not fixable without // nested transactional updates to pref dictionaries. if (needs_sort_ordinal) - app_sorting_->EnsureValidOrdinals(extension_id, suggested_page_ordinal); + app_sorting()->EnsureValidOrdinals(extension_id, suggested_page_ordinal); bool is_enabled = false; int initial_state; |