diff options
24 files changed, 138 insertions, 115 deletions
diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/favicon_helper.cc index 07840d87..4ea0e89 100644 --- a/chrome/browser/android/favicon_helper.cc +++ b/chrome/browser/android/favicon_helper.cc @@ -125,7 +125,7 @@ jboolean FaviconHelper::GetLocalFaviconImageForURL( new ScopedJavaGlobalRef<jobject>(); j_scoped_favicon_callback->Reset(env, j_favicon_image_callback); - FaviconService::FaviconImageCallback callback_runner = base::Bind( + favicon_base::FaviconImageCallback callback_runner = base::Bind( &OnLocalFaviconAvailable, base::Owned(j_scoped_favicon_callback)); favicon_service->GetFaviconImageForURL( @@ -161,7 +161,7 @@ void FaviconHelper::GetLargestRawFaviconForUrl( new ScopedJavaGlobalRef<jobject>(); j_scoped_favicon_callback->Reset(env, j_favicon_image_callback); - FaviconService::FaviconRawCallback callback_runner = base::Bind( + favicon_base::FaviconRawCallback callback_runner = base::Bind( &OnFaviconBitmapResultAvailable, base::Owned(j_scoped_favicon_callback)); favicon_service->GetLargestRawFaviconForURL( profile, diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc index b31b80f..b57fb06 100644 --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc @@ -60,7 +60,7 @@ base::CancelableTaskTracker::TaskId ChromeBookmarkClient::GetFaviconImageForURL( const GURL& page_url, int icon_types, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker) { FaviconService* favicon_service = FaviconServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.h b/chrome/browser/bookmarks/chrome_bookmark_client.h index b1caf69..bf079d7 100644 --- a/chrome/browser/bookmarks/chrome_bookmark_client.h +++ b/chrome/browser/bookmarks/chrome_bookmark_client.h @@ -34,7 +34,7 @@ class ChromeBookmarkClient : public BookmarkClient, const GURL& page_url, int icon_types, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker) OVERRIDE; virtual bool SupportsTypedCountForNodes() OVERRIDE; virtual void GetTypedCountForNodes( diff --git a/chrome/browser/extensions/extension_web_ui.cc b/chrome/browser/extensions/extension_web_ui.cc index 14988da..8e8419e 100644 --- a/chrome/browser/extensions/extension_web_ui.cc +++ b/chrome/browser/extensions/extension_web_ui.cc @@ -17,6 +17,7 @@ #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/image_loader.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" @@ -87,7 +88,7 @@ void UnregisterAndReplaceOverrideForWebContents(const std::string& page, // Run favicon callbck with image result. If no favicon was available then // |image| will be empty. void RunFaviconCallbackAsync( - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, const gfx::Image& image) { std::vector<favicon_base::FaviconBitmapResult>* favicon_bitmap_results = new std::vector<favicon_base::FaviconBitmapResult>(); @@ -405,7 +406,7 @@ void ExtensionWebUI::UnregisterChromeURLOverrides( void ExtensionWebUI::GetFaviconForURL( Profile* profile, const GURL& page_url, - const FaviconService::FaviconResultsCallback& callback) { + const favicon_base::FaviconResultsCallback& callback) { // Even when the extensions service is enabled by default, it's still // disabled in incognito mode. ExtensionService* service = profile->GetExtensionService(); diff --git a/chrome/browser/extensions/extension_web_ui.h b/chrome/browser/extensions/extension_web_ui.h index 4bd2cc1..110ef10 100644 --- a/chrome/browser/extensions/extension_web_ui.h +++ b/chrome/browser/extensions/extension_web_ui.h @@ -8,8 +8,8 @@ #include <string> #include "base/memory/scoped_ptr.h" -#include "chrome/browser/favicon/favicon_service.h" #include "chrome/common/extensions/manifest_url_handler.h" +#include "components/favicon_base/favicon_callback.h" #include "content/public/browser/web_ui_controller.h" class Profile; @@ -67,7 +67,7 @@ class ExtensionWebUI : public content::WebUIController { static void GetFaviconForURL( Profile* profile, const GURL& page_url, - const FaviconService::FaviconResultsCallback& callback); + const favicon_base::FaviconResultsCallback& callback); private: // Unregister the specified override, and if it's the currently active one, diff --git a/chrome/browser/favicon/favicon_handler.cc b/chrome/browser/favicon/favicon_handler.cc index 5964cca..5563444 100644 --- a/chrome/browser/favicon/favicon_handler.cc +++ b/chrome/browser/favicon/favicon_handler.cc @@ -12,6 +12,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/memory/ref_counted_memory.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/favicon/favicon_util.h" #include "components/favicon_base/select_favicon_frames.h" @@ -489,7 +490,7 @@ void FaviconHandler::UpdateFaviconMappingAndFetch( const GURL& page_url, const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { // TODO(pkotwicz): pass in all of |image_urls_| to // UpdateFaviconMappingsAndFetch(). @@ -502,7 +503,7 @@ void FaviconHandler::UpdateFaviconMappingAndFetch( void FaviconHandler::GetFaviconFromFaviconService( const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { client_->GetFaviconService()->GetFavicon( icon_url, icon_type, preferred_icon_size(), callback, tracker); @@ -511,7 +512,7 @@ void FaviconHandler::GetFaviconFromFaviconService( void FaviconHandler::GetFaviconForURLFromFaviconService( const GURL& page_url, int icon_types, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { client_->GetFaviconService()->GetFaviconForURL( FaviconService::FaviconForURLParams( diff --git a/chrome/browser/favicon/favicon_handler.h b/chrome/browser/favicon/favicon_handler.h index e3dfe3f..68903f6 100644 --- a/chrome/browser/favicon/favicon_handler.h +++ b/chrome/browser/favicon/favicon_handler.h @@ -13,9 +13,9 @@ #include "base/callback_forward.h" #include "base/memory/ref_counted.h" #include "base/task/cancelable_task_tracker.h" -#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_tab_helper.h" #include "components/favicon/core/favicon_url.h" +#include "components/favicon_base/favicon_callback.h" #include "ui/gfx/favicon_size.h" #include "ui/gfx/image/image.h" #include "url/gurl.h" @@ -126,19 +126,19 @@ class FaviconHandler { const GURL& page_url, const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); virtual void GetFaviconFromFaviconService( const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); virtual void GetFaviconForURLFromFaviconService( const GURL& page_url, int icon_types, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); virtual void SetHistoryFavicons(const GURL& page_url, diff --git a/chrome/browser/favicon/favicon_handler_unittest.cc b/chrome/browser/favicon/favicon_handler_unittest.cc index bf590d5..8a3c4e5 100644 --- a/chrome/browser/favicon/favicon_handler_unittest.cc +++ b/chrome/browser/favicon/favicon_handler_unittest.cc @@ -4,6 +4,7 @@ #include "base/memory/scoped_ptr.h" #include "chrome/browser/favicon/favicon_handler.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/profiles/profile.h" @@ -135,7 +136,7 @@ class HistoryRequestHandler { HistoryRequestHandler(const GURL& page_url, const GURL& icon_url, int icon_type, - const FaviconService::FaviconResultsCallback& callback) + const favicon_base::FaviconResultsCallback& callback) : page_url_(page_url), icon_url_(icon_url), icon_type_(icon_type), @@ -163,7 +164,7 @@ class HistoryRequestHandler { const std::vector<unsigned char> bitmap_data_; const gfx::Size size_; std::vector<favicon_base::FaviconBitmapResult> history_results_; - FaviconService::FaviconResultsCallback callback_; + favicon_base::FaviconResultsCallback callback_; private: DISALLOW_COPY_AND_ASSIGN(HistoryRequestHandler); @@ -293,7 +294,7 @@ class TestFaviconHandler : public FaviconHandler { const GURL& page_url, const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) OVERRIDE { history_handler_.reset(new HistoryRequestHandler(page_url, icon_url, icon_type, callback)); @@ -302,7 +303,7 @@ class TestFaviconHandler : public FaviconHandler { virtual void GetFaviconFromFaviconService( const GURL& icon_url, favicon_base::IconType icon_type, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) OVERRIDE { history_handler_.reset(new HistoryRequestHandler(GURL(), icon_url, icon_type, callback)); @@ -311,7 +312,7 @@ class TestFaviconHandler : public FaviconHandler { virtual void GetFaviconForURLFromFaviconService( const GURL& page_url, int icon_types, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) OVERRIDE { history_handler_.reset(new HistoryRequestHandler(page_url, GURL(), icon_types, callback)); @@ -1004,7 +1005,7 @@ TEST_F(FaviconHandlerTest, UpdateDuringDownloading) { // Reset the history_handler to verify whether favicon is request from // history. // Save the callback for late use. - FaviconService::FaviconResultsCallback callback = history_handler->callback_; + favicon_base::FaviconResultsCallback callback = history_handler->callback_; helper.set_history_handler(NULL); // Simulates download succeed. diff --git a/chrome/browser/favicon/favicon_service.cc b/chrome/browser/favicon/favicon_service.cc index bca611a..e2374e7 100644 --- a/chrome/browser/favicon/favicon_service.cc +++ b/chrome/browser/favicon/favicon_service.cc @@ -27,7 +27,7 @@ namespace { void CancelOrRunFaviconResultsCallback( const base::CancelableTaskTracker::IsCanceledCallback& is_canceled, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, const std::vector<favicon_base::FaviconBitmapResult>& results) { if (is_canceled.Run()) return; @@ -37,7 +37,7 @@ void CancelOrRunFaviconResultsCallback( // Helper to run callback with empty results if we cannot get the history // service. base::CancelableTaskTracker::TaskId RunWithEmptyResultAsync( - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { return tracker->PostTask( base::MessageLoopProxy::current().get(), @@ -50,12 +50,12 @@ base::CancelableTaskTracker::TaskId GetFaviconForChromeURL( Profile* profile, const GURL& page_url, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { base::CancelableTaskTracker::IsCanceledCallback is_canceled_cb; base::CancelableTaskTracker::TaskId id = tracker->NewTrackedTaskId(&is_canceled_cb); - FaviconService::FaviconResultsCallback cancelable_cb = + favicon_base::FaviconResultsCallback cancelable_cb = Bind(&CancelOrRunFaviconResultsCallback, is_canceled_cb, callback); ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(profile, page_url, desired_scale_factors, cancelable_cb); @@ -72,7 +72,7 @@ FaviconService::FaviconService(Profile* profile) // static void FaviconService::FaviconResultsCallbackRunner( - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, const std::vector<favicon_base::FaviconBitmapResult>* results) { callback.Run(*results); } @@ -81,9 +81,9 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImage( const GURL& icon_url, favicon_base::IconType icon_type, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker) { - FaviconResultsCallback callback_runner = + favicon_base::FaviconResultsCallback callback_runner = Bind(&FaviconService::RunFaviconImageCallbackWithBitmapResults, base::Unretained(this), callback, desired_size_in_dip); if (history_service_) { @@ -102,9 +102,9 @@ base::CancelableTaskTracker::TaskId FaviconService::GetRawFavicon( favicon_base::IconType icon_type, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker) { - FaviconResultsCallback callback_runner = + favicon_base::FaviconResultsCallback callback_runner = Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, base::Unretained(this), callback, desired_size_in_dip, desired_scale_factor); @@ -127,7 +127,7 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFavicon( const GURL& icon_url, favicon_base::IconType icon_type, int desired_size_in_dip, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { if (history_service_) { std::vector<GURL> icon_urls; @@ -146,7 +146,7 @@ FaviconService::UpdateFaviconMappingsAndFetch( const std::vector<GURL>& icon_urls, int icon_types, int desired_size_in_dip, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { if (history_service_) { return history_service_->UpdateFaviconMappingsAndFetch( @@ -159,7 +159,7 @@ FaviconService::UpdateFaviconMappingsAndFetch( base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImageForURL( const FaviconForURLParams& params, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker) { return GetFaviconForURLImpl( params, @@ -174,7 +174,7 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImageForURL( base::CancelableTaskTracker::TaskId FaviconService::GetRawFaviconForURL( const FaviconForURLParams& params, ui::ScaleFactor desired_scale_factor, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker) { std::vector<ui::ScaleFactor> desired_scale_factors; desired_scale_factors.push_back(desired_scale_factor); @@ -194,9 +194,9 @@ base::CancelableTaskTracker::TaskId FaviconService::GetLargestRawFaviconForURL( const GURL& page_url, const std::vector<int>& icon_types, int minimum_size_in_pixels, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker) { - FaviconResultsCallback favicon_results_callback = + favicon_base::FaviconResultsCallback favicon_results_callback = Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, base::Unretained(this), callback, 0, ui::ScaleFactor()); if (page_url.SchemeIs(content::kChromeUIScheme) || @@ -214,7 +214,7 @@ base::CancelableTaskTracker::TaskId FaviconService::GetLargestRawFaviconForURL( base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL( const FaviconForURLParams& params, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { return GetFaviconForURLImpl(params, FaviconUtil::GetFaviconScaleFactors(), @@ -224,13 +224,13 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL( base::CancelableTaskTracker::TaskId FaviconService::GetLargestRawFaviconForID( favicon_base::FaviconID favicon_id, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker) { // Use 0 as |desired_size_in_dip| to get the largest bitmap for |favicon_id| // without any resizing. int desired_size_in_dip = 0; ui::ScaleFactor desired_scale_factor = ui::SCALE_FACTOR_100P; - FaviconResultsCallback callback_runner = + favicon_base::FaviconResultsCallback callback_runner = Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, base::Unretained(this), callback, desired_size_in_dip, desired_scale_factor); @@ -323,7 +323,7 @@ FaviconService::~FaviconService() {} base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( const FaviconForURLParams& params, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { if (params.page_url.SchemeIs(content::kChromeUIScheme) || params.page_url.SchemeIs(extensions::kExtensionScheme)) { @@ -341,7 +341,7 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( } void FaviconService::RunFaviconImageCallbackWithBitmapResults( - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, int desired_size_in_dip, const std::vector<favicon_base::FaviconBitmapResult>& favicon_bitmap_results) { @@ -358,7 +358,7 @@ void FaviconService::RunFaviconImageCallbackWithBitmapResults( } void FaviconService::RunFaviconRawCallbackWithBitmapResults( - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, const std::vector<favicon_base::FaviconBitmapResult>& diff --git a/chrome/browser/favicon/favicon_service.h b/chrome/browser/favicon/favicon_service.h index 665d36a..dfbd1f4 100644 --- a/chrome/browser/favicon/favicon_service.h +++ b/chrome/browser/favicon/favicon_service.h @@ -11,6 +11,7 @@ #include "base/containers/hash_tables.h" #include "base/memory/ref_counted.h" #include "base/task/cancelable_task_tracker.h" +#include "components/favicon_base/favicon_callback.h" #include "components/favicon_base/favicon_types.h" #include "components/keyed_service/core/keyed_service.h" #include "ui/base/layout.h" @@ -20,10 +21,6 @@ class HistoryService; struct ImportedFaviconUsage; class Profile; -namespace chrome { -struct FaviconImageResult; -} - // The favicon service provides methods to access favicons. It calls the history // backend behind the scenes. class FaviconService : public KeyedService { @@ -46,7 +43,13 @@ class FaviconService : public KeyedService { int desired_size_in_dip; }; - // Callback for GetFaviconImage() and GetFaviconImageForURL(). + // We usually pass parameters with pointer to avoid copy. This function is a + // helper to run FaviconResultsCallback with pointer parameters. + static void FaviconResultsCallbackRunner( + const favicon_base::FaviconResultsCallback& callback, + const std::vector<favicon_base::FaviconBitmapResult>* results); + + // The first argument of |callback| is a |const FaviconImageResult&|. Of which // |FaviconImageResult::image| is constructed from the bitmaps for the // passed in URL and icon types which most which closely match the passed in // |desired_size_in_dip| at the scale factors supported by the current @@ -55,31 +58,6 @@ class FaviconService : public KeyedService { // |image| originate from. // TODO(pkotwicz): Enable constructing |image| from bitmaps from several // icon URLs. - typedef base::Callback<void(const favicon_base::FaviconImageResult&)> - FaviconImageCallback; - - // Callback for GetRawFavicon(), GetRawFaviconForURL() and - // GetLargestRawFavicon(). - // See function for details on value. - typedef base::Callback<void(const favicon_base::FaviconBitmapResult&)> - FaviconRawCallback; - - // Callback for GetFavicon() and GetFaviconForURL(). - // - // The first argument is the set of bitmaps for the passed in URL and - // icon types whose pixel sizes best match the passed in - // |desired_size_in_dip| at the scale factors supported by the current - // platform (eg MacOS) in addition to 1x. The vector has at most one result - // for each of the scale factors. There are less entries if a single result - // is the best bitmap to use for several scale factors. - typedef base::Callback<void(const std::vector< - favicon_base::FaviconBitmapResult>&)> FaviconResultsCallback; - - // We usually pass parameters with pointer to avoid copy. This function is a - // helper to run FaviconResultsCallback with pointer parameters. - static void FaviconResultsCallbackRunner( - const FaviconResultsCallback& callback, - const std::vector<favicon_base::FaviconBitmapResult>* results); // Requests the favicon at |icon_url| of |icon_type| whose size most closely // matches |desired_size_in_dip|. If |desired_size_in_dip| is 0, the largest @@ -93,7 +71,7 @@ class FaviconService : public KeyedService { const GURL& icon_url, favicon_base::IconType icon_type, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker); base::CancelableTaskTracker::TaskId GetRawFavicon( @@ -101,14 +79,20 @@ class FaviconService : public KeyedService { favicon_base::IconType icon_type, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker); + // The first argument for |callback| is the set of bitmaps for the passed in + // URL and icon types whose pixel sizes best match the passed in + // |desired_size_in_dip| at the scale factors supported by the current + // platform (eg MacOS) in addition to 1x. The vector has at most one result + // for each of the scale factors. There are less entries if a single result + // is the best bitmap to use for several scale factors. base::CancelableTaskTracker::TaskId GetFavicon( const GURL& icon_url, favicon_base::IconType icon_type, int desired_size_in_dip, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Set the favicon mappings to |page_url| for |icon_types| in the history @@ -136,7 +120,7 @@ class FaviconService : public KeyedService { const std::vector<GURL>& icon_urls, int icon_types, int desired_size_in_dip, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Requests the favicons of any of |icon_types| whose pixel sizes most @@ -152,13 +136,13 @@ class FaviconService : public KeyedService { // Note. |callback| is always run asynchronously. base::CancelableTaskTracker::TaskId GetFaviconImageForURL( const FaviconForURLParams& params, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker); base::CancelableTaskTracker::TaskId GetRawFaviconForURL( const FaviconForURLParams& params, ui::ScaleFactor desired_scale_factor, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker); // See HistoryService::GetLargestFaviconForURL(). @@ -167,12 +151,12 @@ class FaviconService : public KeyedService { const GURL& page_url, const std::vector<int>& icon_types, int minimum_size_in_pixels, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker); base::CancelableTaskTracker::TaskId GetFaviconForURL( const FaviconForURLParams& params, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Used to request a bitmap for the favicon with |favicon_id| which is not @@ -181,7 +165,7 @@ class FaviconService : public KeyedService { // returned. base::CancelableTaskTracker::TaskId GetLargestRawFaviconForID( favicon_base::FaviconID favicon_id, - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker); // Marks all types of favicon for the page as being out of date. @@ -242,7 +226,7 @@ class FaviconService : public KeyedService { base::CancelableTaskTracker::TaskId GetFaviconForURLImpl( const FaviconForURLParams& params, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Intermediate callback for GetFaviconImage() and GetFaviconImageForURL() @@ -251,7 +235,7 @@ class FaviconService : public KeyedService { // runs // |callback|. void RunFaviconImageCallbackWithBitmapResults( - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, int desired_size_in_dip, const std::vector<favicon_base::FaviconBitmapResult>& favicon_bitmap_results); @@ -260,7 +244,7 @@ class FaviconService : public KeyedService { // so that history service can deal solely with FaviconResultsCallback. // Resizes favicon_base::FaviconBitmapResult if necessary and runs |callback|. void RunFaviconRawCallbackWithBitmapResults( - const FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, const std::vector<favicon_base::FaviconBitmapResult>& diff --git a/chrome/browser/favicon/favicon_tab_helper.cc b/chrome/browser/favicon/favicon_tab_helper.cc index de713fa..28bd44b 100644 --- a/chrome/browser/favicon/favicon_tab_helper.cc +++ b/chrome/browser/favicon/favicon_tab_helper.cc @@ -7,6 +7,7 @@ #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/favicon/favicon_handler.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/favicon/favicon_util.h" #include "chrome/browser/history/history_service.h" diff --git a/chrome/browser/history/android/sqlite_cursor.cc b/chrome/browser/history/android/sqlite_cursor.cc index cde8674..f570c7c5 100644 --- a/chrome/browser/history/android/sqlite_cursor.cc +++ b/chrome/browser/history/android/sqlite_cursor.cc @@ -9,6 +9,7 @@ #include "base/android/jni_string.h" #include "base/bind.h" #include "base/logging.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/history/android/android_history_types.h" #include "content/public/browser/browser_thread.h" #include "jni/SQLiteCursor_jni.h" @@ -202,7 +203,7 @@ bool SQLiteCursor::GetFavicon(favicon_base::FaviconID id, void SQLiteCursor::GetFaviconForIDInUIThread( favicon_base::FaviconID id, - const FaviconService::FaviconRawCallback& callback) { + const favicon_base::FaviconRawCallback& callback) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); if (!tracker_.get()) tracker_.reset(new base::CancelableTaskTracker()); diff --git a/chrome/browser/history/android/sqlite_cursor.h b/chrome/browser/history/android/sqlite_cursor.h index 0a4349b..f5c7870 100644 --- a/chrome/browser/history/android/sqlite_cursor.h +++ b/chrome/browser/history/android/sqlite_cursor.h @@ -16,9 +16,11 @@ #include "base/synchronization/waitable_event.h" #include "base/task/cancelable_task_tracker.h" #include "chrome/browser/common/cancelable_request.h" -#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/history/android/android_history_provider_service.h" #include "chrome/browser/history/history_types.h" +#include "components/favicon_base/favicon_callback.h" + +class FaviconService; // This class is JNI implementation of // org.chromium.chrome.database.SqliteCursor, it uses the AndroidStatement to @@ -151,7 +153,7 @@ class SQLiteCursor { void GetFaviconForIDInUIThread( favicon_base::FaviconID id, - const FaviconService::FaviconRawCallback& callback); + const favicon_base::FaviconRawCallback& callback); // The callback function of FaviconService::GetLargestRawFaviconForID(). void OnFaviconData(const favicon_base::FaviconBitmapResult& bitmap_result); diff --git a/chrome/browser/history/android/sqlite_cursor_unittest.cc b/chrome/browser/history/android/sqlite_cursor_unittest.cc index d01e269..f2fff07 100644 --- a/chrome/browser/history/android/sqlite_cursor_unittest.cc +++ b/chrome/browser/history/android/sqlite_cursor_unittest.cc @@ -12,6 +12,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/history/android/android_history_provider_service.h" #include "chrome/browser/history/android/android_history_types.h" #include "chrome/browser/history/android/android_time.h" diff --git a/chrome/browser/history/history_service.cc b/chrome/browser/history/history_service.cc index 1ec08d7..2f3a300 100644 --- a/chrome/browser/history/history_service.cc +++ b/chrome/browser/history/history_service.cc @@ -74,12 +74,12 @@ namespace { static const char* kHistoryThreadName = "Chrome_HistoryThread"; void RunWithFaviconResults( - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, std::vector<favicon_base::FaviconBitmapResult>* bitmap_results) { callback.Run(*bitmap_results); } -void RunWithFaviconResult(const FaviconService::FaviconRawCallback& callback, +void RunWithFaviconResult(const favicon_base::FaviconRawCallback& callback, favicon_base::FaviconBitmapResult* bitmap_result) { callback.Run(*bitmap_result); } @@ -559,7 +559,7 @@ base::CancelableTaskTracker::TaskId HistoryService::GetFavicons( int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { DCHECK(thread_checker_.CalledOnValidThread()); @@ -583,7 +583,7 @@ base::CancelableTaskTracker::TaskId HistoryService::GetFaviconsForURL( int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { DCHECK(thread_checker_.CalledOnValidThread()); @@ -606,7 +606,7 @@ base::CancelableTaskTracker::TaskId HistoryService::GetLargestFaviconForURL( const GURL& page_url, const std::vector<int>& icon_types, int minimum_size_in_pixels, - const FaviconService::FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker) { DCHECK(thread_checker_.CalledOnValidThread()); @@ -628,7 +628,7 @@ base::CancelableTaskTracker::TaskId HistoryService::GetFaviconForID( favicon_base::FaviconID favicon_id, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { DCHECK(thread_checker_.CalledOnValidThread()); @@ -653,7 +653,7 @@ HistoryService::UpdateFaviconMappingsAndFetch( int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) { DCHECK(thread_checker_.CalledOnValidThread()); diff --git a/chrome/browser/history/history_service.h b/chrome/browser/history/history_service.h index aaedce4..1c6bc0e 100644 --- a/chrome/browser/history/history_service.h +++ b/chrome/browser/history/history_service.h @@ -22,12 +22,12 @@ #include "base/threading/thread_checker.h" #include "base/time/time.h" #include "chrome/browser/common/cancelable_request.h" -#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/history/delete_directive_handler.h" #include "chrome/browser/history/history_types.h" #include "chrome/browser/history/typed_url_syncable_service.h" #include "chrome/browser/search_engines/template_url_id.h" #include "chrome/common/ref_counted_util.h" +#include "components/favicon_base/favicon_callback.h" #include "components/keyed_service/core/keyed_service.h" #include "components/visitedlink/browser/visitedlink_delegate.h" #include "content/public/browser/download_manager_delegate.h" @@ -49,6 +49,7 @@ class PageUsageData; class PageUsageRequest; class Profile; struct HistoryURLProviderParams; +struct ImportedFaviconUsage; namespace base { class FilePath; @@ -663,7 +664,7 @@ class HistoryService : public CancelableRequestProvider, int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Used by the FaviconService to get favicons mapped to |page_url| for @@ -680,7 +681,7 @@ class HistoryService : public CancelableRequestProvider, int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Used by FaviconService to find the first favicon bitmap whose width and @@ -698,7 +699,7 @@ class HistoryService : public CancelableRequestProvider, const GURL& page_url, const std::vector<int>& icon_types, int minimum_size_in_pixels, - const FaviconService::FaviconRawCallback& callback, + const favicon_base::FaviconRawCallback& callback, base::CancelableTaskTracker* tracker); // Used by the FaviconService to get the favicon bitmap which most closely @@ -709,7 +710,7 @@ class HistoryService : public CancelableRequestProvider, favicon_base::FaviconID favicon_id, int desired_size_in_dip, ui::ScaleFactor desired_scale_factor, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Used by the FaviconService to replace the favicon mappings to |page_url| @@ -737,7 +738,7 @@ class HistoryService : public CancelableRequestProvider, int icon_types, int desired_size_in_dip, const std::vector<ui::ScaleFactor>& desired_scale_factors, - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker); // Used by FaviconService to set a favicon for |page_url| and |icon_url| with diff --git a/chrome/browser/sync/test/integration/bookmarks_helper.cc b/chrome/browser/sync/test/integration/bookmarks_helper.cc index e49b085..b732b10 100644 --- a/chrome/browser/sync/test/integration/bookmarks_helper.cc +++ b/chrome/browser/sync/test/integration/bookmarks_helper.cc @@ -14,6 +14,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/synchronization/waitable_event.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/favicon/favicon_util.h" #include "chrome/browser/history/history_db_task.h" diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index a5aae0e..40c5538 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -13,6 +13,7 @@ #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" #include "chrome/browser/extensions/extension_web_ui.h" +#include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/history/history_types.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -519,7 +520,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, } void RunFaviconCallbackAsync( - const FaviconService::FaviconResultsCallback& callback, + const favicon_base::FaviconResultsCallback& callback, const std::vector<favicon_base::FaviconBitmapResult>* results) { base::MessageLoopProxy::current()->PostTask( FROM_HERE, @@ -565,7 +566,7 @@ void ChromeWebUIControllerFactory::GetFaviconForURL( Profile* profile, const GURL& page_url, const std::vector<ui::ScaleFactor>& scale_factors, - const FaviconService::FaviconResultsCallback& callback) const { + const favicon_base::FaviconResultsCallback& callback) const { // Before determining whether page_url is an extension url, we must handle // overrides. This changes urls in |kChromeUIScheme| to extension urls, and // allows to use ExtensionWebUI::GetFaviconForURL. diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h index 718ca6c..dfd5598 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h @@ -7,9 +7,10 @@ #include "base/basictypes.h" #include "base/memory/singleton.h" +#include "components/favicon_base/favicon_callback.h" #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_controller_factory.h" -#include "chrome/browser/favicon/favicon_service.h" +#include "ui/base/layout.h" class Profile; @@ -36,7 +37,7 @@ class ChromeWebUIControllerFactory : public content::WebUIControllerFactory { Profile* profile, const GURL& page_url, const std::vector<ui::ScaleFactor>& scale_factors, - const FaviconService::FaviconResultsCallback& callback) const; + const favicon_base::FaviconResultsCallback& callback) const; static ChromeWebUIControllerFactory* GetInstance(); diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookmarks/browser/bookmark_client.cc index 8d8ed94..6fbb2d0 100644 --- a/components/bookmarks/browser/bookmark_client.cc +++ b/components/bookmarks/browser/bookmark_client.cc @@ -14,7 +14,7 @@ base::CancelableTaskTracker::TaskId BookmarkClient::GetFaviconImageForURL( const GURL& page_url, int icon_types, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker) { return base::CancelableTaskTracker::kBadTaskId; } diff --git a/components/bookmarks/browser/bookmark_client.h b/components/bookmarks/browser/bookmark_client.h index 77ed563..ffdb64c 100644 --- a/components/bookmarks/browser/bookmark_client.h +++ b/components/bookmarks/browser/bookmark_client.h @@ -11,6 +11,7 @@ #include "base/callback_forward.h" #include "base/task/cancelable_task_tracker.h" +#include "components/favicon_base/favicon_callback.h" class BookmarkNode; class GURL; @@ -19,18 +20,10 @@ namespace base { struct UserMetricsAction; } -namespace favicon_base { -struct FaviconImageResult; -} - // This class abstracts operations that depends on the embedder's environment, // e.g. Chrome. class BookmarkClient { public: - // Callback for GetFaviconImageForURL(). - typedef base::Callback<void(const favicon_base::FaviconImageResult&)> - FaviconImageCallback; - // Types representing a set of BookmarkNode and a mapping from BookmarkNode // to the number of time the corresponding URL has been typed by the user in // the Omnibox. @@ -50,7 +43,7 @@ class BookmarkClient { const GURL& page_url, int icon_types, int desired_size_in_dip, - const FaviconImageCallback& callback, + const favicon_base::FaviconImageCallback& callback, base::CancelableTaskTracker* tracker); // Returns true if the embedder supports typed count for URL. diff --git a/components/favicon_base.gypi b/components/favicon_base.gypi index a46b289..d1d0e2e 100644 --- a/components/favicon_base.gypi +++ b/components/favicon_base.gypi @@ -14,6 +14,7 @@ '../url/url.gyp:url_lib', ], 'sources': [ + 'favicon_base/favicon_callback.h', 'favicon_base/favicon_types.cc', 'favicon_base/favicon_types.h', 'favicon_base/select_favicon_frames.cc', diff --git a/components/favicon_base/favicon_callback.h b/components/favicon_base/favicon_callback.h new file mode 100644 index 0000000..437c4ec --- /dev/null +++ b/components/favicon_base/favicon_callback.h @@ -0,0 +1,33 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FAVICON_BASE_FAVICON_CALLBACK_H_ +#define COMPONENTS_FAVICON_BASE_FAVICON_CALLBACK_H_ + +#include <vector> + +#include "base/callback.h" + +namespace favicon_base { + +struct FaviconBitmapResult; +struct FaviconImageResult; + +// Callback for functions that can be used to return a |gfx::Image| and the +// |GURL| it is loaded from. They are returned as a |FaviconImageResult| object. +typedef base::Callback<void(const FaviconImageResult&)> FaviconImageCallback; + +// Callback for functions returning raw data for a favicon. In +// |FaviconBitmapResult|, the data is not yet converted as a |gfx::Image|. +typedef base::Callback<void(const FaviconBitmapResult&)> FaviconRawCallback; + +// Callback for functions returning raw data for a favicon in multiple +// resolution. In |FaviconBitmapResult|, the data is not yet converted as a +// |gfx::Image|. +typedef base::Callback<void(const std::vector<FaviconBitmapResult>&)> + FaviconResultsCallback; + +} // namespace favicon_base + +#endif // COMPONENTS_FAVICON_BASE_FAVICON_CALLBACK_H_ diff --git a/components/favicon_base/favicon_types.h b/components/favicon_base/favicon_types.h index 7f4a7b2..34fd57e 100644 --- a/components/favicon_base/favicon_types.h +++ b/components/favicon_base/favicon_types.h @@ -72,6 +72,6 @@ struct FaviconBitmapResult { // HistoryBackend::SetFavicons(). typedef FaviconBitmapResult FaviconBitmapData; -} // namespace chrome +} // namespace favicon_base #endif // COMPONENTS_FAVICON_BASE_FAVICON_TYPES_H_ |