Remove calls of PrerenderTracker::TryCancel on UI thread and instead have them call PrerenderContents::Destroy directly.
This is part of the work on removing calls to ResourceRequestInfo::GetAssociatedRenderView. The last callers to that method are using it to cancel prerenders if they haven't been used yet, so the checking/cancelling needs to all move to the UI thread.
BUG=304341
[email protected]
Review URL: https://codereview.chromium.org/109983006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243094 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index c8d55579..82e005b 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1781,18 +1781,13 @@
NOTREACHED();
return;
}
- prerender::PrerenderManager* prerender_manager =
- prerender::PrerenderManagerFactory::GetForProfile(
- Profile::FromBrowserContext(tab->GetBrowserContext()));
- if (prerender_manager && prerender_manager->IsWebContentsPrerendering(tab,
- NULL)) {
- if (prerender_manager->prerender_tracker()->TryCancel(
- render_process_id,
- render_frame_host->GetRenderViewHost()->GetRoutingID(),
- prerender::FINAL_STATUS_SSL_ERROR)) {
- *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
- return;
- }
+
+ prerender::PrerenderContents* prerender_contents =
+ prerender::PrerenderContents::FromWebContents(tab);
+ if (prerender_contents) {
+ prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR);
+ *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
+ return;
}
#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)