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

Side by Side Diff: chrome/browser/autofill/autofill_manager.cc

Issue 9600038: Add Password Autofill Manager to New Autofill (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixing final nits Created 8 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/autofill/autofill_manager.h" 5 #include "chrome/browser/autofill/autofill_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <map> 10 #include <map>
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 #include "content/public/browser/render_view_host.h" 51 #include "content/public/browser/render_view_host.h"
52 #include "content/public/browser/web_contents.h" 52 #include "content/public/browser/web_contents.h"
53 #include "googleurl/src/gurl.h" 53 #include "googleurl/src/gurl.h"
54 #include "grit/generated_resources.h" 54 #include "grit/generated_resources.h"
55 #include "ipc/ipc_message_macros.h" 55 #include "ipc/ipc_message_macros.h"
56 #include "ui/base/l10n/l10n_util.h" 56 #include "ui/base/l10n/l10n_util.h"
57 #include "ui/gfx/rect.h" 57 #include "ui/gfx/rect.h"
58 #include "webkit/forms/form_data.h" 58 #include "webkit/forms/form_data.h"
59 #include "webkit/forms/form_data_predictions.h" 59 #include "webkit/forms/form_data_predictions.h"
60 #include "webkit/forms/form_field.h" 60 #include "webkit/forms/form_field.h"
61 #include "webkit/forms/password_form_dom_manager.h"
61 62
62 using base::TimeTicks; 63 using base::TimeTicks;
63 using content::BrowserThread; 64 using content::BrowserThread;
64 using content::RenderViewHost; 65 using content::RenderViewHost;
65 using switches::kEnableAutofillFeedback; 66 using switches::kEnableAutofillFeedback;
66 using webkit::forms::FormData; 67 using webkit::forms::FormData;
67 using webkit::forms::FormDataPredictions; 68 using webkit::forms::FormDataPredictions;
68 using webkit::forms::FormField; 69 using webkit::forms::FormField;
69 70
70 namespace { 71 namespace {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 kAutofillNegativeUploadRateDefaultValue, 214 kAutofillNegativeUploadRateDefaultValue,
214 PrefService::UNSYNCABLE_PREF); 215 PrefService::UNSYNCABLE_PREF);
215 } 216 }
216 217
217 void AutofillManager::DidNavigateMainFrame( 218 void AutofillManager::DidNavigateMainFrame(
218 const content::LoadCommittedDetails& details, 219 const content::LoadCommittedDetails& details,
219 const content::FrameNavigateParams& params) { 220 const content::FrameNavigateParams& params) {
220 Reset(); 221 Reset();
221 } 222 }
222 223
224 bool AutofillManager::HasExternalDelegate() {
225 return external_delegate_ != NULL;
226 }
227
223 bool AutofillManager::OnMessageReceived(const IPC::Message& message) { 228 bool AutofillManager::OnMessageReceived(const IPC::Message& message) {
224 bool handled = true; 229 bool handled = true;
225 IPC_BEGIN_MESSAGE_MAP(AutofillManager, message) 230 IPC_BEGIN_MESSAGE_MAP(AutofillManager, message)
226 IPC_MESSAGE_HANDLER(AutofillHostMsg_FormsSeen, OnFormsSeen) 231 IPC_MESSAGE_HANDLER(AutofillHostMsg_FormsSeen, OnFormsSeen)
227 IPC_MESSAGE_HANDLER(AutofillHostMsg_FormSubmitted, OnFormSubmitted) 232 IPC_MESSAGE_HANDLER(AutofillHostMsg_FormSubmitted, OnFormSubmitted)
228 IPC_MESSAGE_HANDLER(AutofillHostMsg_TextFieldDidChange, 233 IPC_MESSAGE_HANDLER(AutofillHostMsg_TextFieldDidChange,
229 OnTextFieldDidChange) 234 OnTextFieldDidChange)
230 IPC_MESSAGE_HANDLER(AutofillHostMsg_QueryFormFieldAutofill, 235 IPC_MESSAGE_HANDLER(AutofillHostMsg_QueryFormFieldAutofill,
231 OnQueryFormFieldAutofill) 236 OnQueryFormFieldAutofill)
232 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowAutofillDialog, 237 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowAutofillDialog,
233 OnShowAutofillDialog) 238 OnShowAutofillDialog)
234 IPC_MESSAGE_HANDLER(AutofillHostMsg_FillAutofillFormData, 239 IPC_MESSAGE_HANDLER(AutofillHostMsg_FillAutofillFormData,
235 OnFillAutofillFormData) 240 OnFillAutofillFormData)
236 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidPreviewAutofillFormData, 241 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidPreviewAutofillFormData,
237 OnDidPreviewAutofillFormData) 242 OnDidPreviewAutofillFormData)
238 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidFillAutofillFormData, 243 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidFillAutofillFormData,
239 OnDidFillAutofillFormData) 244 OnDidFillAutofillFormData)
240 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidShowAutofillSuggestions, 245 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidShowAutofillSuggestions,
241 OnDidShowAutofillSuggestions) 246 OnDidShowAutofillSuggestions)
242 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidEndTextFieldEditing, 247 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidEndTextFieldEditing,
243 OnDidEndTextFieldEditing) 248 OnDidEndTextFieldEditing)
244 IPC_MESSAGE_HANDLER(AutofillHostMsg_HideAutofillPopup, 249 IPC_MESSAGE_HANDLER(AutofillHostMsg_HideAutofillPopup,
245 OnHideAutofillPopup) 250 OnHideAutofillPopup)
246 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowPasswordGenerationPopup, 251 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowPasswordGenerationPopup,
247 OnShowPasswordGenerationPopup) 252 OnShowPasswordGenerationPopup)
253 IPC_MESSAGE_HANDLER(AutofillHostMsg_AddPasswordFormMapping,
254 OnAddPasswordFormMapping)
255 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowPasswordSuggestions,
256 OnShowPasswordSuggestions)
248 IPC_MESSAGE_UNHANDLED(handled = false) 257 IPC_MESSAGE_UNHANDLED(handled = false)
249 IPC_END_MESSAGE_MAP() 258 IPC_END_MESSAGE_MAP()
250 259
251 return handled; 260 return handled;
252 } 261 }
253 262
254 bool AutofillManager::OnFormSubmitted(const FormData& form, 263 bool AutofillManager::OnFormSubmitted(const FormData& form,
255 const TimeTicks& timestamp) { 264 const TimeTicks& timestamp) {
256 // Let AutoComplete know as well. 265 // Let AutoComplete know as well.
257 tab_contents_wrapper_->autocomplete_history_manager()->OnFormSubmitted(form); 266 tab_contents_wrapper_->autocomplete_history_manager()->OnFormSubmitted(form);
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 void AutofillManager::OnShowPasswordGenerationPopup(const gfx::Rect& bounds) { 634 void AutofillManager::OnShowPasswordGenerationPopup(const gfx::Rect& bounds) {
626 #if defined(OS_ANDROID) 635 #if defined(OS_ANDROID)
627 NOTIMPLEMENTED(); 636 NOTIMPLEMENTED();
628 #else 637 #else
629 Browser* browser = BrowserList::GetLastActiveWithProfile( 638 Browser* browser = BrowserList::GetLastActiveWithProfile(
630 Profile::FromBrowserContext(web_contents()->GetBrowserContext())); 639 Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
631 browser->window()->ShowPasswordGenerationBubble(bounds); 640 browser->window()->ShowPasswordGenerationBubble(bounds);
632 #endif // #if defined(OS_ANDROID) 641 #endif // #if defined(OS_ANDROID)
633 } 642 }
634 643
644 void AutofillManager::OnAddPasswordFormMapping(
645 const webkit::forms::FormField& form,
646 const webkit::forms::PasswordFormFillData& fill_data) {
647 if (external_delegate_)
648 external_delegate_->AddPasswordFormMapping(form, fill_data);
649 }
650
651 void AutofillManager::OnShowPasswordSuggestions(
652 const webkit::forms::FormField& field,
653 const gfx::Rect& bounds,
654 const std::vector<string16>& suggestions) {
655 if (external_delegate_)
656 external_delegate_->OnShowPasswordSuggestions(suggestions, field, bounds);
657 }
658
635 void AutofillManager::OnLoadedServerPredictions( 659 void AutofillManager::OnLoadedServerPredictions(
636 const std::string& response_xml) { 660 const std::string& response_xml) {
637 // Parse and store the server predictions. 661 // Parse and store the server predictions.
638 FormStructure::ParseQueryResponse(response_xml, 662 FormStructure::ParseQueryResponse(response_xml,
639 form_structures_.get(), 663 form_structures_.get(),
640 *metric_logger_); 664 *metric_logger_);
641 665
642 // If the corresponding flag is set, annotate forms with the predicted types. 666 // If the corresponding flag is set, annotate forms with the predicted types.
643 SendAutofillTypePredictions(form_structures_.get()); 667 SendAutofillTypePredictions(form_structures_.get());
644 } 668 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 void AutofillManager::Reset() { 757 void AutofillManager::Reset() {
734 form_structures_.reset(); 758 form_structures_.reset();
735 has_logged_autofill_enabled_ = false; 759 has_logged_autofill_enabled_ = false;
736 has_logged_address_suggestions_count_ = false; 760 has_logged_address_suggestions_count_ = false;
737 did_show_suggestions_ = false; 761 did_show_suggestions_ = false;
738 user_did_type_ = false; 762 user_did_type_ = false;
739 user_did_autofill_ = false; 763 user_did_autofill_ = false;
740 user_did_edit_autofilled_field_ = false; 764 user_did_edit_autofilled_field_ = false;
741 forms_loaded_timestamp_ = TimeTicks(); 765 forms_loaded_timestamp_ = TimeTicks();
742 initial_interaction_timestamp_ = TimeTicks(); 766 initial_interaction_timestamp_ = TimeTicks();
767
768 if (external_delegate_)
769 external_delegate_->Reset();
743 } 770 }
744 771
745 AutofillManager::AutofillManager(TabContentsWrapper* tab_contents, 772 AutofillManager::AutofillManager(TabContentsWrapper* tab_contents,
746 PersonalDataManager* personal_data) 773 PersonalDataManager* personal_data)
747 : content::WebContentsObserver(tab_contents->web_contents()), 774 : content::WebContentsObserver(tab_contents->web_contents()),
748 tab_contents_wrapper_(tab_contents), 775 tab_contents_wrapper_(tab_contents),
749 personal_data_(personal_data), 776 personal_data_(personal_data),
750 download_manager_(tab_contents->profile(), this), 777 download_manager_(tab_contents->profile(), this),
751 disable_download_manager_requests_(true), 778 disable_download_manager_requests_(true),
752 metric_logger_(new AutofillMetrics), 779 metric_logger_(new AutofillMetrics),
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 *profile_guid = IDToGUID(profile_id); 1269 *profile_guid = IDToGUID(profile_id);
1243 } 1270 }
1244 1271
1245 void AutofillManager::UpdateInitialInteractionTimestamp( 1272 void AutofillManager::UpdateInitialInteractionTimestamp(
1246 const TimeTicks& interaction_timestamp) { 1273 const TimeTicks& interaction_timestamp) {
1247 if (initial_interaction_timestamp_.is_null() || 1274 if (initial_interaction_timestamp_.is_null() ||
1248 interaction_timestamp < initial_interaction_timestamp_) { 1275 interaction_timestamp < initial_interaction_timestamp_) {
1249 initial_interaction_timestamp_ = interaction_timestamp; 1276 initial_interaction_timestamp_ = interaction_timestamp;
1250 } 1277 }
1251 } 1278 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_manager.h ('k') | chrome/browser/autofill/password_autofill_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698