| Index: chrome/browser/prerender/prerender_manager.h
|
| diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
|
| index 96e3090d837045cd504d1efaa714a7d0efdd0bc0..a5cf15c5b8c98f13b51b8416fdb89164a48f0430 100644
|
| --- a/chrome/browser/prerender/prerender_manager.h
|
| +++ b/chrome/browser/prerender/prerender_manager.h
|
| @@ -19,6 +19,7 @@
|
| #include "base/time.h"
|
| #include "base/timer.h"
|
| #include "chrome/browser/prerender/prerender_contents.h"
|
| +#include "chrome/browser/prerender/prerender_origin.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| class Profile;
|
| @@ -51,7 +52,7 @@ void HandleTag(
|
| const GURL& url,
|
| const GURL& referrer);
|
|
|
| -void DestroyPreloadForRenderView(
|
| +void DestroyPrerenderForRenderView(
|
| const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr,
|
| int child_id,
|
| int route_id,
|
| @@ -86,30 +87,38 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
|
|
|
| virtual ~PrerenderManager();
|
|
|
| - // Preloads |url| if valid. |child_route_id_pair| identifies the
|
| + // Starts a prerender for |url| if valid. |child_route_id_pair| identifies the
|
| // RenderViewHost that the prerender request came from and is used to
|
| // set the initial window size of the RenderViewHost used for prerendering.
|
| // Returns true if the URL was added, false if it was not.
|
| // If |child_route_id_pair| itself is prerendering, adds the preloads as
|
| - // a pending preload.
|
| - bool AddPreload(
|
| + // a pending preload. |origin| enumerates the source of the prerender for
|
| + // data-tracking purposes.
|
| + bool AddPrerenderFromPage(
|
| + Origin origin,
|
| const std::pair<int, int>& child_route_id_pair,
|
| const GURL& url,
|
| const GURL& referrer);
|
|
|
| - // Destroy all preloads for the given child route id pair and assign a final
|
| + // Starts a prerender for |url| if valid. As the prerender request is coming
|
| + // from a source without a RenderViewHost (ie, the omnibox) we don't have a
|
| + // child or route id, or a referrer. This method uses sensible values for
|
| + // those.
|
| + bool AddPrerender(Origin origin, const GURL& url);
|
| +
|
| + // Destroy all prerenders for the given child route id pair and assign a final
|
| // status to them.
|
| - virtual void DestroyPreloadForChildRouteIdPair(
|
| + virtual void DestroyPrerenderForChildRouteIdPair(
|
| const std::pair<int, int>& child_route_id_pair,
|
| FinalStatus final_status);
|
|
|
| // For a given TabContents that wants to navigate to the URL supplied,
|
| - // determines whether a preloaded version of the URL can be used,
|
| + // determines whether a prerendered version of the URL can be used,
|
| // and substitutes the prerendered RVH into the TabContents. Returns
|
| // whether or not a prerendered RVH could be used or not.
|
| - bool MaybeUsePreloadedPage(TabContents* tab_contents,
|
| - const GURL& url,
|
| - bool has_opener_set);
|
| + bool MaybeUsePrerenderedPage(TabContents* tab_contents,
|
| + const GURL& url,
|
| + bool has_opener_set);
|
|
|
| // Moves a PrerenderContents to the pending delete list from the list of
|
| // active prerenders when prerendering should be cancelled.
|
| @@ -240,9 +249,10 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
|
| // Adds a pending preload issued by the prerendering RenderView identified by
|
| // |child_route_id_pair|. If and when that prerendering RenderView is used,
|
| // the specified prerender will start.
|
| - void AddPendingPreload(const std::pair<int, int>& child_route_id_pair,
|
| - const GURL& url,
|
| - const GURL& referrer);
|
| + void AddPendingPrerender(Origin origin,
|
| + const std::pair<int, int>& child_route_id_pair,
|
| + const GURL& url,
|
| + const GURL& referrer);
|
|
|
| // Starts scheduling periodic cleanups.
|
| void StartSchedulingPeriodicCleanups();
|
| @@ -264,9 +274,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
|
| void DeleteOldEntries();
|
| virtual base::Time GetCurrentTime() const;
|
| virtual base::TimeTicks GetCurrentTimeTicks() const;
|
| - virtual PrerenderContents* CreatePrerenderContents(
|
| - const GURL& url,
|
| - const GURL& referrer);
|
| + virtual PrerenderContents* CreatePrerenderContents(const GURL& url,
|
| + const GURL& referrer,
|
| + Origin origin);
|
|
|
| // Deletes any PrerenderContents that have been added to the pending delete
|
| // list.
|
| @@ -290,7 +300,7 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
|
|
|
| // Called when removing a preload to ensure we clean up any pending preloads
|
| // that might remain in the map.
|
| - void RemovePendingPreload(PrerenderContents* entry);
|
| + void RemovePendingPrerender(PrerenderContents* entry);
|
|
|
| bool DoesRateLimitAllowPrerender() const;
|
|
|
|
|