Chromium Code Reviews| 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..6ec14054b535a21f452e28cd669f81b40f1dfe7b 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,16 @@ void ExtensionSorting::SetAppLaunchOrdinal( |
| extension_id, |
| kPrefAppLaunchOrdinal, |
| new_value); |
| + |
| + if (extension_service_) { |
| + const Extension* ext = |
| + extension_service_->GetInstalledExtension(extension_id); |
| + |
| + if (ext) { |
| + CHECK(ext->is_app()); |
| + extension_service_->SyncExtensionChangeIfNeeded(*ext); |
| + } |
| + } |
| } |
| StringOrdinal ExtensionSorting::CreateFirstAppLaunchOrdinal( |
| @@ -344,7 +360,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 +378,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()); |
|
akalin
2012/03/15 19:29:39
CHECK also? Make this consistent with the analogo
csharp
2012/03/15 20:19:45
Done.
|
| + |
| + if (ext) |
| + extension_service_->SyncExtensionChangeIfNeeded(*ext); |
| + } |
| } |
| void ExtensionSorting::ClearOrdinals(const std::string& extension_id) { |