summaryrefslogtreecommitdiff
path: root/chromium/components/autofill/core/browser/BUILD.gn
blob: 439a6738fdc680cc19bc5865036c2f53cfb3dd9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chrome_build.gni")
import("//build/config/jumbo.gni")
import("//build/util/version.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//tools/grit/grit_rule.gni")

grit("autofill_address_rewriter_resources") {
  source = "autofill_address_rewriter_resources.grd"
  outputs = [
    "grit/autofill_address_rewriter_resources.h",
    "grit/autofill_address_rewriter_resources_map.cc",
    "grit/autofill_address_rewriter_resources_map.h",
    "autofill_address_rewriter_resources.pak",
  ]
  output_dir = "$root_gen_dir/components/autofill/core/browser"
}

action("default_regex_patterns_cc") {
  visibility = [ ":*" ]
  sources = [ "pattern_provider/resources/regex_patterns.json" ]
  script = "pattern_provider/transpile_default_regex_patterns.py"
  args = [
    rebase_path("pattern_provider/resources/regex_patterns.json"),
    rebase_path("$target_gen_dir/pattern_provider/default_regex_patterns.cc"),
  ]
  outputs = [ "$target_gen_dir/pattern_provider/default_regex_patterns.cc" ]
}

jumbo_static_library("browser") {
  sources = [
    "address_normalization_manager.cc",
    "address_normalization_manager.h",
    "address_normalizer.h",
    "address_normalizer_impl.cc",
    "address_normalizer_impl.h",
    "address_profile_save_manager.cc",
    "address_profile_save_manager.h",
    "address_rewriter.cc",
    "address_rewriter.h",
    "autocomplete_history_manager.cc",
    "autocomplete_history_manager.h",
    "autofill_ablation_study.cc",
    "autofill_ablation_study.h",
    "autofill_address_policy_handler.cc",
    "autofill_address_policy_handler.h",
    "autofill_address_util.cc",
    "autofill_address_util.h",
    "autofill_browser_util.cc",
    "autofill_browser_util.h",
    "autofill_client.cc",
    "autofill_client.h",
    "autofill_credit_card_policy_handler.cc",
    "autofill_credit_card_policy_handler.h",
    "autofill_data_util.cc",
    "autofill_data_util.h",
    "autofill_download_manager.cc",
    "autofill_download_manager.h",
    "autofill_driver.h",
    "autofill_driver_factory.cc",
    "autofill_driver_factory.h",
    "autofill_experiments.cc",
    "autofill_experiments.h",
    "autofill_external_delegate.cc",
    "autofill_external_delegate.h",
    "autofill_field.cc",
    "autofill_field.h",
    "autofill_manager.cc",
    "autofill_manager.h",
    "autofill_metrics.cc",
    "autofill_metrics.h",
    "autofill_observer.cc",
    "autofill_observer.h",
    "autofill_profile_import_process.cc",
    "autofill_profile_import_process.h",
    "autofill_profile_save_strike_database.cc",
    "autofill_profile_save_strike_database.h",
    "autofill_profile_sync_util.cc",
    "autofill_profile_sync_util.h",
    "autofill_profile_update_strike_database.cc",
    "autofill_profile_update_strike_database.h",
    "autofill_profile_validation_util.cc",
    "autofill_profile_validation_util.h",
    "autofill_profile_validator.cc",
    "autofill_profile_validator.h",
    "autofill_regex_constants.cc",
    "autofill_regex_constants.h",
    "autofill_regexes.cc",
    "autofill_regexes.h",
    "autofill_subject.cc",
    "autofill_subject.h",
    "autofill_type.cc",
    "autofill_type.h",
    "browser_autofill_manager.cc",
    "browser_autofill_manager.h",
    "browser_autofill_manager_test_delegate.h",
    "data_model/address.cc",
    "data_model/address.h",
    "data_model/autofill_data_model.cc",
    "data_model/autofill_data_model.h",
    "data_model/autofill_metadata.cc",
    "data_model/autofill_metadata.h",
    "data_model/autofill_offer_data.cc",
    "data_model/autofill_offer_data.h",
    "data_model/autofill_profile.cc",
    "data_model/autofill_profile.h",
    "data_model/autofill_profile_comparator.cc",
    "data_model/autofill_profile_comparator.h",
    "data_model/autofill_structured_address.cc",
    "data_model/autofill_structured_address.h",
    "data_model/autofill_structured_address_component.cc",
    "data_model/autofill_structured_address_component.h",
    "data_model/autofill_structured_address_constants.cc",
    "data_model/autofill_structured_address_constants.h",
    "data_model/autofill_structured_address_name.cc",
    "data_model/autofill_structured_address_name.h",
    "data_model/autofill_structured_address_regex_provider.cc",
    "data_model/autofill_structured_address_regex_provider.h",
    "data_model/autofill_structured_address_utils.cc",
    "data_model/autofill_structured_address_utils.h",
    "data_model/borrowed_transliterator.cc",
    "data_model/borrowed_transliterator.h",
    "data_model/contact_info.cc",
    "data_model/contact_info.h",
    "data_model/credit_card.cc",
    "data_model/credit_card.h",
    "data_model/credit_card_art_image.cc",
    "data_model/credit_card_art_image.h",
    "data_model/credit_card_cloud_token_data.cc",
    "data_model/credit_card_cloud_token_data.h",
    "data_model/data_model_utils.cc",
    "data_model/data_model_utils.h",
    "data_model/form_group.cc",
    "data_model/form_group.h",
    "data_model/phone_number.cc",
    "data_model/phone_number.h",
    "data_model/test_data_creator.cc",
    "data_model/test_data_creator.h",
    "field_filler.cc",
    "field_filler.h",
    "field_types.cc",
    "field_types.h",
    "form_data_importer.cc",
    "form_data_importer.h",
    "form_parsing/address_field.cc",
    "form_parsing/address_field.h",
    "form_parsing/autofill_parsing_utils.cc",
    "form_parsing/autofill_parsing_utils.h",
    "form_parsing/autofill_scanner.cc",
    "form_parsing/autofill_scanner.h",
    "form_parsing/credit_card_field.cc",
    "form_parsing/credit_card_field.h",
    "form_parsing/email_field.cc",
    "form_parsing/email_field.h",
    "form_parsing/field_candidates.cc",
    "form_parsing/field_candidates.h",
    "form_parsing/form_field.cc",
    "form_parsing/form_field.h",
    "form_parsing/merchant_promo_code_field.cc",
    "form_parsing/merchant_promo_code_field.h",
    "form_parsing/name_field.cc",
    "form_parsing/name_field.h",
    "form_parsing/phone_field.cc",
    "form_parsing/phone_field.h",
    "form_parsing/price_field.cc",
    "form_parsing/price_field.h",
    "form_parsing/search_field.cc",
    "form_parsing/search_field.h",
    "form_parsing/travel_field.cc",
    "form_parsing/travel_field.h",
    "form_processing/label_processing_util.cc",
    "form_processing/label_processing_util.h",
    "form_processing/name_processing_util.cc",
    "form_processing/name_processing_util.h",
    "form_structure.cc",
    "form_structure.h",
    "form_types.cc",
    "form_types.h",
    "geo/address_i18n.cc",
    "geo/address_i18n.h",
    "geo/alternative_state_name_map.cc",
    "geo/alternative_state_name_map.h",
    "geo/alternative_state_name_map_updater.cc",
    "geo/alternative_state_name_map_updater.h",
    "geo/autofill_country.cc",
    "geo/autofill_country.h",
    "geo/country_data.cc",
    "geo/country_data.h",
    "geo/country_names.cc",
    "geo/country_names.h",
    "geo/country_names_for_locale.cc",
    "geo/country_names_for_locale.h",
    "geo/phone_number_i18n.cc",
    "geo/phone_number_i18n.h",
    "geo/region_data_loader.h",
    "geo/region_data_loader_impl.cc",
    "geo/region_data_loader_impl.h",
    "geo/state_names.cc",
    "geo/state_names.h",
    "geo/subkey_requester.cc",
    "geo/subkey_requester.h",
    "logging/log_buffer_submitter.cc",
    "logging/log_buffer_submitter.h",
    "logging/log_manager.cc",
    "logging/log_manager.h",
    "logging/log_protobufs.h",
    "logging/log_receiver.h",
    "logging/log_router.cc",
    "logging/log_router.h",
    "metrics/address_form_event_logger.cc",
    "metrics/address_form_event_logger.h",
    "metrics/credit_card_form_event_logger.cc",
    "metrics/credit_card_form_event_logger.h",
    "metrics/form_event_logger_base.cc",
    "metrics/form_event_logger_base.h",
    "metrics/form_events.h",
    "pattern_provider/default_regex_patterns.h",
    "pattern_provider/pattern_configuration_parser.cc",
    "pattern_provider/pattern_configuration_parser.h",
    "pattern_provider/pattern_provider.cc",
    "pattern_provider/pattern_provider.h",
    "payments/account_info_getter.h",
    "payments/autofill_offer_manager.cc",
    "payments/autofill_offer_manager.h",
    "payments/autofill_wallet_model_type_controller.cc",
    "payments/autofill_wallet_model_type_controller.h",
    "payments/card_unmask_delegate.cc",
    "payments/card_unmask_delegate.h",
    "payments/credit_card_access_manager.cc",
    "payments/credit_card_access_manager.h",
    "payments/credit_card_cvc_authenticator.cc",
    "payments/credit_card_cvc_authenticator.h",
    "payments/credit_card_save_manager.cc",
    "payments/credit_card_save_manager.h",
    "payments/credit_card_save_strike_database.cc",
    "payments/credit_card_save_strike_database.h",
    "payments/full_card_request.cc",
    "payments/full_card_request.h",
    "payments/legal_message_line.cc",
    "payments/legal_message_line.h",
    "payments/payments_client.cc",
    "payments/payments_client.h",
    "payments/payments_customer_data.h",
    "payments/payments_request.h",
    "payments/payments_service_url.cc",
    "payments/payments_service_url.h",
    "payments/payments_util.cc",
    "payments/payments_util.h",
    "payments/risk_data_loader.h",
    "payments/wait_for_signal_or_timeout.cc",
    "payments/wait_for_signal_or_timeout.h",
    "payments/webauthn_callback_types.h",
    "personal_data_manager.cc",
    "personal_data_manager.h",
    "personal_data_manager_cleaner.cc",
    "personal_data_manager_cleaner.h",
    "personal_data_manager_observer.h",
    "randomized_encoder.cc",
    "randomized_encoder.h",
    "rationalization_util.cc",
    "rationalization_util.h",
    "strike_database.cc",
    "strike_database.h",
    "strike_database_base.cc",
    "strike_database_base.h",
    "strike_database_integrator_base.cc",
    "strike_database_integrator_base.h",
    "strike_database_integrator_test_strike_database.cc",
    "strike_database_integrator_test_strike_database.h",
    "sync_utils.h",
    "ui/accessory_sheet_data.cc",
    "ui/accessory_sheet_data.h",
    "ui/accessory_sheet_enums.h",
    "ui/address_combobox_model.cc",
    "ui/address_combobox_model.h",
    "ui/address_contact_form_label_formatter.cc",
    "ui/address_contact_form_label_formatter.h",
    "ui/address_email_form_label_formatter.cc",
    "ui/address_email_form_label_formatter.h",
    "ui/address_form_label_formatter.cc",
    "ui/address_form_label_formatter.h",
    "ui/address_phone_form_label_formatter.cc",
    "ui/address_phone_form_label_formatter.h",
    "ui/autofill_popup_delegate.h",
    "ui/contact_form_label_formatter.cc",
    "ui/contact_form_label_formatter.h",
    "ui/country_combobox_model.cc",
    "ui/country_combobox_model.h",
    "ui/label_formatter.cc",
    "ui/label_formatter.h",
    "ui/label_formatter_utils.cc",
    "ui/label_formatter_utils.h",
    "ui/payments/card_unmask_prompt_controller.h",
    "ui/payments/card_unmask_prompt_controller_impl.cc",
    "ui/payments/card_unmask_prompt_controller_impl.h",
    "ui/payments/card_unmask_prompt_view.h",
    "ui/payments/payments_bubble_closed_reasons.h",
    "ui/popup_item_ids.h",
    "ui/popup_types.h",
    "ui/region_combobox_model.cc",
    "ui/region_combobox_model.h",
    "ui/suggestion.cc",
    "ui/suggestion.h",
    "ui/suggestion_selection.cc",
    "ui/suggestion_selection.h",
    "validation.cc",
    "validation.h",
    "webdata/autocomplete_sync_bridge.cc",
    "webdata/autocomplete_sync_bridge.h",
    "webdata/autofill_change.cc",
    "webdata/autofill_change.h",
    "webdata/autofill_entry.cc",
    "webdata/autofill_entry.h",
    "webdata/autofill_profile_model_type_controller.cc",
    "webdata/autofill_profile_model_type_controller.h",
    "webdata/autofill_profile_sync_bridge.cc",
    "webdata/autofill_profile_sync_bridge.h",
    "webdata/autofill_profile_sync_difference_tracker.cc",
    "webdata/autofill_profile_sync_difference_tracker.h",
    "webdata/autofill_sync_bridge_util.cc",
    "webdata/autofill_sync_bridge_util.h",
    "webdata/autofill_table.cc",
    "webdata/autofill_table.h",
    "webdata/autofill_table_encryptor.h",
    "webdata/autofill_table_encryptor_factory.cc",
    "webdata/autofill_table_encryptor_factory.h",
    "webdata/autofill_wallet_metadata_sync_bridge.cc",
    "webdata/autofill_wallet_metadata_sync_bridge.h",
    "webdata/autofill_wallet_offer_sync_bridge.cc",
    "webdata/autofill_wallet_offer_sync_bridge.h",
    "webdata/autofill_wallet_sync_bridge.cc",
    "webdata/autofill_wallet_sync_bridge.h",
    "webdata/autofill_webdata_backend.h",
    "webdata/autofill_webdata_backend_impl.cc",
    "webdata/autofill_webdata_backend_impl.h",
    "webdata/autofill_webdata_backend_util.cc",
    "webdata/autofill_webdata_backend_util.h",
    "webdata/autofill_webdata_service.cc",
    "webdata/autofill_webdata_service.h",
    "webdata/autofill_webdata_service_observer.h",
    "webdata/system_encryptor.cc",
    "webdata/system_encryptor.h",
  ]

  sources += get_target_outputs(":default_regex_patterns_cc")

  if (is_win) {
    sources += [
      "autofill_ie_toolbar_import_win.cc",
      "autofill_ie_toolbar_import_win.h",
    ]
  }

  if (is_ios) {
    sources += [
      "autofill_save_update_address_profile_delegate_ios.cc",
      "autofill_save_update_address_profile_delegate_ios.h",
      "keyboard_accessory_metrics_logger.h",
      "keyboard_accessory_metrics_logger.mm",
    ]
  }

  if (is_ios || is_android) {
    sources += [
      "payments/autofill_credit_card_filling_infobar_delegate_mobile.cc",
      "payments/autofill_credit_card_filling_infobar_delegate_mobile.h",
      "payments/autofill_offer_notification_infobar_delegate_mobile.cc",
      "payments/autofill_offer_notification_infobar_delegate_mobile.h",
      "payments/autofill_save_card_infobar_delegate_mobile.cc",
      "payments/autofill_save_card_infobar_delegate_mobile.h",
      "payments/autofill_save_card_infobar_mobile.h",
      "ui/mobile_label_formatter.cc",
      "ui/mobile_label_formatter.h",
      "ui/payments/card_expiration_date_fix_flow_controller.h",
      "ui/payments/card_expiration_date_fix_flow_controller_impl.cc",
      "ui/payments/card_expiration_date_fix_flow_controller_impl.h",
      "ui/payments/card_expiration_date_fix_flow_view.h",
      "ui/payments/card_name_fix_flow_controller.h",
      "ui/payments/card_name_fix_flow_controller_impl.cc",
      "ui/payments/card_name_fix_flow_controller_impl.h",
      "ui/payments/card_name_fix_flow_view.h",
    ]
  }

  if (!is_ios) {
    sources += [
      "autofill_policy_handler.cc",
      "autofill_policy_handler.h",
      "payments/credit_card_fido_authenticator.cc",
      "payments/credit_card_fido_authenticator.h",
      "payments/fido_authentication_strike_database.cc",
      "payments/fido_authentication_strike_database.h",
      "payments/internal_authenticator.h",
    ]
  }

  defines = [ "CHROME_VERSION_MAJOR=" + chrome_version_major ]

  configs += [ "//build/config:precompiled_headers" ]

  public_deps = [
    "//components/autofill/core/browser/proto",
    "//components/autofill/core/common",
    "//components/autofill/core/common/mojom:mojo_types",
    "//components/resources",
    "//components/security_interstitials/core",
    "//components/security_state/core",
    "//skia",
    "//third_party/libaddressinput",
  ]
  deps = [
    ":autofill_address_rewriter_resources",
    ":default_regex_patterns_cc",
    "//base",
    "//base:i18n",
    "//build:branding_buildflags",
    "//build:chromeos_buildflags",
    "//components/google/core/common",
    "//components/history/core/browser",
    "//components/infobars/core",
    "//components/keyed_service/core",
    "//components/language/core/browser",
    "//components/leveldb_proto",
    "//components/os_crypt",
    "//components/policy/core/browser",
    "//components/policy/core/common",
    "//components/pref_registry",
    "//components/prefs",
    "//components/profile_metrics",
    "//components/signin/public/base",
    "//components/signin/public/identity_manager",
    "//components/strings",
    "//components/sync",
    "//components/translate/core/browser",
    "//components/translate/core/common",
    "//components/variations/net",
    "//components/variations/service:service",
    "//components/version_info",
    "//components/webdata/common",
    "//crypto",
    "//google_apis",
    "//net",
    "//services/data_decoder/public/cpp:cpp",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//sql",
    "//third_party/icu",
    "//third_party/libphonenumber",
    "//third_party/re2",
    "//third_party/zlib/google:compression_utils",
    "//ui/accessibility:accessibility",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gfx/range",
    "//url",
  ]

  if (!is_ios) {
    deps += [ "//third_party/blink/public/common" ]
  }

  if (!is_android && !is_ios) {
    sources += [
      "payments/local_card_migration_manager.cc",
      "payments/local_card_migration_manager.h",
      "payments/local_card_migration_strike_database.cc",
      "payments/local_card_migration_strike_database.h",
      "payments/upi_vpa_save_manager.cc",
      "payments/upi_vpa_save_manager.h",
      "ui/payments/local_card_migration_bubble_controller.h",
      "ui/payments/local_card_migration_dialog_controller.h",
    ]
    deps += [
      "//ui/native_theme",
      "//ui/native_theme:native_theme_browser",
    ]
  }

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}

