Index: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
diff --git a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
index b6e4c02b42c5f53fdff52f0e695797296822630c..9e328d00b5a10f354de6a11ea8bb42080cadb889 100644 |
--- a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
+++ b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
@@ -666,25 +666,39 @@ bool BookmarkManagerPrivateGetMetaInfoFunction::RunOnReady() { |
scoped_ptr<GetMetaInfo::Params> params(GetMetaInfo::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params); |
- const BookmarkNode* node = GetBookmarkNodeFromId(params->id); |
- if (!node) |
- return false; |
+ if (params->id) { |
+ const BookmarkNode* node = GetBookmarkNodeFromId(*params->id); |
+ if (!node) |
+ return false; |
- if (params->key) { |
- std::string value; |
- if (node->GetMetaInfo(*params->key, &value)) { |
+ if (params->key) { |
+ std::string value; |
+ if (node->GetMetaInfo(*params->key, &value)) { |
+ GetMetaInfo::Results::Value result; |
+ result.as_string.reset(new std::string(value)); |
+ results_ = GetMetaInfo::Results::Create(result); |
+ } |
+ } else { |
GetMetaInfo::Results::Value result; |
- result.as_string.reset(new std::string(value)); |
+ result.as_meta_info_fields.reset( |
+ new bookmark_manager_private::MetaInfoFields); |
+ |
+ const BookmarkNode::MetaInfoMap* meta_info = node->GetMetaInfoMap(); |
+ if (meta_info) |
+ result.as_meta_info_fields->additional_properties = *meta_info; |
results_ = GetMetaInfo::Results::Create(result); |
} |
} else { |
Mike Wittman
2014/06/16 17:47:34
If we're not supporting the case where a key is sp
yefimt
2014/06/16 19:04:01
Done.
|
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); |
+ const BookmarkNode* node = model->root_node(); |
+ |
GetMetaInfo::Results::Value result; |
- result.as_meta_info_fields.reset( |
- new bookmark_manager_private::MetaInfoFields); |
+ result.as_map_meta_info_fields.reset( |
+ new bookmark_manager_private::MapMetaInfoFields); |
+ |
+ bookmark_api_helpers::GetMetaInfo(node, |
+ &result.as_map_meta_info_fields->additional_properties); |
- const BookmarkNode::MetaInfoMap* meta_info = node->GetMetaInfoMap(); |
- if (meta_info) |
- result.as_meta_info_fields->additional_properties = *meta_info; |
results_ = GetMetaInfo::Results::Create(result); |
} |