Chromium Code Reviews| Index: chrome/browser/password_manager/chrome_password_manager_client.cc |
| diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc |
| index 22a725914159216f6c6a9283a9d582b5faec9ce6..c0bdae991a835e3f91831ccaa253f4182bf868d9 100644 |
| --- a/chrome/browser/password_manager/chrome_password_manager_client.cc |
| +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc |
| @@ -144,6 +144,7 @@ ChromePasswordManagerClient::ChromePasswordManagerClient( |
| : content::WebContentsObserver(web_contents), |
| profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())), |
| password_manager_(this), |
| + password_reuse_detection_manager_(this), |
| driver_factory_(nullptr), |
| credential_manager_impl_(web_contents, this), |
| password_manager_client_bindings_(web_contents, this), |
| @@ -255,8 +256,7 @@ bool ChromePasswordManagerClient::PromptUserToSaveOrUpdatePassword( |
| std::move(form_to_save)); |
| return true; |
| } |
| - SavePasswordInfoBarDelegate::Create(web_contents(), |
| - std::move(form_to_save)); |
| + SavePasswordInfoBarDelegate::Create(web_contents(), std::move(form_to_save)); |
| #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| return true; |
| } |
| @@ -377,18 +377,36 @@ void ChromePasswordManagerClient::HidePasswordGenerationPopup() { |
| popup_controller_->HideAndDestroy(); |
| } |
| +void ChromePasswordManagerClient::DidNavigateMainFrame( |
| + const content::LoadCommittedDetails& details, |
| + const content::FrameNavigateParams& params) { |
| + password_reuse_detection_manager_.DidNavigateMainFrame(); |
| + web_contents()->GetRenderViewHost()->GetWidget()->RemoveInputEventObserver( |
|
vabr (Chromium)
2016/12/23 17:14:10
Why is it needed to remove and immediately add its
dvadym
2016/12/23 17:45:20
I've added a comment with explanation.
vabr (Chromium)
2016/12/23 21:24:24
Acknowledged.
|
| + this); |
| + web_contents()->GetRenderViewHost()->GetWidget()->AddInputEventObserver(this); |
| +} |
| + |
| +void ChromePasswordManagerClient::OnInputEvent( |
| + const blink::WebInputEvent& event) { |
| + if (event.type != blink::WebInputEvent::Char) |
| + return; |
| + const blink::WebKeyboardEvent& key_event = |
| + static_cast<const blink::WebKeyboardEvent&>(event); |
| + password_reuse_detection_manager_.OnKeyPressed(key_event.text); |
| +} |
| + |
| PrefService* ChromePasswordManagerClient::GetPrefs() { |
| return profile_->GetPrefs(); |
| } |
| -password_manager::PasswordStore* |
| -ChromePasswordManagerClient::GetPasswordStore() const { |
| +password_manager::PasswordStore* ChromePasswordManagerClient::GetPasswordStore() |
|
vabr (Chromium)
2016/12/23 17:14:10
nit: Also here and on lines 408-409, please revert
dvadym
2016/12/23 17:45:20
Done.
|
| + const { |
| // Always use EXPLICIT_ACCESS as the password manager checks IsOffTheRecord |
| // itself when it shouldn't access the PasswordStore. |
| // TODO(gcasto): Is is safe to change this to |
| // ServiceAccessType::IMPLICIT_ACCESS? |
| - return PasswordStoreFactory::GetForProfile( |
| - profile_, ServiceAccessType::EXPLICIT_ACCESS).get(); |
| + return PasswordStoreFactory::GetForProfile(profile_, |
| + ServiceAccessType::EXPLICIT_ACCESS).get(); |
| } |
| password_manager::PasswordSyncState |
| @@ -405,8 +423,7 @@ bool ChromePasswordManagerClient::WasLastNavigationHTTPError() const { |
| if (log_manager_->IsLoggingActive()) { |
| logger.reset(new password_manager::BrowserSavePasswordProgressLogger( |
| log_manager_.get())); |
| - logger->LogMessage( |
| - Logger::STRING_WAS_LAST_NAVIGATION_HTTP_ERROR_METHOD); |
| + logger->LogMessage(Logger::STRING_WAS_LAST_NAVIGATION_HTTP_ERROR_METHOD); |
| } |
| content::NavigationEntry* entry = |