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

Side by Side Diff: components/bookmarks/browser/bookmark_model.cc

Issue 1906973002: Convert //components/bookmarks from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
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/browser/bookmark_model.h" 5 #include "components/bookmarks/browser/bookmark_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 public: 91 public:
92 EmptyUndoDelegate() {} 92 EmptyUndoDelegate() {}
93 ~EmptyUndoDelegate() override {} 93 ~EmptyUndoDelegate() override {}
94 94
95 private: 95 private:
96 // BookmarkUndoDelegate: 96 // BookmarkUndoDelegate:
97 void SetUndoProvider(BookmarkUndoProvider* provider) override {} 97 void SetUndoProvider(BookmarkUndoProvider* provider) override {}
98 void OnBookmarkNodeRemoved(BookmarkModel* model, 98 void OnBookmarkNodeRemoved(BookmarkModel* model,
99 const BookmarkNode* parent, 99 const BookmarkNode* parent,
100 int index, 100 int index,
101 scoped_ptr<BookmarkNode> node) override {} 101 std::unique_ptr<BookmarkNode> node) override {}
102 102
103 DISALLOW_COPY_AND_ASSIGN(EmptyUndoDelegate); 103 DISALLOW_COPY_AND_ASSIGN(EmptyUndoDelegate);
104 }; 104 };
105 105
106 } // namespace 106 } // namespace
107 107
108 // BookmarkModel -------------------------------------------------------------- 108 // BookmarkModel --------------------------------------------------------------
109 109
110 BookmarkModel::BookmarkModel(scoped_ptr<BookmarkClient> client) 110 BookmarkModel::BookmarkModel(std::unique_ptr<BookmarkClient> client)
111 : client_(std::move(client)), 111 : client_(std::move(client)),
112 loaded_(false), 112 loaded_(false),
113 root_(GURL()), 113 root_(GURL()),
114 bookmark_bar_node_(NULL), 114 bookmark_bar_node_(NULL),
115 other_node_(NULL), 115 other_node_(NULL),
116 mobile_node_(NULL), 116 mobile_node_(NULL),
117 next_node_id_(1), 117 next_node_id_(1),
118 observers_( 118 observers_(
119 base::ObserverList<BookmarkModelObserver>::NOTIFY_EXISTING_ONLY), 119 base::ObserverList<BookmarkModelObserver>::NOTIFY_EXISTING_ONLY),
120 loaded_signal_(true, false), 120 loaded_signal_(true, false),
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 EndExtensiveChanges(); 251 EndExtensiveChanges();
252 if (store_.get()) 252 if (store_.get())
253 store_->ScheduleSave(); 253 store_->ScheduleSave();
254 254
255 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 255 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
256 BookmarkAllUserNodesRemoved(this, removed_urls)); 256 BookmarkAllUserNodesRemoved(this, removed_urls));
257 257
258 BeginGroupedChanges(); 258 BeginGroupedChanges();
259 for (const auto& removed_node_data : removed_node_data_list) { 259 for (const auto& removed_node_data : removed_node_data_list) {
260 undo_delegate()->OnBookmarkNodeRemoved( 260 undo_delegate()->OnBookmarkNodeRemoved(
261 this, 261 this, removed_node_data.parent, removed_node_data.index,
262 removed_node_data.parent, 262 std::unique_ptr<BookmarkNode>(removed_node_data.node));
263 removed_node_data.index,
264 scoped_ptr<BookmarkNode>(removed_node_data.node));
265 } 263 }
266 EndGroupedChanges(); 264 EndGroupedChanges();
267 } 265 }
268 266
269 void BookmarkModel::Move(const BookmarkNode* node, 267 void BookmarkModel::Move(const BookmarkNode* node,
270 const BookmarkNode* new_parent, 268 const BookmarkNode* new_parent,
271 int index) { 269 int index) {
272 if (!loaded_ || !node || !IsValidIndex(new_parent, index, true) || 270 if (!loaded_ || !node || !IsValidIndex(new_parent, index, true) ||
273 is_root_node(new_parent) || is_permanent_node(node)) { 271 is_root_node(new_parent) || is_permanent_node(node)) {
274 NOTREACHED(); 272 NOTREACHED();
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 649
652 if (!parent || !parent->is_folder() || is_root_node(parent) || 650 if (!parent || !parent->is_folder() || is_root_node(parent) ||
653 parent->child_count() <= 1) { 651 parent->child_count() <= 1) {
654 return; 652 return;
655 } 653 }
656 654
657 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 655 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
658 OnWillReorderBookmarkNode(this, parent)); 656 OnWillReorderBookmarkNode(this, parent));
659 657
660 UErrorCode error = U_ZERO_ERROR; 658 UErrorCode error = U_ZERO_ERROR;
661 scoped_ptr<icu::Collator> collator(icu::Collator::createInstance(error)); 659 std::unique_ptr<icu::Collator> collator(icu::Collator::createInstance(error));
662 if (U_FAILURE(error)) 660 if (U_FAILURE(error))
663 collator.reset(NULL); 661 collator.reset(NULL);
664 BookmarkNode* mutable_parent = AsMutable(parent); 662 BookmarkNode* mutable_parent = AsMutable(parent);
665 std::sort(mutable_parent->children().begin(), 663 std::sort(mutable_parent->children().begin(),
666 mutable_parent->children().end(), 664 mutable_parent->children().end(),
667 SortComparator(collator.get())); 665 SortComparator(collator.get()));
668 666
669 if (store_.get()) 667 if (store_.get())
670 store_->ScheduleSave(); 668 store_->ScheduleSave();
671 669
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 case BookmarkNode::OTHER_NODE: 744 case BookmarkNode::OTHER_NODE:
747 return other_node_; 745 return other_node_;
748 case BookmarkNode::MOBILE: 746 case BookmarkNode::MOBILE:
749 return mobile_node_; 747 return mobile_node_;
750 default: 748 default:
751 NOTREACHED(); 749 NOTREACHED();
752 return NULL; 750 return NULL;
753 } 751 }
754 } 752 }
755 753
756 void BookmarkModel::RestoreRemovedNode(const BookmarkNode* parent, 754 void BookmarkModel::RestoreRemovedNode(
757 int index, 755 const BookmarkNode* parent,
758 scoped_ptr<BookmarkNode> scoped_node) { 756 int index,
757 std::unique_ptr<BookmarkNode> scoped_node) {
759 BookmarkNode* node = scoped_node.release(); 758 BookmarkNode* node = scoped_node.release();
760 AddNode(AsMutable(parent), index, node); 759 AddNode(AsMutable(parent), index, node);
761 760
762 // We might be restoring a folder node that have already contained a set of 761 // We might be restoring a folder node that have already contained a set of
763 // child nodes. We need to notify all of them. 762 // child nodes. We need to notify all of them.
764 NotifyNodeAddedForAllDescendents(node); 763 NotifyNodeAddedForAllDescendents(node);
765 } 764 }
766 765
767 void BookmarkModel::NotifyNodeAddedForAllDescendents(const BookmarkNode* node) { 766 void BookmarkModel::NotifyNodeAddedForAllDescendents(const BookmarkNode* node) {
768 for (int i = 0; i < node->child_count(); ++i) { 767 for (int i = 0; i < node->child_count(); ++i) {
(...skipping 22 matching lines...) Expand all
791 removed_urls->insert(node->url()); 790 removed_urls->insert(node->url());
792 } 791 }
793 792
794 CancelPendingFaviconLoadRequests(node); 793 CancelPendingFaviconLoadRequests(node);
795 794
796 // Recurse through children. 795 // Recurse through children.
797 for (int i = node->child_count() - 1; i >= 0; --i) 796 for (int i = node->child_count() - 1; i >= 0; --i)
798 RemoveNode(node->GetChild(i), removed_urls); 797 RemoveNode(node->GetChild(i), removed_urls);
799 } 798 }
800 799
801 void BookmarkModel::DoneLoading(scoped_ptr<BookmarkLoadDetails> details) { 800 void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
802 DCHECK(details); 801 DCHECK(details);
803 if (loaded_) { 802 if (loaded_) {
804 // We should only ever be loaded once. 803 // We should only ever be loaded once.
805 NOTREACHED(); 804 NOTREACHED();
806 return; 805 return;
807 } 806 }
808 807
809 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/467179 808 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/467179
810 // is fixed. 809 // is fixed.
811 tracked_objects::ScopedTracker tracking_profile1( 810 tracked_objects::ScopedTracker tracking_profile1(
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 // is fixed. 882 // is fixed.
884 tracked_objects::ScopedTracker tracking_profile6( 883 tracked_objects::ScopedTracker tracking_profile6(
885 FROM_HERE_WITH_EXPLICIT_FUNCTION("467179 BookmarkModel::DoneLoading6")); 884 FROM_HERE_WITH_EXPLICIT_FUNCTION("467179 BookmarkModel::DoneLoading6"));
886 885
887 // Notify our direct observers. 886 // Notify our direct observers.
888 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 887 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
889 BookmarkModelLoaded(this, details->ids_reassigned())); 888 BookmarkModelLoaded(this, details->ids_reassigned()));
890 } 889 }
891 890
892 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) { 891 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) {
893 scoped_ptr<BookmarkNode> node(delete_me); 892 std::unique_ptr<BookmarkNode> node(delete_me);
894 893
895 const BookmarkNode* parent = node->parent(); 894 const BookmarkNode* parent = node->parent();
896 DCHECK(parent); 895 DCHECK(parent);
897 int index = parent->GetIndexOf(node.get()); 896 int index = parent->GetIndexOf(node.get());
898 DCHECK_NE(-1, index); 897 DCHECK_NE(-1, index);
899 898
900 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 899 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
901 OnWillRemoveBookmarks(this, parent, index, node.get())); 900 OnWillRemoveBookmarks(this, parent, index, node.get()));
902 901
903 std::set<GURL> removed_urls; 902 std::set<GURL> removed_urls;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1082 if (node->is_url()) 1081 if (node->is_url())
1083 nodes_ordered_by_url_set_.insert(node); 1082 nodes_ordered_by_url_set_.insert(node);
1084 for (int i = 0; i < node->child_count(); ++i) 1083 for (int i = 0; i < node->child_count(); ++i)
1085 PopulateNodesByURL(node->GetChild(i)); 1084 PopulateNodesByURL(node->GetChild(i));
1086 } 1085 }
1087 1086
1088 int64_t BookmarkModel::generate_next_node_id() { 1087 int64_t BookmarkModel::generate_next_node_id() {
1089 return next_node_id_++; 1088 return next_node_id_++;
1090 } 1089 }
1091 1090
1092 scoped_ptr<BookmarkLoadDetails> BookmarkModel::CreateLoadDetails() { 1091 std::unique_ptr<BookmarkLoadDetails> BookmarkModel::CreateLoadDetails() {
1093 BookmarkPermanentNode* bb_node = 1092 BookmarkPermanentNode* bb_node =
1094 CreatePermanentNode(BookmarkNode::BOOKMARK_BAR); 1093 CreatePermanentNode(BookmarkNode::BOOKMARK_BAR);
1095 BookmarkPermanentNode* other_node = 1094 BookmarkPermanentNode* other_node =
1096 CreatePermanentNode(BookmarkNode::OTHER_NODE); 1095 CreatePermanentNode(BookmarkNode::OTHER_NODE);
1097 BookmarkPermanentNode* mobile_node = 1096 BookmarkPermanentNode* mobile_node =
1098 CreatePermanentNode(BookmarkNode::MOBILE); 1097 CreatePermanentNode(BookmarkNode::MOBILE);
1099 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails( 1098 return std::unique_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails(
1100 bb_node, 1099 bb_node, other_node, mobile_node, client_->GetLoadExtraNodesCallback(),
1101 other_node, 1100 new BookmarkIndex(client_.get()), next_node_id_));
1102 mobile_node,
1103 client_->GetLoadExtraNodesCallback(),
1104 new BookmarkIndex(client_.get()),
1105 next_node_id_));
1106 } 1101 }
1107 1102
1108 void BookmarkModel::SetUndoDelegate(BookmarkUndoDelegate* undo_delegate) { 1103 void BookmarkModel::SetUndoDelegate(BookmarkUndoDelegate* undo_delegate) {
1109 undo_delegate_ = undo_delegate; 1104 undo_delegate_ = undo_delegate;
1110 if (undo_delegate_) 1105 if (undo_delegate_)
1111 undo_delegate_->SetUndoProvider(this); 1106 undo_delegate_->SetUndoProvider(this);
1112 } 1107 }
1113 1108
1114 BookmarkUndoDelegate* BookmarkModel::undo_delegate() const { 1109 BookmarkUndoDelegate* BookmarkModel::undo_delegate() const {
1115 return undo_delegate_ ? undo_delegate_ : empty_undo_delegate_.get(); 1110 return undo_delegate_ ? undo_delegate_ : empty_undo_delegate_.get();
1116 } 1111 }
1117 1112
1118 } // namespace bookmarks 1113 } // namespace bookmarks
OLDNEW
« no previous file with comments | « components/bookmarks/browser/bookmark_model.h ('k') | components/bookmarks/browser/bookmark_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698