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

Unified Diff: chrome/browser/extensions/extension_sorting.cc

Issue 9706017: Remove Ordinals Setters and Getters from ExtensionService (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 9 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 | « chrome/browser/extensions/extension_sorting.h ('k') | chrome/browser/extensions/test_extension_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_sorting.cc
diff --git a/chrome/browser/extensions/extension_sorting.cc b/chrome/browser/extensions/extension_sorting.cc
index c306ca3e26a05ad990c2655d018f2240c8599614..f9340dc7cc37bd1d4b62ad14d5102e8ad6320a34 100644
--- a/chrome/browser/extensions/extension_sorting.cc
+++ b/chrome/browser/extensions/extension_sorting.cc
@@ -28,12 +28,18 @@ const char kPrefPageOrdinal[] = "page_ordinal";
ExtensionSorting::ExtensionSorting(ExtensionScopedPrefs* extension_scoped_prefs,
PrefService* pref_service)
: extension_scoped_prefs_(extension_scoped_prefs),
- pref_service_(pref_service) {
+ pref_service_(pref_service),
+ extension_service_(NULL) {
}
ExtensionSorting::~ExtensionSorting() {
}
+void ExtensionSorting::SetExtensionService(
+ ExtensionServiceInterface* extension_service) {
+ extension_service_ = extension_service;
+}
+
void ExtensionSorting::Initialize(
const ExtensionPrefs::ExtensionIdSet& extension_ids) {
InitializePageOrdinalMap(extension_ids);
@@ -277,6 +283,7 @@ void ExtensionSorting::SetAppLaunchOrdinal(
extension_id,
kPrefAppLaunchOrdinal,
new_value);
+ SyncIfNeeded(extension_id);
}
StringOrdinal ExtensionSorting::CreateFirstAppLaunchOrdinal(
@@ -344,7 +351,7 @@ StringOrdinal ExtensionSorting::GetPageOrdinal(const std::string& extension_id)
}
void ExtensionSorting::SetPageOrdinal(const std::string& extension_id,
- const StringOrdinal& new_page_ordinal) {
+ const StringOrdinal& new_page_ordinal) {
// No work is required if the old and new values are the same.
if (new_page_ordinal.EqualOrBothInvalid(GetPageOrdinal(extension_id)))
return;
@@ -362,6 +369,7 @@ void ExtensionSorting::SetPageOrdinal(const std::string& extension_id,
extension_id,
kPrefPageOrdinal,
new_value);
+ SyncIfNeeded(extension_id);
}
void ExtensionSorting::ClearOrdinals(const std::string& extension_id) {
@@ -490,3 +498,15 @@ void ExtensionSorting::RemoveOrdinalMapping(
}
}
}
+
+void ExtensionSorting::SyncIfNeeded(const std::string& extension_id) {
+ if (extension_service_) {
+ const Extension* ext =
+ extension_service_->GetInstalledExtension(extension_id);
+
+ if (ext) {
+ CHECK(ext->is_app());
+ extension_service_->SyncExtensionChangeIfNeeded(*ext);
+ }
+ }
+}
« no previous file with comments | « chrome/browser/extensions/extension_sorting.h ('k') | chrome/browser/extensions/test_extension_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698