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

Side by Side Diff: components/password_manager/core/browser/login_database.cc

Issue 1468803002: Switch to static_assert. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@assert1
Patch Set: message cleanup Created 5 years 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/password_manager/core/browser/login_database.h" 5 #include "components/password_manager/core/browser/login_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 if (!domain_to_registry_controlled_domain.count(domain)) { 230 if (!domain_to_registry_controlled_domain.count(domain)) {
231 domain_to_registry_controlled_domain[domain] = 231 domain_to_registry_controlled_domain[domain] =
232 GetRegistryControlledDomain(signon_realm_url); 232 GetRegistryControlledDomain(signon_realm_url);
233 if (domain_to_registry_controlled_domain[domain].empty()) 233 if (domain_to_registry_controlled_domain[domain].empty())
234 domain_to_registry_controlled_domain[domain] = domain; 234 domain_to_registry_controlled_domain[domain] = domain;
235 } 235 }
236 const std::string& registry_controlled_domain = 236 const std::string& registry_controlled_domain =
237 domain_to_registry_controlled_domain[domain]; 237 domain_to_registry_controlled_domain[domain];
238 238
239 Scheme scheme = SCHEME_HTTP; 239 Scheme scheme = SCHEME_HTTP;
240 COMPILE_ASSERT(arraysize(kAllSchemes) == 2, "Update this logic"); 240 static_assert(arraysize(kAllSchemes) == 2, "Update this logic");
241 if (signon_realm_url.SchemeIs(url::kHttpsScheme)) 241 if (signon_realm_url.SchemeIs(url::kHttpsScheme))
242 scheme = SCHEME_HTTPS; 242 scheme = SCHEME_HTTPS;
243 else if (!signon_realm_url.SchemeIs(url::kHttpScheme)) 243 else if (!signon_realm_url.SchemeIs(url::kHttpScheme))
244 continue; 244 continue;
245 245
246 statistics[scheme].num_accounts_per_domain[domain]++; 246 statistics[scheme].num_accounts_per_domain[domain]++;
247 statistics[scheme].num_accounts_per_registry_controlled_domain 247 statistics[scheme].num_accounts_per_registry_controlled_domain
248 [registry_controlled_domain]++; 248 [registry_controlled_domain]++;
249 statistics[scheme].num_total_accounts++; 249 statistics[scheme].num_total_accounts++;
250 } 250 }
251 251
252 // For each "source" account of either scheme, count the number of "target" 252 // For each "source" account of either scheme, count the number of "target"
253 // accounts reusing the same password (of either scheme). 253 // accounts reusing the same password (of either scheme).
254 for (const Scheme scheme : kAllSchemes) { 254 for (const Scheme scheme : kAllSchemes) {
255 for (const auto& kv : statistics[scheme].num_accounts_per_domain) { 255 for (const auto& kv : statistics[scheme].num_accounts_per_domain) {
256 const std::string& domain(kv.first); 256 const std::string& domain(kv.first);
257 const int num_accounts_per_domain(kv.second); 257 const int num_accounts_per_domain(kv.second);
258 const std::string& registry_controlled_domain = 258 const std::string& registry_controlled_domain =
259 domain_to_registry_controlled_domain[domain]; 259 domain_to_registry_controlled_domain[domain];
260 260
261 Scheme other_scheme = scheme == SCHEME_HTTP ? SCHEME_HTTPS : SCHEME_HTTP; 261 Scheme other_scheme = scheme == SCHEME_HTTP ? SCHEME_HTTPS : SCHEME_HTTP;
262 COMPILE_ASSERT(arraysize(kAllSchemes) == 2, "Update |other_scheme|"); 262 static_assert(arraysize(kAllSchemes) == 2, "Update |other_scheme|");
263 263
264 // Discount the account at hand from the number of accounts with the same 264 // Discount the account at hand from the number of accounts with the same
265 // domain and scheme. 265 // domain and scheme.
266 int num_accounts_for_same_domain[arraysize(kAllSchemes)] = {}; 266 int num_accounts_for_same_domain[arraysize(kAllSchemes)] = {};
267 num_accounts_for_same_domain[scheme] = 267 num_accounts_for_same_domain[scheme] =
268 statistics[scheme].num_accounts_per_domain[domain] - 1; 268 statistics[scheme].num_accounts_per_domain[domain] - 1;
269 num_accounts_for_same_domain[other_scheme] = 269 num_accounts_for_same_domain[other_scheme] =
270 statistics[other_scheme].num_accounts_per_domain[domain]; 270 statistics[other_scheme].num_accounts_per_domain[domain];
271 271
272 // By definition, a PSL match requires the scheme to be the same. 272 // By definition, a PSL match requires the scheme to be the same.
273 int num_psl_matching_accounts = 273 int num_psl_matching_accounts =
274 statistics[scheme].num_accounts_per_registry_controlled_domain 274 statistics[scheme].num_accounts_per_registry_controlled_domain
275 [registry_controlled_domain] - 275 [registry_controlled_domain] -
276 statistics[scheme].num_accounts_per_domain[domain]; 276 statistics[scheme].num_accounts_per_domain[domain];
277 277
278 // Discount PSL matches from the number of accounts with different domains 278 // Discount PSL matches from the number of accounts with different domains
279 // but the same scheme. 279 // but the same scheme.
280 int num_accounts_for_different_domain[arraysize(kAllSchemes)] = {}; 280 int num_accounts_for_different_domain[arraysize(kAllSchemes)] = {};
281 num_accounts_for_different_domain[scheme] = 281 num_accounts_for_different_domain[scheme] =
282 statistics[scheme].num_total_accounts - 282 statistics[scheme].num_total_accounts -
283 statistics[scheme].num_accounts_per_registry_controlled_domain 283 statistics[scheme].num_accounts_per_registry_controlled_domain
284 [registry_controlled_domain]; 284 [registry_controlled_domain];
285 num_accounts_for_different_domain[other_scheme] = 285 num_accounts_for_different_domain[other_scheme] =
286 statistics[other_scheme].num_total_accounts - 286 statistics[other_scheme].num_total_accounts -
287 statistics[other_scheme].num_accounts_per_domain[domain]; 287 statistics[other_scheme].num_accounts_per_domain[domain];
288 288
289 std::string source_realm_kind = 289 std::string source_realm_kind =
290 scheme == SCHEME_HTTP ? "FromHttpRealm" : "FromHttpsRealm"; 290 scheme == SCHEME_HTTP ? "FromHttpRealm" : "FromHttpsRealm";
291 COMPILE_ASSERT(arraysize(kAllSchemes) == 2, "Update |source_realm_kind|"); 291 static_assert(arraysize(kAllSchemes) == 2, "Update |source_realm_kind|");
292 292
293 // So far, the calculation has been carried out once per "source" domain, 293 // So far, the calculation has been carried out once per "source" domain,
294 // but the metrics need to be recorded on a per-account basis. The set of 294 // but the metrics need to be recorded on a per-account basis. The set of
295 // metrics are the same for all accounts for the same domain, so simply 295 // metrics are the same for all accounts for the same domain, so simply
296 // report them as many times as accounts. 296 // report them as many times as accounts.
297 for (int i = 0; i < num_accounts_per_domain; ++i) { 297 for (int i = 0; i < num_accounts_per_domain; ++i) {
298 LogNumberOfAccountsReusingPassword( 298 LogNumberOfAccountsReusingPassword(
299 source_realm_kind + ".OnHttpRealmWithSameHost", 299 source_realm_kind + ".OnHttpRealmWithSameHost",
300 num_accounts_for_same_domain[SCHEME_HTTP], HistogramSize::SMALL); 300 num_accounts_for_same_domain[SCHEME_HTTP], HistogramSize::SMALL);
301 LogNumberOfAccountsReusingPassword( 301 LogNumberOfAccountsReusingPassword(
(...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering", 1289 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering",
1290 psl_domain_match_metric, PSL_DOMAIN_MATCH_COUNT); 1290 psl_domain_match_metric, PSL_DOMAIN_MATCH_COUNT);
1291 } 1291 }
1292 1292
1293 if (!statement->Succeeded()) 1293 if (!statement->Succeeded())
1294 return false; 1294 return false;
1295 return true; 1295 return true;
1296 } 1296 }
1297 1297
1298 } // namespace password_manager 1298 } // namespace password_manager
OLDNEW
« no previous file with comments | « components/mus/public/cpp/window_property.h ('k') | components/password_manager/core/browser/login_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698