| 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 5fc172ee2ac3e75bbd7ea24d4fb3624bba328b58..a2ca4df9509d47e1f32b9f7aa45379522b4b44d3 100644
 | 
| --- a/chrome/browser/password_manager/chrome_password_manager_client.h
 | 
| +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
 | 
| @@ -10,12 +10,14 @@
 | 
|  
 | 
|  #include "base/compiler_specific.h"
 | 
|  #include "base/macros.h"
 | 
| +#include "components/autofill/content/public/interfaces/autofill_driver.mojom.h"
 | 
|  #include "components/password_manager/content/browser/content_password_manager_driver_factory.h"
 | 
|  #include "components/password_manager/content/browser/credential_manager_impl.h"
 | 
|  #include "components/password_manager/core/browser/password_manager.h"
 | 
|  #include "components/password_manager/core/browser/password_manager_client.h"
 | 
|  #include "components/password_manager/sync/browser/sync_credentials_filter.h"
 | 
|  #include "components/prefs/pref_member.h"
 | 
| +#include "content/public/browser/web_contents_binding_set.h"
 | 
|  #include "content/public/browser/web_contents_observer.h"
 | 
|  #include "content/public/browser/web_contents_user_data.h"
 | 
|  #include "ui/gfx/geometry/rect.h"
 | 
| @@ -41,7 +43,8 @@ class PasswordManagerDriver;
 | 
|  class ChromePasswordManagerClient
 | 
|      : public password_manager::PasswordManagerClient,
 | 
|        public content::WebContentsObserver,
 | 
| -      public content::WebContentsUserData<ChromePasswordManagerClient> {
 | 
| +      public content::WebContentsUserData<ChromePasswordManagerClient>,
 | 
| +      public autofill::mojom::PasswordManagerClient {
 | 
|   public:
 | 
|    ~ChromePasswordManagerClient() override;
 | 
|  
 | 
| @@ -92,8 +95,16 @@ class ChromePasswordManagerClient
 | 
|        const override;
 | 
|    const password_manager::LogManager* GetLogManager() const override;
 | 
|  
 | 
| -  // Hides any visible generation UI.
 | 
| -  void HidePasswordGenerationPopup();
 | 
| +  // autofill::mojom::PasswordManagerClient overrides.
 | 
| +  void ShowPasswordGenerationPopup(const gfx::RectF& bounds,
 | 
| +                                   int max_length,
 | 
| +                                   const base::string16& generation_element,
 | 
| +                                   bool is_manually_triggered,
 | 
| +                                   const autofill::PasswordForm& form) override;
 | 
| +  void ShowPasswordEditingPopup(const gfx::RectF& bounds,
 | 
| +                                const autofill::PasswordForm& form) override;
 | 
| +  void GenerationAvailableForForm(const autofill::PasswordForm& form) override;
 | 
| +  void HidePasswordGenerationPopup() override;
 | 
|  
 | 
|    static void CreateForWebContentsWithAutofillClient(
 | 
|        content::WebContents* contents,
 | 
| @@ -115,8 +126,6 @@ class ChromePasswordManagerClient
 | 
|    friend class content::WebContentsUserData<ChromePasswordManagerClient>;
 | 
|  
 | 
|    // content::WebContentsObserver overrides.
 | 
| -  bool OnMessageReceived(const IPC::Message& message,
 | 
| -                         content::RenderFrameHost* render_frame_host) override;
 | 
|    void DidStartNavigation(
 | 
|        content::NavigationHandle* navigation_handle) override;
 | 
|  
 | 
| @@ -129,33 +138,11 @@ class ChromePasswordManagerClient
 | 
|    // filled.
 | 
|    bool IsPasswordManagementEnabledForCurrentPage() const;
 | 
|  
 | 
| -  // Causes the password generation UI to be shown for the specified form.
 | 
| -  // The popup will be anchored at |element_bounds|. The generated password
 | 
| -  // will be no longer than |max_length|. |generation_element| should contain a
 | 
| -  // name of a password field at which generation popup is attached.
 | 
| -  // |is_manually_triggered| informs whether it is automatically or manually
 | 
| -  // triggered generation.
 | 
| -  void ShowPasswordGenerationPopup(content::RenderFrameHost* render_frame_host,
 | 
| -                                   const gfx::RectF& bounds,
 | 
| -                                   int max_length,
 | 
| -                                   const base::string16& generation_element,
 | 
| -                                   bool is_manually_triggered,
 | 
| -                                   const autofill::PasswordForm& form);
 | 
| -
 | 
| -  // Causes the password editing UI to be shown anchored at |element_bounds|.
 | 
| -  void ShowPasswordEditingPopup(content::RenderFrameHost* render_frame_host,
 | 
| -                                const gfx::RectF& bounds,
 | 
| -                                const autofill::PasswordForm& form);
 | 
| -
 | 
|    // Shows the dialog where the user can accept or decline the global autosignin
 | 
|    // setting as a first run experience. The dialog won't appear in Incognito or
 | 
|    // when the autosign-in is off.
 | 
|    void PromptUserToEnableAutosigninIfNecessary();
 | 
|  
 | 
| -  // Notify the PasswordManager that generation is available for |form|. Used
 | 
| -  // for UMA stats.
 | 
| -  void GenerationAvailableForForm(const autofill::PasswordForm& form);
 | 
| -
 | 
|    // Called as a response to PromptUserToChooseCredentials. nullptr in |form|
 | 
|    // means that nothing was chosen. |one_local_credential| is true if there was
 | 
|    // just one local credential to be chosen from.
 | 
| @@ -178,6 +165,9 @@ class ChromePasswordManagerClient
 | 
|    // once main frame host was created.
 | 
|    password_manager::CredentialManagerImpl credential_manager_impl_;
 | 
|  
 | 
| +  content::WebContentsFrameBindingSet<autofill::mojom::PasswordManagerClient>
 | 
| +      password_manager_client_bindings_;
 | 
| +
 | 
|    // Observer for password generation popup.
 | 
|    autofill::PasswordGenerationPopupObserver* observer_;
 | 
|  
 | 
| 
 |