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

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

Issue 329293002: Revert "Revert 3 mac autofill CLs." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 #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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 true, 205 true,
206 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 206 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
207 #else // defined(OS_MACOSX) || defined(OS_ANDROID) 207 #else // defined(OS_MACOSX) || defined(OS_ANDROID)
208 registry->RegisterBooleanPref( 208 registry->RegisterBooleanPref(
209 prefs::kAutofillAuxiliaryProfilesEnabled, 209 prefs::kAutofillAuxiliaryProfilesEnabled,
210 false, 210 false,
211 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 211 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
212 #endif // defined(OS_MACOSX) || defined(OS_ANDROID) 212 #endif // defined(OS_MACOSX) || defined(OS_ANDROID)
213 #if defined(OS_MACOSX) 213 #if defined(OS_MACOSX)
214 registry->RegisterBooleanPref( 214 registry->RegisterBooleanPref(
215 prefs::kAutofillAuxiliaryProfilesQueried, 215 prefs::kAutofillMacAddressBookQueried,
216 false, 216 false,
217 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 217 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
218 #endif // defined(OS_MACOSX) 218 #endif // defined(OS_MACOSX)
219 registry->RegisterDoublePref( 219 registry->RegisterDoublePref(
220 prefs::kAutofillPositiveUploadRate, 220 prefs::kAutofillPositiveUploadRate,
221 kAutofillPositiveUploadRateDefaultValue, 221 kAutofillPositiveUploadRateDefaultValue,
222 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 222 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
223 registry->RegisterDoublePref( 223 registry->RegisterDoublePref(
224 prefs::kAutofillNegativeUploadRate, 224 prefs::kAutofillNegativeUploadRate,
225 kAutofillNegativeUploadRateDefaultValue, 225 kAutofillNegativeUploadRateDefaultValue,
226 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 226 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
227
228 #if defined(OS_MACOSX) && !defined(OS_IOS)
229 registry->RegisterBooleanPref(
230 prefs::kAutofillUseMacAddressBook,
231 false,
232 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
233 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
227 } 234 }
228 235
236 #if defined(OS_MACOSX) && !defined(OS_IOS)
237 void AutofillManager::MigrateUserPrefs(PrefService* prefs) {
238 const PrefService::Preference* pref =
239 prefs->FindPreference(prefs::kAutofillUseMacAddressBook);
240
241 // If the pref is not its default value, then the migration has already been
242 // performed.
243 if (!pref->IsDefaultValue())
244 return;
245
246 // Whether Chrome has already tried to access the user's Address Book.
247 const PrefService::Preference* pref_accessed =
248 prefs->FindPreference(prefs::kAutofillMacAddressBookQueried);
249 // Whether the user wants to use the Address Book to populate Autofill.
250 const PrefService::Preference* pref_enabled =
251 prefs->FindPreference(prefs::kAutofillAuxiliaryProfilesEnabled);
252
253 if (pref_accessed->IsDefaultValue() && pref_enabled->IsDefaultValue()) {
254 // This is likely a new user. Reset the default value to prevent the
255 // migration from happening again.
256 prefs->SetBoolean(prefs::kAutofillUseMacAddressBook,
257 prefs->GetBoolean(prefs::kAutofillUseMacAddressBook));
258 return;
259 }
260
261 bool accessed;
262 bool enabled;
263 bool success = pref_accessed->GetValue()->GetAsBoolean(&accessed);
264 DCHECK(success);
265 success = pref_enabled->GetValue()->GetAsBoolean(&enabled);
266 DCHECK(success);
267
268 prefs->SetBoolean(prefs::kAutofillUseMacAddressBook, accessed && enabled);
269 }
270 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
271
229 void AutofillManager::SetExternalDelegate(AutofillExternalDelegate* delegate) { 272 void AutofillManager::SetExternalDelegate(AutofillExternalDelegate* delegate) {
230 // TODO(jrg): consider passing delegate into the ctor. That won't 273 // TODO(jrg): consider passing delegate into the ctor. That won't
231 // work if the delegate has a pointer to the AutofillManager, but 274 // work if the delegate has a pointer to the AutofillManager, but
232 // future directions may not need such a pointer. 275 // future directions may not need such a pointer.
233 external_delegate_ = delegate; 276 external_delegate_ = delegate;
234 autocomplete_history_manager_->SetExternalDelegate(delegate); 277 autocomplete_history_manager_->SetExternalDelegate(delegate);
235 } 278 }
236 279
237 void AutofillManager::ShowAutofillSettings() { 280 void AutofillManager::ShowAutofillSettings() {
238 client_->ShowAutofillSettings(); 281 client_->ShowAutofillSettings();
239 } 282 }
240 283
284 #if defined(OS_MACOSX) && !defined(OS_IOS)
285 bool AutofillManager::ShouldShowAccessAddressBookSuggestion(
286 const FormData& form,
287 const FormFieldData& field) {
288 if (!personal_data_)
289 return false;
290 FormStructure* form_structure = NULL;
291 AutofillField* autofill_field = NULL;
292 if (!GetCachedFormAndField(form, field, &form_structure, &autofill_field))
293 return false;
294
295 return personal_data_->ShouldShowAccessAddressBookSuggestion(
296 autofill_field->Type());
297 }
298
299 bool AutofillManager::AccessAddressBook() {
300 if (!personal_data_)
301 return false;
302 return personal_data_->AccessAddressBook();
303 }
304 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
305
241 bool AutofillManager::OnFormSubmitted(const FormData& form, 306 bool AutofillManager::OnFormSubmitted(const FormData& form,
242 const TimeTicks& timestamp) { 307 const TimeTicks& timestamp) {
243 if (!IsValidFormData(form)) 308 if (!IsValidFormData(form))
244 return false; 309 return false;
245 310
246 // Let Autocomplete know as well. 311 // Let Autocomplete know as well.
247 autocomplete_history_manager_->OnFormSubmitted(form); 312 autocomplete_history_manager_->OnFormSubmitted(form);
248 313
249 // Grab a copy of the form data. 314 // Grab a copy of the form data.
250 scoped_ptr<FormStructure> submitted_form(new FormStructure(form)); 315 scoped_ptr<FormStructure> submitted_form(new FormStructure(form));
(...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after
1141 return false; 1206 return false;
1142 1207
1143 // Disregard forms that we wouldn't ever autofill in the first place. 1208 // Disregard forms that we wouldn't ever autofill in the first place.
1144 if (!form.ShouldBeParsed(true)) 1209 if (!form.ShouldBeParsed(true))
1145 return false; 1210 return false;
1146 1211
1147 return true; 1212 return true;
1148 } 1213 }
1149 1214
1150 } // namespace autofill 1215 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_manager.h ('k') | components/autofill/core/browser/autofill_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698