| Index: chrome/browser/extensions/extension_sorting.cc
|
| diff --git a/chrome/browser/extensions/extension_sorting.cc b/chrome/browser/extensions/extension_sorting.cc
|
| index d5e07db3edc707a900db49221a703db21eb53629..0264de6f8eeebf1281c73cbc1300916412fcf072 100644
|
| --- a/chrome/browser/extensions/extension_sorting.cc
|
| +++ b/chrome/browser/extensions/extension_sorting.cc
|
| @@ -364,7 +364,7 @@ syncer::StringOrdinal ExtensionSorting::GetNaturalAppPageOrdinal() const {
|
|
|
| for (PageOrdinalMap::const_iterator it = ntp_ordinal_map_.begin();
|
| it != ntp_ordinal_map_.end(); ++it) {
|
| - if (it->second.size() < kNaturalAppPageSize)
|
| + if (CountItemsVisibleOnNtp(it->second) < kNaturalAppPageSize)
|
| return it->first;
|
| }
|
|
|
| @@ -445,6 +445,10 @@ syncer::StringOrdinal ExtensionSorting::PageIntegerAsStringOrdinal(
|
| return ntp_ordinal_map_.rbegin()->first;
|
| }
|
|
|
| +void ExtensionSorting::MarkExtensionAsHidden(const std::string& extension_id) {
|
| + ntp_hidden_extensions_.insert(extension_id);
|
| +}
|
| +
|
| syncer::StringOrdinal ExtensionSorting::GetMinOrMaxAppLaunchOrdinalsOnPage(
|
| const syncer::StringOrdinal& target_page_ordinal,
|
| AppLaunchOrdinalReturn return_type) const {
|
| @@ -610,3 +614,14 @@ syncer::StringOrdinal ExtensionSorting::ResolveCollision(
|
| return app_launch_ordinal.CreateBetween(app_it->first);
|
| }
|
|
|
| +size_t ExtensionSorting::CountItemsVisibleOnNtp(
|
| + const AppLaunchOrdinalMap& m) const {
|
| + size_t result = 0;
|
| + for (AppLaunchOrdinalMap::const_iterator it = m.begin(); it != m.end();
|
| + ++it) {
|
| + const std::string& id = it->second;
|
| + if (ntp_hidden_extensions_.count(id) == 0)
|
| + result++;
|
| + }
|
| + return result;
|
| +}
|
|
|