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

Unified Diff: chrome/browser/prerender/prerender_manager.h

Issue 6901128: Cancel prerenders that spawn post requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 8 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 | « chrome/browser/prerender/prerender_final_status.h ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_manager.h
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index 7fdec06e2131ce13f5f68cf8eaf6c9df14318815..f1f46ff28ee356de6ca0f215d9606b287c27abe8 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -37,13 +37,25 @@ struct hash<TabContents*> {
namespace prerender {
-void HandlePrefetchTagOnUIThread(
+// Adds either a preload or a pending preload to the PrerenderManager.
+// Must be called on the UI thread.
+void HandlePrefetchTag(
const base::WeakPtr<PrerenderManager>& prerender_manager,
- const std::pair<int, int>& child_route_id_pair,
+ int render_process_id,
+ int render_view_id,
const GURL& url,
const GURL& referrer,
bool make_pending);
+// Given a renderer process id and view id, this will destroy any preloads and
+// pending preloads than are using or originated in the given render view.
+// Must be called on the UI thread.
+void DestroyPreloadForRenderView(
+ const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr,
+ int render_process_id,
+ int render_view_id,
+ FinalStatus final_status);
+
// PrerenderManager is responsible for initiating and keeping prerendered
// views of webpages. All methods must be called on the UI thread unless
// indicated otherwise.
@@ -78,6 +90,12 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
const GURL& url,
const GURL& referrer);
+ // Destroy all preloads for the given child route id pair and assign a final
+ // status to them.
+ void DestroyPreloadForChildRouteIdPair(
+ 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,
// and substitutes the prerendered RVH into the TabContents. Returns
@@ -153,6 +171,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
static bool MaybeGetQueryStringBasedAliasURL(const GURL& url,
GURL* alias_url);
+ // Returns true if the method given is invalid for prerendering.
+ static bool IsValidHttpMethod(const std::string& method);
+
protected:
struct PendingContentsData;
@@ -192,6 +213,12 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
// ownership of the PrerenderContents.
PrerenderContents* FindEntry(const GURL& url);
+ // Returns the iterator to the PrerenderContentsData entry that is being
+ // prerendered from the given child route id pair.
+ std::list<PrerenderContentsData>::iterator
+ FindPrerenderContentsForChildRouteIdPair(
+ const std::pair<int, int>& child_route_id_pair);
+
// Returns whether the PrerenderManager is currently within the prerender
// window - effectively, up to 30 seconds after a prefetch tag has been
// observed.
« no previous file with comments | « chrome/browser/prerender/prerender_final_status.h ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698