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

Side by Side Diff: components/password_manager/core/browser/password_form_manager.h

Issue 2912783002: Measure how often PSL and same-organization name credentials are suppressed. (Closed)
Patch Set: Addressed comments from kolos@. Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ 5 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_
6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ 6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 kNoOutcome, 325 kNoOutcome,
326 kNoGenerationElement, 326 kNoGenerationElement,
327 kFoundGenerationElement 327 kFoundGenerationElement
328 }; 328 };
329 329
330 // The maximum number of combinations of the three preceding enums. 330 // The maximum number of combinations of the three preceding enums.
331 // This is used when recording the actions taken by the form in UMA. 331 // This is used when recording the actions taken by the form in UMA.
332 static const int kMaxNumActionsTaken = 332 static const int kMaxNumActionsTaken =
333 kManagerActionMax * kUserActionMax * kSubmitResultMax; 333 kManagerActionMax * kUserActionMax * kSubmitResultMax;
334 334
335 // Enumerates whether there was a `suppressed` stored credential, meaning that 335 // Enumerates whether there were `suppressed` credentials. These are stored
336 // it was not filled because it was for an origin that was similar to, but not 336 // credentials that were not filled, even though they might be related to the
337 // exactly (or PSL) matching the origin of |observed_form_|. Currently, the 337 // |observed_form_|. See FormFetcher::GetSuppressed* for details.
338 // only class of suppressed credentials considered are HTTPS credentials not
339 // filled on the HTTP version of the origin.
340 // 338 //
341 // If a suppressed credential exists, it is also recorded whether its username 339 // If suppressed credentials exist, it is also recorded whether their username
342 // and password matched those entered or filled into the observed form. 340 // and/or password matched those submitted.
343 enum SuppressedAccountExistence { 341 enum SuppressedAccountExistence {
344 kSuppressedAccountNone, 342 kSuppressedAccountNone,
345 // Recorded when there exists a suppressed credential, but there was no 343 // Recorded when there exists a suppressed account, but there was no
346 // submitted form to compare the username and password to. 344 // submitted form to compare its username and password to.
347 kSuppressedAccountExists, 345 kSuppressedAccountExists,
348 // Recorded when there was a submitted form. 346 // Recorded when there was a submitted form.
349 kSuppressedAccountExistsDifferentUsername, 347 kSuppressedAccountExistsDifferentUsername,
350 kSuppressedAccountExistsSameUsername, 348 kSuppressedAccountExistsSameUsername,
351 kSuppressedAccountExistsSameUsernameAndPassword, 349 kSuppressedAccountExistsSameUsernameAndPassword,
352 kSuppressedAccountExistenceMax, 350 kSuppressedAccountExistenceMax,
353 }; 351 };
354 352
355 // The maximum number of combinations recorded into histograms in the 353 // The maximum number of combinations recorded into histograms in the
356 // PasswordManager.SuppressedAccount.* family. 354 // PasswordManager.SuppressedAccount.* family.
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 // Returns true if |form| is a username update of a credential already in 423 // Returns true if |form| is a username update of a credential already in
426 // |best_matches_|. Sets |pending_credentials_| to the appropriate 424 // |best_matches_|. Sets |pending_credentials_| to the appropriate
427 // PasswordForm if it returns true. 425 // PasswordForm if it returns true.
428 bool UpdatePendingCredentialsIfUsernameChanged( 426 bool UpdatePendingCredentialsIfUsernameChanged(
429 const autofill::PasswordForm& form); 427 const autofill::PasswordForm& form);
430 428
431 // Converts the "ActionsTaken" fields into an int so they can be logged to 429 // Converts the "ActionsTaken" fields into an int so they can be logged to
432 // UMA. 430 // UMA.
433 int GetActionsTaken() const; 431 int GetActionsTaken() const;
434 432
435 // Computes statistics on whether there was a stored credential with the 433 // When supplied with the list of all |suppressed_forms| that belong to
436 // specified |type| that could not be filled into the |observed_form_| because 434 // certain suppressed credential type (see FormFetcher::GetSuppressed*),
437 // the scheme of its origin was HTTPS rather than HTTP; and encodes this 435 // filters that list down to forms that are either |manual_or_generated|, and
438 // information into an integer so it can be recorded as a UMA histogram. 436 // based on that, computes the histogram sample that is a mixed-based
439 int GetStatsForSuppressedHTTPSAccount( 437 // representation of a combination of four attributes:
440 autofill::PasswordForm::Type type) const; 438 // -- whether there were suppressed credentials (and if so, their relation to
439 // the submitted username/password).
440 // -- whether the |observed_form_| got ultimately submitted
441 // -- what action the password manager performed (|manager_action_|),
442 // -- and what action the user performed (|user_action_|_).
443 int GetHistogramSampleForSuppressedAccounts(
444 const std::vector<const autofill::PasswordForm*> suppressed_forms,
445 autofill::PasswordForm::Type manual_or_generated) const;
446
447 // Records all histograms in the PasswordManager.SuppressedAccount.* family.
448 void RecordHistogramsOnSuppressedAccounts() const;
441 449
442 // Tries to set all votes (e.g. autofill field types, generation vote) to 450 // Tries to set all votes (e.g. autofill field types, generation vote) to
443 // a |FormStructure| and upload it to the server. Returns true on success. 451 // a |FormStructure| and upload it to the server. Returns true on success.
444 bool UploadPasswordVote(const autofill::PasswordForm& form_to_upload, 452 bool UploadPasswordVote(const autofill::PasswordForm& form_to_upload,
445 const autofill::ServerFieldType& password_type, 453 const autofill::ServerFieldType& password_type,
446 const std::string& login_form_signature); 454 const std::string& login_form_signature);
447 455
448 // Adds a vote on password generation usage to |form_structure|. 456 // Adds a vote on password generation usage to |form_structure|.
449 void AddGeneratedVote(autofill::FormStructure* form_structure); 457 void AddGeneratedVote(autofill::FormStructure* form_structure);
450 458
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 // True if the main frame's visible URL, at the time this PasswordFormManager 651 // True if the main frame's visible URL, at the time this PasswordFormManager
644 // was created, is secure. 652 // was created, is secure.
645 bool is_main_frame_secure_ = false; 653 bool is_main_frame_secure_ = false;
646 654
647 DISALLOW_COPY_AND_ASSIGN(PasswordFormManager); 655 DISALLOW_COPY_AND_ASSIGN(PasswordFormManager);
648 }; 656 };
649 657
650 } // namespace password_manager 658 } // namespace password_manager
651 659
652 #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ 660 #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698