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/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" |
11 #include "base/trace_event/trace_event.h" | 11 #include "base/trace_event/trace_event.h" |
12 #include "chrome/browser/prerender/prerender_contents.h" | 12 #include "chrome/browser/prerender/prerender_contents.h" |
13 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 13 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
14 #include "components/safe_browsing/base_ui_manager.h" | 14 #include "components/safe_browsing/base_ui_manager.h" |
15 #include "components/safe_browsing_db/util.h" | 15 #include "components/safe_browsing_db/util.h" |
16 #include "components/safe_browsing_db/v4_feature_list.h" | 16 #include "components/safe_browsing_db/v4_feature_list.h" |
17 #include "components/safe_browsing_db/v4_local_database_manager.h" | 17 #include "components/safe_browsing_db/v4_local_database_manager.h" |
18 #include "components/security_interstitials/content/unsafe_resource.h" | 18 #include "components/security_interstitials/content/unsafe_resource.h" |
19 #include "components/subresource_filter/content/browser/content_subresource_filt
er_driver_factory.h" | 19 #include "components/subresource_filter/content/browser/content_subresource_filt
er_driver_factory.h" |
20 #include "content/public/browser/browser_thread.h" | 20 #include "content/public/browser/browser_thread.h" |
21 #include "content/public/browser/resource_request_info.h" | 21 #include "content/public/browser/resource_request_info.h" |
22 #include "content/public/browser/web_contents.h" | 22 #include "content/public/browser/web_contents.h" |
23 #include "net/url_request/redirect_info.h" | 23 #include "net/url_request/redirect_info.h" |
24 #include "net/url_request/url_request.h" | 24 #include "net/url_request/url_request.h" |
25 | 25 |
26 using safe_browsing::BaseSafeBrowsingUIManager; | 26 using safe_browsing::BaseUIManager; |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
30 // Destroys the prerender contents associated with the web_contents, if any. | 30 // Destroys the prerender contents associated with the web_contents, if any. |
31 void DestroyPrerenderContents( | 31 void DestroyPrerenderContents( |
32 const content::ResourceRequestInfo::WebContentsGetter& | 32 const content::ResourceRequestInfo::WebContentsGetter& |
33 web_contents_getter) { | 33 web_contents_getter) { |
34 content::WebContents* web_contents = web_contents_getter.Run(); | 34 content::WebContents* web_contents = web_contents_getter.Run(); |
35 if (web_contents) { | 35 if (web_contents) { |
36 prerender::PrerenderContents* prerender_contents = | 36 prerender::PrerenderContents* prerender_contents = |
(...skipping 13 matching lines...) Expand all Loading... |
50 if (sb_service->database_manager()->IsSupported()) { | 50 if (sb_service->database_manager()->IsSupported()) { |
51 return new SafeBrowsingResourceThrottle(request, resource_type, sb_service); | 51 return new SafeBrowsingResourceThrottle(request, resource_type, sb_service); |
52 } | 52 } |
53 return nullptr; | 53 return nullptr; |
54 } | 54 } |
55 | 55 |
56 SafeBrowsingResourceThrottle::SafeBrowsingResourceThrottle( | 56 SafeBrowsingResourceThrottle::SafeBrowsingResourceThrottle( |
57 const net::URLRequest* request, | 57 const net::URLRequest* request, |
58 content::ResourceType resource_type, | 58 content::ResourceType resource_type, |
59 safe_browsing::SafeBrowsingService* sb_service) | 59 safe_browsing::SafeBrowsingService* sb_service) |
60 : BaseSafeBrowsingResourceThrottle( | 60 : safe_browsing::BaseResourceThrottle( |
61 request, | 61 request, |
62 resource_type, | 62 resource_type, |
63 safe_browsing::V4FeatureList::IsV4HybridEnabled() | 63 safe_browsing::V4FeatureList::IsV4HybridEnabled() |
64 ? sb_service->v4_local_database_manager() | 64 ? sb_service->v4_local_database_manager() |
65 : sb_service->database_manager(), | 65 : sb_service->database_manager(), |
66 sb_service->ui_manager()) {} | 66 sb_service->ui_manager()) {} |
67 | 67 |
68 SafeBrowsingResourceThrottle::~SafeBrowsingResourceThrottle() {} | 68 SafeBrowsingResourceThrottle::~SafeBrowsingResourceThrottle() {} |
69 | 69 |
70 const char* SafeBrowsingResourceThrottle::GetNameForLogging() const { | 70 const char* SafeBrowsingResourceThrottle::GetNameForLogging() const { |
(...skipping 12 matching lines...) Expand all Loading... |
83 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPageHelper( | 83 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPageHelper( |
84 security_interstitials::UnsafeResource resource) { | 84 security_interstitials::UnsafeResource resource) { |
85 content::BrowserThread::PostTask( | 85 content::BrowserThread::PostTask( |
86 content::BrowserThread::UI, FROM_HERE, | 86 content::BrowserThread::UI, FROM_HERE, |
87 base::Bind(&SafeBrowsingResourceThrottle::StartDisplayingBlockingPage, | 87 base::Bind(&SafeBrowsingResourceThrottle::StartDisplayingBlockingPage, |
88 AsWeakPtr(), ui_manager_, resource)); | 88 AsWeakPtr(), ui_manager_, resource)); |
89 } | 89 } |
90 | 90 |
91 // Static | 91 // Static |
92 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage( | 92 void SafeBrowsingResourceThrottle::StartDisplayingBlockingPage( |
93 const base::WeakPtr<BaseSafeBrowsingResourceThrottle>& throttle, | 93 const base::WeakPtr<safe_browsing::BaseResourceThrottle>& throttle, |
94 scoped_refptr<BaseSafeBrowsingUIManager> ui_manager, | 94 scoped_refptr<BaseUIManager> ui_manager, |
95 const security_interstitials::UnsafeResource& resource) { | 95 const security_interstitials::UnsafeResource& resource) { |
96 content::WebContents* web_contents = resource.web_contents_getter.Run(); | 96 content::WebContents* web_contents = resource.web_contents_getter.Run(); |
97 if (web_contents) { | 97 if (web_contents) { |
98 // Once activated, the subresource filter will filter subresources, but is | 98 // Once activated, the subresource filter will filter subresources, but is |
99 // triggered when the main frame document matches Safe Browsing blacklists. | 99 // triggered when the main frame document matches Safe Browsing blacklists. |
100 if (!resource.is_subresource) { | 100 if (!resource.is_subresource) { |
101 using subresource_filter::ContentSubresourceFilterDriverFactory; | 101 using subresource_filter::ContentSubresourceFilterDriverFactory; |
102 ContentSubresourceFilterDriverFactory* driver_factory = | 102 ContentSubresourceFilterDriverFactory* driver_factory = |
103 ContentSubresourceFilterDriverFactory::FromWebContents(web_contents); | 103 ContentSubresourceFilterDriverFactory::FromWebContents(web_contents); |
104 DCHECK(driver_factory); | 104 DCHECK(driver_factory); |
(...skipping 21 matching lines...) Expand all Loading... |
126 ui_manager->DisplayBlockingPage(resource); | 126 ui_manager->DisplayBlockingPage(resource); |
127 return; | 127 return; |
128 } | 128 } |
129 } | 129 } |
130 | 130 |
131 // Tab is gone or it's being prerendered. | 131 // Tab is gone or it's being prerendered. |
132 content::BrowserThread::PostTask( | 132 content::BrowserThread::PostTask( |
133 content::BrowserThread::IO, FROM_HERE, | 133 content::BrowserThread::IO, FROM_HERE, |
134 base::Bind(&SafeBrowsingResourceThrottle::Cancel, throttle)); | 134 base::Bind(&SafeBrowsingResourceThrottle::Cancel, throttle)); |
135 } | 135 } |
OLD | NEW |