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

Side by Side Diff: components/bookmarks/browser/bookmark_storage.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_storage.h" 5 #include "components/bookmarks/browser/bookmark_storage.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 if (node->url().is_valid()) 45 if (node->url().is_valid())
46 details->index()->Add(node); 46 details->index()->Add(node);
47 } else { 47 } else {
48 for (int i = 0; i < node->child_count(); ++i) 48 for (int i = 0; i < node->child_count(); ++i)
49 AddBookmarksToIndex(details, node->GetChild(i)); 49 AddBookmarksToIndex(details, node->GetChild(i));
50 } 50 }
51 } 51 }
52 52
53 void LoadCallback(const base::FilePath& path, 53 void LoadCallback(const base::FilePath& path,
54 const base::WeakPtr<BookmarkStorage>& storage, 54 const base::WeakPtr<BookmarkStorage>& storage,
55 scoped_ptr<BookmarkLoadDetails> details, 55 std::unique_ptr<BookmarkLoadDetails> details,
56 base::SequencedTaskRunner* task_runner) { 56 base::SequencedTaskRunner* task_runner) {
57 bool load_index = false; 57 bool load_index = false;
58 bool bookmark_file_exists = base::PathExists(path); 58 bool bookmark_file_exists = base::PathExists(path);
59 if (bookmark_file_exists) { 59 if (bookmark_file_exists) {
60 JSONFileValueDeserializer deserializer(path); 60 JSONFileValueDeserializer deserializer(path);
61 scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); 61 std::unique_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL);
62 62
63 if (root.get()) { 63 if (root.get()) {
64 // Building the index can take a while, so we do it on the background 64 // Building the index can take a while, so we do it on the background
65 // thread. 65 // thread.
66 int64_t max_node_id = 0; 66 int64_t max_node_id = 0;
67 BookmarkCodec codec; 67 BookmarkCodec codec;
68 TimeTicks start_time = TimeTicks::Now(); 68 TimeTicks start_time = TimeTicks::Now();
69 codec.Decode(details->bb_node(), details->other_folder_node(), 69 codec.Decode(details->bb_node(), details->other_folder_node(),
70 details->mobile_folder_node(), &max_node_id, *root.get()); 70 details->mobile_folder_node(), &max_node_id, *root.get());
71 details->set_max_id(std::max(max_node_id, details->max_id())); 71 details->set_max_id(std::max(max_node_id, details->max_id()));
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 sequenced_task_runner_(sequenced_task_runner), 153 sequenced_task_runner_(sequenced_task_runner),
154 weak_factory_(this) { 154 weak_factory_(this) {
155 } 155 }
156 156
157 BookmarkStorage::~BookmarkStorage() { 157 BookmarkStorage::~BookmarkStorage() {
158 if (writer_.HasPendingWrite()) 158 if (writer_.HasPendingWrite())
159 writer_.DoScheduledWrite(); 159 writer_.DoScheduledWrite();
160 } 160 }
161 161
162 void BookmarkStorage::LoadBookmarks( 162 void BookmarkStorage::LoadBookmarks(
163 scoped_ptr<BookmarkLoadDetails> details, 163 std::unique_ptr<BookmarkLoadDetails> details,
164 const scoped_refptr<base::SequencedTaskRunner>& task_runner) { 164 const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
165 sequenced_task_runner_->PostTask( 165 sequenced_task_runner_->PostTask(
166 FROM_HERE, 166 FROM_HERE,
167 base::Bind(&LoadCallback, writer_.path(), weak_factory_.GetWeakPtr(), 167 base::Bind(&LoadCallback, writer_.path(), weak_factory_.GetWeakPtr(),
168 base::Passed(&details), base::RetainedRef(task_runner))); 168 base::Passed(&details), base::RetainedRef(task_runner)));
169 } 169 }
170 170
171 void BookmarkStorage::ScheduleSave() { 171 void BookmarkStorage::ScheduleSave() {
172 switch (backup_state_) { 172 switch (backup_state_) {
173 case BACKUP_NONE: 173 case BACKUP_NONE:
(...skipping 21 matching lines...) Expand all
195 void BookmarkStorage::BookmarkModelDeleted() { 195 void BookmarkStorage::BookmarkModelDeleted() {
196 // We need to save now as otherwise by the time SaveNow is invoked 196 // We need to save now as otherwise by the time SaveNow is invoked
197 // the model is gone. 197 // the model is gone.
198 if (writer_.HasPendingWrite()) 198 if (writer_.HasPendingWrite())
199 SaveNow(); 199 SaveNow();
200 model_ = NULL; 200 model_ = NULL;
201 } 201 }
202 202
203 bool BookmarkStorage::SerializeData(std::string* output) { 203 bool BookmarkStorage::SerializeData(std::string* output) {
204 BookmarkCodec codec; 204 BookmarkCodec codec;
205 scoped_ptr<base::Value> value(codec.Encode(model_)); 205 std::unique_ptr<base::Value> value(codec.Encode(model_));
206 JSONStringValueSerializer serializer(output); 206 JSONStringValueSerializer serializer(output);
207 serializer.set_pretty_print(true); 207 serializer.set_pretty_print(true);
208 return serializer.Serialize(*(value.get())); 208 return serializer.Serialize(*(value.get()));
209 } 209 }
210 210
211 void BookmarkStorage::OnLoadFinished(scoped_ptr<BookmarkLoadDetails> details) { 211 void BookmarkStorage::OnLoadFinished(
212 std::unique_ptr<BookmarkLoadDetails> details) {
212 if (!model_) 213 if (!model_)
213 return; 214 return;
214 215
215 model_->DoneLoading(std::move(details)); 216 model_->DoneLoading(std::move(details));
216 } 217 }
217 218
218 bool BookmarkStorage::SaveNow() { 219 bool BookmarkStorage::SaveNow() {
219 if (!model_ || !model_->loaded()) { 220 if (!model_ || !model_->loaded()) {
220 // We should only get here if we have a valid model and it's finished 221 // We should only get here if we have a valid model and it's finished
221 // loading. 222 // loading.
222 NOTREACHED(); 223 NOTREACHED();
223 return false; 224 return false;
224 } 225 }
225 226
226 scoped_ptr<std::string> data(new std::string); 227 std::unique_ptr<std::string> data(new std::string);
227 if (!SerializeData(data.get())) 228 if (!SerializeData(data.get()))
228 return false; 229 return false;
229 writer_.WriteNow(std::move(data)); 230 writer_.WriteNow(std::move(data));
230 return true; 231 return true;
231 } 232 }
232 233
233 } // namespace bookmarks 234 } // namespace bookmarks
OLDNEW
« no previous file with comments | « components/bookmarks/browser/bookmark_storage.h ('k') | components/bookmarks/browser/bookmark_undo_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698