Index: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc |
diff --git a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc |
index ec6f436da3c09fb580abc5c9c1693dc93cf671a2..9b298320fd659212f323c5c9fd5f03271db9e84c 100644 |
--- a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc |
+++ b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc |
@@ -134,5 +134,25 @@ bool RemoveNode(ChromeBookmarkClient* client, |
return true; |
} |
+void GetMetaInfo(const BookmarkNode* node, |
+ base::DictionaryValue* id_to_meta_info_map) { |
+ if (node->IsVisible()) { |
+ const BookmarkNode::MetaInfoMap* meta_info = node->GetMetaInfoMap(); |
+ base::DictionaryValue* value = new base::DictionaryValue(); |
+ if (meta_info) { |
+ BookmarkNode::MetaInfoMap::const_iterator itr; |
+ for (itr = meta_info->begin(); itr != meta_info->end(); itr++) |
+ value->SetStringWithoutPathExpansion(itr->first, itr->second); |
+ } |
+ id_to_meta_info_map->Set(base::Int64ToString(node->id()), value); |
+ |
+ if (node->is_folder()) { |
+ for (int i = 0; i < node->child_count(); ++i) { |
+ GetMetaInfo(node->GetChild(i), id_to_meta_info_map); |
+ } |
+ } |
+ } |
+} |
+ |
} // namespace bookmark_api_helpers |
} // namespace extensions |