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 "chrome/browser/supervised_user/supervised_user_bookmarks_handler.h" | 5 #include "chrome/browser/supervised_user/supervised_user_bookmarks_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/memory/ptr_util.h" |
11 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
12 #include "base/values.h" | 13 #include "base/values.h" |
13 #include "components/url_formatter/url_fixer.h" | 14 #include "components/url_formatter/url_fixer.h" |
14 | 15 |
15 namespace { | 16 namespace { |
16 | 17 |
17 // Keys of relevant managed user settings. | 18 // Keys of relevant managed user settings. |
18 const char kKeyLink[] = "SupervisedBookmarkLink"; | 19 const char kKeyLink[] = "SupervisedBookmarkLink"; |
19 const char kKeyFolder[] = "SupervisedBookmarkFolder"; | 20 const char kKeyFolder[] = "SupervisedBookmarkFolder"; |
20 | 21 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 // To avoid an infinite loop in the case of a non-existing parent, we take | 166 // To avoid an infinite loop in the case of a non-existing parent, we take |
166 // care to stop when no folders could be added in a round. | 167 // care to stop when no folders could be added in a round. |
167 std::vector<Folder> folders = folders_; | 168 std::vector<Folder> folders = folders_; |
168 std::vector<Folder> folders_failed; | 169 std::vector<Folder> folders_failed; |
169 while (!folders.empty() && folders.size() != folders_failed.size()) { | 170 while (!folders.empty() && folders.size() != folders_failed.size()) { |
170 folders_failed.clear(); | 171 folders_failed.clear(); |
171 for (const auto& folder : folders) { | 172 for (const auto& folder : folders) { |
172 std::unique_ptr<base::DictionaryValue> node(new base::DictionaryValue); | 173 std::unique_ptr<base::DictionaryValue> node(new base::DictionaryValue); |
173 node->SetIntegerWithoutPathExpansion(kId, folder.id); | 174 node->SetIntegerWithoutPathExpansion(kId, folder.id); |
174 node->SetStringWithoutPathExpansion(kName, folder.name); | 175 node->SetStringWithoutPathExpansion(kName, folder.name); |
175 node->SetWithoutPathExpansion(kChildren, new base::ListValue); | 176 node->SetWithoutPathExpansion(kChildren, |
| 177 base::MakeUnique<base::ListValue>()); |
176 if (!AddNodeToTree(folder.parent_id, std::move(node))) | 178 if (!AddNodeToTree(folder.parent_id, std::move(node))) |
177 folders_failed.push_back(folder); | 179 folders_failed.push_back(folder); |
178 } | 180 } |
179 folders.swap(folders_failed); | 181 folders.swap(folders_failed); |
180 } | 182 } |
181 if (!folders_failed.empty()) { | 183 if (!folders_failed.empty()) { |
182 LOG(WARNING) << "SupervisedUserBookmarksHandler::AddFoldersToTree" | 184 LOG(WARNING) << "SupervisedUserBookmarksHandler::AddFoldersToTree" |
183 << " failed adding the following folders (id,name,parent):"; | 185 << " failed adding the following folders (id,name,parent):"; |
184 for (const Folder& folder : folders_failed) { | 186 for (const Folder& folder : folders_failed) { |
185 LOG(WARNING) << folder.id << ", " << folder.name << ", " | 187 LOG(WARNING) << folder.id << ", " << folder.name << ", " |
(...skipping 22 matching lines...) Expand all Loading... |
208 | 210 |
209 bool SupervisedUserBookmarksHandler::AddNodeToTree( | 211 bool SupervisedUserBookmarksHandler::AddNodeToTree( |
210 int parent_id, | 212 int parent_id, |
211 std::unique_ptr<base::DictionaryValue> node) { | 213 std::unique_ptr<base::DictionaryValue> node) { |
212 base::ListValue* parent = FindFolder(root_.get(), parent_id); | 214 base::ListValue* parent = FindFolder(root_.get(), parent_id); |
213 if (!parent) | 215 if (!parent) |
214 return false; | 216 return false; |
215 parent->Append(std::move(node)); | 217 parent->Append(std::move(node)); |
216 return true; | 218 return true; |
217 } | 219 } |
OLD | NEW |