| Index: chrome/browser/favicon/favicon_tab_helper.h
|
| diff --git a/chrome/browser/favicon/favicon_tab_helper.h b/chrome/browser/favicon/favicon_tab_helper.h
|
| index 537ee406a3b21dc04d1b6f70a497e12bc11b1403..e90709035e381daa313576d3b1004ffecf7f8575 100644
|
| --- a/chrome/browser/favicon/favicon_tab_helper.h
|
| +++ b/chrome/browser/favicon/favicon_tab_helper.h
|
| @@ -5,115 +5,23 @@
|
| #ifndef CHROME_BROWSER_FAVICON_FAVICON_TAB_HELPER_H_
|
| #define CHROME_BROWSER_FAVICON_FAVICON_TAB_HELPER_H_
|
|
|
| -#include <vector>
|
| +#include "base/macros.h"
|
| +#include "components/favicon/content/content_favicon_driver.h"
|
|
|
| -#include "base/basictypes.h"
|
| -#include "base/callback.h"
|
| -#include "base/observer_list.h"
|
| -#include "components/favicon/core/favicon_driver.h"
|
| -#include "content/public/browser/web_contents_observer.h"
|
| -#include "content/public/browser/web_contents_user_data.h"
|
| -#include "content/public/common/favicon_url.h"
|
| -
|
| -class GURL;
|
| -class SkBitmap;
|
| -
|
| -namespace gfx {
|
| -class Image;
|
| -}
|
| -
|
| -namespace bookmarks {
|
| -class BookmarkModel;
|
| -}
|
| -
|
| -namespace content {
|
| -struct FaviconStatus;
|
| -}
|
| -
|
| -namespace favicon {
|
| -class FaviconDriverObserver;
|
| -class FaviconHandler;
|
| -class FaviconService;
|
| -}
|
| -
|
| -namespace history {
|
| -class HistoryService;
|
| -}
|
| -
|
| -// FaviconTabHelper works with favicon::FaviconHandlers to fetch the favicons.
|
| -//
|
| -// FetchFavicon fetches the given page's icons. It requests the icons from the
|
| -// history backend. If the icon is not available or expired, the icon will be
|
| -// downloaded and saved in the history backend.
|
| -//
|
| -class FaviconTabHelper : public content::WebContentsObserver,
|
| - public favicon::FaviconDriver,
|
| - public content::WebContentsUserData<FaviconTabHelper> {
|
| +// FaviconTabHelper provides helper factory for ContentFaviconDriver.
|
| +class FaviconTabHelper : public favicon::ContentFaviconDriver {
|
| public:
|
| - ~FaviconTabHelper() override;
|
| -
|
| static void CreateForWebContents(content::WebContents* web_contents);
|
|
|
| - // Initiates loading the favicon for the specified url.
|
| - void FetchFavicon(const GURL& url);
|
| -
|
| - // Returns the favicon for this tab, or IDR_DEFAULT_FAVICON if the tab does
|
| - // not have a favicon. The default implementation uses the current navigation
|
| - // entry. This will return an empty bitmap if there are no navigation
|
| - // entries, which should rarely happen.
|
| - gfx::Image GetFavicon() const;
|
| -
|
| - // Returns true if we have the favicon for the page.
|
| - bool FaviconIsValid() const;
|
| + // TODO(sdefresne): remove this method once all clients have been ported to
|
| + // use ContentFaviconDriver::FromWebContents() instead.
|
| + static FaviconTabHelper* FromWebContents(content::WebContents* web_contents);
|
|
|
| // Returns whether the favicon should be displayed. If this returns false, no
|
| // space is provided for the favicon, and the favicon is never displayed.
|
| - bool ShouldDisplayFavicon();
|
| -
|
| - // Returns the current tab's favicon urls. If this is empty,
|
| - // DidUpdateFaviconURL has not yet been called for the current navigation.
|
| - const std::vector<content::FaviconURL>& favicon_urls() const {
|
| - return favicon_urls_;
|
| - }
|
| -
|
| - // content::WebContentsObserver override. Must be public, because also
|
| - // called from PrerenderContents.
|
| - void DidUpdateFaviconURL(
|
| - const std::vector<content::FaviconURL>& candidates) override;
|
| -
|
| - // Saves the favicon for the current page.
|
| - void SaveFavicon();
|
| -
|
| - void AddObserver(favicon::FaviconDriverObserver* observer);
|
| - void RemoveObserver(favicon::FaviconDriverObserver* observer);
|
| -
|
| - // favicon::FaviconDriver methods.
|
| - int StartDownload(const GURL& url, int max_bitmap_size) override;
|
| - bool IsOffTheRecord() override;
|
| - bool IsBookmarked(const GURL& url) override;
|
| - GURL GetActiveURL() override;
|
| - base::string16 GetActiveTitle() override;
|
| - bool GetActiveFaviconValidity() override;
|
| - void SetActiveFaviconValidity(bool valid) override;
|
| - GURL GetActiveFaviconURL() override;
|
| - void SetActiveFaviconURL(const GURL& url) override;
|
| - gfx::Image GetActiveFaviconImage() override;
|
| - void SetActiveFaviconImage(const gfx::Image& image) override;
|
| - void OnFaviconAvailable(const gfx::Image& image,
|
| - const GURL& url,
|
| - bool is_active_favicon) override;
|
| - void NotifyFaviconUpdated(bool icon_url_changed) override;
|
| -
|
| - // Favicon download callback.
|
| - void DidDownloadFavicon(
|
| - int id,
|
| - int http_status_code,
|
| - const GURL& image_url,
|
| - const std::vector<SkBitmap>& bitmaps,
|
| - const std::vector<gfx::Size>& original_bitmap_sizes);
|
| + static bool ShouldDisplayFavicon(content::WebContents* web_contents);
|
|
|
| private:
|
| - friend class content::WebContentsUserData<FaviconTabHelper>;
|
| friend class FaviconTabHelperTest;
|
|
|
| // Creates a new FaviconTabHelper bound to |web_contents|. Initialize
|
| @@ -124,37 +32,6 @@ class FaviconTabHelper : public content::WebContentsObserver,
|
| history::HistoryService* history_service,
|
| bookmarks::BookmarkModel* bookmark_model);
|
|
|
| - // content::WebContentsObserver overrides.
|
| - void DidStartNavigationToPendingEntry(
|
| - const GURL& url,
|
| - content::NavigationController::ReloadType reload_type) override;
|
| - void DidNavigateMainFrame(
|
| - const content::LoadCommittedDetails& details,
|
| - const content::FrameNavigateParams& params) override;
|
| -
|
| - // Helper method that returns the active navigation entry's favicon.
|
| - content::FaviconStatus& GetFaviconStatus();
|
| -
|
| - // KeyedService used by FaviconTabHelper. They may be null during testing, but
|
| - // if they are defined, they must outlive the FaviconTabHelper.
|
| - favicon::FaviconService* favicon_service_;
|
| - history::HistoryService* history_service_;
|
| - bookmarks::BookmarkModel* bookmark_model_;
|
| -
|
| - std::vector<content::FaviconURL> favicon_urls_;
|
| -
|
| - // Bypass cache when downloading favicons for this page URL.
|
| - GURL bypass_cache_page_url_;
|
| -
|
| - // FaviconHandlers used to download the different kind of favicons. Both
|
| - // |touch_icon_handler_| and |large_icon_handler_| may be null depending
|
| - // on the platform or variations.
|
| - scoped_ptr<favicon::FaviconHandler> favicon_handler_;
|
| - scoped_ptr<favicon::FaviconHandler> touch_icon_handler_;
|
| - scoped_ptr<favicon::FaviconHandler> large_icon_handler_;
|
| -
|
| - ObserverList<favicon::FaviconDriverObserver> observer_list_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(FaviconTabHelper);
|
| };
|
|
|
|
|