Index: chrome/browser/history/top_sites_cache.h |
diff --git a/chrome/browser/history/top_sites_cache.h b/chrome/browser/history/top_sites_cache.h |
index 822d18903dc00e05ceb538e3975f71b2a6a8e3cf..d8874879108efce328216c0ff897473e94ea0e2e 100644 |
--- a/chrome/browser/history/top_sites_cache.h |
+++ b/chrome/browser/history/top_sites_cache.h |
@@ -10,9 +10,31 @@ |
#include "base/memory/ref_counted.h" |
#include "chrome/browser/history/history_types.h" |
+#include "chrome/browser/history/url_utils.h" |
namespace history { |
+// TopSiteCache caches thumbnails for visited pages. Retrieving thumbnails from |
+// a given [input URL] is a two-stage process: |
+// |
+// [input URL] --(map 1)--> [canonical URL] --(map 2)--> image. |
+// |
+// (map 1) searches [input URL] in |canonical_urls_|. [canonical URL] is |
+// assigned to the resulting value if found; else [input URL]. |
+// |
+// (map 2) simply looks up [canonical URL] in |images_|. |
+// |
+// TopSiteCache also provides GetCanonicalURLsIteratorForPrefix(), which is an |
+// alternative implementation of (map 1) that does the following: |
+// - if [canonical URL] is a key in |canonical_urls_|, return the value. |
+// - else if [canonical URL] is a "URL prefix" (see comment in url_utils.h) of |
+// some key in |canonical_urls_|, return the value corresponding to the key. |
+// - else return [input URL]. |
+ |
+// The entries in CanonicalURLs, see CanonicalURLs for details. The second |
+// argument gives the index of the URL into MostVisitedURLs redirects. |
+typedef std::pair<MostVisitedURL*, size_t> CanonicalURLEntry; |
sky
2013/09/12 21:22:18
Why is this public?
huangs
2013/09/12 23:33:47
A relic from the previous change. Moved back into
|
+ |
// TopSitesCache caches the top sites and thumbnails for TopSites. |
class TopSitesCache { |
public: |
@@ -41,9 +63,14 @@ class TopSitesCache { |
// there is a thumbnail score for the specified url. |
bool GetPageThumbnailScore(const GURL& url, ThumbnailScore* score); |
- // Returns the canonical URL for |url|. |
+ // Returns the [canonical URL] for |url|. |
const GURL& GetCanonicalURL(const GURL& url); |
+ // Returns the [canonical URL] for |url_prefix| that matches by prefix. |
sky
2013/09/12 21:22:18
What's with [all the brackets] ?
huangs
2013/09/12 23:33:47
The purpose is to highlight proper terms -- but I
|
+ // Multiple matches exst, returns the [canonical URL] for the first |
+ // matching entry under lexicographical order. |
+ const GURL& GetCanonicalURLForPrefix(const GURL& url_prefix); |
+ |
// Returns true if |url| is known. |
bool IsKnownURL(const GURL& url); |
@@ -51,17 +78,11 @@ class TopSitesCache { |
size_t GetURLIndex(const GURL& url); |
private: |
- // The entries in CanonicalURLs, see CanonicalURLs for details. The second |
- // argument gives the index of the URL into MostVisitedURLs redirects. |
- typedef std::pair<MostVisitedURL*, size_t> CanonicalURLEntry; |
- |
- // Comparator used for CanonicalURLs. |
+ // Comparator used for CanonicalURLs. Its main purpose |
class CanonicalURLComparator { |
public: |
bool operator()(const CanonicalURLEntry& e1, |
- const CanonicalURLEntry& e2) const { |
- return e1.first->redirects[e1.second] < e2.first->redirects[e2.second]; |
sky
2013/09/12 21:22:18
Why nuke the inlining here?
huangs
2013/09/12 23:33:47
Need to call CanonicalURLStringCompare(), and I wa
|
- } |
+ const CanonicalURLEntry& e2) const; |
}; |
// This is used to map from redirect url to the MostVisitedURL the redirect is |
@@ -80,9 +101,14 @@ class TopSitesCache { |
// Stores a set of redirects. This is used by GenerateCanonicalURLs. |
void StoreRedirectChain(const RedirectList& redirects, size_t destination); |
- // Returns the iterator into canconical_urls_ for the specified url. |
+ // Returns the iterator into canonical_urls_ for the |url|. |
sky
2013/09/12 21:22:18
Style here is || around references to parameters a
huangs
2013/09/12 23:33:47
Done.
|
CanonicalURLs::iterator GetCanonicalURLsIterator(const GURL& url); |
+ // Returns the first iterator into canonical_urls_ for whcih |previx_url| |
sky
2013/09/12 21:22:18
|canonical_urls_|.
previx->prefix
huangs
2013/09/12 23:33:47
Done, also using the term "URL prefix" for consist
|
+ // is a path-prefix. |
+ CanonicalURLs::iterator GetCanonicalURLsIteratorForPrefix( |
+ const GURL& prefix_url); |
+ |
// The top sites. |
MostVisitedURLList top_sites_; |