| Index: chrome/browser/extensions/extension_sorting.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_sorting.cc (revision 185166)
|
| +++ chrome/browser/extensions/extension_sorting.cc (working copy)
|
| @@ -364,7 +364,7 @@
|
|
|
| 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 @@
|
| 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 @@
|
| 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;
|
| +}
|
|
|