| 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 |