Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2363)

Unified Diff: chrome/browser/favicon/favicon_handler.h

Issue 261403003: Removes usage of NavigationEntry from favicon_handler.* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review fixes v2. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/favicon/favicon_handler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/favicon/favicon_handler.h
diff --git a/chrome/browser/favicon/favicon_handler.h b/chrome/browser/favicon/favicon_handler.h
index 6cb9d5913a8ea1ae610873071b76f1c0e43d0db0..bc4261a0f50b6428d4bed4dc6710810851631a8a 100644
--- a/chrome/browser/favicon/favicon_handler.h
+++ b/chrome/browser/favicon/favicon_handler.h
@@ -28,11 +28,7 @@ namespace base {
class RefCountedMemory;
}
-namespace content {
-class NavigationEntry;
-}
-
-// FaviconHandler works with FaviconTabHelper to fetch the specific type of
+// FaviconHandler works with FaviconDriver to fetch the specific type of
// favicon.
//
// FetchFavicon requests the favicon from the favicon service which in turn
@@ -40,7 +36,7 @@ class NavigationEntry;
// we only know the URL of the page, and not necessarily the url of the
// favicon. To ensure we handle reloading stale favicons as well as
// reloading a favicon on page reload we always request the favicon from
-// history regardless of whether the NavigationEntry has a favicon.
+// history regardless of whether the active favicon is valid.
//
// After the navigation two types of events are delivered (which is
// first depends upon who is faster): notification from the history
@@ -48,13 +44,13 @@ class NavigationEntry;
// (OnFaviconDataForInitialURLFromFaviconService), or a message from the
// renderer giving us the URL of the favicon for the page (SetFaviconURL).
// . If the history db has a valid up to date favicon for the page, we update
-// the NavigationEntry and use the favicon.
-// . When we receive the favicon url if it matches that of the NavigationEntry
-// and the NavigationEntry's favicon is set, we do nothing (everything is
+// the current page and use the favicon.
+// . When we receive the favicon url if it matches that of the current page
+// and the current page's favicon is set, we do nothing (everything is
// ok).
// . On the other hand if the database does not know the favicon for url, or
// the favicon is out date, or the URL from the renderer does not match that
-// NavigationEntry we proceed to DownloadFaviconOrAskHistory. Before we
+// of the current page we proceed to DownloadFaviconOrAskHistory. Before we
// invoke DownloadFaviconOrAskHistory we wait until we've received both
// the favicon url and the callback from history. We wait to ensure we
// truly know both the favicon url and the state of the database.
@@ -67,7 +63,7 @@ class NavigationEntry;
// possible for the db to already have the favicon, just not the mapping
// between page to favicon url. The callback for this is OnFaviconData.
//
-// OnFaviconData either updates the favicon of the NavigationEntry (if the
+// OnFaviconData either updates the favicon of the current page (if the
// db knew about the favicon), or requests the renderer to download the
// favicon.
//
@@ -76,8 +72,7 @@ class NavigationEntry;
// favicon will be used, otherwise the one that best matches the preferred size
// is chosen (or the first one if there is no preferred size). Once the
// matching favicon has been determined, SetFavicon is called which updates
-// the favicon of the NavigationEntry and notifies the database to save the
-// favicon.
+// the page's favicon and notifies the database to save the favicon.
class FaviconHandler {
public:
@@ -123,10 +118,6 @@ class FaviconHandler {
// These virtual methods make FaviconHandler testable and are overridden by
// TestFaviconHandler.
- // Return the NavigationEntry for the active entry, or NULL if the active
- // entries URL does not match that of the URL last passed to FetchFavicon.
- virtual content::NavigationEntry* GetEntry();
-
// Asks the render to download favicon, returns the request id.
virtual int DownloadFavicon(const GURL& image_url, int max_bitmap_size);
@@ -232,21 +223,19 @@ class FaviconHandler {
const gfx::Image& image,
favicon_base::IconType icon_type);
- // Sets the favicon's data on the NavigationEntry.
- // If the WebContents has a delegate, it is invalidated (INVALIDATE_TYPE_TAB).
- void SetFaviconOnNavigationEntry(
- content::NavigationEntry* entry,
- const std::vector<favicon_base::FaviconBitmapResult>&
- favicon_bitmap_results);
- void SetFaviconOnNavigationEntry(content::NavigationEntry* entry,
- const GURL& icon_url,
- const gfx::Image& image);
+ // Sets the favicon's data.
+ void SetFaviconOnActivePage(const std::vector<
+ favicon_base::FaviconBitmapResult>& favicon_bitmap_results);
+ void SetFaviconOnActivePage(const GURL& icon_url, const gfx::Image& image);
// Return the current candidate if any.
content::FaviconURL* current_candidate() {
return (!image_urls_.empty()) ? &image_urls_.front() : NULL;
}
+ // Returns whether the page's url changed since the favicon was requested.
+ bool PageChangedSinceFaviconWasRequested();
+
// Returns the preferred size of the image. 0 means no preference (any size
// will do).
int preferred_icon_size() const {
@@ -299,7 +288,7 @@ class FaviconHandler {
// Best image we've seen so far. As images are downloaded from the page they
// are stored here. When there is an exact match, or no more images are
- // available the favicon service and the NavigationEntry are updated (assuming
+ // available the favicon service and the current page are updated (assuming
// the image is for a favicon).
FaviconCandidate best_favicon_candidate_;
« no previous file with comments | « no previous file | chrome/browser/favicon/favicon_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698