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

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

Issue 10828263: Moving FaviconService to a ProfileKeyedService. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: resyncing with library after revert Created 8 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/memory/scoped_vector.h" 12 #include "base/memory/scoped_vector.h"
13 #include "base/string_util.h" 13 #include "base/string_util.h"
14 #include "build/build_config.h" 14 #include "build/build_config.h"
15 #include "chrome/browser/bookmarks/bookmark_expanded_state_tracker.h" 15 #include "chrome/browser/bookmarks/bookmark_expanded_state_tracker.h"
16 #include "chrome/browser/bookmarks/bookmark_index.h" 16 #include "chrome/browser/bookmarks/bookmark_index.h"
17 #include "chrome/browser/bookmarks/bookmark_model_observer.h" 17 #include "chrome/browser/bookmarks/bookmark_model_observer.h"
18 #include "chrome/browser/bookmarks/bookmark_storage.h" 18 #include "chrome/browser/bookmarks/bookmark_storage.h"
19 #include "chrome/browser/bookmarks/bookmark_utils.h" 19 #include "chrome/browser/bookmarks/bookmark_utils.h"
20 #include "chrome/browser/browser_process.h" 20 #include "chrome/browser/browser_process.h"
21 #include "chrome/browser/favicon/favicon_service_factory.h"
21 #include "chrome/browser/history/history_notifications.h" 22 #include "chrome/browser/history/history_notifications.h"
22 #include "chrome/browser/history/history_service_factory.h" 23 #include "chrome/browser/history/history_service_factory.h"
23 #include "chrome/browser/prefs/pref_service.h" 24 #include "chrome/browser/prefs/pref_service.h"
24 #include "chrome/browser/profiles/profile.h" 25 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/common/chrome_notification_types.h" 26 #include "chrome/common/chrome_notification_types.h"
26 #include "chrome/common/pref_names.h" 27 #include "chrome/common/pref_names.h"
27 #include "content/public/browser/notification_service.h" 28 #include "content/public/browser/notification_service.h"
28 #include "grit/generated_resources.h" 29 #include "grit/generated_resources.h"
29 #include "ui/base/l10n/l10n_util.h" 30 #include "ui/base/l10n/l10n_util.h"
30 #include "ui/base/l10n/l10n_util_collator.h" 31 #include "ui/base/l10n/l10n_util_collator.h"
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 node->SetTitle(l10n_util::GetStringUTF16(title_id)); 773 node->SetTitle(l10n_util::GetStringUTF16(title_id));
773 node->set_type(type); 774 node->set_type(type);
774 return node; 775 return node;
775 } 776 }
776 777
777 void BookmarkModel::OnFaviconDataAvailable( 778 void BookmarkModel::OnFaviconDataAvailable(
778 FaviconService::Handle handle, 779 FaviconService::Handle handle,
779 history::FaviconData favicon) { 780 history::FaviconData favicon) {
780 BookmarkNode* node = 781 BookmarkNode* node =
781 load_consumer_.GetClientData( 782 load_consumer_.GetClientData(
782 profile_->GetFaviconService(Profile::EXPLICIT_ACCESS), handle); 783 FaviconServiceFactory::GetForProfile(
784 profile_, Profile::EXPLICIT_ACCESS), handle);
783 DCHECK(node); 785 DCHECK(node);
784 node->set_favicon_load_handle(0); 786 node->set_favicon_load_handle(0);
785 if (favicon.is_valid()) { 787 if (favicon.is_valid()) {
786 scoped_ptr<gfx::Image> favicon_image( 788 scoped_ptr<gfx::Image> favicon_image(
787 gfx::ImageFromPNGEncodedData(favicon.image_data->front(), 789 gfx::ImageFromPNGEncodedData(favicon.image_data->front(),
788 favicon.image_data->size())); 790 favicon.image_data->size()));
789 if (favicon_image.get()) { 791 if (favicon_image.get()) {
790 node->set_favicon(*favicon_image.get()); 792 node->set_favicon(*favicon_image.get());
791 FaviconLoaded(node); 793 FaviconLoaded(node);
792 } 794 }
793 } 795 }
794 } 796 }
795 797
796 void BookmarkModel::LoadFavicon(BookmarkNode* node) { 798 void BookmarkModel::LoadFavicon(BookmarkNode* node) {
797 if (node->is_folder()) 799 if (node->is_folder())
798 return; 800 return;
799 801
800 DCHECK(node->url().is_valid()); 802 DCHECK(node->url().is_valid());
801 FaviconService* favicon_service = 803 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile(
802 profile_->GetFaviconService(Profile::EXPLICIT_ACCESS); 804 profile_, Profile::EXPLICIT_ACCESS);
803 if (!favicon_service) 805 if (!favicon_service)
804 return; 806 return;
805 FaviconService::Handle handle = favicon_service->GetFaviconForURL( 807 FaviconService::Handle handle = favicon_service->GetFaviconForURL(
806 node->url(), history::FAVICON, &load_consumer_, 808 profile_, node->url(), history::FAVICON, &load_consumer_,
807 base::Bind(&BookmarkModel::OnFaviconDataAvailable, 809 base::Bind(&BookmarkModel::OnFaviconDataAvailable,
808 base::Unretained(this))); 810 base::Unretained(this)));
809 load_consumer_.SetClientData(favicon_service, handle, node); 811 load_consumer_.SetClientData(favicon_service, handle, node);
810 node->set_favicon_load_handle(handle); 812 node->set_favicon_load_handle(handle);
811 } 813 }
812 814
813 void BookmarkModel::FaviconLoaded(const BookmarkNode* node) { 815 void BookmarkModel::FaviconLoaded(const BookmarkNode* node) {
814 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 816 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
815 BookmarkNodeFaviconChanged(this, node)); 817 BookmarkNodeFaviconChanged(this, node));
816 } 818 }
817 819
818 void BookmarkModel::CancelPendingFaviconLoadRequests(BookmarkNode* node) { 820 void BookmarkModel::CancelPendingFaviconLoadRequests(BookmarkNode* node) {
819 if (node->favicon_load_handle()) { 821 if (node->favicon_load_handle()) {
820 FaviconService* favicon_service = 822 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile(
821 profile_->GetFaviconService(Profile::EXPLICIT_ACCESS); 823 profile_, Profile::EXPLICIT_ACCESS);
822 if (favicon_service) 824 if (favicon_service)
823 favicon_service->CancelRequest(node->favicon_load_handle()); 825 favicon_service->CancelRequest(node->favicon_load_handle());
824 node->set_favicon_load_handle(0); 826 node->set_favicon_load_handle(0);
825 } 827 }
826 } 828 }
827 829
828 void BookmarkModel::Observe(int type, 830 void BookmarkModel::Observe(int type,
829 const content::NotificationSource& source, 831 const content::NotificationSource& source,
830 const content::NotificationDetails& details) { 832 const content::NotificationDetails& details) {
831 switch (type) { 833 switch (type) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 BookmarkLoadDetails* BookmarkModel::CreateLoadDetails() { 872 BookmarkLoadDetails* BookmarkModel::CreateLoadDetails() {
871 BookmarkPermanentNode* bb_node = 873 BookmarkPermanentNode* bb_node =
872 CreatePermanentNode(BookmarkNode::BOOKMARK_BAR); 874 CreatePermanentNode(BookmarkNode::BOOKMARK_BAR);
873 BookmarkPermanentNode* other_node = 875 BookmarkPermanentNode* other_node =
874 CreatePermanentNode(BookmarkNode::OTHER_NODE); 876 CreatePermanentNode(BookmarkNode::OTHER_NODE);
875 BookmarkPermanentNode* mobile_node = 877 BookmarkPermanentNode* mobile_node =
876 CreatePermanentNode(BookmarkNode::MOBILE); 878 CreatePermanentNode(BookmarkNode::MOBILE);
877 return new BookmarkLoadDetails(bb_node, other_node, mobile_node, 879 return new BookmarkLoadDetails(bb_node, other_node, mobile_node,
878 new BookmarkIndex(profile_), next_node_id_); 880 new BookmarkIndex(profile_), next_node_id_);
879 } 881 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_html_writer_unittest.cc ('k') | chrome/browser/favicon/favicon_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698