| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index e706a05f608e555b686c3103e785464cfdca6e7f..489290d4f9578d6d0504086bafd606c3988a5c1a 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -417,6 +417,7 @@ ExtensionService::ExtensionService(Profile* profile,
|
| // Set this as the ExtensionService for extension sorting to ensure it
|
| // cause syncs if required.
|
| extension_prefs_->extension_sorting()->SetExtensionService(this);
|
| + extension_prefs_->app_list_extension_ordering()->SetExtensionService(this);
|
|
|
| is_first_run_ = !extension_prefs_->SetAlertSystemFirstRun();
|
|
|
| @@ -1377,6 +1378,7 @@ syncer::SyncError ExtensionService::ProcessSyncChanges(
|
| }
|
|
|
| extension_prefs()->extension_sorting()->FixNTPOrdinalCollisions();
|
| + extension_prefs()->app_list_extension_ordering()->FixSyncCollisions();
|
|
|
| return syncer::SyncError();
|
| }
|
| @@ -1396,7 +1398,9 @@ extensions::AppSyncData ExtensionService::GetAppSyncData(
|
| IsIncognitoEnabled(extension.id()),
|
| extension_prefs_->extension_sorting()->GetAppLaunchOrdinal(
|
| extension.id()),
|
| - extension_prefs_->extension_sorting()->GetPageOrdinal(extension.id()));
|
| + extension_prefs_->extension_sorting()->GetPageOrdinal(extension.id()),
|
| + extension_prefs_->app_list_extension_ordering()->
|
| + GetAppListOrdinal(extension.id()));
|
| }
|
|
|
| std::vector<extensions::ExtensionSyncData>
|
| @@ -1462,6 +1466,11 @@ bool ExtensionService::ProcessAppSyncData(
|
| id,
|
| app_sync_data.page_ordinal());
|
| }
|
| + if (app_sync_data.app_list_ordinal().IsValid()) {
|
| + extension_prefs_->app_list_extension_ordering()->SetAppListOrdinal(
|
| + id,
|
| + app_sync_data.app_list_ordinal());
|
| + }
|
|
|
| if (!ProcessExtensionSyncDataHelper(app_sync_data.extension_sync_data(),
|
| syncer::APPS)) {
|
| @@ -2108,6 +2117,10 @@ void ExtensionService::AddExtension(const Extension* extension) {
|
| }
|
| extension_prefs_->extension_sorting()->EnsureValidOrdinals(
|
| extension->id(), syncer::StringOrdinal());
|
| + AppListExtensionOrdering* ordering =
|
| + extension_prefs_->app_list_extension_ordering();
|
| + if (!ordering->GetAppListOrdinal(extension->id()).IsValid())
|
| + ordering->InsertAtNextAvailable(extension->id());
|
| }
|
|
|
| extensions_.Insert(extension);
|
|
|