blob: 64cc0ec28adce7fdd3630364d044c09a8e47066f [file] [log] [blame]
# 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("//testing/libfuzzer/fuzzer_test.gni")
jumbo_static_library("browser") {
sources = [
"accessory_sheet_data.cc",
"accessory_sheet_data.h",
"account_info_getter.h",
"address.cc",
"address.h",
"address_combobox_model.cc",
"address_combobox_model.h",
"address_field.cc",
"address_field.h",
"address_i18n.cc",
"address_i18n.h",
"address_normalization_manager.cc",
"address_normalization_manager.h",
"address_normalizer.h",
"address_normalizer_impl.cc",
"address_normalizer_impl.h",
"address_rewriter.cc",
"address_rewriter.h",
"address_rewriter_rules.cc",
"autocomplete_history_manager.cc",
"autocomplete_history_manager.h",
"autofill-inl.h",
"autofill_address_util.cc",
"autofill_address_util.h",
"autofill_client.cc",
"autofill_client.h",
"autofill_country.cc",
"autofill_country.h",
"autofill_data_model.cc",
"autofill_data_model.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_handler.cc",
"autofill_handler.h",
"autofill_handler_proxy.cc",
"autofill_handler_proxy.h",
"autofill_ie_toolbar_import_win.cc",
"autofill_ie_toolbar_import_win.h",
"autofill_manager.cc",
"autofill_manager.h",
"autofill_manager_test_delegate.h",
"autofill_metadata.cc",
"autofill_metadata.h",
"autofill_metrics.cc",
"autofill_metrics.h",
"autofill_popup_delegate.h",
"autofill_profile.cc",
"autofill_profile.h",
"autofill_profile_comparator.cc",
"autofill_profile_comparator.h",
"autofill_profile_sync_util.cc",
"autofill_profile_sync_util.h",
"autofill_profile_validation_util.cc",
"autofill_profile_validation_util.h",
"autofill_profile_validator.cc",
"autofill_profile_validator.h",
"autofill_provider.cc",
"autofill_provider.h",
"autofill_scanner.cc",
"autofill_scanner.h",
"autofill_type.cc",
"autofill_type.h",
"autofill_wallet_data_type_controller.cc",
"autofill_wallet_data_type_controller.h",
"autofill_wallet_model_type_controller.cc",
"autofill_wallet_model_type_controller.h",
"card_unmask_delegate.cc",
"card_unmask_delegate.h",
"contact_info.cc",
"contact_info.h",
"country_combobox_model.cc",
"country_combobox_model.h",
"country_data.cc",
"country_data.h",
"country_names.cc",
"country_names.h",
"credit_card.cc",
"credit_card.h",
"credit_card_field.cc",
"credit_card_field.h",
"credit_card_save_manager.cc",
"credit_card_save_manager.h",
"credit_card_save_strike_database.cc",
"credit_card_save_strike_database.h",
"email_field.cc",
"email_field.h",
"field_candidates.cc",
"field_candidates.h",
"field_filler.cc",
"field_filler.h",
"field_types.h",
"form_data_importer.cc",
"form_data_importer.h",
"form_field.cc",
"form_field.h",
"form_group.cc",
"form_group.h",
"form_structure.cc",
"form_structure.h",
"form_types.cc",
"form_types.h",
"legacy_strike_database.cc",
"legacy_strike_database.h",
"legal_message_line.cc",
"legal_message_line.h",
"local_card_migration_manager.cc",
"local_card_migration_manager.h",
"name_field.cc",
"name_field.h",
"password_requirements_spec_fetcher.h",
"password_requirements_spec_fetcher_impl.cc",
"password_requirements_spec_fetcher_impl.h",
"password_requirements_spec_printer.cc",
"password_requirements_spec_printer.h",
"payments/full_card_request.cc",
"payments/full_card_request.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",
"personal_data_manager.cc",
"personal_data_manager.h",
"personal_data_manager_observer.h",
"phone_field.cc",
"phone_field.h",
"phone_number.cc",
"phone_number.h",
"phone_number_i18n.cc",
"phone_number_i18n.h",
"popup_item_ids.h",
"popup_types.h",
"randomized_encoder.cc",
"randomized_encoder.h",
"rationalization_util.cc",
"rationalization_util.h",
"region_combobox_model.cc",
"region_combobox_model.h",
"region_data_loader.h",
"region_data_loader_impl.cc",
"region_data_loader_impl.h",
"risk_data_loader.h",
"search_field.cc",
"search_field.h",
"state_names.cc",
"state_names.h",
"strike_database.cc",
"strike_database.h",
"strike_database_integrator_base.cc",
"strike_database_integrator_base.h",
"subkey_requester.cc",
"subkey_requester.h",
"suggestion.cc",
"suggestion.h",
"suggestion_selection.cc",
"suggestion_selection.h",
"sync_utils.h",
"test_data_creator.cc",
"test_data_creator.h",
"ui/card_unmask_prompt_controller.h",
"ui/card_unmask_prompt_controller_impl.cc",
"ui/card_unmask_prompt_controller_impl.h",
"ui/card_unmask_prompt_view.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_data_type_controller.cc",
"webdata/autofill_profile_data_type_controller.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_profile_syncable_service.cc",
"webdata/autofill_profile_syncable_service.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_metadata_syncable_service.cc",
"webdata/autofill_wallet_metadata_syncable_service.h",
"webdata/autofill_wallet_sync_bridge.cc",
"webdata/autofill_wallet_sync_bridge.h",
"webdata/autofill_wallet_syncable_service.cc",
"webdata/autofill_wallet_syncable_service.h",
"webdata/autofill_webdata.h",
"webdata/autofill_webdata_backend.h",
"webdata/autofill_webdata_backend_impl.cc",
"webdata/autofill_webdata_backend_impl.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",
]
if (is_ios) {
sources += [
"keyboard_accessory_metrics_logger.h",
"keyboard_accessory_metrics_logger.mm",
]
}
if (is_ios || is_android) {
sources += [
"autofill_assistant.cc",
"autofill_assistant.h",
"autofill_credit_card_filling_infobar_delegate_mobile.cc",
"autofill_credit_card_filling_infobar_delegate_mobile.h",
"autofill_save_card_infobar_delegate_mobile.cc",
"autofill_save_card_infobar_delegate_mobile.h",
"autofill_save_card_infobar_mobile.h",
"ui/card_name_fix_flow_view_delegate_mobile.cc",
"ui/card_name_fix_flow_view_delegate_mobile.h",
]
}
if (!is_android) {
sources += [
"ui/local_card_migration_bubble_controller.h",
"ui/local_card_migration_dialog_controller.h",
"ui/save_card_bubble_controller.h",
]
}
if (!is_ios) {
sources += [
"autofill_address_policy_handler.cc",
"autofill_address_policy_handler.h",
"autofill_credit_card_policy_handler.cc",
"autofill_credit_card_policy_handler.h",
"autofill_policy_handler.cc",
"autofill_policy_handler.h",
]
}
configs += [ "//build/config:precompiled_headers" ]
public_deps = [
"//components/autofill/core/browser/proto",
"//components/autofill/core/common",
"//components/resources",
"//components/security_state/core",
"//skia",
"//third_party/libaddressinput",
]
deps = [
":password_generator",
":password_generator_fips181",
"proto:legacy_proto_bridge",
"//base",
"//base:i18n",
"//components/data_use_measurement/core",
"//components/history/core/browser",
"//components/infobars/core",
"//components/keyed_service/core",
"//components/leveldb_proto:leveldb_proto",
"//components/os_crypt",
"//components/pref_registry",
"//components/prefs",
"//components/signin/core/browser:shared",
"//components/strings",
"//components/sync",
"//components/variations/net",
"//components/version_info",
"//components/webdata/common",
"//crypto",
"//google_apis",
"//net",
"//services/identity/public/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",
"//ui/accessibility:accessibility",
"//ui/base",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gfx/range",
"//url",
]
if (!is_ios) {
deps += [
"//components/policy/core/browser",
"//components/policy/core/common",
]
}
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}
jumbo_static_library("test_support") {
testonly = true
sources = [
"autofill_test_utils.cc",
"autofill_test_utils.h",
"data_driven_test.cc",
"data_driven_test.h",
"mock_autocomplete_history_manager.cc",
"mock_autocomplete_history_manager.h",
"payments/test_payments_client.cc",
"payments/test_payments_client.h",
"suggestion_test_helpers.h",
"test_address_normalizer.cc",
"test_address_normalizer.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_manager.cc",
"test_autofill_manager.h",
"test_autofill_profile_validator.cc",
"test_autofill_profile_validator.h",
"test_autofill_provider.cc",
"test_autofill_provider.h",
"test_credit_card_save_manager.cc",
"test_credit_card_save_manager.h",
"test_credit_card_save_strike_database.cc",
"test_credit_card_save_strike_database.h",
"test_event_waiter.h",
"test_form_data_importer.cc",
"test_form_data_importer.h",
"test_form_structure.cc",
"test_form_structure.h",
"test_legacy_strike_database.cc",
"test_legacy_strike_database.h",
"test_local_card_migration_manager.cc",
"test_local_card_migration_manager.h",
"test_personal_data_manager.cc",
"test_personal_data_manager.h",
"test_region_data_loader.cc",
"test_region_data_loader.h",
"test_strike_database.cc",
"test_strike_database.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",
]
public_deps = [
":browser",
]
deps = [
"//base",
"//base/test:test_support",
"//components/autofill/core/browser",
"//components/autofill/core/common",
"//components/leveldb_proto:leveldb_proto",
"//components/os_crypt",
"//components/os_crypt:test_support",
"//components/pref_registry",
"//components/prefs:test_support",
"//components/sync",
"//components/sync:test_support_driver",
"//components/ukm",
"//components/ukm:test_support",
"//google_apis:test_support",
"//services/identity/public/cpp:test_support",
"//services/network:test_support",
"//services/network/public/cpp",
"//skia",
"//testing/gtest",
"//third_party/libaddressinput:test_support",
"//third_party/libaddressinput:util",
"//ui/gfx:test_support",
"//ui/gfx/geometry",
]
}
static_library("password_generator") {
sources = [
"password_generator.cc",
"password_generator.h",
]
public_deps = [
"//components/autofill/core/browser/proto",
]
deps = [
"//base",
]
}
static_library("password_generator_fips181") {
sources = [
"password_generator_fips181.cc",
"password_generator_fips181.h",
]
deps = [
"//base",
"//third_party/fips181",
]
}
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",
]
outputs = [
"{{bundle_resources_dir}}/" +
"{{source_root_relative_dir}}/{{source_file_part}}",
]
}
source_set("unit_tests") {
testonly = true
sources = [
"address_combobox_model_unittest.cc",
"address_field_unittest.cc",
"address_i18n_unittest.cc",
"address_normalization_manager_unittest.cc",
"address_normalizer_impl_unittest.cc",
"address_rewriter_unittest.cc",
"address_unittest.cc",
"autocomplete_history_manager_unittest.cc",
"autofill_country_unittest.cc",
"autofill_data_model_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_ie_toolbar_import_win_unittest.cc",
"autofill_manager_unittest.cc",
"autofill_merge_unittest.cc",
"autofill_metrics_unittest.cc",
"autofill_profile_comparator_unittest.cc",
"autofill_profile_sync_util_unittest.cc",
"autofill_profile_unittest.cc",
"autofill_profile_validation_util_unittest.cc",
"autofill_profile_validator_unittest.cc",
"autofill_type_unittest.cc",
"autofill_wallet_data_type_controller_unittest.cc",
"contact_info_unittest.cc",
"country_combobox_model_unittest.cc",
"country_names_unittest.cc",
"credit_card_field_unittest.cc",
"credit_card_save_manager_unittest.cc",
"credit_card_save_strike_database_unittest.cc",
"credit_card_unittest.cc",
"field_candidates_unittest.cc",
"field_filler_unittest.cc",
"form_data_importer_unittest.cc",
"form_field_unittest.cc",
"form_structure_unittest.cc",
"legacy_strike_database_unittest.cc",
"legal_message_line_unittest.cc",
"local_card_migration_manager_unittest.cc",
"name_field_unittest.cc",
"password_generator_fips181_unittest.cc",
"password_generator_unittest.cc",
"password_requirements_spec_fetcher_unittest.cc",
"payments/full_card_request_unittest.cc",
"payments/payments_client_unittest.cc",
"payments/payments_service_url_unittest.cc",
"payments/payments_util_unittest.cc",
"personal_data_manager_unittest.cc",
"phone_field_unittest.cc",
"phone_number_i18n_unittest.cc",
"phone_number_unittest.cc",
"proto/legacy_proto_bridge_unittest.cc",
"randomized_encoder_unittest.cc",
"rationalization_util_unittest.cc",
"region_combobox_model_unittest.cc",
"search_field_unittest.cc",
"strike_database_unittest.cc",
"subkey_requester_unittest.cc",
"suggestion_selection_unittest.cc",
"ui/card_unmask_prompt_controller_impl_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_profile_syncable_service_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_metadata_syncable_service_unittest.cc",
"webdata/autofill_wallet_sync_bridge_unittest.cc",
"webdata/autofill_wallet_syncable_service_unittest.cc",
"webdata/web_data_service_unittest.cc",
]
if (is_ios || is_android) {
sources += [ "autofill_assistant_unittest.cc" ]
}
if (!is_ios) {
sources += [
"autofill_address_policy_handler_unittest.cc",
"autofill_credit_card_policy_handler_unittest.cc",
"autofill_policy_handler_unittest.cc",
]
}
deps = [
":browser",
":password_generator",
":password_generator_fips181",
":test_support",
":unit_tests_bundle_data",
"proto:legacy_proto_bridge",
"//base",
"//base/test:test_support",
"//components/autofill/core/common",
"//components/os_crypt",
"//components/os_crypt:test_support",
"//components/prefs:test_support",
"//components/resources",
"//components/security_state/core",
"//components/strings",
"//components/sync",
"//components/sync:test_support_driver",
"//components/sync:test_support_model",
"//components/ukm",
"//components/ukm:test_support",
"//components/variations",
"//components/variations:test_support",
"//components/version_info:version_info",
"//components/webdata/common",
"//components/webdata_services:test_support",
"//google_apis",
"//google_apis:test_support",
"//net:test_support",
"//services/identity/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",
"//ui/base",
"//url",
]
if (!is_ios) {
deps += [ "//components/policy/core/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"
}
fuzzer_test("password_generator_fips181_fuzzer") {
sources = [
"password_generator_fips181_fuzzer.cc",
]
deps = [
":password_generator_fips181",
]
}
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/proto",
"//components/autofill/core/common",
"//third_party/libprotobuf-mutator",
]
}
fuzzer_test("password_generator_proto_fuzzer") {
sources = [
"password_generator_proto_fuzzer.cc",
]
deps = [
":password_generator",
"//components/autofill/core/browser/proto",
"//third_party/libprotobuf-mutator",
]
}
}
fuzzer_test("autofill_phone_number_i18n_fuzzer") {
sources = [
"phone_number_i18n_fuzzer.cc",
]
deps = [
# TODO(crbug.com/896313): Reduce the dependency on "browser".
":browser",
"//base",
"//base:i18n",
"//third_party/libphonenumber",
]
dict = "phone_number_i18n_fuzzer.dict"
}