diff options
author | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-30 21:37:00 +0000 |
---|---|---|
committer | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-30 21:37:00 +0000 |
commit | 92e0a618fed5c5fe2d1e300394b0bcc1b0f50dea (patch) | |
tree | 625dbcd1541458fffa915b016e2f1508da0a6f59 /chrome/browser/prerender/prerender_manager.h | |
parent | 67e16b3941e532e5e20a7c9367c32e845911ce24 (diff) | |
download | chromium_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.h | 1 |
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. |