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

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

Issue 286243002: Mac: Autofill should not immediately request access to address book. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More cleanup. Created 6 years, 7 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 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 #include "components/autofill/core/browser/autofill_manager.h" 5 #include "components/autofill/core/browser/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 12 matching lines...) Expand all
23 #include "components/autofill/core/browser/autocomplete_history_manager.h" 23 #include "components/autofill/core/browser/autocomplete_history_manager.h"
24 #include "components/autofill/core/browser/autofill_data_model.h" 24 #include "components/autofill/core/browser/autofill_data_model.h"
25 #include "components/autofill/core/browser/autofill_external_delegate.h" 25 #include "components/autofill/core/browser/autofill_external_delegate.h"
26 #include "components/autofill/core/browser/autofill_field.h" 26 #include "components/autofill/core/browser/autofill_field.h"
27 #include "components/autofill/core/browser/autofill_manager_delegate.h" 27 #include "components/autofill/core/browser/autofill_manager_delegate.h"
28 #include "components/autofill/core/browser/autofill_manager_test_delegate.h" 28 #include "components/autofill/core/browser/autofill_manager_test_delegate.h"
29 #include "components/autofill/core/browser/autofill_metrics.h" 29 #include "components/autofill/core/browser/autofill_metrics.h"
30 #include "components/autofill/core/browser/autofill_profile.h" 30 #include "components/autofill/core/browser/autofill_profile.h"
31 #include "components/autofill/core/browser/autofill_type.h" 31 #include "components/autofill/core/browser/autofill_type.h"
32 #include "components/autofill/core/browser/credit_card.h" 32 #include "components/autofill/core/browser/credit_card.h"
33 #include "components/autofill/core/browser/field_types.h"
33 #include "components/autofill/core/browser/form_structure.h" 34 #include "components/autofill/core/browser/form_structure.h"
34 #include "components/autofill/core/browser/personal_data_manager.h" 35 #include "components/autofill/core/browser/personal_data_manager.h"
35 #include "components/autofill/core/browser/phone_number.h" 36 #include "components/autofill/core/browser/phone_number.h"
36 #include "components/autofill/core/browser/phone_number_i18n.h" 37 #include "components/autofill/core/browser/phone_number_i18n.h"
37 #include "components/autofill/core/browser/popup_item_ids.h" 38 #include "components/autofill/core/browser/popup_item_ids.h"
38 #include "components/autofill/core/common/autofill_data_validation.h" 39 #include "components/autofill/core/common/autofill_data_validation.h"
39 #include "components/autofill/core/common/autofill_pref_names.h" 40 #include "components/autofill/core/common/autofill_pref_names.h"
40 #include "components/autofill/core/common/autofill_switches.h" 41 #include "components/autofill/core/common/autofill_switches.h"
41 #include "components/autofill/core/common/form_data.h" 42 #include "components/autofill/core/common/form_data.h"
42 #include "components/autofill/core/common/form_data_predictions.h" 43 #include "components/autofill/core/common/form_data_predictions.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 // work if the delegate has a pointer to the AutofillManager, but 234 // work if the delegate has a pointer to the AutofillManager, but
234 // future directions may not need such a pointer. 235 // future directions may not need such a pointer.
235 external_delegate_ = delegate; 236 external_delegate_ = delegate;
236 autocomplete_history_manager_->SetExternalDelegate(delegate); 237 autocomplete_history_manager_->SetExternalDelegate(delegate);
237 } 238 }
238 239
239 void AutofillManager::ShowAutofillSettings() { 240 void AutofillManager::ShowAutofillSettings() {
240 manager_delegate_->ShowAutofillSettings(); 241 manager_delegate_->ShowAutofillSettings();
241 } 242 }
242 243
244 bool AutofillManager::ShouldShowAccessMacContacts(
245 const FormData& data,
246 const FormFieldData& fieldData) {
247 if (personal_data_->HasAccessMacContacts())
248 return false;
249
250 for (auto it : form_structures_) {
erikchen 2014/05/16 22:37:05 I couldn't find another way to get the type of the
251 // The form does not match.
252 if (it->ToFormData().name != data.name)
253 continue;
254 for (size_t index = 0; index < it->field_count(); ++index) {
255 const AutofillField* field = it->field(index);
256 // The field does not match.
257 if (field->name != fieldData.name)
258 continue;
259
260 switch (field->Type().group()) {
261 case ADDRESS_BILLING:
262 case ADDRESS_HOME:
263 case EMAIL:
264 case NAME:
265 case NAME_BILLING:
266 case PHONE_BILLING:
267 case PHONE_HOME:
268 return true;
269 case NO_GROUP:
270 case COMPANY:
271 case CREDIT_CARD:
272 case PASSWORD_FIELD:
273 return false;
274 }
275 }
276 }
277
278 return false;
279 }
280
281 void AutofillManager::AccessMacContacts() {
282 personal_data_->AccessMacContacts();
283 }
284
243 bool AutofillManager::OnFormSubmitted(const FormData& form, 285 bool AutofillManager::OnFormSubmitted(const FormData& form,
244 const TimeTicks& timestamp) { 286 const TimeTicks& timestamp) {
245 if (!IsValidFormData(form)) 287 if (!IsValidFormData(form))
246 return false; 288 return false;
247 289
248 // Let Autocomplete know as well. 290 // Let Autocomplete know as well.
249 autocomplete_history_manager_->OnFormSubmitted(form); 291 autocomplete_history_manager_->OnFormSubmitted(form);
250 292
251 // Grab a copy of the form data. 293 // Grab a copy of the form data.
252 scoped_ptr<FormStructure> submitted_form(new FormStructure(form)); 294 scoped_ptr<FormStructure> submitted_form(new FormStructure(form));
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 return false; 1180 return false;
1139 1181
1140 // Disregard forms that we wouldn't ever autofill in the first place. 1182 // Disregard forms that we wouldn't ever autofill in the first place.
1141 if (!form.ShouldBeParsed(true)) 1183 if (!form.ShouldBeParsed(true))
1142 return false; 1184 return false;
1143 1185
1144 return true; 1186 return true;
1145 } 1187 }
1146 1188
1147 } // namespace autofill 1189 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698