jumbo_static_library("test_support") {
  testonly = true
  sources = [
    "autofill_form_test_utils.cc",
    "autofill_form_test_utils.h",
    "autofill_test_utils.cc",
    "autofill_test_utils.h",
    "data_driven_test.cc",
    "data_driven_test.h",
    "geo/alternative_state_name_map_test_utils.cc",
    "geo/alternative_state_name_map_test_utils.h",
    "geo/test_region_data_loader.cc",
    "geo/test_region_data_loader.h",
    "logging/stub_log_manager.cc",
    "logging/stub_log_manager.h",
    "mock_autocomplete_history_manager.cc",
    "mock_autocomplete_history_manager.h",
    "payments/test_authentication_requester.cc",
    "payments/test_authentication_requester.h",
    "payments/test_credit_card_save_manager.cc",
    "payments/test_credit_card_save_manager.h",
    "payments/test_credit_card_save_strike_database.cc",
    "payments/test_credit_card_save_strike_database.h",
    "payments/test_legal_message_line.h",
    "payments/test_payments_client.cc",
    "payments/test_payments_client.h",
    "payments/test_strike_database.cc",
    "payments/test_strike_database.h",
    "test_address_normalizer.cc",
    "test_address_normalizer.h",
    "test_autofill_async_observer.cc",
    "test_autofill_async_observer.h",
    "test_autofill_client.cc",
    "test_autofill_client.h",
    "test_autofill_clock.cc",
    "test_autofill_clock.h",
    "test_autofill_download_manager.cc",
    "test_autofill_download_manager.h",
    "test_autofill_driver.cc",
    "test_autofill_driver.h",
    "test_autofill_external_delegate.cc",
    "test_autofill_external_delegate.h",
    "test_autofill_profile_validator.cc",
    "test_autofill_profile_validator.h",
    "test_autofill_profile_validator_delayed.cc",
    "test_autofill_profile_validator_delayed.h",
    "test_autofill_tick_clock.cc",
    "test_autofill_tick_clock.h",
    "test_browser_autofill_manager.cc",
    "test_browser_autofill_manager.h",
    "test_event_waiter.h",
    "test_form_data_importer.cc",
    "test_form_data_importer.h",
    "test_form_structure.cc",
    "test_form_structure.h",
    "test_inmemory_strike_database.cc",
    "test_inmemory_strike_database.h",
    "test_personal_data_manager.cc",
    "test_personal_data_manager.h",
    "ui/suggestion_test_helpers.h",
    "webdata/autofill_sync_bridge_test_util.cc",
    "webdata/autofill_sync_bridge_test_util.h",
    "webdata/mock_autofill_webdata_backend.cc",
    "webdata/mock_autofill_webdata_backend.h",
    "webdata/mock_autofill_webdata_service.cc",
    "webdata/mock_autofill_webdata_service.h",
  ]

  public_deps = [ ":browser" ]

  deps = [
    ":autofill_address_rewriter_resources",
    "//base",
    "//base/test:test_support",
    "//components/autofill/core/browser",
    "//components/autofill/core/common",
    "//components/leveldb_proto",
    "//components/os_crypt",
    "//components/os_crypt:test_support",
    "//components/pref_registry",
    "//components/prefs:test_support",
    "//components/signin/public/identity_manager:test_support",
    "//components/sync:test_support",
    "//components/translate/core/browser",
    "//components/translate/core/browser:test_support",
    "//components/ukm",
    "//components/ukm:test_support",
    "//components/version_info:version_info",
    "//google_apis:test_support",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//skia",
    "//testing/gtest",
    "//third_party/libaddressinput:test_support",
    "//third_party/libaddressinput:util",
    "//third_party/re2:re2",
    "//ui/accessibility",
    "//ui/gfx:test_support",
    "//ui/gfx/geometry",
  ]

  if (!is_ios) {
    sources += [
      "payments/test_credit_card_fido_authenticator.cc",
      "payments/test_credit_card_fido_authenticator.h",
      "payments/test_internal_authenticator.cc",
      "payments/test_internal_authenticator.h",
    ]

    public_deps += [ "//components/autofill/content/browser" ]

    deps += [ "//third_party/blink/public/common" ]
  }

  if (!is_ios && !is_android) {
    sources += [
      "payments/test_local_card_migration_manager.cc",
      "payments/test_local_card_migration_manager.h",
    ]
  }
}

