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..8ba3997bdb4949cafb593a16a6e230a838ef0009 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( |
+ ExtensionService* extension_service) { |
+ extension_service_ = extension_service; |
+} |
+ |
void ExtensionSorting::Initialize( |
const ExtensionPrefs::ExtensionIdSet& extension_ids) { |
InitializePageOrdinalMap(extension_ids); |
@@ -277,6 +283,15 @@ void ExtensionSorting::SetAppLaunchOrdinal( |
extension_id, |
kPrefAppLaunchOrdinal, |
new_value); |
+ |
+ if (extension_service_) { |
+ const Extension* ext = |
+ extension_service_->GetInstalledExtension(extension_id); |
+ DCHECK(!ext || ext->is_app()); |
Aaron Boodman
2012/03/14 18:54:28
The extension system prefers CHECK to DCHECK.
csharp
2012/03/15 17:21:19
Done.
|
+ |
+ if (ext) |
Aaron Boodman
2012/03/14 18:54:28
Move the DCHECK inside this branch and make it jus
csharp
2012/03/15 17:21:19
Done.
|
+ extension_service_->SyncExtensionChangeIfNeeded(*ext); |
+ } |
} |
StringOrdinal ExtensionSorting::CreateFirstAppLaunchOrdinal( |
@@ -344,7 +359,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 +377,15 @@ void ExtensionSorting::SetPageOrdinal(const std::string& extension_id, |
extension_id, |
kPrefPageOrdinal, |
new_value); |
+ |
+ if (extension_service_) { |
+ const Extension* ext = |
+ extension_service_->GetInstalledExtension(extension_id); |
+ DCHECK(!ext || ext->is_app()); |
+ |
+ if (ext) |
+ extension_service_->SyncExtensionChangeIfNeeded(*ext); |
+ } |
} |
void ExtensionSorting::ClearOrdinals(const std::string& extension_id) { |