| Index: chrome/browser/bookmarks/bookmark_utils.cc
|
| diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc
|
| index 7515017cb874c87e25cf3386abd8eaa694ffa931..3d4b8062b560de68cad3c9ba4cb1f0c1e79935e8 100644
|
| --- a/chrome/browser/bookmarks/bookmark_utils.cc
|
| +++ b/chrome/browser/bookmarks/bookmark_utils.cc
|
| @@ -468,11 +468,17 @@ string16 GetNameForURL(const GURL& url) {
|
| }
|
| }
|
|
|
| +// This is used with a tree iterator to skip subtrees which are not visible.
|
| +static bool PruneInvisibleFolders(const BookmarkNode* node) {
|
| + return !node->IsVisible();
|
| +}
|
| +
|
| std::vector<const BookmarkNode*> GetMostRecentlyModifiedFolders(
|
| BookmarkModel* model,
|
| size_t max_count) {
|
| std::vector<const BookmarkNode*> nodes;
|
| - ui::TreeNodeIterator<const BookmarkNode> iterator(model->root_node());
|
| + ui::TreeNodeIterator<const BookmarkNode>
|
| + iterator(model->root_node(), PruneInvisibleFolders);
|
|
|
| while (iterator.has_next()) {
|
| const BookmarkNode* parent = iterator.Next();
|
| @@ -500,7 +506,8 @@ std::vector<const BookmarkNode*> GetMostRecentlyModifiedFolders(
|
|
|
| for (int i = 0; i < root_node->child_count(); ++i) {
|
| const BookmarkNode* node = root_node->GetChild(i);
|
| - if (find(nodes.begin(), nodes.end(), node) == nodes.end()) {
|
| + if (node->IsVisible() &&
|
| + find(nodes.begin(), nodes.end(), node) == nodes.end()) {
|
| nodes.push_back(node);
|
|
|
| if (nodes.size() == max_count)
|
|
|