| # Copyright 2016 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/buildflag_header.gni") |
| import("//ios/chrome/features.gni") |
| import("//ios/public/provider/chrome/browser/build_config.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| |
| # Target for sources that don't depend on //ios/chrome/browser:browser |
| source_set("startup_basic") { |
| sources = [ |
| "app_launch_metrics.h", |
| "chrome_main_starter.h", |
| "chrome_main_starter.mm", |
| "ios_chrome_main.h", |
| "ios_chrome_main.mm", |
| "ios_chrome_main_delegate.h", |
| "ios_chrome_main_delegate.mm", |
| "register_experimental_settings.h", |
| "register_experimental_settings.mm", |
| "setup_debugging.h", |
| "setup_debugging.mm", |
| ] |
| |
| deps = [ |
| "//base", |
| "//components/component_updater", |
| "//components/crash/core/common", |
| "//ios/chrome/browser/shared/model/paths", |
| "//ios/web/public/init", |
| "//skia", |
| ] |
| if (ios_enable_sandbox_dump) { |
| deps += [ ":sandbox_dump" ] |
| } |
| |
| assert_no_deps = [ |
| "//ios/chrome/browser/shared/model/browser_state", |
| "//ios/chrome/browser/web/model", |
| ] |
| } |
| |
| buildflag_header("ios_enable_sandbox_dump_buildflags") { |
| header = "ios_enable_sandbox_dump_buildflags.h" |
| flags = [ "IOS_ENABLE_SANDBOX_DUMP=$ios_enable_sandbox_dump" ] |
| } |
| |
| if (ios_enable_sandbox_dump) { |
| source_set("sandbox_dump") { |
| sources = [ |
| "sandbox_dump.h", |
| "sandbox_dump.mm", |
| ] |
| deps = [ |
| ":ios_enable_sandbox_dump_buildflags", |
| "//base", |
| "//ios/chrome/common/app_group", |
| "//third_party/zlib/google:zip", |
| ] |
| } |
| } |
| |
| source_set("startup") { |
| sources = [ |
| "chrome_app_startup_parameters.h", |
| "chrome_app_startup_parameters.mm", |
| "client_registration.h", |
| "client_registration.mm", |
| "provider_registration.h", |
| "provider_registration.mm", |
| ] |
| |
| deps = [ |
| ":startup_basic", |
| "//base", |
| "//components/password_manager/core/browser", |
| "//components/search_engines:search_engines", |
| "//ios/chrome/app", |
| "//ios/chrome/browser/default_browser/model:utils", |
| "//ios/chrome/browser/first_run/model", |
| "//ios/chrome/browser/net/model:model", |
| "//ios/chrome/browser/shared/model/browser_state", |
| "//ios/chrome/browser/shared/model/url:constants", |
| "//ios/chrome/browser/shared/public/features", |
| "//ios/chrome/browser/web/model:web_internal", |
| "//ios/chrome/common", |
| "//ios/chrome/common/app_group", |
| "//ios/components/webui:url_constants", |
| "//ios/net", |
| "//ios/public/provider/chrome/browser/app_utils:app_utils_api", |
| "//ios/web", |
| "//ios/web/public/init", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ "chrome_app_startup_parameters_unittest.mm" ] |
| deps = [ |
| ":startup", |
| "//base", |
| "//base/test:test_support", |
| "//components/password_manager/core/browser", |
| "//ios/chrome/app", |
| "//ios/chrome/app/startup:startup_basic", |
| "//ios/chrome/browser/default_browser/model:test_support", |
| "//ios/chrome/browser/default_browser/model:utils", |
| "//ios/chrome/browser/shared/model/url:constants", |
| "//ios/chrome/browser/shared/public/features", |
| "//ios/chrome/common/app_group", |
| "//ios/components/webui:url_constants", |
| "//testing/gtest", |
| "//url", |
| ] |
| } |
| |
| # Groups and targets for fuzzer tests. |
| |
| group("chrome_app_startup_parameters_fuzzer_tests") { |
| testonly = true |
| deps = [ |
| ":chrome_app_startup_parameters_external_actions_fuzzer", |
| ":chrome_app_startup_parameters_googlechromes_fuzzer", |
| ":chrome_app_startup_parameters_scheme_fuzzer", |
| ] |
| } |
| |
| group("chrome_app_startup_parameters_fuzzers_deps") { |
| testonly = true |
| public_deps = [ |
| ":startup", |
| "//base", |
| "//base:i18n", |
| "//base/test:test_support", |
| "//ios/chrome/app:tests_fake_hook", |
| "//ios/chrome/browser/providers:chromium_providers", |
| "//ios/chrome/browser/tabs/model:tabs_internal", |
| "//ios/chrome/browser/ui/settings", |
| "//ios/chrome/browser/ui/sharing:sharing_internal", |
| ] |
| } |
| |
| fuzzer_test("chrome_app_startup_parameters_external_actions_fuzzer") { |
| additional_configs = [ "//testing/libfuzzer:build_for_ios_clusterfuzz_job" ] |
| sources = [ "chrome_app_startup_parameters_external_actions_fuzzer.mm" ] |
| deps = [ ":chrome_app_startup_parameters_fuzzers_deps" ] |
| frameworks = [ "AuthenticationServices.framework" ] |
| } |
| |
| fuzzer_test("chrome_app_startup_parameters_googlechromes_fuzzer") { |
| additional_configs = [ "//testing/libfuzzer:build_for_ios_clusterfuzz_job" ] |
| sources = [ "chrome_app_startup_parameters_googlechromes_fuzzer.mm" ] |
| deps = [ ":chrome_app_startup_parameters_fuzzers_deps" ] |
| frameworks = [ "AuthenticationServices.framework" ] |
| } |
| |
| fuzzer_test("chrome_app_startup_parameters_scheme_fuzzer") { |
| additional_configs = [ "//testing/libfuzzer:build_for_ios_clusterfuzz_job" ] |
| sources = [ "chrome_app_startup_parameters_scheme_fuzzer.mm" ] |
| deps = [ ":chrome_app_startup_parameters_fuzzers_deps" ] |
| frameworks = [ "AuthenticationServices.framework" ] |
| } |