| Index: chrome/browser/prerender/prerender_tracker.h
|
| ===================================================================
|
| --- chrome/browser/prerender/prerender_tracker.h (revision 269838)
|
| +++ chrome/browser/prerender/prerender_tracker.h (working copy)
|
| @@ -6,16 +6,26 @@
|
| #define CHROME_BROWSER_PRERENDER_PRERENDER_TRACKER_H_
|
|
|
| #include <map>
|
| +#include <set>
|
| #include <utility>
|
|
|
| +#include "base/containers/hash_tables.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "base/synchronization/lock.h"
|
| +#include "chrome/browser/prerender/prerender_cookie_store.h"
|
| +#include "content/public/browser/render_process_host_observer.h"
|
| #include "url/gurl.h"
|
|
|
| +namespace net {
|
| +class URLRequestContextGetter;
|
| +}
|
| +
|
| namespace prerender {
|
|
|
| class PrerenderPendingSwapThrottle;
|
|
|
| -// Global object for maintaining prerender state on the IO thread.
|
| +// Global object for maintaining various prerender state on the IO thread.
|
| class PrerenderTracker {
|
| public:
|
| typedef std::pair<int, int> ChildRouteIdPair;
|
| @@ -46,6 +56,25 @@
|
| const ChildRouteIdPair& render_frame_route_id_pair,
|
| bool swap_successful);
|
|
|
| + // Gets the Prerender Cookie Store for a specific render process, if it
|
| + // is a prerender. Only to be called from the IO thread.
|
| + scoped_refptr<PrerenderCookieStore> GetPrerenderCookieStoreForRenderProcess(
|
| + int process_id);
|
| +
|
| + // Called when a given render process has changed a cookie for |url|,
|
| + // in |cookie_monster|.
|
| + // Only to be called from the IO thread.
|
| + void OnCookieChangedForURL(int process_id,
|
| + net::CookieMonster* cookie_monster,
|
| + const GURL& url);
|
| +
|
| + void AddPrerenderCookieStoreOnIOThread(
|
| + int process_id,
|
| + scoped_refptr<net::URLRequestContextGetter> request_context,
|
| + const base::Closure& cookie_conflict_cb);
|
| +
|
| + void RemovePrerenderCookieStoreOnIOThread(int process_id, bool was_swapped);
|
| +
|
| private:
|
| // Add/remove prerenders pending swap on the IO Thread.
|
| void AddPrerenderPendingSwapOnIOThread(
|
| @@ -68,6 +97,12 @@
|
| PendingSwapThrottleMap;
|
| PendingSwapThrottleMap pending_swap_throttle_map_;
|
|
|
| + // Map of prerendering render process ids to PrerenderCookieStore used for
|
| + // the prerender. Only to be used on the IO thread.
|
| + typedef base::hash_map<int, scoped_refptr<PrerenderCookieStore> >
|
| + PrerenderCookieStoreMap;
|
| + PrerenderCookieStoreMap prerender_cookie_store_map_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PrerenderTracker);
|
| };
|
|
|
|
|