diff options
author | pkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-30 15:43:51 +0000 |
---|---|---|
committer | pkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-30 15:43:51 +0000 |
commit | 65baa222dc4df706827fd8602f9fa38fb76f1fbd (patch) | |
tree | 4aabda67655371f10ddf6be5f0c0e0a6fe8db1f4 /chrome/browser/bookmarks/bookmark_model.cc | |
parent | 5434c3631b104722213ed98c21e95756a132ca7b (diff) | |
download | chromium_src-65baa222dc4df706827fd8602f9fa38fb76f1fbd.zip chromium_src-65baa222dc4df706827fd8602f9fa38fb76f1fbd.tar.gz chromium_src-65baa222dc4df706827fd8602f9fa38fb76f1fbd.tar.bz2 |
Change FaviconData to be able to return data for multiple bitmaps for same icon URL.
Add methods to FaviconService to get gfx::Image more easily
from Favicon.
BUG=138553
Test=Compiles, FaviconHandlerTest.* pass.
Review URL: https://chromiumcodereview.appspot.com/10870022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154157 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_model.cc')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_model.cc | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc index fcdea2f..30d361b 100644 --- a/chrome/browser/bookmarks/bookmark_model.cc +++ b/chrome/browser/bookmarks/bookmark_model.cc @@ -29,6 +29,7 @@ #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_collator.h" +#include "ui/gfx/favicon_size.h" #include "ui/gfx/image/image_util.h" using base::Time; @@ -777,21 +778,16 @@ BookmarkPermanentNode* BookmarkModel::CreatePermanentNode( void BookmarkModel::OnFaviconDataAvailable( FaviconService::Handle handle, - history::FaviconData favicon) { + const history::FaviconImageResult& image_result) { BookmarkNode* node = load_consumer_.GetClientData( FaviconServiceFactory::GetForProfile( profile_, Profile::EXPLICIT_ACCESS), handle); DCHECK(node); node->set_favicon_load_handle(0); - if (favicon.is_valid()) { - scoped_ptr<gfx::Image> favicon_image( - gfx::ImageFromPNGEncodedData(favicon.image_data->front(), - favicon.image_data->size())); - if (favicon_image.get()) { - node->set_favicon(*favicon_image.get()); - FaviconLoaded(node); - } + if (!image_result.image.IsEmpty()) { + node->set_favicon(image_result.image); + FaviconLoaded(node); } } @@ -804,8 +800,9 @@ void BookmarkModel::LoadFavicon(BookmarkNode* node) { profile_, Profile::EXPLICIT_ACCESS); if (!favicon_service) return; - FaviconService::Handle handle = favicon_service->GetFaviconForURL( - profile_, node->url(), history::FAVICON, &load_consumer_, + FaviconService::Handle handle = favicon_service->GetFaviconImageForURL( + profile_, node->url(), history::FAVICON, gfx::kFaviconSize, + &load_consumer_, base::Bind(&BookmarkModel::OnFaviconDataAvailable, base::Unretained(this))); load_consumer_.SetClientData(favicon_service, handle, node); |