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

Side by Side Diff: chrome/browser/loader/safe_browsing_resource_throttle.cc

Issue 2692273006: Refactor safebrowsing StartDisplayingBlockingPage (Closed)
Patch Set: Fix method description Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | components/safe_browsing/base_resource_throttle.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/loader/safe_browsing_resource_throttle.h" 5 #include "chrome/browser/loader/safe_browsing_resource_throttle.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 AsWeakPtr(), ui_manager(), resource)); 85 AsWeakPtr(), ui_manager(), resource));
86 } 86 }
87 87
88 // Static 88 // Static
89 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage( 89 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage(
90 const base::WeakPtr<safe_browsing::BaseResourceThrottle>& throttle, 90 const base::WeakPtr<safe_browsing::BaseResourceThrottle>& throttle,
91 scoped_refptr<BaseUIManager> ui_manager, 91 scoped_refptr<BaseUIManager> ui_manager,
92 const security_interstitials::UnsafeResource& resource) { 92 const security_interstitials::UnsafeResource& resource) {
93 content::WebContents* web_contents = resource.web_contents_getter.Run(); 93 content::WebContents* web_contents = resource.web_contents_getter.Run();
94 if (web_contents) { 94 if (web_contents) {
95 // Once activated, the subresource filter will filter subresources, but is 95 BaseResourceThrottle::NotifySubresourceFilterOfBlockedResource(resource);
96 // triggered when the main frame document matches Safe Browsing blacklists.
97 if (!resource.is_subresource) {
98 using subresource_filter::ContentSubresourceFilterDriverFactory;
99 ContentSubresourceFilterDriverFactory* driver_factory =
100 ContentSubresourceFilterDriverFactory::FromWebContents(web_contents);
101 DCHECK(driver_factory);
102
103 // For a redirect chain of A -> B -> C, the subresource filter expects C
104 // as the resource URL and [A, B] as redirect URLs.
105 std::vector<GURL> redirect_parent_urls;
106 if (!resource.redirect_urls.empty()) {
107 redirect_parent_urls.push_back(resource.original_url);
108 redirect_parent_urls.insert(redirect_parent_urls.end(),
109 resource.redirect_urls.begin(),
110 std::prev(resource.redirect_urls.end()));
111 }
112
113 driver_factory->OnMainResourceMatchedSafeBrowsingBlacklist(
114 resource.url, redirect_parent_urls, resource.threat_type,
115 resource.threat_metadata.threat_pattern_type);
116 }
117
118 prerender::PrerenderContents* prerender_contents = 96 prerender::PrerenderContents* prerender_contents =
119 prerender::PrerenderContents::FromWebContents(web_contents); 97 prerender::PrerenderContents::FromWebContents(web_contents);
120 if (prerender_contents) { 98 if (prerender_contents) {
121 prerender_contents->Destroy(prerender::FINAL_STATUS_SAFE_BROWSING); 99 prerender_contents->Destroy(prerender::FINAL_STATUS_SAFE_BROWSING);
122 } else { 100 } else {
123 ui_manager->DisplayBlockingPage(resource); 101 ui_manager->DisplayBlockingPage(resource);
124 return; 102 return;
125 } 103 }
126 } 104 }
127 105
128 // Tab is gone or it's being prerendered. 106 // Tab is gone or it's being prerendered.
129 content::BrowserThread::PostTask( 107 content::BrowserThread::PostTask(
130 content::BrowserThread::IO, FROM_HERE, 108 content::BrowserThread::IO, FROM_HERE,
131 base::Bind(&SafeBrowsingResourceThrottle::Cancel, throttle)); 109 base::Bind(&SafeBrowsingResourceThrottle::Cancel, throttle));
132 } 110 }
OLDNEW
« no previous file with comments | « no previous file | components/safe_browsing/base_resource_throttle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698