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

Side by Side Diff: chrome/browser/renderer_host/safe_browsing_resource_handler.cc

Issue 6334131: Turn off safebrowsing for PREFETCH requests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up unit test, per pending fix to 75507 Created 9 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_handler.h" 5 #include "chrome/browser/renderer_host/safe_browsing_resource_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/browser/renderer_host/global_request_id.h" 8 #include "content/browser/renderer_host/global_request_id.h"
9 #include "content/browser/renderer_host/resource_dispatcher_host.h" 9 #include "content/browser/renderer_host/resource_dispatcher_host.h"
10 #include "content/browser/renderer_host/resource_message_filter.h" 10 #include "content/browser/renderer_host/resource_message_filter.h"
11 #include "content/common/resource_response.h" 11 #include "content/common/resource_response.h"
12 #include "net/base/io_buffer.h"
13 #include "net/base/load_flags.h"
12 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
13 #include "net/base/io_buffer.h" 15 #include "net/url_request/url_request.h"
14 16
15 // Maximum time in milliseconds to wait for the safe browsing service to 17 // Maximum time in milliseconds to wait for the safe browsing service to
16 // verify a URL. After this amount of time the outstanding check will be 18 // verify a URL. After this amount of time the outstanding check will be
17 // aborted, and the URL will be treated as if it were safe. 19 // aborted, and the URL will be treated as if it were safe.
18 static const int kCheckUrlTimeoutMs = 5000; 20 static const int kCheckUrlTimeoutMs = 5000;
19 21
20 // TODO(eroman): Downgrade these CHECK()s to DCHECKs once there is more 22 // TODO(eroman): Downgrade these CHECK()s to DCHECKs once there is more
21 // unit test coverage. 23 // unit test coverage.
22 24
23 SafeBrowsingResourceHandler::SafeBrowsingResourceHandler( 25 SafeBrowsingResourceHandler::SafeBrowsingResourceHandler(
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 153
152 if (result == SafeBrowsingService::SAFE) { 154 if (result == SafeBrowsingService::SAFE) {
153 // Log how much time the safe browsing check cost us. 155 // Log how much time the safe browsing check cost us.
154 base::TimeDelta pause_delta; 156 base::TimeDelta pause_delta;
155 pause_delta = base::TimeTicks::Now() - url_check_start_time_; 157 pause_delta = base::TimeTicks::Now() - url_check_start_time_;
156 safe_browsing_->LogPauseDelay(pause_delta); 158 safe_browsing_->LogPauseDelay(pause_delta);
157 159
158 // Continue the request. 160 // Continue the request.
159 ResumeRequest(); 161 ResumeRequest();
160 } else { 162 } else {
161 StartDisplayingBlockingPage(url, result); 163 const net::URLRequest* request = rdh_->GetURLRequest(
164 GlobalRequestID(render_process_host_id_, deferred_request_id_));
165 if (request->load_flags() & net::LOAD_PREFETCH) {
166 // Don't prefetch resources that fail safe browsing, disallow
167 // them.
168 rdh_->CancelRequest(render_process_host_id_, deferred_request_id_, false);
169 } else {
170 StartDisplayingBlockingPage(url, result);
171 }
162 } 172 }
163 173
164 Release(); // Balances the AddRef() in CheckingUrl(). 174 Release(); // Balances the AddRef() in CheckingUrl().
165 } 175 }
166 176
167 void SafeBrowsingResourceHandler::StartDisplayingBlockingPage( 177 void SafeBrowsingResourceHandler::StartDisplayingBlockingPage(
168 const GURL& url, 178 const GURL& url,
169 SafeBrowsingService::UrlCheckResult result) { 179 SafeBrowsingService::UrlCheckResult result) {
170 CHECK(state_ == STATE_NONE); 180 CHECK(state_ == STATE_NONE);
171 CHECK(defer_state_ != DEFERRED_NONE); 181 CHECK(defer_state_ != DEFERRED_NONE);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 rdh_->FollowDeferredRedirect(render_process_host_id_, request_id, 307 rdh_->FollowDeferredRedirect(render_process_host_id_, request_id,
298 false, GURL()); 308 false, GURL());
299 } 309 }
300 } 310 }
301 311
302 void SafeBrowsingResourceHandler::ClearDeferredRequestInfo() { 312 void SafeBrowsingResourceHandler::ClearDeferredRequestInfo() {
303 deferred_request_id_ = -1; 313 deferred_request_id_ = -1;
304 deferred_url_ = GURL(); 314 deferred_url_ = GURL();
305 deferred_redirect_response_ = NULL; 315 deferred_redirect_response_ = NULL;
306 } 316 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698