Index: components/autofill/content/browser/content_autofill_driver.h |
diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h |
index 0f6fb0840272be4583cfab51ebf829f634e92d25..f038f76f89cd47cc727c9dedceec7df5e70464f0 100644 |
--- a/components/autofill/content/browser/content_autofill_driver.h |
+++ b/components/autofill/content/browser/content_autofill_driver.h |
@@ -9,6 +9,7 @@ |
#include <string> |
#include "base/supports_user_data.h" |
+#include "components/autofill/content/browser/key_press_handler_manager.h" |
#include "components/autofill/content/common/autofill_agent.mojom.h" |
#include "components/autofill/content/common/autofill_driver.mojom.h" |
#include "components/autofill/core/browser/autofill_driver.h" |
@@ -29,7 +30,8 @@ class AutofillClient; |
// communication from the renderer and from the external world. There is one |
// instance per RenderFrameHost. |
class ContentAutofillDriver : public AutofillDriver, |
- public mojom::AutofillDriver { |
+ public mojom::AutofillDriver, |
+ public KeyPressHandlerManager::Delegate { |
public: |
ContentAutofillDriver( |
content::RenderFrameHost* render_frame_host, |
@@ -103,12 +105,23 @@ class ContentAutofillDriver : public AutofillDriver, |
const mojom::AutofillAgentPtr& GetAutofillAgent(); |
+ // Methods forwarded to key_press_handler_manager_. |
+ void RegisterKeyPressHandler( |
+ const content::RenderWidgetHost::KeyPressEventCallback& handler); |
+ void RemoveKeyPressHandler(); |
+ |
protected: |
// Sets the manager to |manager| and sets |manager|'s external delegate |
// to |autofill_external_delegate_|. Takes ownership of |manager|. |
void SetAutofillManager(std::unique_ptr<AutofillManager> manager); |
private: |
+ // KeyPressHandlerManager::Delegate: |
+ void AddHandler( |
+ const content::RenderWidgetHost::KeyPressEventCallback& handler) override; |
+ void RemoveHandler( |
+ const content::RenderWidgetHost::KeyPressEventCallback& handler) override; |
+ |
// Weak ref to the RenderFrameHost the driver is associated with. Should |
// always be non-NULL and valid for lifetime of |this|. |
content::RenderFrameHost* const render_frame_host_; |
@@ -124,6 +137,8 @@ class ContentAutofillDriver : public AutofillDriver, |
// case where the Autofill native UI is enabled. |
AutofillExternalDelegate autofill_external_delegate_; |
+ KeyPressHandlerManager key_press_handler_manager_; |
+ |
mojo::Binding<mojom::AutofillDriver> binding_; |
mojom::AutofillAgentPtr autofill_agent_; |