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

Side by Side Diff: chrome/browser/bookmarks/bookmark_model.cc

Issue 7327007: Moving notification types which are chrome specific to a new header file chrome_notification_type... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/bookmarks/bookmark_model.h" 5 #include "chrome/browser/bookmarks/bookmark_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/memory/scoped_vector.h" 12 #include "base/memory/scoped_vector.h"
13 #include "build/build_config.h" 13 #include "build/build_config.h"
14 #include "chrome/browser/bookmarks/bookmark_index.h" 14 #include "chrome/browser/bookmarks/bookmark_index.h"
15 #include "chrome/browser/bookmarks/bookmark_model_observer.h" 15 #include "chrome/browser/bookmarks/bookmark_model_observer.h"
16 #include "chrome/browser/bookmarks/bookmark_storage.h" 16 #include "chrome/browser/bookmarks/bookmark_storage.h"
17 #include "chrome/browser/bookmarks/bookmark_utils.h" 17 #include "chrome/browser/bookmarks/bookmark_utils.h"
18 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/history/history_notifications.h" 19 #include "chrome/browser/history/history_notifications.h"
20 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/common/chrome_notification_types.h"
21 #include "chrome/common/chrome_switches.h" 22 #include "chrome/common/chrome_switches.h"
22 #include "content/common/notification_service.h" 23 #include "content/common/notification_service.h"
23 #include "grit/generated_resources.h" 24 #include "grit/generated_resources.h"
24 #include "ui/base/l10n/l10n_util.h" 25 #include "ui/base/l10n/l10n_util.h"
25 #include "ui/base/l10n/l10n_util_collator.h" 26 #include "ui/base/l10n/l10n_util_collator.h"
26 #include "ui/gfx/codec/png_codec.h" 27 #include "ui/gfx/codec/png_codec.h"
27 28
28 using base::Time; 29 using base::Time;
29 30
30 namespace { 31 namespace {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 void BookmarkModel::Load() { 138 void BookmarkModel::Load() {
138 if (store_.get()) { 139 if (store_.get()) {
139 // If the store is non-null, it means Load was already invoked. Load should 140 // If the store is non-null, it means Load was already invoked. Load should
140 // only be invoked once. 141 // only be invoked once.
141 NOTREACHED(); 142 NOTREACHED();
142 return; 143 return;
143 } 144 }
144 145
145 // Listen for changes to favicons so that we can update the favicon of the 146 // Listen for changes to favicons so that we can update the favicon of the
146 // node appropriately. 147 // node appropriately.
147 registrar_.Add(this, NotificationType::FAVICON_CHANGED, 148 registrar_.Add(this, chrome::NOTIFICATION_FAVICON_CHANGED,
148 Source<Profile>(profile_)); 149 Source<Profile>(profile_));
149 150
150 // Load the bookmarks. BookmarkStorage notifies us when done. 151 // Load the bookmarks. BookmarkStorage notifies us when done.
151 store_ = new BookmarkStorage(profile_, this); 152 store_ = new BookmarkStorage(profile_, this);
152 store_->LoadBookmarks(CreateLoadDetails()); 153 store_->LoadBookmarks(CreateLoadDetails());
153 } 154 }
154 155
155 const BookmarkNode* BookmarkModel::GetParentForNewNodes() { 156 const BookmarkNode* BookmarkModel::GetParentForNewNodes() {
156 std::vector<const BookmarkNode*> nodes = 157 std::vector<const BookmarkNode*> nodes =
157 bookmark_utils::GetMostRecentlyModifiedFolders(this, 1); 158 bookmark_utils::GetMostRecentlyModifiedFolders(this, 1);
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 594
594 loaded_ = true; 595 loaded_ = true;
595 596
596 loaded_signal_.Signal(); 597 loaded_signal_.Signal();
597 598
598 // Notify our direct observers. 599 // Notify our direct observers.
599 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, Loaded(this)); 600 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, Loaded(this));
600 601
601 // And generic notification. 602 // And generic notification.
602 NotificationService::current()->Notify( 603 NotificationService::current()->Notify(
603 NotificationType::BOOKMARK_MODEL_LOADED, 604 chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED,
604 Source<Profile>(profile_), 605 Source<Profile>(profile_),
605 NotificationService::NoDetails()); 606 NotificationService::NoDetails());
606 } 607 }
607 608
608 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) { 609 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) {
609 scoped_ptr<BookmarkNode> node(delete_me); 610 scoped_ptr<BookmarkNode> node(delete_me);
610 611
611 BookmarkNode* parent = AsMutable(node->parent()); 612 BookmarkNode* parent = AsMutable(node->parent());
612 DCHECK(parent); 613 DCHECK(parent);
613 int index = parent->GetIndexOf(node.get()); 614 int index = parent->GetIndexOf(node.get());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 } 646 }
646 647
647 if (profile_) { 648 if (profile_) {
648 HistoryService* history = 649 HistoryService* history =
649 profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); 650 profile_->GetHistoryService(Profile::EXPLICIT_ACCESS);
650 if (history) 651 if (history)
651 history->URLsNoLongerBookmarked(details.changed_urls); 652 history->URLsNoLongerBookmarked(details.changed_urls);
652 } 653 }
653 654
654 NotificationService::current()->Notify( 655 NotificationService::current()->Notify(
655 NotificationType::URLS_STARRED, 656 chrome::NOTIFICATION_URLS_STARRED,
656 Source<Profile>(profile_), 657 Source<Profile>(profile_),
657 Details<history::URLsStarredDetails>(&details)); 658 Details<history::URLsStarredDetails>(&details));
658 } 659 }
659 660
660 BookmarkNode* BookmarkModel::AddNode(BookmarkNode* parent, 661 BookmarkNode* BookmarkModel::AddNode(BookmarkNode* parent,
661 int index, 662 int index,
662 BookmarkNode* node, 663 BookmarkNode* node,
663 bool was_bookmarked) { 664 bool was_bookmarked) {
664 parent->Add(node, index); 665 parent->Add(node, index);
665 666
666 if (store_.get()) 667 if (store_.get())
667 store_->ScheduleSave(); 668 store_->ScheduleSave();
668 669
669 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 670 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
670 BookmarkNodeAdded(this, parent, index)); 671 BookmarkNodeAdded(this, parent, index));
671 672
672 index_->Add(node); 673 index_->Add(node);
673 674
674 if (node->is_url() && !was_bookmarked) { 675 if (node->is_url() && !was_bookmarked) {
675 history::URLsStarredDetails details(true); 676 history::URLsStarredDetails details(true);
676 details.changed_urls.insert(node->GetURL()); 677 details.changed_urls.insert(node->GetURL());
677 NotificationService::current()->Notify( 678 NotificationService::current()->Notify(
678 NotificationType::URLS_STARRED, 679 chrome::NOTIFICATION_URLS_STARRED,
679 Source<Profile>(profile_), 680 Source<Profile>(profile_),
680 Details<history::URLsStarredDetails>(&details)); 681 Details<history::URLsStarredDetails>(&details));
681 } 682 }
682 return node; 683 return node;
683 } 684 }
684 685
685 void BookmarkModel::BlockTillLoaded() { 686 void BookmarkModel::BlockTillLoaded() {
686 loaded_signal_.Wait(); 687 loaded_signal_.Wait();
687 } 688 }
688 689
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 void BookmarkModel::CancelPendingFaviconLoadRequests(BookmarkNode* node) { 762 void BookmarkModel::CancelPendingFaviconLoadRequests(BookmarkNode* node) {
762 if (node->favicon_load_handle()) { 763 if (node->favicon_load_handle()) {
763 FaviconService* favicon_service = 764 FaviconService* favicon_service =
764 profile_->GetFaviconService(Profile::EXPLICIT_ACCESS); 765 profile_->GetFaviconService(Profile::EXPLICIT_ACCESS);
765 if (favicon_service) 766 if (favicon_service)
766 favicon_service->CancelRequest(node->favicon_load_handle()); 767 favicon_service->CancelRequest(node->favicon_load_handle());
767 node->set_favicon_load_handle(0); 768 node->set_favicon_load_handle(0);
768 } 769 }
769 } 770 }
770 771
771 void BookmarkModel::Observe(NotificationType type, 772 void BookmarkModel::Observe(int type,
772 const NotificationSource& source, 773 const NotificationSource& source,
773 const NotificationDetails& details) { 774 const NotificationDetails& details) {
774 switch (type.value) { 775 switch (type) {
775 case NotificationType::FAVICON_CHANGED: { 776 case chrome::NOTIFICATION_FAVICON_CHANGED: {
776 // Prevent the observers from getting confused for multiple favicon loads. 777 // Prevent the observers from getting confused for multiple favicon loads.
777 Details<history::FaviconChangeDetails> favicon_details(details); 778 Details<history::FaviconChangeDetails> favicon_details(details);
778 for (std::set<GURL>::const_iterator i = favicon_details->urls.begin(); 779 for (std::set<GURL>::const_iterator i = favicon_details->urls.begin();
779 i != favicon_details->urls.end(); ++i) { 780 i != favicon_details->urls.end(); ++i) {
780 std::vector<const BookmarkNode*> nodes; 781 std::vector<const BookmarkNode*> nodes;
781 GetNodesByURL(*i, &nodes); 782 GetNodesByURL(*i, &nodes);
782 for (size_t i = 0; i < nodes.size(); ++i) { 783 for (size_t i = 0; i < nodes.size(); ++i) {
783 // Got an updated favicon, for a URL, do a new request. 784 // Got an updated favicon, for a URL, do a new request.
784 BookmarkNode* node = AsMutable(nodes[i]); 785 BookmarkNode* node = AsMutable(nodes[i]);
785 node->InvalidateFavicon(); 786 node->InvalidateFavicon();
(...skipping 28 matching lines...) Expand all
814 file_changed_ = true; 815 file_changed_ = true;
815 } 816 }
816 817
817 BookmarkLoadDetails* BookmarkModel::CreateLoadDetails() { 818 BookmarkLoadDetails* BookmarkModel::CreateLoadDetails() {
818 BookmarkNode* bb_node = CreatePermanentNode(BookmarkNode::BOOKMARK_BAR); 819 BookmarkNode* bb_node = CreatePermanentNode(BookmarkNode::BOOKMARK_BAR);
819 BookmarkNode* other_node = CreatePermanentNode(BookmarkNode::OTHER_NODE); 820 BookmarkNode* other_node = CreatePermanentNode(BookmarkNode::OTHER_NODE);
820 BookmarkNode* synced_node = CreatePermanentNode(BookmarkNode::SYNCED); 821 BookmarkNode* synced_node = CreatePermanentNode(BookmarkNode::SYNCED);
821 return new BookmarkLoadDetails(bb_node, other_node, synced_node, 822 return new BookmarkLoadDetails(bb_node, other_node, synced_node,
822 new BookmarkIndex(profile()), next_node_id_); 823 new BookmarkIndex(profile()), next_node_id_);
823 } 824 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698