Index: components/password_manager/content/browser/content_password_manager_driver.h |
diff --git a/components/password_manager/content/browser/content_password_manager_driver.h b/components/password_manager/content/browser/content_password_manager_driver.h |
index 3d454a6d5d6a38d488304bafe92dc20d0530957b..d752f072cf570e673b6ae784c8acb05e79a63d9e 100644 |
--- a/components/password_manager/content/browser/content_password_manager_driver.h |
+++ b/components/password_manager/content/browser/content_password_manager_driver.h |
@@ -11,7 +11,6 @@ |
#include "components/password_manager/core/browser/password_generation_manager.h" |
#include "components/password_manager/core/browser/password_manager.h" |
#include "components/password_manager/core/browser/password_manager_driver.h" |
-#include "content/public/browser/web_contents_observer.h" |
namespace autofill { |
class AutofillManager; |
@@ -19,19 +18,31 @@ struct PasswordForm; |
} |
namespace content { |
+struct FrameNavigateParams; |
+struct LoadCommittedDetails; |
+class RenderFrameHost; |
class WebContents; |
} |
+namespace IPC { |
+class Message; |
+} |
+ |
namespace password_manager { |
-class ContentPasswordManagerDriver : public PasswordManagerDriver, |
- public content::WebContentsObserver { |
+// There is one ContentPasswordManagerDriver per RenderFrameHost. |
+// The lifetime is managed by the ContentPasswordManagerDriverFactory. |
+class ContentPasswordManagerDriver : public PasswordManagerDriver { |
public: |
- ContentPasswordManagerDriver(content::WebContents* web_contents, |
+ ContentPasswordManagerDriver(content::RenderFrameHost* render_frame_host, |
PasswordManagerClient* client, |
autofill::AutofillClient* autofill_client); |
~ContentPasswordManagerDriver() override; |
+ // Gets the driver for |render_frame_host|. |
+ static ContentPasswordManagerDriver* GetForRenderFrameHost( |
+ content::RenderFrameHost* render_frame_host); |
+ |
// PasswordManagerDriver implementation. |
void FillPasswordForm( |
const autofill::PasswordFormFillData& form_data) override; |
@@ -52,13 +63,12 @@ class ContentPasswordManagerDriver : public PasswordManagerDriver, |
autofill::AutofillManager* GetAutofillManager() override; |
PasswordAutofillManager* GetPasswordAutofillManager() override; |
- // content::WebContentsObserver overrides. |
- bool OnMessageReceived(const IPC::Message& message) override; |
- void DidNavigateMainFrame( |
- const content::LoadCommittedDetails& details, |
- const content::FrameNavigateParams& params) override; |
+ bool HandleMessage(const IPC::Message& message); |
+ void DidNavigateFrame(const content::LoadCommittedDetails& details, |
+ const content::FrameNavigateParams& params); |
private: |
+ content::RenderFrameHost* render_frame_host_; |
PasswordManager password_manager_; |
PasswordGenerationManager password_generation_manager_; |
PasswordAutofillManager password_autofill_manager_; |