Chromium Code Reviews| Index: components/favicon/core/favicon_driver_observer.h |
| diff --git a/components/favicon/core/favicon_driver_observer.h b/components/favicon/core/favicon_driver_observer.h |
| index eb3fd48f61ef712aa9fe1510eb5087019d504552..d34ef0d13bc9d5e79657dac9bda47b5742dd2fe0 100644 |
| --- a/components/favicon/core/favicon_driver_observer.h |
| +++ b/components/favicon/core/favicon_driver_observer.h |
| @@ -6,6 +6,7 @@ |
| #define COMPONENTS_FAVICON_CORE_FAVICON_DRIVER_OBSERVER_H_ |
| #include "base/macros.h" |
| +#include "url/gurl.h" |
|
sky
2015/11/20 00:44:26
You should be able to forward declare GURL.
|
| namespace gfx { |
| class Image; |
| @@ -19,17 +20,47 @@ class FaviconDriver; |
| // FaviconDriver. |
| class FaviconDriverObserver { |
| public: |
| + // The type of the icon in the OnFaviconUpdated() notification. |
| + enum NotificationIconType { |
| + // Multi-resolution 16x16 (gfx::kFaviconSize) device independant pixel |
| + // favicon of type favicon_base::FAVICON. If the page does not provide a |
| + // 16x16 DIP icon, the icon is generated by resizing another icon. |
| + NON_TOUCH_16_DIP, |
|
sky
2015/11/20 00:44:26
I'm not a fan of NON_TOUCH_ here. I prefer DEFAULT
pkotwicz
2015/11/21 23:04:08
I think that the names that I have are more descri
|
| + // Largest icon specified by the page which is of type |
| + // favicon_base::FAVICON. |
| + NON_TOUCH_LARGEST, |
| + // Largest icon specified by the page which is of type |
| + // favicon_base::TOUCH_ICON or of type favicon_base::TOUCH_PRECOMPOSED_ICON. |
| + TOUCH_LARGEST |
| + }; |
| + |
| FaviconDriverObserver() {} |
| virtual ~FaviconDriverObserver() {} |
| - // Called when favicon |image| is retrieved from either web site or cached |
| - // storage. |
| - virtual void OnFaviconAvailable(const gfx::Image& image) = 0; |
| - |
| - // Called when favicon has changed for the current page. |icon_url_changed| is |
| - // true if the favicon URL has also changed. |
| + // Called when either: |
| + // 1) Chrome determines the best icon for the page for |
| + // |notification_icon_type|. |
| + // Not called if the site does not provide a custom icon and the best icon |
| + // for the page is the default one provided by Chrome. |
| + // 2) The site changes its icon via Javascript. |
| + // |icon_url_changed| is false if OnFaviconAvailable() was already called for |
| + // |notification_icon_type| for the current page URL and |icon_url| is the |
| + // same as for the previous notification for |notification_icon_type|. |
| + // Example: |
| + // Page: www.google.com |
| + // Icon: www.google.com/favicon.ico |
| + // Data for www.google.com/favicon.ico in the database has expired. |
| + // i) OnFaviconUpdated() is called with |icon_url_changed| == true to notify |
| + // that a favicon was found in the history database. |
| + // ii) As the history data has expired, the icon at www.google.com/favicon.ico |
| + // is redownloaded and stored into the database. OnFaviconUpdated() is |
| + // called with |icon_url_changed| == false to notify that the icon in the |
| + // history database MAY have changed visually. |
| virtual void OnFaviconUpdated(FaviconDriver* favicon_driver, |
| - bool icon_url_changed) = 0; |
| + NotificationIconType notification_icon_type, |
| + const GURL& icon_url, |
| + bool icon_url_changed, |
| + const gfx::Image& image) = 0; |
| private: |
| DISALLOW_COPY_AND_ASSIGN(FaviconDriverObserver); |