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

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

Issue 667043002: Add a flag to ignore autocomplete="off" for Autofill. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: better comments Created 6 years, 2 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_external_delegate.h" 5 #include "components/autofill/core/browser/autofill_external_delegate.h"
6 6
7 #include "base/command_line.h"
7 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
8 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
9 #include "base/metrics/sparse_histogram.h" 10 #include "base/metrics/sparse_histogram.h"
10 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
11 #include "components/autofill/core/browser/autocomplete_history_manager.h" 12 #include "components/autofill/core/browser/autocomplete_history_manager.h"
12 #include "components/autofill/core/browser/autofill_driver.h" 13 #include "components/autofill/core/browser/autofill_driver.h"
13 #include "components/autofill/core/browser/autofill_manager.h" 14 #include "components/autofill/core/browser/autofill_manager.h"
14 #include "components/autofill/core/browser/popup_item_ids.h" 15 #include "components/autofill/core/browser/popup_item_ids.h"
16 #include "components/autofill/core/common/autofill_switches.h"
15 #include "grit/components_strings.h" 17 #include "grit/components_strings.h"
16 #include "ui/base/l10n/l10n_util.h" 18 #include "ui/base/l10n/l10n_util.h"
17 19
18 #if defined(OS_MACOSX) && !defined(OS_IOS) 20 #if defined(OS_MACOSX) && !defined(OS_IOS)
19 namespace { 21 namespace {
20 22
21 enum AccessAddressBookEventType { 23 enum AccessAddressBookEventType {
22 // An Autofill entry was shown that prompts the user to give Chrome access to 24 // An Autofill entry was shown that prompts the user to give Chrome access to
23 // the user's Address Book. 25 // the user's Address Book.
24 SHOWED_ACCESS_ADDRESS_BOOK_ENTRY = 0, 26 SHOWED_ACCESS_ADDRESS_BOOK_ENTRY = 0,
(...skipping 10 matching lines...) Expand all
35 void EmitHistogram(AccessAddressBookEventType type) { 37 void EmitHistogram(AccessAddressBookEventType type) {
36 UMA_HISTOGRAM_ENUMERATION( 38 UMA_HISTOGRAM_ENUMERATION(
37 "Autofill.MacAddressBook", type, ACCESS_ADDRESS_BOOK_ENTRY_MAX); 39 "Autofill.MacAddressBook", type, ACCESS_ADDRESS_BOOK_ENTRY_MAX);
38 } 40 }
39 41
40 } // namespace 42 } // namespace
41 #endif // defined(OS_MACOSX) && !defined(OS_IOS) 43 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
42 44
43 namespace autofill { 45 namespace autofill {
44 46
47 namespace {
48
49 bool ShouldAutofill(const FormFieldData& form_field) {
50 return form_field.should_autocomplete ||
Ilya Sherman 2014/10/21 01:19:11 nit: Please add parens to support this text alignm
Evan Stade 2014/10/21 19:12:47 I'm not sure where you want me to add parens. I'm
51 base::CommandLine::ForCurrentProcess()->HasSwitch(
52 switches::kIgnoreAutocompleteOffForAutofill);
53 }
54
55 } // namespace
56
45 AutofillExternalDelegate::AutofillExternalDelegate(AutofillManager* manager, 57 AutofillExternalDelegate::AutofillExternalDelegate(AutofillManager* manager,
46 AutofillDriver* driver) 58 AutofillDriver* driver)
47 : manager_(manager), 59 : manager_(manager),
48 driver_(driver), 60 driver_(driver),
49 query_id_(0), 61 query_id_(0),
50 display_warning_if_disabled_(false), 62 display_warning_if_disabled_(false),
51 has_suggestion_(false), 63 has_suggestion_(false),
52 has_shown_popup_for_current_edit_(false), 64 has_shown_popup_for_current_edit_(false),
53 has_shown_address_book_prompt(false), 65 has_shown_address_book_prompt(false),
54 weak_ptr_factory_(this) { 66 weak_ptr_factory_(this) {
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 query_form_, 312 query_form_,
301 query_field_, 313 query_field_,
302 unique_id); 314 unique_id);
303 } 315 }
304 316
305 void AutofillExternalDelegate::ApplyAutofillWarnings( 317 void AutofillExternalDelegate::ApplyAutofillWarnings(
306 std::vector<base::string16>* values, 318 std::vector<base::string16>* values,
307 std::vector<base::string16>* labels, 319 std::vector<base::string16>* labels,
308 std::vector<base::string16>* icons, 320 std::vector<base::string16>* icons,
309 std::vector<int>* unique_ids) { 321 std::vector<int>* unique_ids) {
310 if (!query_field_.should_autocomplete) { 322 if (!ShouldAutofill(query_field_)) {
311 // Autofill is disabled. If there were some profile or credit card 323 // Autofill is disabled. If there were some profile or credit card
312 // suggestions to show, show a warning instead. Otherwise, clear out the 324 // suggestions to show, show a warning instead. Otherwise, clear out the
313 // list of suggestions. 325 // list of suggestions.
314 if (!unique_ids->empty() && (*unique_ids)[0] > 0) { 326 if (!unique_ids->empty() && (*unique_ids)[0] > 0) {
315 // If Autofill is disabled and we had suggestions, show a warning instead. 327 // If Autofill is disabled and we had suggestions, show a warning instead.
316 values->assign( 328 values->assign(
317 1, l10n_util::GetStringUTF16(IDS_AUTOFILL_WARNING_FORM_DISABLED)); 329 1, l10n_util::GetStringUTF16(IDS_AUTOFILL_WARNING_FORM_DISABLED));
318 labels->assign(1, base::string16()); 330 labels->assign(1, base::string16());
319 icons->assign(1, base::string16()); 331 icons->assign(1, base::string16());
320 unique_ids->assign(1, POPUP_ITEM_ID_WARNING_MESSAGE); 332 unique_ids->assign(1, POPUP_ITEM_ID_WARNING_MESSAGE);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 POPUP_ITEM_ID_DATALIST_ENTRY); 413 POPUP_ITEM_ID_DATALIST_ENTRY);
402 } 414 }
403 415
404 #if defined(OS_MACOSX) && !defined(OS_IOS) 416 #if defined(OS_MACOSX) && !defined(OS_IOS)
405 void AutofillExternalDelegate::PingRenderer() { 417 void AutofillExternalDelegate::PingRenderer() {
406 driver_->PingRenderer(); 418 driver_->PingRenderer();
407 } 419 }
408 #endif // defined(OS_MACOSX) && !defined(OS_IOS) 420 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
409 421
410 } // namespace autofill 422 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698