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

Unified Diff: chrome/browser/loader/safe_browsing_resource_throttle.cc

Issue 2615883003: [NoStatePrefetch] Implement FINAL_STATUS_SAFEBROWSING (Closed)
Patch Set: plumb FINAL_STATUS_SAFEBROWSING Created 3 years, 11 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
Index: chrome/browser/loader/safe_browsing_resource_throttle.cc
diff --git a/chrome/browser/loader/safe_browsing_resource_throttle.cc b/chrome/browser/loader/safe_browsing_resource_throttle.cc
index 8fccf4b69c4e8e2b48cc580cdb8751c89e2cab7b..e6d4fd78ee73e24ea69a24e874b37346faf89782 100644
--- a/chrome/browser/loader/safe_browsing_resource_throttle.cc
+++ b/chrome/browser/loader/safe_browsing_resource_throttle.cc
@@ -70,6 +70,19 @@ std::unique_ptr<base::Value> NetLogStringCallback(const char* name,
return std::move(event_params);
}
+// Destroys the prerender contents associated with the web_contents, if any.
+void DestroyPrerenderContents(
+ const content::ResourceRequestInfo::WebContentsGetter&
+ web_contents_getter) {
+ content::WebContents* web_contents = web_contents_getter.Run();
+ if (web_contents) {
+ prerender::PrerenderContents* prerender_contents =
+ prerender::PrerenderContents::FromWebContents(web_contents);
+ if (prerender_contents)
+ prerender_contents->Destroy(prerender::FINAL_STATUS_SAFE_BROWSING);
+ }
+}
+
} // namespace
// TODO(eroman): Downgrade these CHECK()s to DCHECKs once there is more
@@ -267,8 +280,15 @@ void SafeBrowsingResourceThrottle::OnCheckBrowseUrlResult(
return;
}
+ const content::ResourceRequestInfo* info =
+ content::ResourceRequestInfo::ForRequest(request_);
+
if (request_->load_flags() & net::LOAD_PREFETCH) {
// Don't prefetch resources that fail safe browsing, disallow them.
+ content::BrowserThread::PostTask(
+ content::BrowserThread::UI, FROM_HERE,
+ base::Bind(&DestroyPrerenderContents,
+ info->GetWebContentsGetterForRequest()));
Cancel();
UMA_HISTOGRAM_ENUMERATION("SB2.ResourceTypes2.UnsafePrefetchCanceled",
resource_type_, content::RESOURCE_TYPE_LAST_TYPE);
@@ -278,9 +298,6 @@ void SafeBrowsingResourceThrottle::OnCheckBrowseUrlResult(
UMA_HISTOGRAM_ENUMERATION("SB2.ResourceTypes2.Unsafe", resource_type_,
content::RESOURCE_TYPE_LAST_TYPE);
- const content::ResourceRequestInfo* info =
- content::ResourceRequestInfo::ForRequest(request_);
-
security_interstitials::UnsafeResource resource;
resource.url = url;
resource.original_url = request_->original_url();

Powered by Google App Engine
This is Rietveld 408576698