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..8963fa0455a06d190f9bbc2c351fbdfd61ce016b 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 (CountNonHiddenItems(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) { |
+ hidden_extensions_.insert(extension_id); |
+} |
+ |
syncer::StringOrdinal ExtensionSorting::GetMinOrMaxAppLaunchOrdinalsOnPage( |
const syncer::StringOrdinal& target_page_ordinal, |
AppLaunchOrdinalReturn return_type) const { |
@@ -610,3 +614,15 @@ syncer::StringOrdinal ExtensionSorting::ResolveCollision( |
return app_launch_ordinal.CreateBetween(app_it->first); |
} |
+size_t ExtensionSorting::CountNonHiddenItems( |
+ 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 (hidden_extensions_.count(id) == 0) { |
tapted
2013/02/26 03:38:49
nit: no braces on single-line if (seems to prevail
koz (OOO until 15th September)
2013/02/26 03:58:37
Yeah, I find it helps when dealing with iterators
|
+ result++; |
+ } |
+ } |
+ return result; |
+} |