Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: components/autofill/content/browser/content_autofill_driver.h

Issue 2745803003: autofill-try
Patch Set: autofill-try Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_ 5 #ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_
6 #define COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_ 6 #define COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
11 #include "base/supports_user_data.h" 11 #include "base/supports_user_data.h"
12 #include "components/autofill/content/browser/key_press_handler_manager.h" 12 #include "components/autofill/content/browser/key_press_handler_manager.h"
13 #include "components/autofill/content/common/autofill_agent.mojom.h" 13 #include "components/autofill/content/common/autofill_agent.mojom.h"
14 #include "components/autofill/content/common/autofill_driver.mojom.h" 14 #include "components/autofill/content/common/autofill_driver.mojom.h"
15 #include "components/autofill/core/browser/autofill_driver.h" 15 #include "components/autofill/core/browser/autofill_driver.h"
16 #include "components/autofill/core/browser/autofill_external_delegate.h" 16 #include "components/autofill/core/browser/autofill_external_delegate.h"
17 #include "components/autofill/core/browser/autofill_manager.h" 17 #include "components/autofill/core/browser/autofill_manager.h"
18 #include "mojo/public/cpp/bindings/binding.h" 18 #include "mojo/public/cpp/bindings/binding.h"
19 19
20 namespace content { 20 namespace content {
21 class NavigationHandle; 21 class NavigationHandle;
22 class RenderFrameHost; 22 class RenderFrameHost;
23 } 23 }
24 24
25 namespace autofill { 25 namespace autofill {
26 26
27 class AutofillClient; 27 class AutofillClient;
28 class AutofillProvider;
28 29
29 // Class that drives autofill flow in the browser process based on 30 // Class that drives autofill flow in the browser process based on
30 // communication from the renderer and from the external world. There is one 31 // communication from the renderer and from the external world. There is one
31 // instance per RenderFrameHost. 32 // instance per RenderFrameHost.
32 class ContentAutofillDriver : public AutofillDriver, 33 class ContentAutofillDriver : public AutofillDriver,
33 public mojom::AutofillDriver, 34 public mojom::AutofillDriver,
34 public KeyPressHandlerManager::Delegate { 35 public KeyPressHandlerManager::Delegate {
35 public: 36 public:
36 ContentAutofillDriver( 37 ContentAutofillDriver(
37 content::RenderFrameHost* render_frame_host, 38 content::RenderFrameHost* render_frame_host,
38 AutofillClient* client, 39 AutofillClient* client,
39 const std::string& app_locale, 40 const std::string& app_locale,
40 AutofillManager::AutofillDownloadManagerState enable_download_manager); 41 AutofillManager::AutofillDownloadManagerState enable_download_manager,
42 AutofillProvider* provider);
41 ~ContentAutofillDriver() override; 43 ~ContentAutofillDriver() override;
42 44
43 // Gets the driver for |render_frame_host|. 45 // Gets the driver for |render_frame_host|.
44 static ContentAutofillDriver* GetForRenderFrameHost( 46 static ContentAutofillDriver* GetForRenderFrameHost(
45 content::RenderFrameHost* render_frame_host); 47 content::RenderFrameHost* render_frame_host);
46 48
47 void BindRequest(mojom::AutofillDriverRequest request); 49 void BindRequest(mojom::AutofillDriverRequest request);
48 50
49 // AutofillDriver: 51 // AutofillDriver:
50 bool IsIncognito() const override; 52 bool IsIncognito() const override;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 base::TimeTicks timestamp) override; 89 base::TimeTicks timestamp) override;
88 void DidPreviewAutofillFormData() override; 90 void DidPreviewAutofillFormData() override;
89 void DidEndTextFieldEditing() override; 91 void DidEndTextFieldEditing() override;
90 void SetDataList(const std::vector<base::string16>& values, 92 void SetDataList(const std::vector<base::string16>& values,
91 const std::vector<base::string16>& labels) override; 93 const std::vector<base::string16>& labels) override;
92 94
93 // Called when the frame has navigated. 95 // Called when the frame has navigated.
94 void DidNavigateFrame(content::NavigationHandle* navigation_handle); 96 void DidNavigateFrame(content::NavigationHandle* navigation_handle);
95 97
96 AutofillExternalDelegate* autofill_external_delegate() { 98 AutofillExternalDelegate* autofill_external_delegate() {
97 return &autofill_external_delegate_; 99 return autofill_external_delegate_.get();
98 } 100 }
99 101
100 AutofillManager* autofill_manager() { return autofill_manager_.get(); } 102 AutofillManager* autofill_manager() { return autofill_manager_; }
101 content::RenderFrameHost* render_frame_host() { return render_frame_host_; } 103 content::RenderFrameHost* render_frame_host() { return render_frame_host_; }
102 104
103 const mojom::AutofillAgentPtr& GetAutofillAgent(); 105 const mojom::AutofillAgentPtr& GetAutofillAgent();
104 106
105 // Methods forwarded to key_press_handler_manager_. 107 // Methods forwarded to key_press_handler_manager_.
106 void RegisterKeyPressHandler( 108 void RegisterKeyPressHandler(
107 const content::RenderWidgetHost::KeyPressEventCallback& handler); 109 const content::RenderWidgetHost::KeyPressEventCallback& handler);
108 void RemoveKeyPressHandler(); 110 void RemoveKeyPressHandler();
109 111
110 protected: 112 protected:
111 // Sets the manager to |manager| and sets |manager|'s external delegate 113 // Sets the manager to |manager| and sets |manager|'s external delegate
112 // to |autofill_external_delegate_|. Takes ownership of |manager|. 114 // to |autofill_external_delegate_|. Takes ownership of |manager|.
113 void SetAutofillManager(std::unique_ptr<AutofillManager> manager); 115 void SetAutofillManager(std::unique_ptr<AutofillManager> manager);
114 116
115 private: 117 private:
116 // KeyPressHandlerManager::Delegate: 118 // KeyPressHandlerManager::Delegate:
117 void AddHandler( 119 void AddHandler(
118 const content::RenderWidgetHost::KeyPressEventCallback& handler) override; 120 const content::RenderWidgetHost::KeyPressEventCallback& handler) override;
119 void RemoveHandler( 121 void RemoveHandler(
120 const content::RenderWidgetHost::KeyPressEventCallback& handler) override; 122 const content::RenderWidgetHost::KeyPressEventCallback& handler) override;
121 123
122 // Weak ref to the RenderFrameHost the driver is associated with. Should 124 // Weak ref to the RenderFrameHost the driver is associated with. Should
123 // always be non-NULL and valid for lifetime of |this|. 125 // always be non-NULL and valid for lifetime of |this|.
124 content::RenderFrameHost* const render_frame_host_; 126 content::RenderFrameHost* const render_frame_host_;
125 127
126 // AutofillManager instance via which this object drives the shared Autofill 128 // AutofillHandler instance via which this object drives the shared Autofill
127 // code. 129 // code.
128 std::unique_ptr<AutofillManager> autofill_manager_; 130 std::unique_ptr<AutofillHandler> autofill_handler_;
131
132 // The pointer to autofill_handler_ if it is AutofillManager instance.
133 // TODO: unify autofill_handler_ and autofill_manager_ to a single pointer to
134 // a common root.
135 AutofillManager* autofill_manager_;
129 136
130 // AutofillExternalDelegate instance that this object instantiates in the 137 // AutofillExternalDelegate instance that this object instantiates in the
131 // case where the Autofill native UI is enabled. 138 // case where the Autofill native UI is enabled.
132 AutofillExternalDelegate autofill_external_delegate_; 139 std::unique_ptr<AutofillExternalDelegate> autofill_external_delegate_;
133 140
134 KeyPressHandlerManager key_press_handler_manager_; 141 KeyPressHandlerManager key_press_handler_manager_;
135 142
136 mojo::Binding<mojom::AutofillDriver> binding_; 143 mojo::Binding<mojom::AutofillDriver> binding_;
137 144
138 mojom::AutofillAgentPtr autofill_agent_; 145 mojom::AutofillAgentPtr autofill_agent_;
139 }; 146 };
140 147
141 } // namespace autofill 148 } // namespace autofill
142 149
143 #endif // COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_ 150 #endif // COMPONENTS_AUTOFILL_CONTENT_BROWSER_CONTENT_AUTOFILL_DRIVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698