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

Side by Side Diff: components/autofill/core/browser/autofill_manager.h

Issue 17382007: Move IPC reception handling from AutofillManager to AutofillDriverImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase after conflict Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_CORE_BROWSER_AUTOFILL_MANAGER_H_ 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_MANAGER_H_
6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_MANAGER_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_MANAGER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 19 matching lines...) Expand all
30 #include "components/autofill/core/common/form_data.h" 30 #include "components/autofill/core/common/form_data.h"
31 #include "components/autofill/core/common/forms_seen_state.h" 31 #include "components/autofill/core/common/forms_seen_state.h"
32 #include "content/public/common/ssl_status.h" 32 #include "content/public/common/ssl_status.h"
33 #include "third_party/WebKit/public/web/WebFormElement.h" 33 #include "third_party/WebKit/public/web/WebFormElement.h"
34 34
35 class GURL; 35 class GURL;
36 36
37 namespace content { 37 namespace content {
38 class RenderViewHost; 38 class RenderViewHost;
39 class WebContents; 39 class WebContents;
40 struct FrameNavigateParams;
41 struct LoadCommittedDetails;
42 } 40 }
43 41
44 namespace gfx { 42 namespace gfx {
45 class Rect; 43 class Rect;
46 class RectF; 44 class RectF;
47 } 45 }
48 46
49 namespace IPC {
50 class Message;
51 }
52
53 namespace user_prefs { 47 namespace user_prefs {
54 class PrefRegistrySyncable; 48 class PrefRegistrySyncable;
55 } 49 }
56 50
57 namespace autofill { 51 namespace autofill {
58 52
59 class AutofillDriver; 53 class AutofillDriver;
60 class AutofillDataModel; 54 class AutofillDataModel;
61 class AutofillDownloadManager; 55 class AutofillDownloadManager;
62 class AutofillExternalDelegate; 56 class AutofillExternalDelegate;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 127
134 autofill::AutofillManagerDelegate* delegate() const { 128 autofill::AutofillManagerDelegate* delegate() const {
135 return manager_delegate_; 129 return manager_delegate_;
136 } 130 }
137 131
138 const std::string& app_locale() const { return app_locale_; } 132 const std::string& app_locale() const { return app_locale_; }
139 133
140 // Only for testing. 134 // Only for testing.
141 void SetTestDelegate(autofill::AutofillManagerTestDelegate* delegate); 135 void SetTestDelegate(autofill::AutofillManagerTestDelegate* delegate);
142 136
143 // TODO(blundell): Move the logic in these methods into AutofillDriver and 137 void OnFormsSeen(const std::vector<FormData>& forms,
144 // eliminate these methods. 138 const base::TimeTicks& timestamp,
145 virtual void DidNavigateMainFrame( 139 autofill::FormsSeenState state);
146 const content::LoadCommittedDetails& details, 140
147 const content::FrameNavigateParams& params); 141 // Processes the submitted |form|, saving any new Autofill data and uploading
148 virtual bool OnMessageReceived(const IPC::Message& message); 142 // the possible field types for the submitted fields to the crowdsouring
143 // server. Returns false if this form is not relevant for Autofill.
144 bool OnFormSubmitted(const FormData& form,
145 const base::TimeTicks& timestamp);
146
147 void OnTextFieldDidChange(const FormData& form,
148 const FormFieldData& field,
149 const base::TimeTicks& timestamp);
150
151 // The |bounding_box| is a window relative value.
152 void OnQueryFormFieldAutofill(int query_id,
153 const FormData& form,
154 const FormFieldData& field,
155 const gfx::RectF& bounding_box,
156 bool display_warning);
157 void OnDidEndTextFieldEditing();
158 void OnHideAutofillUi();
159 void OnAddPasswordFormMapping(
160 const FormFieldData& form,
161 const PasswordFormFillData& fill_data);
162 void OnShowPasswordSuggestions(
163 const FormFieldData& field,
164 const gfx::RectF& bounds,
165 const std::vector<base::string16>& suggestions);
166 void OnSetDataList(const std::vector<base::string16>& values,
167 const std::vector<base::string16>& labels,
168 const std::vector<base::string16>& icons,
169 const std::vector<int>& unique_ids);
170
171 // Requests an interactive autocomplete UI be shown.
172 void OnRequestAutocomplete(const FormData& form,
173 const GURL& frame_url);
174
175 // Called to signal clicking an element failed in some way during an
176 // Autocheckout flow.
177 void OnClickFailed(autofill::AutocheckoutStatus status);
178
179 // Shows the Autocheckout bubble if conditions are right. See comments for
180 // AutocheckoutManager::MaybeShowAutocheckoutBubble. Input element requesting
181 // bubble belongs to |form|. |bounding_box| is the bounding box of the input
182 // field in focus.
183 virtual void OnMaybeShowAutocheckoutBubble(const FormData& form,
184 const gfx::RectF& bounding_box);
185
186 // Resets cache.
187 void Reset();
149 188
150 protected: 189 protected:
151 // Test code should prefer to use this constructor. 190 // Test code should prefer to use this constructor.
152 AutofillManager(AutofillDriver* driver, 191 AutofillManager(AutofillDriver* driver,
153 autofill::AutofillManagerDelegate* delegate, 192 autofill::AutofillManagerDelegate* delegate,
154 PersonalDataManager* personal_data); 193 PersonalDataManager* personal_data);
155 194
156 // Returns the value of the AutofillEnabled pref. 195 // Returns the value of the AutofillEnabled pref.
157 virtual bool IsAutofillEnabled() const; 196 virtual bool IsAutofillEnabled() const;
158 197
159 // Uploads the form data to the Autofill server. 198 // Uploads the form data to the Autofill server.
160 virtual void UploadFormData(const FormStructure& submitted_form); 199 virtual void UploadFormData(const FormStructure& submitted_form);
161 200
162 // Reset cache.
163 void Reset();
164
165 // Logs quality metrics for the |submitted_form| and uploads the form data 201 // Logs quality metrics for the |submitted_form| and uploads the form data
166 // to the crowdsourcing server, if appropriate. 202 // to the crowdsourcing server, if appropriate.
167 virtual void UploadFormDataAsyncCallback( 203 virtual void UploadFormDataAsyncCallback(
168 const FormStructure* submitted_form, 204 const FormStructure* submitted_form,
169 const base::TimeTicks& load_time, 205 const base::TimeTicks& load_time,
170 const base::TimeTicks& interaction_time, 206 const base::TimeTicks& interaction_time,
171 const base::TimeTicks& submission_time); 207 const base::TimeTicks& submission_time);
172 208
173 // Shows the Autocheckout bubble if conditions are right. See comments for
174 // AutocheckoutManager::MaybeShowAutocheckoutBubble. Input element requesting
175 // bubble belongs to |form|. |bounding_box| is the bounding box of the input
176 // field in focus.
177 virtual void OnMaybeShowAutocheckoutBubble(const FormData& form,
178 const gfx::RectF& bounding_box);
179
180 // Maps GUIDs to and from IDs that are used to identify profiles and credit 209 // Maps GUIDs to and from IDs that are used to identify profiles and credit
181 // cards sent to and from the renderer process. 210 // cards sent to and from the renderer process.
182 virtual int GUIDToID(const PersonalDataManager::GUIDPair& guid) const; 211 virtual int GUIDToID(const PersonalDataManager::GUIDPair& guid) const;
183 virtual const PersonalDataManager::GUIDPair IDToGUID(int id) const; 212 virtual const PersonalDataManager::GUIDPair IDToGUID(int id) const;
184 213
185 // Methods for packing and unpacking credit card and profile IDs for sending 214 // Methods for packing and unpacking credit card and profile IDs for sending
186 // and receiving to and from the renderer process. 215 // and receiving to and from the renderer process.
187 int PackGUIDs(const PersonalDataManager::GUIDPair& cc_guid, 216 int PackGUIDs(const PersonalDataManager::GUIDPair& cc_guid,
188 const PersonalDataManager::GUIDPair& profile_guid) const; 217 const PersonalDataManager::GUIDPair& profile_guid) const;
189 void UnpackGUIDs(int id, 218 void UnpackGUIDs(int id,
190 PersonalDataManager::GUIDPair* cc_guid, 219 PersonalDataManager::GUIDPair* cc_guid,
191 PersonalDataManager::GUIDPair* profile_guid) const; 220 PersonalDataManager::GUIDPair* profile_guid) const;
192 221
193 const AutofillMetrics* metric_logger() const { return metric_logger_.get(); } 222 const AutofillMetrics* metric_logger() const { return metric_logger_.get(); }
194 void set_metric_logger(const AutofillMetrics* metric_logger); 223 void set_metric_logger(const AutofillMetrics* metric_logger);
195 224
196 ScopedVector<FormStructure>* form_structures() { return &form_structures_; } 225 ScopedVector<FormStructure>* form_structures() { return &form_structures_; }
197 226
198 // Exposed for testing. 227 // Exposed for testing.
199 AutofillExternalDelegate* external_delegate() { 228 AutofillExternalDelegate* external_delegate() {
200 return external_delegate_; 229 return external_delegate_;
201 } 230 }
202 231
203 // Exposed for testing. 232 // Exposed for testing.
204 autofill::AutocheckoutManager* autocheckout_manager() { 233 autofill::AutocheckoutManager* autocheckout_manager() {
205 return &autocheckout_manager_; 234 return &autocheckout_manager_;
206 } 235 }
207 236
208 // Processes the submitted |form|, saving any new Autofill data and uploading
209 // the possible field types for the submitted fields to the crowdsouring
210 // server. Returns false if this form is not relevant for Autofill.
211 bool OnFormSubmitted(const FormData& form,
212 const base::TimeTicks& timestamp);
213
214 // Tell the renderer the current interactive autocomplete finished. 237 // Tell the renderer the current interactive autocomplete finished.
215 virtual void ReturnAutocompleteResult( 238 virtual void ReturnAutocompleteResult(
216 WebKit::WebFormElement::AutocompleteResult result, 239 WebKit::WebFormElement::AutocompleteResult result,
217 const FormData& form_data); 240 const FormData& form_data);
218 241
219 private: 242 private:
220 243
221 // AutofillDownloadManager::Observer: 244 // AutofillDownloadManager::Observer:
222 virtual void OnLoadedServerPredictions( 245 virtual void OnLoadedServerPredictions(
223 const std::string& response_xml) OVERRIDE; 246 const std::string& response_xml) OVERRIDE;
224 247
225 void OnFormsSeen(const std::vector<FormData>& forms,
226 const base::TimeTicks& timestamp,
227 autofill::FormsSeenState state);
228 void OnTextFieldDidChange(const FormData& form,
229 const FormFieldData& field,
230 const base::TimeTicks& timestamp);
231
232 // The |bounding_box| is a window relative value.
233 void OnQueryFormFieldAutofill(int query_id,
234 const FormData& form,
235 const FormFieldData& field,
236 const gfx::RectF& bounding_box,
237 bool display_warning);
238 void OnDidEndTextFieldEditing();
239 void OnHideAutofillUi();
240 void OnAddPasswordFormMapping(
241 const FormFieldData& form,
242 const PasswordFormFillData& fill_data);
243 void OnShowPasswordSuggestions(
244 const FormFieldData& field,
245 const gfx::RectF& bounds,
246 const std::vector<base::string16>& suggestions);
247 void OnSetDataList(const std::vector<base::string16>& values,
248 const std::vector<base::string16>& labels,
249 const std::vector<base::string16>& icons,
250 const std::vector<int>& unique_ids);
251
252 // Requests an interactive autocomplete UI be shown.
253 void OnRequestAutocomplete(const FormData& form,
254 const GURL& frame_url);
255
256 // Passes return data for an OnRequestAutocomplete call back to the page. 248 // Passes return data for an OnRequestAutocomplete call back to the page.
257 void ReturnAutocompleteData(const FormStructure* result, 249 void ReturnAutocompleteData(const FormStructure* result,
258 const std::string& unused_transaction_id); 250 const std::string& unused_transaction_id);
259 251
260 // Called to signal clicking an element failed in some way during an
261 // Autocheckout flow.
262 void OnClickFailed(autofill::AutocheckoutStatus status);
263
264 // Returns the matched whitelist URL prefix for the current tab's url. 252 // Returns the matched whitelist URL prefix for the current tab's url.
265 virtual std::string GetAutocheckoutURLPrefix() const; 253 virtual std::string GetAutocheckoutURLPrefix() const;
266 254
267 // Fills |host| with the RenderViewHost for this tab. 255 // Fills |host| with the RenderViewHost for this tab.
268 // Returns false if Autofill is disabled or if the host is unavailable. 256 // Returns false if Autofill is disabled or if the host is unavailable.
269 bool GetHost(content::RenderViewHost** host) const WARN_UNUSED_RESULT; 257 bool GetHost(content::RenderViewHost** host) const WARN_UNUSED_RESULT;
270 258
271 // Unpacks |unique_id| and fills |form_group| and |variant| with the 259 // Unpacks |unique_id| and fills |form_group| and |variant| with the
272 // appropriate data source and variant index. Returns false if the unpacked 260 // appropriate data source and variant index. Returns false if the unpacked
273 // id cannot be found. 261 // id cannot be found.
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, 409 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest,
422 UserHappinessFormLoadAndSubmission); 410 UserHappinessFormLoadAndSubmission);
423 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, UserHappinessFormInteraction); 411 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, UserHappinessFormInteraction);
424 412
425 DISALLOW_COPY_AND_ASSIGN(AutofillManager); 413 DISALLOW_COPY_AND_ASSIGN(AutofillManager);
426 }; 414 };
427 415
428 } // namespace autofill 416 } // namespace autofill
429 417
430 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_MANAGER_H_ 418 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_MANAGER_H_
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autocomplete_history_manager.cc ('k') | components/autofill/core/browser/autofill_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698