OLD | NEW |
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 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 return node->favicon(); | 306 return node->favicon(); |
307 } | 307 } |
308 | 308 |
309 favicon_base::IconType BookmarkModel::GetFaviconType(const BookmarkNode* node) { | 309 favicon_base::IconType BookmarkModel::GetFaviconType(const BookmarkNode* node) { |
310 DCHECK(node); | 310 DCHECK(node); |
311 return node->favicon_type(); | 311 return node->favicon_type(); |
312 } | 312 } |
313 | 313 |
314 void BookmarkModel::SetTitle(const BookmarkNode* node, | 314 void BookmarkModel::SetTitle(const BookmarkNode* node, |
315 const base::string16& title) { | 315 const base::string16& title) { |
316 if (!node) { | 316 DCHECK(node); |
317 NOTREACHED(); | 317 |
318 return; | |
319 } | |
320 if (node->GetTitle() == title) | 318 if (node->GetTitle() == title) |
321 return; | 319 return; |
322 | 320 |
323 if (is_permanent_node(node) && !client_->CanSetPermanentNodeTitle(node)) { | 321 if (is_permanent_node(node) && !client_->CanSetPermanentNodeTitle(node)) { |
324 NOTREACHED(); | 322 NOTREACHED(); |
325 return; | 323 return; |
326 } | 324 } |
327 | 325 |
328 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, | 326 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
329 OnWillChangeBookmarkNode(this, node)); | 327 OnWillChangeBookmarkNode(this, node)); |
330 | 328 |
331 // The title index doesn't support changing the title, instead we remove then | 329 // The title index doesn't support changing the title, instead we remove then |
332 // add it back. | 330 // add it back. |
333 index_->Remove(node); | 331 index_->Remove(node); |
334 AsMutable(node)->SetTitle(title); | 332 AsMutable(node)->SetTitle(title); |
335 index_->Add(node); | 333 index_->Add(node); |
336 | 334 |
337 if (store_.get()) | 335 if (store_.get()) |
338 store_->ScheduleSave(); | 336 store_->ScheduleSave(); |
339 | 337 |
340 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, | 338 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
341 BookmarkNodeChanged(this, node)); | 339 BookmarkNodeChanged(this, node)); |
342 } | 340 } |
343 | 341 |
344 void BookmarkModel::SetURL(const BookmarkNode* node, const GURL& url) { | 342 void BookmarkModel::SetURL(const BookmarkNode* node, const GURL& url) { |
345 if (!node) { | 343 DCHECK(node && !node->is_folder()); |
346 NOTREACHED(); | |
347 return; | |
348 } | |
349 | |
350 // We cannot change the URL of a folder. | |
351 if (node->is_folder()) { | |
352 NOTREACHED(); | |
353 return; | |
354 } | |
355 | 344 |
356 if (node->url() == url) | 345 if (node->url() == url) |
357 return; | 346 return; |
358 | 347 |
359 BookmarkNode* mutable_node = AsMutable(node); | 348 BookmarkNode* mutable_node = AsMutable(node); |
360 mutable_node->InvalidateFavicon(); | 349 mutable_node->InvalidateFavicon(); |
361 CancelPendingFaviconLoadRequests(mutable_node); | 350 CancelPendingFaviconLoadRequests(mutable_node); |
362 | 351 |
363 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, | 352 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
364 OnWillChangeBookmarkNode(this, node)); | 353 OnWillChangeBookmarkNode(this, node)); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 BookmarkNode* node = AsMutable(nodes[i]); | 449 BookmarkNode* node = AsMutable(nodes[i]); |
461 node->InvalidateFavicon(); | 450 node->InvalidateFavicon(); |
462 CancelPendingFaviconLoadRequests(node); | 451 CancelPendingFaviconLoadRequests(node); |
463 FOR_EACH_OBSERVER(BookmarkModelObserver, | 452 FOR_EACH_OBSERVER(BookmarkModelObserver, |
464 observers_, | 453 observers_, |
465 BookmarkNodeFaviconChanged(this, node)); | 454 BookmarkNodeFaviconChanged(this, node)); |
466 } | 455 } |
467 } | 456 } |
468 } | 457 } |
469 | 458 |
470 void BookmarkModel::SetDateAdded(const BookmarkNode* node, | 459 void BookmarkModel::SetDateAdded(const BookmarkNode* node, Time date_added) { |
471 Time date_added) { | 460 DCHECK(node && !is_permanent_node(node)); |
472 if (!node) { | |
473 NOTREACHED(); | |
474 return; | |
475 } | |
476 | 461 |
477 if (node->date_added() == date_added) | 462 if (node->date_added() == date_added) |
478 return; | 463 return; |
479 | 464 |
480 if (is_permanent_node(node)) { | |
481 NOTREACHED(); | |
482 return; | |
483 } | |
484 | |
485 AsMutable(node)->set_date_added(date_added); | 465 AsMutable(node)->set_date_added(date_added); |
486 | 466 |
487 // Syncing might result in dates newer than the folder's last modified date. | 467 // Syncing might result in dates newer than the folder's last modified date. |
488 if (date_added > node->parent()->date_folder_modified()) { | 468 if (date_added > node->parent()->date_folder_modified()) { |
489 // Will trigger store_->ScheduleSave(). | 469 // Will trigger store_->ScheduleSave(). |
490 SetDateFolderModified(node->parent(), date_added); | 470 SetDateFolderModified(node->parent(), date_added); |
491 } else if (store_.get()) { | 471 } else if (store_.get()) { |
492 store_->ScheduleSave(); | 472 store_->ScheduleSave(); |
493 } | 473 } |
494 } | 474 } |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1049 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails( | 1029 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails( |
1050 bb_node, | 1030 bb_node, |
1051 other_node, | 1031 other_node, |
1052 mobile_node, | 1032 mobile_node, |
1053 client_->GetLoadExtraNodesCallback(), | 1033 client_->GetLoadExtraNodesCallback(), |
1054 new BookmarkIndex(client_, accept_languages), | 1034 new BookmarkIndex(client_, accept_languages), |
1055 next_node_id_)); | 1035 next_node_id_)); |
1056 } | 1036 } |
1057 | 1037 |
1058 } // namespace bookmarks | 1038 } // namespace bookmarks |
OLD | NEW |