OLD | NEW |
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/safe_browsing/protocol_manager.h" | 5 #include "chrome/browser/safe_browsing/protocol_manager.h" |
6 | 6 |
7 #ifndef NDEBUG | 7 #ifndef NDEBUG |
8 #include "base/base64.h" | 8 #include "base/base64.h" |
9 #endif | 9 #endif |
10 #include "base/environment.h" | 10 #include "base/environment.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 // The first update must happen between 1-5 minutes of start up. | 118 // The first update must happen between 1-5 minutes of start up. |
119 next_update_sec_ = base::RandInt(60, kSbTimerStartIntervalSec); | 119 next_update_sec_ = base::RandInt(60, kSbTimerStartIntervalSec); |
120 | 120 |
121 chrome::VersionInfo version_info; | 121 chrome::VersionInfo version_info; |
122 if (!version_info.is_valid() || version_info.Version().empty()) | 122 if (!version_info.is_valid() || version_info.Version().empty()) |
123 version_ = "0.1"; | 123 version_ = "0.1"; |
124 else | 124 else |
125 version_ = version_info.Version(); | 125 version_ = version_info.Version(); |
126 } | 126 } |
127 | 127 |
| 128 // static |
| 129 void SafeBrowsingProtocolManager::RecordGetHashResult(ResultType result_type) { |
| 130 UMA_HISTOGRAM_ENUMERATION("SB2.GetHashResult", result_type, |
| 131 GET_HASH_RESULT_MAX); |
| 132 } |
| 133 |
128 SafeBrowsingProtocolManager::~SafeBrowsingProtocolManager() { | 134 SafeBrowsingProtocolManager::~SafeBrowsingProtocolManager() { |
129 // Delete in-progress SafeBrowsing requests. | 135 // Delete in-progress SafeBrowsing requests. |
130 STLDeleteContainerPairFirstPointers(hash_requests_.begin(), | 136 STLDeleteContainerPairFirstPointers(hash_requests_.begin(), |
131 hash_requests_.end()); | 137 hash_requests_.end()); |
132 hash_requests_.clear(); | 138 hash_requests_.clear(); |
133 | 139 |
134 // Delete in-progress safebrowsing reports (hits and details). | 140 // Delete in-progress safebrowsing reports (hits and details). |
135 STLDeleteContainerPointers(safebrowsing_reports_.begin(), | 141 STLDeleteContainerPointers(safebrowsing_reports_.begin(), |
136 safebrowsing_reports_.end()); | 142 safebrowsing_reports_.end()); |
137 safebrowsing_reports_.clear(); | 143 safebrowsing_reports_.clear(); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 if (it != hash_requests_.end()) { | 224 if (it != hash_requests_.end()) { |
219 // GetHash response. | 225 // GetHash response. |
220 fetcher.reset(it->first); | 226 fetcher.reset(it->first); |
221 SafeBrowsingService::SafeBrowsingCheck* check = it->second; | 227 SafeBrowsingService::SafeBrowsingCheck* check = it->second; |
222 std::vector<SBFullHashResult> full_hashes; | 228 std::vector<SBFullHashResult> full_hashes; |
223 bool can_cache = false; | 229 bool can_cache = false; |
224 if (response_code == 200 || response_code == 204) { | 230 if (response_code == 200 || response_code == 204) { |
225 // For tracking our GetHash false positive (204) rate, compared to real | 231 // For tracking our GetHash false positive (204) rate, compared to real |
226 // (200) responses. | 232 // (200) responses. |
227 if (response_code == 200) | 233 if (response_code == 200) |
228 UMA_HISTOGRAM_COUNTS("SB2.GetHash200", 1); | 234 RecordGetHashResult(GET_HASH_STATUS_200); |
229 else | 235 else |
230 UMA_HISTOGRAM_COUNTS("SB2.GetHash204", 1); | 236 RecordGetHashResult(GET_HASH_STATUS_204); |
231 can_cache = true; | 237 can_cache = true; |
232 gethash_error_count_ = 0; | 238 gethash_error_count_ = 0; |
233 gethash_back_off_mult_ = 1; | 239 gethash_back_off_mult_ = 1; |
234 bool re_key = false; | 240 bool re_key = false; |
235 SafeBrowsingProtocolParser parser; | 241 SafeBrowsingProtocolParser parser; |
236 parsed_ok = parser.ParseGetHash(data.data(), | 242 parsed_ok = parser.ParseGetHash(data.data(), |
237 static_cast<int>(data.length()), | 243 static_cast<int>(data.length()), |
238 client_key_, | 244 client_key_, |
239 &re_key, | 245 &re_key, |
240 &full_hashes); | 246 &full_hashes); |
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 if (!additional_query_.empty()) { | 792 if (!additional_query_.empty()) { |
787 if (next_url.find("?") != std::string::npos) { | 793 if (next_url.find("?") != std::string::npos) { |
788 next_url.append("&"); | 794 next_url.append("&"); |
789 } else { | 795 } else { |
790 next_url.append("?"); | 796 next_url.append("?"); |
791 } | 797 } |
792 next_url.append(additional_query_); | 798 next_url.append(additional_query_); |
793 } | 799 } |
794 return GURL(next_url); | 800 return GURL(next_url); |
795 } | 801 } |
OLD | NEW |