Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/renderer_host/safe_browsing_resource_throttle.h" | 5 #include "chrome/browser/renderer_host/safe_browsing_resource_throttle.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 255 resource.original_url = request_->original_url(); | 255 resource.original_url = request_->original_url(); |
| 256 resource.redirect_urls = redirect_urls_; | 256 resource.redirect_urls = redirect_urls_; |
| 257 resource.is_subresource = resource_type_ != content::RESOURCE_TYPE_MAIN_FRAME; | 257 resource.is_subresource = resource_type_ != content::RESOURCE_TYPE_MAIN_FRAME; |
| 258 resource.is_subframe = resource_type_ == content::RESOURCE_TYPE_SUB_FRAME; | 258 resource.is_subframe = resource_type_ == content::RESOURCE_TYPE_SUB_FRAME; |
| 259 resource.threat_type = threat_type; | 259 resource.threat_type = threat_type; |
| 260 resource.threat_metadata = metadata; | 260 resource.threat_metadata = metadata; |
| 261 resource.callback = base::Bind( | 261 resource.callback = base::Bind( |
| 262 &SafeBrowsingResourceThrottle::OnBlockingPageComplete, AsWeakPtr()); | 262 &SafeBrowsingResourceThrottle::OnBlockingPageComplete, AsWeakPtr()); |
| 263 resource.callback_thread = content::BrowserThread::GetTaskRunnerForThread( | 263 resource.callback_thread = content::BrowserThread::GetTaskRunnerForThread( |
| 264 content::BrowserThread::IO); | 264 content::BrowserThread::IO); |
| 265 resource.render_process_host_id = info->GetChildID(); | 265 resource.web_contents_getter = info->GetWebContentsGetterForRequest(); |
| 266 resource.render_frame_id = info->GetRenderFrameID(); | |
| 267 resource.threat_source = database_manager_->GetThreatSource(); | 266 resource.threat_source = database_manager_->GetThreatSource(); |
| 268 | 267 |
| 269 state_ = STATE_DISPLAYING_BLOCKING_PAGE; | 268 state_ = STATE_DISPLAYING_BLOCKING_PAGE; |
| 270 | 269 |
| 271 content::BrowserThread::PostTask( | 270 content::BrowserThread::PostTask( |
| 272 content::BrowserThread::UI, | 271 content::BrowserThread::UI, FROM_HERE, |
| 273 FROM_HERE, | |
| 274 base::Bind(&SafeBrowsingResourceThrottle::StartDisplayingBlockingPage, | 272 base::Bind(&SafeBrowsingResourceThrottle::StartDisplayingBlockingPage, |
| 275 AsWeakPtr(), ui_manager_, resource)); | 273 AsWeakPtr(), ui_manager_, resource, info->GetChildID(), |
| 274 info->GetRenderFrameID())); | |
| 276 } | 275 } |
| 277 | 276 |
| 278 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage( | 277 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage( |
| 279 const base::WeakPtr<SafeBrowsingResourceThrottle>& throttle, | 278 const base::WeakPtr<SafeBrowsingResourceThrottle>& throttle, |
| 280 scoped_refptr<SafeBrowsingUIManager> ui_manager, | 279 scoped_refptr<SafeBrowsingUIManager> ui_manager, |
| 281 const SafeBrowsingUIManager::UnsafeResource& resource) { | 280 const SafeBrowsingUIManager::UnsafeResource& resource, |
| 282 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( | 281 int child_id, |
| 283 resource.render_process_host_id, resource.render_frame_id); | 282 int render_frame_id) { |
| 283 content::RenderFrameHost* rfh = | |
| 284 content::RenderFrameHost::FromID(child_id, render_frame_id); | |
| 284 if (rfh) { | 285 if (rfh) { |
|
jam
2016/08/15 19:49:10
nit: no need to pass in the two IDs, just call the
scottmg
2016/08/15 19:57:18
Done.
| |
| 285 content::WebContents* web_contents = | 286 content::WebContents* web_contents = resource.web_contents_getter.Run(); |
| 286 content::WebContents::FromRenderFrameHost(rfh); | |
| 287 prerender::PrerenderContents* prerender_contents = | 287 prerender::PrerenderContents* prerender_contents = |
| 288 prerender::PrerenderContents::FromWebContents(web_contents); | 288 prerender::PrerenderContents::FromWebContents(web_contents); |
| 289 | 289 |
| 290 subresource_filter::ContentSubresourceFilterDriverFactory* driver_factory = | 290 subresource_filter::ContentSubresourceFilterDriverFactory* driver_factory = |
| 291 subresource_filter::ContentSubresourceFilterDriverFactory:: | 291 subresource_filter::ContentSubresourceFilterDriverFactory:: |
| 292 FromWebContents(web_contents); | 292 FromWebContents(web_contents); |
| 293 DCHECK(driver_factory); | 293 DCHECK(driver_factory); |
| 294 driver_factory->OnMainResourceMatchedSafeBrowsingBlacklist( | 294 driver_factory->OnMainResourceMatchedSafeBrowsingBlacklist( |
| 295 resource.url, resource.redirect_urls, | 295 resource.url, resource.redirect_urls, |
| 296 resource.threat_metadata.threat_pattern_type); | 296 resource.threat_metadata.threat_pattern_type); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 393 unchecked_redirect_url_, "defer_reason", | 393 unchecked_redirect_url_, "defer_reason", |
| 394 "resumed_redirect"); | 394 "resumed_redirect"); |
| 395 } | 395 } |
| 396 } | 396 } |
| 397 | 397 |
| 398 if (resume) { | 398 if (resume) { |
| 399 defer_state_ = DEFERRED_NONE; | 399 defer_state_ = DEFERRED_NONE; |
| 400 controller()->Resume(); | 400 controller()->Resume(); |
| 401 } | 401 } |
| 402 } | 402 } |
| OLD | NEW |