| 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 b9f6f549edd276b6cf876aeedeffd947560ff1dd..0ad9df43ffb94fe6c980db669d15e1f2aa783695 100644
|
| --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
|
| +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
|
| @@ -26,13 +26,13 @@
|
| #include "components/autofill/content/common/autofill_messages.h"
|
| #include "components/autofill/core/browser/password_generator.h"
|
| #include "components/autofill/core/common/password_form.h"
|
| +#include "components/password_manager/content/browser/content_password_manager_driver.h"
|
| #include "components/password_manager/content/browser/password_manager_internals_service_factory.h"
|
| #include "components/password_manager/content/common/credential_manager_messages.h"
|
| #include "components/password_manager/content/common/credential_manager_types.h"
|
| #include "components/password_manager/core/browser/browser_save_password_progress_logger.h"
|
| #include "components/password_manager/core/browser/log_receiver.h"
|
| #include "components/password_manager/core/browser/password_form_manager.h"
|
| -#include "components/password_manager/core/browser/password_manager.h"
|
| #include "components/password_manager/core/browser/password_manager_internals_service.h"
|
| #include "components/password_manager/core/browser/password_manager_metrics_util.h"
|
| #include "components/password_manager/core/browser/password_manager_url_collection_experiment.h"
|
| @@ -48,6 +48,7 @@
|
| #include "chrome/browser/password_manager/generated_password_saved_infobar_delegate_android.h"
|
| #endif
|
|
|
| +using password_manager::ContentPasswordManagerDriverFactory;
|
| using password_manager::PasswordManagerInternalsService;
|
| using password_manager::PasswordManagerInternalsServiceFactory;
|
|
|
| @@ -74,12 +75,18 @@ ChromePasswordManagerClient::ChromePasswordManagerClient(
|
| autofill::AutofillClient* autofill_client)
|
| : content::WebContentsObserver(web_contents),
|
| profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())),
|
| - driver_(web_contents, this, autofill_client),
|
| + password_manager_(this),
|
| + driver_factory_(nullptr),
|
| credential_manager_dispatcher_(web_contents, this),
|
| - observer_(NULL),
|
| + observer_(nullptr),
|
| can_use_log_router_(false),
|
| autofill_sync_state_(ALLOW_SYNC_CREDENTIALS),
|
| sync_credential_was_filtered_(false) {
|
| + ContentPasswordManagerDriverFactory::CreateForWebContents(web_contents, this,
|
| + autofill_client);
|
| + driver_factory_ =
|
| + ContentPasswordManagerDriverFactory::FromWebContents(web_contents);
|
| +
|
| PasswordManagerInternalsService* service =
|
| PasswordManagerInternalsServiceFactory::GetForBrowserContext(profile_);
|
| if (service)
|
| @@ -255,11 +262,6 @@ ChromePasswordManagerClient::GetPasswordStore() {
|
| .get();
|
| }
|
|
|
| -password_manager::PasswordManagerDriver*
|
| -ChromePasswordManagerClient::GetDriver() {
|
| - return &driver_;
|
| -}
|
| -
|
| base::FieldTrial::Probability
|
| ChromePasswordManagerClient::GetProbabilityForExperiment(
|
| const std::string& experiment_name) {
|
| @@ -343,26 +345,22 @@ bool ChromePasswordManagerClient::WasLastNavigationHTTPError() const {
|
| return false;
|
| }
|
|
|
| -// static
|
| -password_manager::PasswordGenerationManager*
|
| -ChromePasswordManagerClient::GetGenerationManagerFromWebContents(
|
| - content::WebContents* contents) {
|
| - ChromePasswordManagerClient* client =
|
| - ChromePasswordManagerClient::FromWebContents(contents);
|
| - if (!client)
|
| - return NULL;
|
| - return client->GetDriver()->GetPasswordGenerationManager();
|
| +bool ChromePasswordManagerClient::DidLastPageLoadEncounterSSLErrors() {
|
| + content::NavigationEntry* entry =
|
| + web_contents()->GetController().GetLastCommittedEntry();
|
| + if (!entry)
|
| + return false;
|
| +
|
| + return net::IsCertStatusError(entry->GetSSL().cert_status);
|
| +}
|
| +
|
| +bool ChromePasswordManagerClient::IsOffTheRecord() {
|
| + return web_contents()->GetBrowserContext()->IsOffTheRecord();
|
| }
|
|
|
| -// static
|
| password_manager::PasswordManager*
|
| -ChromePasswordManagerClient::GetManagerFromWebContents(
|
| - content::WebContents* contents) {
|
| - ChromePasswordManagerClient* client =
|
| - ChromePasswordManagerClient::FromWebContents(contents);
|
| - if (!client)
|
| - return NULL;
|
| - return client->GetDriver()->GetPasswordManager();
|
| +ChromePasswordManagerClient::GetPasswordManager() {
|
| + return &password_manager_;
|
| }
|
|
|
| void ChromePasswordManagerClient::SetTestObserver(
|
| @@ -371,22 +369,27 @@ void ChromePasswordManagerClient::SetTestObserver(
|
| }
|
|
|
| bool ChromePasswordManagerClient::OnMessageReceived(
|
| - const IPC::Message& message) {
|
| + const IPC::Message& message,
|
| + content::RenderFrameHost* render_frame_host) {
|
| bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(ChromePasswordManagerClient, message)
|
| + IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(ChromePasswordManagerClient, message,
|
| + render_frame_host)
|
| // Autofill messages:
|
| IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowPasswordGenerationPopup,
|
| ShowPasswordGenerationPopup)
|
| IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowPasswordEditingPopup,
|
| ShowPasswordEditingPopup)
|
| + IPC_END_MESSAGE_MAP()
|
| +
|
| + IPC_BEGIN_MESSAGE_MAP(ChromePasswordManagerClient, message)
|
| IPC_MESSAGE_HANDLER(AutofillHostMsg_HidePasswordGenerationPopup,
|
| HidePasswordGenerationPopup)
|
| IPC_MESSAGE_HANDLER(AutofillHostMsg_PasswordAutofillAgentConstructed,
|
| NotifyRendererOfLoggingAvailability)
|
| -
|
| // Default:
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| +
|
| return handled;
|
| }
|
|
|
| @@ -397,6 +400,7 @@ gfx::RectF ChromePasswordManagerClient::GetBoundsInScreenSpace(
|
| }
|
|
|
| void ChromePasswordManagerClient::ShowPasswordGenerationPopup(
|
| + content::RenderFrameHost* render_frame_host,
|
| const gfx::RectF& bounds,
|
| int max_length,
|
| const autofill::PasswordForm& form) {
|
| @@ -406,31 +410,25 @@ void ChromePasswordManagerClient::ShowPasswordGenerationPopup(
|
|
|
| popup_controller_ =
|
| autofill::PasswordGenerationPopupControllerImpl::GetOrCreate(
|
| - popup_controller_,
|
| - element_bounds_in_screen_space,
|
| - form,
|
| - max_length,
|
| - driver_.GetPasswordManager(),
|
| - observer_,
|
| - web_contents(),
|
| - web_contents()->GetNativeView());
|
| + popup_controller_, element_bounds_in_screen_space, form, max_length,
|
| + &password_manager_,
|
| + driver_factory_->GetDriverForFrame(render_frame_host), observer_,
|
| + web_contents(), web_contents()->GetNativeView());
|
| popup_controller_->Show(true /* display_password */);
|
| }
|
|
|
| void ChromePasswordManagerClient::ShowPasswordEditingPopup(
|
| + content::RenderFrameHost* render_frame_host,
|
| const gfx::RectF& bounds,
|
| const autofill::PasswordForm& form) {
|
| gfx::RectF element_bounds_in_screen_space = GetBoundsInScreenSpace(bounds);
|
| popup_controller_ =
|
| autofill::PasswordGenerationPopupControllerImpl::GetOrCreate(
|
| - popup_controller_,
|
| - element_bounds_in_screen_space,
|
| - form,
|
| + popup_controller_, element_bounds_in_screen_space, form,
|
| 0, // Unspecified max length.
|
| - driver_.GetPasswordManager(),
|
| - observer_,
|
| - web_contents(),
|
| - web_contents()->GetNativeView());
|
| + &password_manager_,
|
| + driver_factory_->GetDriverForFrame(render_frame_host), observer_,
|
| + web_contents(), web_contents()->GetNativeView());
|
| popup_controller_->Show(false /* display_password */);
|
| }
|
|
|
|
|