Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Side by Side Diff: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc

Issue 1828633002: [Extensions] Convert APIs to use movable types [2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Istiaque's Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h" 5 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 nodes->push_back(node); 97 nodes->push_back(node);
98 } 98 }
99 99
100 return true; 100 return true;
101 } 101 }
102 102
103 // Recursively create a bookmark_manager_private::BookmarkNodeDataElement from 103 // Recursively create a bookmark_manager_private::BookmarkNodeDataElement from
104 // a bookmark node. This is by used |BookmarkNodeDataToJSON| when the data comes 104 // a bookmark node. This is by used |BookmarkNodeDataToJSON| when the data comes
105 // from the current profile. In this case we have a BookmarkNode since we got 105 // from the current profile. In this case we have a BookmarkNode since we got
106 // the data from the current profile. 106 // the data from the current profile.
107 linked_ptr<bookmark_manager_private::BookmarkNodeDataElement> 107 bookmark_manager_private::BookmarkNodeDataElement
108 CreateNodeDataElementFromBookmarkNode(const BookmarkNode& node) { 108 CreateNodeDataElementFromBookmarkNode(const BookmarkNode& node) {
109 linked_ptr<bookmark_manager_private::BookmarkNodeDataElement> element( 109 bookmark_manager_private::BookmarkNodeDataElement element;
110 new bookmark_manager_private::BookmarkNodeDataElement);
111 // Add id and parentId so we can associate the data with existing nodes on the 110 // Add id and parentId so we can associate the data with existing nodes on the
112 // client side. 111 // client side.
113 element->id.reset(new std::string(base::Int64ToString(node.id()))); 112 element.id.reset(new std::string(base::Int64ToString(node.id())));
114 element->parent_id.reset( 113 element.parent_id.reset(
115 new std::string(base::Int64ToString(node.parent()->id()))); 114 new std::string(base::Int64ToString(node.parent()->id())));
116 115
117 if (node.is_url()) 116 if (node.is_url())
118 element->url.reset(new std::string(node.url().spec())); 117 element.url.reset(new std::string(node.url().spec()));
119 118
120 element->title = base::UTF16ToUTF8(node.GetTitle()); 119 element.title = base::UTF16ToUTF8(node.GetTitle());
121 for (int i = 0; i < node.child_count(); ++i) { 120 for (int i = 0; i < node.child_count(); ++i) {
122 element->children.push_back( 121 element.children.push_back(
123 CreateNodeDataElementFromBookmarkNode(*node.GetChild(i))); 122 CreateNodeDataElementFromBookmarkNode(*node.GetChild(i)));
124 } 123 }
125 124
126 return element; 125 return element;
127 } 126 }
128 127
129 // Recursively create a bookmark_manager_private::BookmarkNodeDataElement from 128 // Recursively create a bookmark_manager_private::BookmarkNodeDataElement from
130 // a BookmarkNodeData::Element. This is used by |BookmarkNodeDataToJSON| when 129 // a BookmarkNodeData::Element. This is used by |BookmarkNodeDataToJSON| when
131 // the data comes from a different profile. When the data comes from a different 130 // the data comes from a different profile. When the data comes from a different
132 // profile we do not have any IDs or parent IDs. 131 // profile we do not have any IDs or parent IDs.
133 linked_ptr<bookmark_manager_private::BookmarkNodeDataElement> 132 bookmark_manager_private::BookmarkNodeDataElement CreateApiNodeDataElement(
134 CreateApiNodeDataElement(const BookmarkNodeData::Element& element) { 133 const BookmarkNodeData::Element& element) {
135 linked_ptr<bookmark_manager_private::BookmarkNodeDataElement> node_element( 134 bookmark_manager_private::BookmarkNodeDataElement node_element;
136 new bookmark_manager_private::BookmarkNodeDataElement);
137 135
138 if (element.is_url) 136 if (element.is_url)
139 node_element->url.reset(new std::string(element.url.spec())); 137 node_element.url.reset(new std::string(element.url.spec()));
140 node_element->title = base::UTF16ToUTF8(element.title); 138 node_element.title = base::UTF16ToUTF8(element.title);
141 for (size_t i = 0; i < element.children.size(); ++i) { 139 for (size_t i = 0; i < element.children.size(); ++i) {
142 node_element->children.push_back( 140 node_element.children.push_back(
143 CreateApiNodeDataElement(element.children[i])); 141 CreateApiNodeDataElement(element.children[i]));
144 } 142 }
145 143
146 return node_element; 144 return node_element;
147 } 145 }
148 146
149 // Creates a bookmark_manager_private::BookmarkNodeData from a BookmarkNodeData. 147 // Creates a bookmark_manager_private::BookmarkNodeData from a BookmarkNodeData.
150 scoped_ptr<bookmark_manager_private::BookmarkNodeData> 148 bookmark_manager_private::BookmarkNodeData CreateApiBookmarkNodeData(
151 CreateApiBookmarkNodeData(Profile* profile, const BookmarkNodeData& data) { 149 Profile* profile,
150 const BookmarkNodeData& data) {
152 const base::FilePath& profile_path = profile->GetPath(); 151 const base::FilePath& profile_path = profile->GetPath();
153 152
154 scoped_ptr<bookmark_manager_private::BookmarkNodeData> node_data( 153 bookmark_manager_private::BookmarkNodeData node_data;
155 new bookmark_manager_private::BookmarkNodeData); 154 node_data.same_profile = data.IsFromProfilePath(profile_path);
156 node_data->same_profile = data.IsFromProfilePath(profile_path);
157 155
158 if (node_data->same_profile) { 156 if (node_data.same_profile) {
159 std::vector<const BookmarkNode*> nodes = data.GetNodes( 157 std::vector<const BookmarkNode*> nodes = data.GetNodes(
160 BookmarkModelFactory::GetForProfile(profile), profile_path); 158 BookmarkModelFactory::GetForProfile(profile), profile_path);
161 for (size_t i = 0; i < nodes.size(); ++i) { 159 for (size_t i = 0; i < nodes.size(); ++i) {
162 node_data->elements.push_back( 160 node_data.elements.push_back(
163 CreateNodeDataElementFromBookmarkNode(*nodes[i])); 161 CreateNodeDataElementFromBookmarkNode(*nodes[i]));
164 } 162 }
165 } else { 163 } else {
166 // We do not have a node IDs when the data comes from a different profile. 164 // We do not have a node IDs when the data comes from a different profile.
167 for (size_t i = 0; i < data.size(); ++i) 165 for (size_t i = 0; i < data.size(); ++i)
168 node_data->elements.push_back(CreateApiNodeDataElement(data.elements[i])); 166 node_data.elements.push_back(CreateApiNodeDataElement(data.elements[i]));
169 } 167 }
170 return node_data; 168 return node_data;
171 } 169 }
172 170
173 } // namespace 171 } // namespace
174 172
175 BookmarkManagerPrivateEventRouter::BookmarkManagerPrivateEventRouter( 173 BookmarkManagerPrivateEventRouter::BookmarkManagerPrivateEventRouter(
176 content::BrowserContext* browser_context, 174 content::BrowserContext* browser_context,
177 BookmarkModel* bookmark_model) 175 BookmarkModel* bookmark_model)
178 : browser_context_(browser_context), bookmark_model_(bookmark_model) { 176 : browser_context_(browser_context), bookmark_model_(bookmark_model) {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 event_router->BroadcastEvent(std::move(event)); 311 event_router->BroadcastEvent(std::move(event));
314 } 312 }
315 313
316 void BookmarkManagerPrivateDragEventRouter::OnDragEnter( 314 void BookmarkManagerPrivateDragEventRouter::OnDragEnter(
317 const BookmarkNodeData& data) { 315 const BookmarkNodeData& data) {
318 if (!data.is_valid()) 316 if (!data.is_valid())
319 return; 317 return;
320 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DRAG_ENTER, 318 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DRAG_ENTER,
321 bookmark_manager_private::OnDragEnter::kEventName, 319 bookmark_manager_private::OnDragEnter::kEventName,
322 bookmark_manager_private::OnDragEnter::Create( 320 bookmark_manager_private::OnDragEnter::Create(
323 *CreateApiBookmarkNodeData(profile_, data))); 321 CreateApiBookmarkNodeData(profile_, data)));
324 } 322 }
325 323
326 void BookmarkManagerPrivateDragEventRouter::OnDragOver( 324 void BookmarkManagerPrivateDragEventRouter::OnDragOver(
327 const BookmarkNodeData& data) { 325 const BookmarkNodeData& data) {
328 // Intentionally empty since these events happens too often and floods the 326 // Intentionally empty since these events happens too often and floods the
329 // message queue. We do not need this event for the bookmark manager anyway. 327 // message queue. We do not need this event for the bookmark manager anyway.
330 } 328 }
331 329
332 void BookmarkManagerPrivateDragEventRouter::OnDragLeave( 330 void BookmarkManagerPrivateDragEventRouter::OnDragLeave(
333 const BookmarkNodeData& data) { 331 const BookmarkNodeData& data) {
334 if (!data.is_valid()) 332 if (!data.is_valid())
335 return; 333 return;
336 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DRAG_LEAVE, 334 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DRAG_LEAVE,
337 bookmark_manager_private::OnDragLeave::kEventName, 335 bookmark_manager_private::OnDragLeave::kEventName,
338 bookmark_manager_private::OnDragLeave::Create( 336 bookmark_manager_private::OnDragLeave::Create(
339 *CreateApiBookmarkNodeData(profile_, data))); 337 CreateApiBookmarkNodeData(profile_, data)));
340 } 338 }
341 339
342 void BookmarkManagerPrivateDragEventRouter::OnDrop( 340 void BookmarkManagerPrivateDragEventRouter::OnDrop(
343 const BookmarkNodeData& data) { 341 const BookmarkNodeData& data) {
344 if (!data.is_valid()) 342 if (!data.is_valid())
345 return; 343 return;
346 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DROP, 344 DispatchEvent(events::BOOKMARK_MANAGER_PRIVATE_ON_DROP,
347 bookmark_manager_private::OnDrop::kEventName, 345 bookmark_manager_private::OnDrop::kEventName,
348 bookmark_manager_private::OnDrop::Create( 346 bookmark_manager_private::OnDrop::Create(
349 *CreateApiBookmarkNodeData(profile_, data))); 347 CreateApiBookmarkNodeData(profile_, data)));
350 348
351 // Make a copy that is owned by this instance. 349 // Make a copy that is owned by this instance.
352 ClearBookmarkNodeData(); 350 ClearBookmarkNodeData();
353 bookmark_drag_data_ = data; 351 bookmark_drag_data_ = data;
354 } 352 }
355 353
356 const BookmarkNodeData* 354 const BookmarkNodeData*
357 BookmarkManagerPrivateDragEventRouter::GetBookmarkNodeData() { 355 BookmarkManagerPrivateDragEventRouter::GetBookmarkNodeData() {
358 if (bookmark_drag_data_.is_valid()) 356 if (bookmark_drag_data_.is_valid())
359 return &bookmark_drag_data_; 357 return &bookmark_drag_data_;
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 625
628 if (params->id.empty()) { 626 if (params->id.empty()) {
629 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 627 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
630 node = model->root_node(); 628 node = model->root_node();
631 } else { 629 } else {
632 node = GetBookmarkNodeFromId(params->id); 630 node = GetBookmarkNodeFromId(params->id);
633 if (!node) 631 if (!node)
634 return false; 632 return false;
635 } 633 }
636 634
637 std::vector<linked_ptr<api::bookmarks::BookmarkTreeNode> > nodes; 635 std::vector<api::bookmarks::BookmarkTreeNode> nodes;
638 bookmarks::ManagedBookmarkService* managed = GetManagedBookmarkService(); 636 bookmarks::ManagedBookmarkService* managed = GetManagedBookmarkService();
639 if (params->folders_only) 637 if (params->folders_only)
640 bookmark_api_helpers::AddNodeFoldersOnly(managed, node, &nodes, true); 638 bookmark_api_helpers::AddNodeFoldersOnly(managed, node, &nodes, true);
641 else 639 else
642 bookmark_api_helpers::AddNode(managed, node, &nodes, true); 640 bookmark_api_helpers::AddNode(managed, node, &nodes, true);
643 results_ = GetSubtree::Results::Create(nodes); 641 results_ = GetSubtree::Results::Create(nodes);
644 return true; 642 return true;
645 } 643 }
646 644
647 bool BookmarkManagerPrivateCanEditFunction::RunOnReady() { 645 bool BookmarkManagerPrivateCanEditFunction::RunOnReady() {
(...skipping 15 matching lines...) Expand all
663 scoped_ptr<CreateWithMetaInfo::Params> params( 661 scoped_ptr<CreateWithMetaInfo::Params> params(
664 CreateWithMetaInfo::Params::Create(*args_)); 662 CreateWithMetaInfo::Params::Create(*args_));
665 EXTENSION_FUNCTION_VALIDATE(params); 663 EXTENSION_FUNCTION_VALIDATE(params);
666 664
667 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 665 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
668 const BookmarkNode* node = CreateBookmarkNode( 666 const BookmarkNode* node = CreateBookmarkNode(
669 model, params->bookmark, &params->meta_info.additional_properties); 667 model, params->bookmark, &params->meta_info.additional_properties);
670 if (!node) 668 if (!node)
671 return false; 669 return false;
672 670
673 scoped_ptr<api::bookmarks::BookmarkTreeNode> result_node( 671 api::bookmarks::BookmarkTreeNode result_node =
674 bookmark_api_helpers::GetBookmarkTreeNode(GetManagedBookmarkService(), 672 bookmark_api_helpers::GetBookmarkTreeNode(GetManagedBookmarkService(),
675 node, false, false)); 673 node, false, false);
676 results_ = CreateWithMetaInfo::Results::Create(*result_node); 674 results_ = CreateWithMetaInfo::Results::Create(result_node);
677 675
678 return true; 676 return true;
679 } 677 }
680 678
681 bool BookmarkManagerPrivateGetMetaInfoFunction::RunOnReady() { 679 bool BookmarkManagerPrivateGetMetaInfoFunction::RunOnReady() {
682 scoped_ptr<GetMetaInfo::Params> params(GetMetaInfo::Params::Create(*args_)); 680 scoped_ptr<GetMetaInfo::Params> params(GetMetaInfo::Params::Create(*args_));
683 EXTENSION_FUNCTION_VALIDATE(params); 681 EXTENSION_FUNCTION_VALIDATE(params);
684 682
685 if (params->id) { 683 if (params->id) {
686 const BookmarkNode* node = GetBookmarkNodeFromId(*params->id); 684 const BookmarkNode* node = GetBookmarkNodeFromId(*params->id);
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 846
849 RedoInfo::Results::Result result; 847 RedoInfo::Results::Result result;
850 result.enabled = undo_manager->redo_count() > 0; 848 result.enabled = undo_manager->redo_count() > 0;
851 result.label = base::UTF16ToUTF8(undo_manager->GetRedoLabel()); 849 result.label = base::UTF16ToUTF8(undo_manager->GetRedoLabel());
852 850
853 results_ = RedoInfo::Results::Create(result); 851 results_ = RedoInfo::Results::Create(result);
854 return true; 852 return true;
855 } 853 }
856 854
857 } // namespace extensions 855 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698