summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_manager.h
diff options
context:
space:
mode:
authorcbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-30 21:37:00 +0000
committercbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-30 21:37:00 +0000
commit92e0a618fed5c5fe2d1e300394b0bcc1b0f50dea (patch)
tree625dbcd1541458fffa915b016e2f1508da0a6f59 /chrome/browser/prerender/prerender_manager.h
parent67e16b3941e532e5e20a7c9367c32e845911ce24 (diff)
downloadchromium_src-92e0a618fed5c5fe2d1e300394b0bcc1b0f50dea.zip
chromium_src-92e0a618fed5c5fe2d1e300394b0bcc1b0f50dea.tar.gz
chromium_src-92e0a618fed5c5fe2d1e300394b0bcc1b0f50dea.tar.bz2
Reduce likelihood of double-get of top-level prerendered resource.
When a link to a prerendered page is clicked, a DidStartProvisionalLoadForFrame is sent, as well as a RequestResource IPC for the top-level page, both from the referring page. The RequestResource caused an additional GET of the top-level page, which is frequently uncacheable. To prevent this from happening, RequestResource's which _might_ match a prerendered page URL are deferred. On the UI thread, the child_id and route_id of the request are checked against active RenderViewHost's. If there is no longer an active RenderViewHost (which would happen if the prerendered page is swapped in), the request is cancelled. Otherwise, it is resumed. BUG=71089 TEST=Existing browser_tests, unit_tests --gtest_filter=*PrerenderTrackerUrls*, click on a link that is being prerendered and make sure that a request is not sent over the wire. Review URL: http://codereview.chromium.org/7074001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87258 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_manager.h')
-rw-r--r--chrome/browser/prerender/prerender_manager.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index 153657d..f35aa18 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -169,6 +169,7 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
void MarkTabContentsAsNotPrerendered(TabContents* tab_contents);
bool IsTabContentsPrerendered(TabContents* tab_contents) const;
bool WouldTabContentsBePrerendered(TabContents* tab_contents) const;
+ bool IsOldRenderViewHost(const RenderViewHost* render_view_host) const;
// Records that some visible tab navigated (or was redirected) to the
// provided URL.