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

Side by Side Diff: chrome/browser/safe_browsing/client_side_detection_service.cc

Issue 7408001: If we show a SafeBrowsing warning we always send the client-side detection (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 5 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
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/safe_browsing/client_side_detection_service.h" 5 #include "chrome/browser/safe_browsing/client_side_detection_service.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util_proxy.h" 8 #include "base/file_util_proxy.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/time.h" 10 #include "base/time.h"
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 } 254 }
255 255
256 void ClientSideDetectionService::StartClientReportPhishingRequest( 256 void ClientSideDetectionService::StartClientReportPhishingRequest(
257 ClientPhishingRequest* verdict, 257 ClientPhishingRequest* verdict,
258 ClientReportPhishingRequestCallback* callback) { 258 ClientReportPhishingRequestCallback* callback) {
259 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 259 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
260 scoped_ptr<ClientPhishingRequest> request(verdict); 260 scoped_ptr<ClientPhishingRequest> request(verdict);
261 scoped_ptr<ClientReportPhishingRequestCallback> cb(callback); 261 scoped_ptr<ClientReportPhishingRequestCallback> cb(callback);
262 262
263 std::string request_data; 263 std::string request_data;
264 if (!request->SerializeToString(&request_data)) { 264 if (!request->SerializeToString(&request_data) && cb.get()) {
Brian Ryner 2011/07/19 21:27:10 This doesn't seem quite right -- don't we want to
noelutz 2011/07/19 22:28:08 Done.
265 UMA_HISTOGRAM_COUNTS("SBClientPhishing.RequestNotSerialized", 1); 265 UMA_HISTOGRAM_COUNTS("SBClientPhishing.RequestNotSerialized", 1);
266 VLOG(1) << "Unable to serialize the CSD request. Proto file changed?"; 266 VLOG(1) << "Unable to serialize the CSD request. Proto file changed?";
267 cb->Run(GURL(request->url()), false); 267 cb->Run(GURL(request->url()), false);
268 return; 268 return;
269 } 269 }
270 270
271 URLFetcher* fetcher = URLFetcher::Create(0 /* ID is not used */, 271 URLFetcher* fetcher = URLFetcher::Create(0 /* ID is not used */,
272 GURL(kClientReportPhishingUrl), 272 GURL(kClientReportPhishingUrl),
273 URLFetcher::POST, 273 URLFetcher::POST,
274 this); 274 this);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 329
330 void ClientSideDetectionService::HandlePhishingVerdict( 330 void ClientSideDetectionService::HandlePhishingVerdict(
331 const URLFetcher* source, 331 const URLFetcher* source,
332 const GURL& url, 332 const GURL& url,
333 const net::URLRequestStatus& status, 333 const net::URLRequestStatus& status,
334 int response_code, 334 int response_code,
335 const net::ResponseCookies& cookies, 335 const net::ResponseCookies& cookies,
336 const std::string& data) { 336 const std::string& data) {
337 ClientPhishingResponse response; 337 ClientPhishingResponse response;
338 scoped_ptr<ClientReportInfo> info(client_phishing_reports_[source]); 338 scoped_ptr<ClientReportInfo> info(client_phishing_reports_[source]);
339 bool isphishing = false;
Garrett Casto 2011/07/19 21:18:48 is_phishing?
mattm 2011/07/19 21:25:55 nit: is_phishing
noelutz 2011/07/19 22:28:08 Done.
noelutz 2011/07/19 22:28:08 Done.
339 if (status.is_success() && RC_REQUEST_OK == response_code && 340 if (status.is_success() && RC_REQUEST_OK == response_code &&
340 response.ParseFromString(data)) { 341 response.ParseFromString(data)) {
341 // Cache response, possibly flushing an old one. 342 // Cache response, possibly flushing an old one.
342 cache_[info->phishing_url] = 343 cache_[info->phishing_url] =
343 make_linked_ptr(new CacheState(response.phishy(), base::Time::Now())); 344 make_linked_ptr(new CacheState(response.phishy(), base::Time::Now()));
344 info->callback->Run(info->phishing_url, response.phishy()); 345 isphishing = response.phishy();
345 } else { 346 } else {
346 DLOG(ERROR) << "Unable to get the server verdict for URL: " 347 DLOG(ERROR) << "Unable to get the server verdict for URL: "
347 << info->phishing_url << " status: " << status.status() << " " 348 << info->phishing_url << " status: " << status.status() << " "
348 << "response_code:" << response_code; 349 << "response_code:" << response_code;
349 info->callback->Run(info->phishing_url, false); 350 }
351 if (info->callback.get()) {
352 info->callback->Run(info->phishing_url, isphishing);
350 } 353 }
351 client_phishing_reports_.erase(source); 354 client_phishing_reports_.erase(source);
352 delete source; 355 delete source;
353 } 356 }
354 357
355 bool ClientSideDetectionService::IsInCache(const GURL& url) { 358 bool ClientSideDetectionService::IsInCache(const GURL& url) {
356 UpdateCache(); 359 UpdateCache();
357 360
358 return cache_.find(url) != cache_.end(); 361 return cache_.find(url) != cache_.end();
359 } 362 }
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 // |size| bits sets to one. 467 // |size| bits sets to one.
465 std::string mask(net::kIPv6AddressSize, '\x00'); 468 std::string mask(net::kIPv6AddressSize, '\x00');
466 mask.replace(0, size / 8, size / 8, '\xFF'); 469 mask.replace(0, size / 8, size / 8, '\xFF');
467 if (size % 8) { 470 if (size % 8) {
468 mask[size / 8] = 0xFF << (8 - (size % 8)); 471 mask[size / 8] = 0xFF << (8 - (size % 8));
469 } 472 }
470 (*bad_subnets)[mask].insert(model.bad_subnet(i).prefix()); 473 (*bad_subnets)[mask].insert(model.bad_subnet(i).prefix());
471 } 474 }
472 } 475 }
473 } // namespace safe_browsing 476 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698