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..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) { |