Chromium Code Reviews| 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); |
| } |