bundle_data("unit_tests_bundle_data") {
  sources = [
    "//components/test/data/autofill/merge/input/ambiguous.in",
    "//components/test/data/autofill/merge/input/case.in",
    "//components/test/data/autofill/merge/input/email.in",
    "//components/test/data/autofill/merge/input/identical.in",
    "//components/test/data/autofill/merge/input/primarycase.in",
    "//components/test/data/autofill/merge/input/singlemerge.in",
    "//components/test/data/autofill/merge/input/validation.in",
    "//components/test/data/autofill/merge/output/ambiguous.out",
    "//components/test/data/autofill/merge/output/case.out",
    "//components/test/data/autofill/merge/output/email.out",
    "//components/test/data/autofill/merge/output/identical.out",
    "//components/test/data/autofill/merge/output/primarycase.out",
    "//components/test/data/autofill/merge/output/singlemerge.out",
    "//components/test/data/autofill/merge/output/validation.out",
    "//components/test/data/autofill/merge_structured_names/input/ambiguous.in",
    "//components/test/data/autofill/merge_structured_names/input/case.in",
    "//components/test/data/autofill/merge_structured_names/input/email.in",
    "//components/test/data/autofill/merge_structured_names/input/identical.in",
    "//components/test/data/autofill/merge_structured_names/input/primarycase.in",
    "//components/test/data/autofill/merge_structured_names/input/singlemerge.in",
    "//components/test/data/autofill/merge_structured_names/input/validation.in",
    "//components/test/data/autofill/merge_structured_names/output/ambiguous.out",
    "//components/test/data/autofill/merge_structured_names/output/case.out",
    "//components/test/data/autofill/merge_structured_names/output/email.out",
    "//components/test/data/autofill/merge_structured_names/output/identical.out",
    "//components/test/data/autofill/merge_structured_names/output/primarycase.out",
    "//components/test/data/autofill/merge_structured_names/output/singlemerge.out",
    "//components/test/data/autofill/merge_structured_names/output/validation.out",
  ]
  outputs = [ "{{bundle_resources_dir}}/" +
              "{{source_root_relative_dir}}/{{source_file_part}}" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "address_normalization_manager_unittest.cc",
    "address_normalizer_impl_unittest.cc",
    "address_profile_save_manager_unittest.cc",
    "address_rewriter_unittest.cc",
    "autocomplete_history_manager_unittest.cc",
    "autofill_ablation_study_unittest.cc",
    "autofill_address_policy_handler_unittest.cc",
    "autofill_address_util_unittest.cc",
    "autofill_credit_card_policy_handler_unittest.cc",
    "autofill_data_util_unittest.cc",
    "autofill_download_manager_unittest.cc",
    "autofill_driver_factory_unittest.cc",
    "autofill_experiments_unittest.cc",
    "autofill_external_delegate_unittest.cc",
    "autofill_merge_unittest.cc",
    "autofill_metrics_unittest.cc",
    "autofill_profile_import_process_unittest.cc",
    "autofill_profile_save_strike_database_unittest.cc",
    "autofill_profile_sync_util_unittest.cc",
    "autofill_profile_update_strike_database_unittest.cc",
    "autofill_profile_validation_util_unittest.cc",
    "autofill_profile_validator_unittest.cc",
    "autofill_regexes_unittest.cc",
    "autofill_subject_unittest.cc",
    "autofill_type_unittest.cc",
    "browser_autofill_manager_unittest.cc",
    "data_model/address_unittest.cc",
    "data_model/autofill_data_model_unittest.cc",
    "data_model/autofill_profile_comparator_unittest.cc",
    "data_model/autofill_profile_unittest.cc",
    "data_model/autofill_structured_address_component_unittest.cc",
    "data_model/autofill_structured_address_name_unittest.cc",
    "data_model/autofill_structured_address_regex_provider_unittest.cc",
    "data_model/autofill_structured_address_test_utils.cc",
    "data_model/autofill_structured_address_test_utils.h",
    "data_model/autofill_structured_address_unittest.cc",
    "data_model/autofill_structured_address_utils_unittest.cc",
    "data_model/borrowed_transliterator_unittest.cc",
    "data_model/contact_info_unittest.cc",
    "data_model/credit_card_unittest.cc",
    "data_model/phone_number_unittest.cc",
    "field_filler_unittest.cc",
    "form_data_importer_unittest.cc",
    "form_parsing/address_field_unittest.cc",
    "form_parsing/credit_card_field_unittest.cc",
    "form_parsing/field_candidates_unittest.cc",
    "form_parsing/form_field_unittest.cc",
    "form_parsing/merchant_promo_code_field_unittest.cc",
    "form_parsing/name_field_unittest.cc",
    "form_parsing/parsing_test_utils.cc",
    "form_parsing/parsing_test_utils.h",
    "form_parsing/phone_field_unittest.cc",
    "form_parsing/price_field_unittest.cc",
    "form_parsing/search_field_unittest.cc",
    "form_processing/label_processing_util_unittest.cc",
    "form_processing/name_processing_util_unittest.cc",
    "form_structure_unittest.cc",
    "geo/address_i18n_unittest.cc",
    "geo/alternative_state_name_map_unittest.cc",
    "geo/alternative_state_name_map_updater_unittest.cc",
    "geo/autofill_country_unittest.cc",
    "geo/country_names_for_locale_unittest.cc",
    "geo/country_names_unittest.cc",
    "geo/phone_number_i18n_unittest.cc",
    "geo/subkey_requester_unittest.cc",
    "logging/log_buffer_submitter_unittest.cc",
    "logging/log_manager_unittest.cc",
    "logging/log_router_unittest.cc",
    "pattern_provider/pattern_configuration_parser_unittest.cc",
    "pattern_provider/pattern_provider_unittest.cc",
    "payments/autofill_offer_manager_unittest.cc",
    "payments/credit_card_access_manager_unittest.cc",
    "payments/credit_card_cvc_authenticator_unittest.cc",
    "payments/credit_card_save_manager_unittest.cc",
    "payments/full_card_request_unittest.cc",
    "payments/legal_message_line_unittest.cc",
    "payments/payments_client_unittest.cc",
    "payments/payments_service_url_unittest.cc",
    "payments/payments_util_unittest.cc",
    "payments/wait_for_signal_or_timeout_unittest.cc",
    "personal_data_manager_unittest.cc",
    "randomized_encoder_unittest.cc",
    "rationalization_util_unittest.cc",
    "strike_database_integrator_test_strike_database_unittest.cc",
    "strike_database_unittest.cc",
    "test_utils/test_profiles.cc",
    "test_utils/test_profiles.h",
    "ui/address_combobox_model_unittest.cc",
    "ui/country_combobox_model_unittest.cc",
    "ui/payments/card_unmask_prompt_controller_impl_unittest.cc",
    "ui/region_combobox_model_unittest.cc",
    "ui/suggestion_selection_unittest.cc",
    "validation_unittest.cc",
    "webdata/autocomplete_sync_bridge_unittest.cc",
    "webdata/autofill_profile_sync_bridge_unittest.cc",
    "webdata/autofill_profile_sync_difference_tracker_unittest.cc",
    "webdata/autofill_sync_bridge_util_unittest.cc",
    "webdata/autofill_table_unittest.cc",
    "webdata/autofill_wallet_metadata_sync_bridge_unittest.cc",
    "webdata/autofill_wallet_offer_sync_bridge_unittest.cc",
    "webdata/autofill_wallet_sync_bridge_unittest.cc",
    "webdata/web_data_service_unittest.cc",
  ]

  if (is_win) {
    sources += [ "autofill_ie_toolbar_import_win_unittest.cc" ]
  }

  if (is_ios) {
    sources +=
        [ "autofill_save_update_address_profile_delegate_ios_unittest.cc" ]
  }

  if (is_ios || is_android) {
    sources += [
      "ui/mobile_label_formatter_unittest.cc",
      "ui/payments/card_expiration_date_fix_flow_controller_impl_unittest.cc",
      "ui/payments/card_name_fix_flow_controller_impl_unittest.cc",
    ]
  }

  if (!is_ios) {
    sources += [
      "autofill_policy_handler_unittest.cc",
      "payments/credit_card_fido_authenticator_unittest.cc",
    ]
  }

  if (!is_ios && !is_android) {
    sources += [
      "payments/local_card_migration_manager_unittest.cc",
      "ui/address_contact_form_label_formatter_unittest.cc",
      "ui/address_email_form_label_formatter_unittest.cc",
      "ui/address_form_label_formatter_unittest.cc",
      "ui/address_phone_form_label_formatter_unittest.cc",
      "ui/contact_form_label_formatter_unittest.cc",
      "ui/label_formatter_unittest.cc",
      "ui/label_formatter_utils_unittest.cc",
    ]
  }

  defines = [ "CHROME_VERSION_MAJOR=" + chrome_version_major ]

  deps = [
    ":autofill_address_rewriter_resources",
    ":browser",
    ":test_support",
    ":unit_tests_bundle_data",
    "//base",
    "//base/test:test_support",
    "//build:chromeos_buildflags",
    "//components/autofill/core/common",
    "//components/leveldb_proto",
    "//components/os_crypt",
    "//components/os_crypt:test_support",
    "//components/policy/core/common",
    "//components/prefs:test_support",
    "//components/resources",
    "//components/security_state/core",
    "//components/signin/public/identity_manager:test_support",
    "//components/strings",
    "//components/sync",
    "//components/sync:test_support_model",
    "//components/sync/driver:test_support",
    "//components/translate/core/browser",
    "//components/translate/core/common",
    "//components/ukm",
    "//components/ukm:test_support",
    "//components/unified_consent",
    "//components/variations",
    "//components/variations:test_support",
    "//components/variations/net",
    "//components/version_info:version_info",
    "//components/webdata/common",
    "//google_apis",
    "//google_apis:test_support",
    "//net:test_support",
    "//services/data_decoder/public/cpp:test_support",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//sql",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/libaddressinput:test_support",
    "//third_party/libaddressinput:util",
    "//third_party/libphonenumber",
    "//third_party/re2:re2",
    "//ui/base",
    "//url",
  ]

  if (!is_ios) {
    deps += [
      "//content/test:test_support",
      "//third_party/blink/public/common",
    ]
  }
}

