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

Unified Diff: chrome/browser/password_manager/chrome_password_manager_client.h

Issue 451853003: [Password Manager] Setup experiment to restrict autofilling of sync credential (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/password_manager/chrome_password_manager_client.h
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.h b/chrome/browser/password_manager/chrome_password_manager_client.h
index 203aa420236567ee9de27022a887f25fb8bbf99a..f9674cd524d67e694215e79946e17a92f9a26dfb 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.h
+++ b/chrome/browser/password_manager/chrome_password_manager_client.h
@@ -40,6 +40,8 @@ class ChromePasswordManagerClient
// PasswordManagerClient implementation.
virtual bool IsAutomaticPasswordSavingEnabled() const OVERRIDE;
virtual bool IsPasswordManagerEnabledForCurrentPage() const OVERRIDE;
+ virtual bool ShouldFilterAutofillResult(
+ const autofill::PasswordForm& form) const OVERRIDE;
virtual bool IsSyncAccountCredential(
const std::string& username, const std::string& origin) const OVERRIDE;
virtual void PromptUserToSavePassword(
@@ -90,9 +92,18 @@ class ChromePasswordManagerClient
// Returns true if the password manager should be enabled during sync signin.
static bool EnabledForSyncSignin();
- private:
+ protected:
+ // Callable for tests.
ChromePasswordManagerClient(content::WebContents* web_contents,
autofill::AutofillClient* autofill_client);
+
+ private:
+ enum AutofillForSyncCredentialsState {
+ ALLOW_SYNC_CREDENTIALS,
+ DISALLOW_SYNC_CREDENTIALS_FOR_REAUTH,
+ DISALLOW_SYNC_CREDENTIALS,
+ };
+
friend class content::WebContentsUserData<ChromePasswordManagerClient>;
// content::WebContentsObserver overrides.
@@ -122,6 +133,13 @@ class ChromePasswordManagerClient
// |can_use_log_router_|.
void NotifyRendererOfLoggingAvailability();
+ // Returns true if the last loaded page was for transactional re-auth on a
+ // Google property.
+ bool LastLoadWasTransactionalReauthPage() const;
+
+ // Sets |autofill_state_| based on experiment and flag values.
+ void SetUpAutofillSyncState();
+
Profile* const profile_;
password_manager::ContentPasswordManagerDriver driver_;
@@ -139,6 +157,9 @@ class ChromePasswordManagerClient
// True if |this| is registered with some LogRouter which can accept logs.
bool can_use_log_router_;
+ // How to handle the sync credential in ShouldFilterAutofillResult().
+ AutofillForSyncCredentialsState autofill_sync_state_;
+
DISALLOW_COPY_AND_ASSIGN(ChromePasswordManagerClient);
};

Powered by Google App Engine
This is Rietveld 408576698