Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Unified Diff: extensions/browser/extension_prefs.cc

Issue 1254363004: Move ownership of AppSorting from ExtensionPrefs to ExtensionSystem (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing include Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/extension_prefs.h ('k') | extensions/browser/extension_prefs_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/extension_prefs.cc
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc
index 58ccad71e6c0e4fd030571804bc5a99f79d80d5c..e4114d72fe3e04ab9fff89473ada0e7752168cbb 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;
« no previous file with comments | « extensions/browser/extension_prefs.h ('k') | extensions/browser/extension_prefs_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698