| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/protocol_manager.h" | 5 #include "chrome/browser/safe_browsing/protocol_manager.h" |
| 6 | 6 |
| 7 #include "base/file_version_info.h" | 7 #include "base/file_version_info.h" |
| 8 #include "base/histogram.h" | 8 #include "base/histogram.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 } else if (update_state_ == SECOND_REQUEST) { | 322 } else if (update_state_ == SECOND_REQUEST) { |
| 323 next_update_sec_ = base::RandInt(15 * 60, 45 * 60); | 323 next_update_sec_ = base::RandInt(15 * 60, 45 * 60); |
| 324 } | 324 } |
| 325 | 325 |
| 326 // We need to request a new set of keys for MAC. | 326 // We need to request a new set of keys for MAC. |
| 327 if (re_key) | 327 if (re_key) |
| 328 HandleReKey(); | 328 HandleReKey(); |
| 329 | 329 |
| 330 // New chunks to download. | 330 // New chunks to download. |
| 331 if (!chunk_urls.empty()) { | 331 if (!chunk_urls.empty()) { |
| 332 UMA_HISTOGRAM_COUNTS(L"SB2.UpdateUrls", chunk_urls.size()); | 332 UMA_HISTOGRAM_COUNTS("SB2.UpdateUrls", chunk_urls.size()); |
| 333 for (size_t i = 0; i < chunk_urls.size(); ++i) | 333 for (size_t i = 0; i < chunk_urls.size(); ++i) |
| 334 chunk_request_urls_.push_back(chunk_urls[i]); | 334 chunk_request_urls_.push_back(chunk_urls[i]); |
| 335 } | 335 } |
| 336 | 336 |
| 337 // Handle the case were the SafeBrowsing service tells us to dump our | 337 // Handle the case were the SafeBrowsing service tells us to dump our |
| 338 // database. | 338 // database. |
| 339 if (reset) { | 339 if (reset) { |
| 340 sb_service_->ResetDatabase(); | 340 sb_service_->ResetDatabase(); |
| 341 delete chunk_deletes; | 341 delete chunk_deletes; |
| 342 return true; | 342 return true; |
| 343 } | 343 } |
| 344 | 344 |
| 345 // Chunks to delete from our storage. | 345 // Chunks to delete from our storage. |
| 346 if (!chunk_deletes->empty()) | 346 if (!chunk_deletes->empty()) |
| 347 sb_service_->HandleChunkDelete(chunk_deletes); | 347 sb_service_->HandleChunkDelete(chunk_deletes); |
| 348 else | 348 else |
| 349 delete chunk_deletes; | 349 delete chunk_deletes; |
| 350 | 350 |
| 351 break; | 351 break; |
| 352 } | 352 } |
| 353 case CHUNK_REQUEST: { | 353 case CHUNK_REQUEST: { |
| 354 if (sb_service_->new_safe_browsing()) | 354 if (sb_service_->new_safe_browsing()) |
| 355 UMA_HISTOGRAM_TIMES(L"SB2.ChunkRequest", | 355 UMA_HISTOGRAM_TIMES("SB2.ChunkRequest", |
| 356 base::Time::Now() - chunk_request_start_); | 356 base::Time::Now() - chunk_request_start_); |
| 357 | 357 |
| 358 const ChunkUrl chunk_url = chunk_request_urls_.front(); | 358 const ChunkUrl chunk_url = chunk_request_urls_.front(); |
| 359 bool re_key = false; | 359 bool re_key = false; |
| 360 std::deque<SBChunk>* chunks = new std::deque<SBChunk>; | 360 std::deque<SBChunk>* chunks = new std::deque<SBChunk>; |
| 361 UMA_HISTOGRAM_COUNTS(L"SB2.ChunkSize", length); | 361 UMA_HISTOGRAM_COUNTS("SB2.ChunkSize", length); |
| 362 update_size_ += length; | 362 update_size_ += length; |
| 363 if (!parser.ParseChunk(data, length, | 363 if (!parser.ParseChunk(data, length, |
| 364 client_key_, chunk_url.mac, | 364 client_key_, chunk_url.mac, |
| 365 &re_key, chunks)) { | 365 &re_key, chunks)) { |
| 366 #ifndef NDEBUG | 366 #ifndef NDEBUG |
| 367 std::string data_str; | 367 std::string data_str; |
| 368 data_str.assign(data, length); | 368 data_str.assign(data, length); |
| 369 std::string encoded_chunk; | 369 std::string encoded_chunk; |
| 370 net::Base64Encode(data, &encoded_chunk); | 370 net::Base64Encode(data, &encoded_chunk); |
| 371 SB_DLOG(INFO) << "ParseChunk error for chunk: " << chunk_url.url | 371 SB_DLOG(INFO) << "ParseChunk error for chunk: " << chunk_url.url |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 request_->set_upload_data("text/plain", list_data); | 558 request_->set_upload_data("text/plain", list_data); |
| 559 request_->Start(); | 559 request_->Start(); |
| 560 } | 560 } |
| 561 | 561 |
| 562 void SafeBrowsingProtocolManager::OnChunkInserted() { | 562 void SafeBrowsingProtocolManager::OnChunkInserted() { |
| 563 chunk_pending_to_write_ = false; | 563 chunk_pending_to_write_ = false; |
| 564 | 564 |
| 565 if (chunk_request_urls_.empty()) { | 565 if (chunk_request_urls_.empty()) { |
| 566 // Don't pollute old implementation histograms with new implemetation data. | 566 // Don't pollute old implementation histograms with new implemetation data. |
| 567 if (sb_service_->new_safe_browsing()) | 567 if (sb_service_->new_safe_browsing()) |
| 568 UMA_HISTOGRAM_LONG_TIMES(L"SB2.Update", Time::Now() - last_update_); | 568 UMA_HISTOGRAM_LONG_TIMES("SB2.Update", Time::Now() - last_update_); |
| 569 else | 569 else |
| 570 UMA_HISTOGRAM_LONG_TIMES(L"SB.Update", Time::Now() - last_update_); | 570 UMA_HISTOGRAM_LONG_TIMES("SB.Update", Time::Now() - last_update_); |
| 571 UpdateFinished(true); | 571 UpdateFinished(true); |
| 572 } else { | 572 } else { |
| 573 IssueChunkRequest(); | 573 IssueChunkRequest(); |
| 574 } | 574 } |
| 575 } | 575 } |
| 576 | 576 |
| 577 void SafeBrowsingProtocolManager::ReportMalware(const GURL& malware_url, | 577 void SafeBrowsingProtocolManager::ReportMalware(const GURL& malware_url, |
| 578 const GURL& page_url, | 578 const GURL& page_url, |
| 579 const GURL& referrer_url) { | 579 const GURL& referrer_url) { |
| 580 std::string report_str = StringPrintf( | 580 std::string report_str = StringPrintf( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 wrapped_key_.clear(); | 620 wrapped_key_.clear(); |
| 621 IssueKeyRequest(); | 621 IssueKeyRequest(); |
| 622 } | 622 } |
| 623 | 623 |
| 624 void SafeBrowsingProtocolManager::HandleGetHashError() { | 624 void SafeBrowsingProtocolManager::HandleGetHashError() { |
| 625 int next = GetNextBackOffTime(&gethash_error_count_, &gethash_back_off_mult_); | 625 int next = GetNextBackOffTime(&gethash_error_count_, &gethash_back_off_mult_); |
| 626 next_gethash_time_ = Time::Now() + TimeDelta::FromSeconds(next); | 626 next_gethash_time_ = Time::Now() + TimeDelta::FromSeconds(next); |
| 627 } | 627 } |
| 628 | 628 |
| 629 void SafeBrowsingProtocolManager::UpdateFinished(bool success) { | 629 void SafeBrowsingProtocolManager::UpdateFinished(bool success) { |
| 630 UMA_HISTOGRAM_COUNTS(L"SB2.UpdateSize", update_size_); | 630 UMA_HISTOGRAM_COUNTS("SB2.UpdateSize", update_size_); |
| 631 update_size_ = 0; | 631 update_size_ = 0; |
| 632 sb_service_->UpdateFinished(success); | 632 sb_service_->UpdateFinished(success); |
| 633 } | 633 } |
| OLD | NEW |