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

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

Issue 660396: Fix a CHECK() being hit when the safebrowsing check fires. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Add a log message Created 10 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 | no next file » | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/resource_dispatcher_host.h" 8 #include "chrome/browser/renderer_host/resource_dispatcher_host.h"
9 #include "chrome/browser/renderer_host/resource_message_filter.h" 9 #include "chrome/browser/renderer_host/resource_message_filter.h"
10 #include "chrome/common/notification_service.h" 10 #include "chrome/common/notification_service.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 int request_id, ResourceResponse* response) { 83 int request_id, ResourceResponse* response) {
84 CHECK(state_ == STATE_NONE); 84 CHECK(state_ == STATE_NONE);
85 CHECK(defer_state_ == DEFERRED_NONE); 85 CHECK(defer_state_ == DEFERRED_NONE);
86 return next_handler_->OnResponseStarted(request_id, response); 86 return next_handler_->OnResponseStarted(request_id, response);
87 } 87 }
88 88
89 void SafeBrowsingResourceHandler::OnCheckUrlTimeout() { 89 void SafeBrowsingResourceHandler::OnCheckUrlTimeout() {
90 CHECK(state_ == STATE_CHECKING_URL); 90 CHECK(state_ == STATE_CHECKING_URL);
91 CHECK(defer_state_ != DEFERRED_NONE); 91 CHECK(defer_state_ != DEFERRED_NONE);
92 safe_browsing_->CancelCheck(this); 92 safe_browsing_->CancelCheck(this);
93 OnUrlCheckResult(GURL(), SafeBrowsingService::URL_SAFE); 93 OnUrlCheckResult(deferred_url_, SafeBrowsingService::URL_SAFE);
94 } 94 }
95 95
96 bool SafeBrowsingResourceHandler::OnWillStart(int request_id, 96 bool SafeBrowsingResourceHandler::OnWillStart(int request_id,
97 const GURL& url, 97 const GURL& url,
98 bool* defer) { 98 bool* defer) {
99 // We need to check the new URL before starting the request. 99 // We need to check the new URL before starting the request.
100 if (CheckUrl(url)) 100 if (CheckUrl(url))
101 return next_handler_->OnWillStart(request_id, url, defer); 101 return next_handler_->OnWillStart(request_id, url, defer);
102 102
103 // If the URL couldn't be verified synchronously, defer starting the 103 // If the URL couldn't be verified synchronously, defer starting the
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 void SafeBrowsingResourceHandler::OnRequestClosed() { 140 void SafeBrowsingResourceHandler::OnRequestClosed() {
141 next_handler_->OnRequestClosed(); 141 next_handler_->OnRequestClosed();
142 } 142 }
143 143
144 // SafeBrowsingService::Client implementation, called on the IO thread once 144 // SafeBrowsingService::Client implementation, called on the IO thread once
145 // the URL has been classified. 145 // the URL has been classified.
146 void SafeBrowsingResourceHandler::OnUrlCheckResult( 146 void SafeBrowsingResourceHandler::OnUrlCheckResult(
147 const GURL& url, SafeBrowsingService::UrlCheckResult result) { 147 const GURL& url, SafeBrowsingService::UrlCheckResult result) {
148 CHECK(state_ == STATE_CHECKING_URL); 148 CHECK(state_ == STATE_CHECKING_URL);
149 CHECK(defer_state_ != DEFERRED_NONE); 149 CHECK(defer_state_ != DEFERRED_NONE);
150 CHECK(url == deferred_url_); 150 CHECK(url == deferred_url_) << "Was expecting: " << deferred_url_
wtc 2010/03/02 21:37:08 If the |url| argument must be equal to the |deferr
eroman 2010/03/02 21:44:19 The redirect bug would be failing in this method,
151 << " but got: " << url;
151 152
152 timer_.Stop(); // Cancel the timeout timer. 153 timer_.Stop(); // Cancel the timeout timer.
153 safe_browsing_result_ = result; 154 safe_browsing_result_ = result;
154 state_ = STATE_NONE; 155 state_ = STATE_NONE;
155 156
156 if (result == SafeBrowsingService::URL_SAFE) { 157 if (result == SafeBrowsingService::URL_SAFE) {
157 // Log how much time the safe browsing check cost us. 158 // Log how much time the safe browsing check cost us.
158 base::TimeDelta pause_delta; 159 base::TimeDelta pause_delta;
159 pause_delta = base::TimeTicks::Now() - url_check_start_time_; 160 pause_delta = base::TimeTicks::Now() - url_check_start_time_;
160 safe_browsing_->LogPauseDelay(pause_delta); 161 safe_browsing_->LogPauseDelay(pause_delta);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 rdh_->FollowDeferredRedirect(render_process_host_id_, request_id, 294 rdh_->FollowDeferredRedirect(render_process_host_id_, request_id,
294 false, GURL()); 295 false, GURL());
295 } 296 }
296 } 297 }
297 298
298 void SafeBrowsingResourceHandler::ClearDeferredRequestInfo() { 299 void SafeBrowsingResourceHandler::ClearDeferredRequestInfo() {
299 deferred_request_id_ = -1; 300 deferred_request_id_ = -1;
300 deferred_url_ = GURL(); 301 deferred_url_ = GURL();
301 deferred_redirect_response_ = NULL; 302 deferred_redirect_response_ = NULL;
302 } 303 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698