| Index: chrome/browser/ui/app_list/extension_app_item.cc
|
| diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc
|
| index 97912f148fd6ac4464f7929c45ba3711ae297106..ecfba902b91f289052032442ca29f3e98509582e 100644
|
| --- a/chrome/browser/ui/app_list/extension_app_item.cc
|
| +++ b/chrome/browser/ui/app_list/extension_app_item.cc
|
| @@ -7,11 +7,11 @@
|
| #include "base/prefs/pref_service.h"
|
| #include "chrome/browser/extensions/extension_prefs.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| -#include "chrome/browser/extensions/extension_sorting.h"
|
| #include "chrome/browser/extensions/extension_system.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/app_list/app_context_menu.h"
|
| #include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
|
| +#include "chrome/browser/ui/app_list/app_list_extension_ordering.h"
|
| #include "chrome/browser/ui/extensions/extension_enable_flow.h"
|
| #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
|
| #include "chrome/common/extensions/extension.h"
|
| @@ -55,10 +55,10 @@ class ShortcutOverlayImageSource : public gfx::CanvasImageSource {
|
| DISALLOW_COPY_AND_ASSIGN(ShortcutOverlayImageSource);
|
| };
|
|
|
| -ExtensionSorting* GetExtensionSorting(Profile* profile) {
|
| +AppListExtensionOrdering* GetExtensionOrdering(Profile* profile) {
|
| ExtensionService* service =
|
| extensions::ExtensionSystem::Get(profile)->extension_service();
|
| - return service->extension_prefs()->extension_sorting();
|
| + return service->extension_prefs()->app_list_extension_ordering();
|
| }
|
|
|
| const color_utils::HSL shift = {-1, 0, 0.6};
|
| @@ -81,8 +81,9 @@ ExtensionAppItem::ExtensionAppItem(Profile* profile,
|
| shift)),
|
| is_platform_app_(is_platform_app) {
|
| Reload();
|
| - GetExtensionSorting(profile_)->EnsureValidOrdinals(extension_id_,
|
| - syncer::StringOrdinal());
|
| + AppListExtensionOrdering* ordering = GetExtensionOrdering(profile_);
|
| + if (!ordering->Contains(extension_id_))
|
| + ordering->InsertAtNextAvailable(extension_id_);
|
| }
|
|
|
| ExtensionAppItem::~ExtensionAppItem() {
|
| @@ -96,6 +97,11 @@ bool ExtensionAppItem::HasOverlay() const {
|
| #endif
|
| }
|
|
|
| +bool ExtensionAppItem::Precedes(const ExtensionAppItem* item) const {
|
| + return GetExtensionOrdering(profile_)->ExtensionPrecedes(
|
| + extension_id(), item->extension_id());
|
| +}
|
| +
|
| void ExtensionAppItem::Reload() {
|
| const Extension* extension = GetExtension();
|
| bool is_installing = !extension;
|
| @@ -110,14 +116,6 @@ void ExtensionAppItem::Reload() {
|
| LoadImage(extension);
|
| }
|
|
|
| -syncer::StringOrdinal ExtensionAppItem::GetPageOrdinal() const {
|
| - return GetExtensionSorting(profile_)->GetPageOrdinal(extension_id_);
|
| -}
|
| -
|
| -syncer::StringOrdinal ExtensionAppItem::GetAppLaunchOrdinal() const {
|
| - return GetExtensionSorting(profile_)->GetAppLaunchOrdinal(extension_id_);
|
| -}
|
| -
|
| void ExtensionAppItem::Move(const ExtensionAppItem* prev,
|
| const ExtensionAppItem* next) {
|
| // Does nothing if no predecessor nor successor.
|
| @@ -127,36 +125,13 @@ void ExtensionAppItem::Move(const ExtensionAppItem* prev,
|
| ExtensionService* service =
|
| extensions::ExtensionSystem::Get(profile_)->extension_service();
|
| service->extension_prefs()->SetAppDraggedByUser(extension_id_);
|
| + AppListExtensionOrdering* ordering = GetExtensionOrdering(profile_);
|
|
|
| // Handles only predecessor or only successor case.
|
| - if (!prev || !next) {
|
| - syncer::StringOrdinal page = prev ? prev->GetPageOrdinal() :
|
| - next->GetPageOrdinal();
|
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, page);
|
| - service->OnExtensionMoved(extension_id_,
|
| - prev ? prev->extension_id() : std::string(),
|
| - next ? next->extension_id() : std::string());
|
| - return;
|
| - }
|
| -
|
| - // Handles both predecessor and successor are on the same page.
|
| - syncer::StringOrdinal prev_page = prev->GetPageOrdinal();
|
| - syncer::StringOrdinal next_page = next->GetPageOrdinal();
|
| - if (prev_page.Equals(next_page)) {
|
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, prev_page);
|
| - service->OnExtensionMoved(extension_id_,
|
| - prev->extension_id(),
|
| - next->extension_id());
|
| - return;
|
| - }
|
| -
|
| - // Otherwise, go with |next|. This is okay because app list does not split
|
| - // page based ntp page ordinal.
|
| - // TODO(xiyuan): Revisit this when implementing paging support.
|
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, prev_page);
|
| - service->OnExtensionMoved(extension_id_,
|
| - prev->extension_id(),
|
| - std::string());
|
| + GetExtensionOrdering(profile_)->OnExtensionMoved(
|
| + extension_id_,
|
| + prev ? prev->extension_id() : std::string(),
|
| + next ? next->extension_id() : std::string());
|
| }
|
|
|
| void ExtensionAppItem::UpdateIcon() {
|
|
|