fuzzer_test("form_structure_fuzzer") {
  sources = [ "form_structure_fuzzer.cc" ]
  deps = [
    # TODO(crbug.com/896313): Reduce the dependency on "browser".
    ":browser",
    "//base:base",
    "//components/autofill/core/common:common",
  ]
  seed_corpus = "form_structure_fuzzer_corpus"
  dict = "form_structure_fuzzer.dict"
}

if (use_libfuzzer) {
  fuzzer_test("form_structure_process_query_response_fuzzer") {
    sources = [ "form_structure_process_query_response_fuzzer.cc" ]
    deps = [
      # TODO(crbug.com/896313): Reduce the dependency on "browser".
      ":browser",
      "//base:base",
      "//components/autofill/core/browser",
      "//components/autofill/core/browser:test_support",
      "//components/autofill/core/browser/proto",
      "//components/autofill/core/common",
      "//third_party/libprotobuf-mutator",
    ]
  }
}

fuzzer_test("autofill_phone_number_i18n_fuzzer") {
  sources = [ "geo/phone_number_i18n_fuzzer.cc" ]

  deps = [
    # TODO(crbug.com/896313): Reduce the dependency on "browser".
    ":browser",
    "//base",
    "//base:i18n",
    "//third_party/libphonenumber",
  ]

  dict = "geo/phone_number_i18n_fuzzer.dict"
}