| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/managed/managed_bookmark_service.h" | 5 #include "components/bookmarks/managed/managed_bookmark_service.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <stdlib.h> | 8 #include <stdlib.h> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "grit/components_strings.h" | 22 #include "grit/components_strings.h" |
| 23 #include "ui/base/l10n/l10n_util.h" | 23 #include "ui/base/l10n/l10n_util.h" |
| 24 | 24 |
| 25 namespace bookmarks { | 25 namespace bookmarks { |
| 26 namespace { | 26 namespace { |
| 27 | 27 |
| 28 // BookmarkPermanentNodeLoader initializes a BookmarkPermanentNode from a JSON | 28 // BookmarkPermanentNodeLoader initializes a BookmarkPermanentNode from a JSON |
| 29 // representation, title id and starting node id. | 29 // representation, title id and starting node id. |
| 30 class BookmarkPermanentNodeLoader { | 30 class BookmarkPermanentNodeLoader { |
| 31 public: | 31 public: |
| 32 BookmarkPermanentNodeLoader(scoped_ptr<BookmarkPermanentNode> node, | 32 BookmarkPermanentNodeLoader( |
| 33 scoped_ptr<base::ListValue> initial_bookmarks, | 33 std::unique_ptr<BookmarkPermanentNode> node, |
| 34 int title_id) | 34 std::unique_ptr<base::ListValue> initial_bookmarks, |
| 35 int title_id) |
| 35 : node_(std::move(node)), | 36 : node_(std::move(node)), |
| 36 initial_bookmarks_(std::move(initial_bookmarks)), | 37 initial_bookmarks_(std::move(initial_bookmarks)), |
| 37 title_id_(title_id) { | 38 title_id_(title_id) { |
| 38 DCHECK(node_); | 39 DCHECK(node_); |
| 39 } | 40 } |
| 40 | 41 |
| 41 ~BookmarkPermanentNodeLoader() {} | 42 ~BookmarkPermanentNodeLoader() {} |
| 42 | 43 |
| 43 // Initializes |node_| from |initial_bookmarks_| and |title_id_| and returns | 44 // Initializes |node_| from |initial_bookmarks_| and |title_id_| and returns |
| 44 // it. The ids are assigned starting at |next_node_id| and the value is | 45 // it. The ids are assigned starting at |next_node_id| and the value is |
| 45 // updated as a side-effect. | 46 // updated as a side-effect. |
| 46 scoped_ptr<BookmarkPermanentNode> Load(int64_t* next_node_id) { | 47 std::unique_ptr<BookmarkPermanentNode> Load(int64_t* next_node_id) { |
| 47 node_->set_id(*next_node_id); | 48 node_->set_id(*next_node_id); |
| 48 *next_node_id = ManagedBookmarksTracker::LoadInitial( | 49 *next_node_id = ManagedBookmarksTracker::LoadInitial( |
| 49 node_.get(), initial_bookmarks_.get(), node_->id() + 1); | 50 node_.get(), initial_bookmarks_.get(), node_->id() + 1); |
| 50 node_->set_visible(!node_->empty()); | 51 node_->set_visible(!node_->empty()); |
| 51 node_->SetTitle(l10n_util::GetStringUTF16(title_id_)); | 52 node_->SetTitle(l10n_util::GetStringUTF16(title_id_)); |
| 52 return std::move(node_); | 53 return std::move(node_); |
| 53 } | 54 } |
| 54 | 55 |
| 55 private: | 56 private: |
| 56 scoped_ptr<BookmarkPermanentNode> node_; | 57 std::unique_ptr<BookmarkPermanentNode> node_; |
| 57 scoped_ptr<base::ListValue> initial_bookmarks_; | 58 std::unique_ptr<base::ListValue> initial_bookmarks_; |
| 58 int title_id_; | 59 int title_id_; |
| 59 | 60 |
| 60 DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNodeLoader); | 61 DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNodeLoader); |
| 61 }; | 62 }; |
| 62 | 63 |
| 63 // Returns a list of initialized BookmarkPermanentNodes using |next_node_id| to | 64 // Returns a list of initialized BookmarkPermanentNodes using |next_node_id| to |
| 64 // start assigning id. |next_node_id| is updated as a side effect of calling | 65 // start assigning id. |next_node_id| is updated as a side effect of calling |
| 65 // this method. | 66 // this method. |
| 66 BookmarkPermanentNodeList LoadExtraNodes( | 67 BookmarkPermanentNodeList LoadExtraNodes( |
| 67 ScopedVector<BookmarkPermanentNodeLoader> loaders, | 68 ScopedVector<BookmarkPermanentNodeLoader> loaders, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 101 |
| 101 GetManagementDomainCallback unbound_callback; | 102 GetManagementDomainCallback unbound_callback; |
| 102 supervised_bookmarks_tracker_.reset(new ManagedBookmarksTracker( | 103 supervised_bookmarks_tracker_.reset(new ManagedBookmarksTracker( |
| 103 bookmark_model_, prefs_, true /* is_supervised */, unbound_callback)); | 104 bookmark_model_, prefs_, true /* is_supervised */, unbound_callback)); |
| 104 } | 105 } |
| 105 | 106 |
| 106 LoadExtraCallback ManagedBookmarkService::GetLoadExtraNodesCallback() { | 107 LoadExtraCallback ManagedBookmarkService::GetLoadExtraNodesCallback() { |
| 107 // Create two BookmarkPermanentNode with a temporary id of 0. They will be | 108 // Create two BookmarkPermanentNode with a temporary id of 0. They will be |
| 108 // populated and assigned proper ids in the LoadExtraNodes callback. Until | 109 // populated and assigned proper ids in the LoadExtraNodes callback. Until |
| 109 // then, they are owned by the returned closure. | 110 // then, they are owned by the returned closure. |
| 110 scoped_ptr<BookmarkPermanentNode> managed(new BookmarkPermanentNode(0)); | 111 std::unique_ptr<BookmarkPermanentNode> managed(new BookmarkPermanentNode(0)); |
| 111 scoped_ptr<BookmarkPermanentNode> supervised(new BookmarkPermanentNode(0)); | 112 std::unique_ptr<BookmarkPermanentNode> supervised( |
| 113 new BookmarkPermanentNode(0)); |
| 112 | 114 |
| 113 managed_node_ = managed.get(); | 115 managed_node_ = managed.get(); |
| 114 supervised_node_ = supervised.get(); | 116 supervised_node_ = supervised.get(); |
| 115 | 117 |
| 116 ScopedVector<BookmarkPermanentNodeLoader> loaders; | 118 ScopedVector<BookmarkPermanentNodeLoader> loaders; |
| 117 loaders.push_back(new BookmarkPermanentNodeLoader( | 119 loaders.push_back(new BookmarkPermanentNodeLoader( |
| 118 std::move(managed), | 120 std::move(managed), |
| 119 managed_bookmarks_tracker_->GetInitialManagedBookmarks(), | 121 managed_bookmarks_tracker_->GetInitialManagedBookmarks(), |
| 120 IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME)); | 122 IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME)); |
| 121 loaders.push_back(new BookmarkPermanentNodeLoader( | 123 loaders.push_back(new BookmarkPermanentNodeLoader( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 } | 179 } |
| 178 | 180 |
| 179 managed_bookmarks_tracker_.reset(); | 181 managed_bookmarks_tracker_.reset(); |
| 180 supervised_bookmarks_tracker_.reset(); | 182 supervised_bookmarks_tracker_.reset(); |
| 181 | 183 |
| 182 managed_node_ = nullptr; | 184 managed_node_ = nullptr; |
| 183 supervised_node_ = nullptr; | 185 supervised_node_ = nullptr; |
| 184 } | 186 } |
| 185 | 187 |
| 186 } // namespace bookmarks | 188 } // namespace bookmarks |
| OLD | NEW |