| OLD | NEW |
| 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 #ifndef CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ |
| 6 #define CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ | 6 #define CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 } | 27 } |
| 28 | 28 |
| 29 // The favicon service provides methods to access favicons. It calls the history | 29 // The favicon service provides methods to access favicons. It calls the history |
| 30 // backend behind the scenes. | 30 // backend behind the scenes. |
| 31 // | 31 // |
| 32 // This service is thread safe. Each request callback is invoked in the | 32 // This service is thread safe. Each request callback is invoked in the |
| 33 // thread that made the request. | 33 // thread that made the request. |
| 34 class FaviconService : public CancelableRequestProvider, | 34 class FaviconService : public CancelableRequestProvider, |
| 35 public BrowserContextKeyedService { | 35 public BrowserContextKeyedService { |
| 36 public: | 36 public: |
| 37 explicit FaviconService(HistoryService* history_service); | 37 explicit FaviconService(Profile* profile); |
| 38 | 38 |
| 39 virtual ~FaviconService(); | 39 virtual ~FaviconService(); |
| 40 | 40 |
| 41 // Auxiliary argument structure for requesting favicons for URLs. | 41 // Auxiliary argument structure for requesting favicons for URLs. |
| 42 struct FaviconForURLParams { | 42 struct FaviconForURLParams { |
| 43 FaviconForURLParams(Profile* profile, | 43 FaviconForURLParams(const GURL& page_url, |
| 44 const GURL& page_url, | |
| 45 int icon_types, | 44 int icon_types, |
| 46 int desired_size_in_dip) | 45 int desired_size_in_dip) |
| 47 : profile(profile), | 46 : page_url(page_url), |
| 48 page_url(page_url), | |
| 49 icon_types(icon_types), | 47 icon_types(icon_types), |
| 50 desired_size_in_dip(desired_size_in_dip) {} | 48 desired_size_in_dip(desired_size_in_dip) {} |
| 51 | 49 |
| 52 Profile* profile; | |
| 53 GURL page_url; | 50 GURL page_url; |
| 54 int icon_types; | 51 int icon_types; |
| 55 int desired_size_in_dip; | 52 int desired_size_in_dip; |
| 56 }; | 53 }; |
| 57 | 54 |
| 58 // Callback for GetFaviconImage() and GetFaviconImageForURL(). | 55 // Callback for GetFaviconImage() and GetFaviconImageForURL(). |
| 59 // |FaviconImageResult::image| is constructed from the bitmaps for the | 56 // |FaviconImageResult::image| is constructed from the bitmaps for the |
| 60 // passed in URL and icon types which most which closely match the passed in | 57 // passed in URL and icon types which most which closely match the passed in |
| 61 // |desired_size_in_dip| at the scale factors supported by the current | 58 // |desired_size_in_dip| at the scale factors supported by the current |
| 62 // platform (eg MacOS) in addition to 1x. | 59 // platform (eg MacOS) in addition to 1x. |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 | 234 |
| 238 // Avoid repeated requests to download missing favicon. | 235 // Avoid repeated requests to download missing favicon. |
| 239 void UnableToDownloadFavicon(const GURL& icon_url); | 236 void UnableToDownloadFavicon(const GURL& icon_url); |
| 240 bool WasUnableToDownloadFavicon(const GURL& icon_url) const; | 237 bool WasUnableToDownloadFavicon(const GURL& icon_url) const; |
| 241 void ClearUnableToDownloadFavicons(); | 238 void ClearUnableToDownloadFavicons(); |
| 242 | 239 |
| 243 private: | 240 private: |
| 244 typedef uint32 MissingFaviconURLHash; | 241 typedef uint32 MissingFaviconURLHash; |
| 245 base::hash_set<MissingFaviconURLHash> missing_favicon_urls_; | 242 base::hash_set<MissingFaviconURLHash> missing_favicon_urls_; |
| 246 HistoryService* history_service_; | 243 HistoryService* history_service_; |
| 244 Profile* profile_; |
| 247 | 245 |
| 248 // Helper function for GetFaviconImageForURL(), GetRawFaviconForURL() and | 246 // Helper function for GetFaviconImageForURL(), GetRawFaviconForURL() and |
| 249 // GetFaviconForURL(). | 247 // GetFaviconForURL(). |
| 250 CancelableTaskTracker::TaskId GetFaviconForURLImpl( | 248 CancelableTaskTracker::TaskId GetFaviconForURLImpl( |
| 251 const FaviconForURLParams& params, | 249 const FaviconForURLParams& params, |
| 252 const std::vector<ui::ScaleFactor>& desired_scale_factors, | 250 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
| 253 const FaviconResultsCallback& callback, | 251 const FaviconResultsCallback& callback, |
| 254 CancelableTaskTracker* tracker); | 252 CancelableTaskTracker* tracker); |
| 255 | 253 |
| 256 // Intermediate callback for GetFaviconImage() and GetFaviconImageForURL() | 254 // Intermediate callback for GetFaviconImage() and GetFaviconImageForURL() |
| (...skipping 11 matching lines...) Expand all Loading... |
| 268 void RunFaviconRawCallbackWithBitmapResults( | 266 void RunFaviconRawCallbackWithBitmapResults( |
| 269 const FaviconRawCallback& callback, | 267 const FaviconRawCallback& callback, |
| 270 int desired_size_in_dip, | 268 int desired_size_in_dip, |
| 271 ui::ScaleFactor desired_scale_factor, | 269 ui::ScaleFactor desired_scale_factor, |
| 272 const std::vector<chrome::FaviconBitmapResult>& favicon_bitmap_results); | 270 const std::vector<chrome::FaviconBitmapResult>& favicon_bitmap_results); |
| 273 | 271 |
| 274 DISALLOW_COPY_AND_ASSIGN(FaviconService); | 272 DISALLOW_COPY_AND_ASSIGN(FaviconService); |
| 275 }; | 273 }; |
| 276 | 274 |
| 277 #endif // CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ | 275 #endif // CHROME_BROWSER_FAVICON_FAVICON_SERVICE_H_ |
| OLD | NEW |