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

Side by Side Diff: components/bookmarks/test/test_bookmark_client.cc

Issue 2379863002: Fix object ownership in ui/base/models. (Closed)
Patch Set: fix Created 4 years, 2 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 | « components/bookmarks/test/test_bookmark_client.h ('k') | ui/app_list/search/mixer.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/bookmarks/test/test_bookmark_client.h" 5 #include "components/bookmarks/test/test_bookmark_client.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 23 matching lines...) Expand all
34 new BookmarkModel(std::move(client))); 34 new BookmarkModel(std::move(client)));
35 std::unique_ptr<BookmarkLoadDetails> details = 35 std::unique_ptr<BookmarkLoadDetails> details =
36 bookmark_model->CreateLoadDetails(); 36 bookmark_model->CreateLoadDetails();
37 details->LoadExtraNodes(); 37 details->LoadExtraNodes();
38 bookmark_model->DoneLoading(std::move(details)); 38 bookmark_model->DoneLoading(std::move(details));
39 return bookmark_model; 39 return bookmark_model;
40 } 40 }
41 41
42 void TestBookmarkClient::SetExtraNodesToLoad( 42 void TestBookmarkClient::SetExtraNodesToLoad(
43 BookmarkPermanentNodeList extra_nodes) { 43 BookmarkPermanentNodeList extra_nodes) {
44 extra_nodes_to_load_ = std::move(extra_nodes); 44 extra_nodes_ = std::move(extra_nodes);
45 // Keep a copy in |extra_nodes_| for the acessor. 45 // Keep a copy of the nodes in |unowned_extra_nodes_| for the accessor
46 extra_nodes_ = extra_nodes_to_load_.get(); 46 // functions.
47 for (const auto& node : extra_nodes_)
48 unowned_extra_nodes_.push_back(node.get());
47 } 49 }
48 50
49 bool TestBookmarkClient::IsExtraNodeRoot(const BookmarkNode* node) { 51 bool TestBookmarkClient::IsExtraNodeRoot(const BookmarkNode* node) {
50 for (size_t i = 0; i < extra_nodes_.size(); ++i) { 52 return std::find(unowned_extra_nodes_.begin(), unowned_extra_nodes_.end(),
51 if (node == extra_nodes_[i]) 53 node) != unowned_extra_nodes_.end();
52 return true;
53 }
54 return false;
55 } 54 }
56 55
57 bool TestBookmarkClient::IsAnExtraNode(const BookmarkNode* node) { 56 bool TestBookmarkClient::IsAnExtraNode(const BookmarkNode* node) {
58 if (!node) 57 if (!node)
59 return false; 58 return false;
60 for (size_t i = 0; i < extra_nodes_.size(); ++i) { 59 for (const auto* extra_node : unowned_extra_nodes_) {
61 if (node->HasAncestor(extra_nodes_[i])) 60 if (node->HasAncestor(extra_node))
62 return true; 61 return true;
63 } 62 }
64 return false; 63 return false;
65 } 64 }
66 65
67 bool TestBookmarkClient::IsPermanentNodeVisible( 66 bool TestBookmarkClient::IsPermanentNodeVisible(
68 const BookmarkPermanentNode* node) { 67 const BookmarkPermanentNode* node) {
69 DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR || 68 DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR ||
70 node->type() == BookmarkNode::OTHER_NODE || 69 node->type() == BookmarkNode::OTHER_NODE ||
71 node->type() == BookmarkNode::MOBILE || 70 node->type() == BookmarkNode::MOBILE ||
72 IsExtraNodeRoot(node)); 71 IsExtraNodeRoot(node));
73 return node->type() != BookmarkNode::MOBILE && !IsExtraNodeRoot(node); 72 return node->type() != BookmarkNode::MOBILE && !IsExtraNodeRoot(node);
74 } 73 }
75 74
76 void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) { 75 void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
77 } 76 }
78 77
79 LoadExtraCallback TestBookmarkClient::GetLoadExtraNodesCallback() { 78 LoadExtraCallback TestBookmarkClient::GetLoadExtraNodesCallback() {
80 return base::Bind(&TestBookmarkClient::LoadExtraNodes, 79 return base::Bind(&TestBookmarkClient::LoadExtraNodes,
81 base::Passed(&extra_nodes_to_load_)); 80 base::Passed(&extra_nodes_));
82 } 81 }
83 82
84 bool TestBookmarkClient::CanSetPermanentNodeTitle( 83 bool TestBookmarkClient::CanSetPermanentNodeTitle(
85 const BookmarkNode* permanent_node) { 84 const BookmarkNode* permanent_node) {
86 return IsExtraNodeRoot(permanent_node); 85 return IsExtraNodeRoot(permanent_node);
87 } 86 }
88 87
89 bool TestBookmarkClient::CanSyncNode(const BookmarkNode* node) { 88 bool TestBookmarkClient::CanSyncNode(const BookmarkNode* node) {
90 return !IsAnExtraNode(node); 89 return !IsAnExtraNode(node);
91 } 90 }
92 91
93 bool TestBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) { 92 bool TestBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) {
94 return !IsAnExtraNode(node); 93 return !IsAnExtraNode(node);
95 } 94 }
96 95
97 // static 96 // static
98 BookmarkPermanentNodeList TestBookmarkClient::LoadExtraNodes( 97 BookmarkPermanentNodeList TestBookmarkClient::LoadExtraNodes(
99 BookmarkPermanentNodeList extra_nodes, 98 BookmarkPermanentNodeList extra_nodes,
100 int64_t* next_id) { 99 int64_t* next_id) {
101 return extra_nodes; 100 return extra_nodes;
102 } 101 }
103 102
104 } // namespace bookmarks 103 } // namespace bookmarks
OLDNEW
« no previous file with comments | « components/bookmarks/test/test_bookmark_client.h ('k') | ui/app_list/search/mixer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698