123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673 |
- # 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/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- import("//components/nacl/features.gni")
- import("//extensions/buildflags/buildflags.gni")
- import("//mojo/public/tools/bindings/mojom.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- assert(enable_extensions)
- group("common_constants") {
- if (is_component_build) {
- public_deps = [ "//extensions" ]
- } else {
- public_deps = [ ":constants_impl" ]
- }
- }
- group("export") {
- if (is_component_build) {
- public_deps = [ "//extensions" ]
- } else {
- public_deps = [ ":export_impl" ]
- }
- }
- source_set("export_impl") {
- visibility = [
- "//extensions",
- "//extensions/common:*",
- ]
- configs += [ "//extensions:component_implementation" ]
- sources = [ "extensions_export.h" ]
- }
- source_set("constants_impl") {
- visibility = [
- "//extensions",
- "//extensions/common:common_constants",
- ]
- configs += [ "//extensions:component_implementation" ]
- sources = [
- "constants.cc",
- "constants.h",
- "logging_constants.h",
- ]
- public_deps = [
- "//base",
- "//build:chromeos_buildflags",
- "//components/services/app_service/public/mojom",
- "//extensions/common:export_impl",
- ]
- deps = [ "//build:chromecast_buildflags" ]
- configs += [ "//build/config/compiler:wexit_time_destructors" ]
- }
- mojom("mojom") {
- # We don't want Blink variants of bindings to be generated.
- disable_variants = true
- sources = [
- "mojom/activation_sequence.mojom",
- "mojom/api_permission_id.mojom",
- "mojom/app_window.mojom",
- "mojom/automation_query.mojom",
- "mojom/channel.mojom",
- "mojom/code_injection.mojom",
- "mojom/css_origin.mojom",
- "mojom/event_dispatcher.mojom",
- "mojom/event_router.mojom",
- "mojom/execution_world.mojom",
- "mojom/feature_session_type.mojom",
- "mojom/frame.mojom",
- "mojom/guest_view.mojom",
- "mojom/host_id.mojom",
- "mojom/injection_type.mojom",
- "mojom/keep_alive.mojom",
- "mojom/manifest.mojom",
- "mojom/permission_set.mojom",
- "mojom/renderer.mojom",
- "mojom/run_location.mojom",
- "mojom/url_pattern_set.mojom",
- "mojom/view_type.mojom",
- ]
- public_deps = [
- "//content/public/common:interfaces",
- "//extensions/common/api:mojom",
- "//mojo/public/mojom/base",
- "//ui/gfx/geometry/mojom",
- "//url/mojom:url_mojom_gurl",
- ]
- cpp_typemaps = [
- {
- types = [
- {
- mojom = "extensions.mojom.Channel"
- cpp = "version_info::Channel"
- },
- ]
- traits_headers = [ "//extensions/common/mojom/channel_mojom_traits.h" ]
- traits_public_deps = [ "//components/version_info:channel" ]
- },
- {
- types = [
- {
- mojom = "extensions.mojom.APIPermission"
- cpp = "::std::unique_ptr<::extensions::APIPermission>"
- move_only = true
- },
- {
- mojom = "extensions.mojom.APIPermissionSet"
- cpp = "::extensions::APIPermissionSet"
- move_only = true
- },
- {
- mojom = "extensions.mojom.ManifestPermission"
- cpp = "::std::unique_ptr<::extensions::ManifestPermission>"
- move_only = true
- },
- {
- mojom = "extensions.mojom.ManifestPermissionSet"
- cpp = "::extensions::ManifestPermissionSet"
- move_only = true
- },
- {
- mojom = "extensions.mojom.PermissionSet"
- cpp = "::extensions::PermissionSet"
- move_only = true
- },
- ]
- traits_headers =
- [ "//extensions/common/mojom/permission_set_mojom_traits.h" ]
- traits_sources =
- [ "//extensions/common/mojom/permission_set_mojom_traits.cc" ]
- },
- {
- types = [
- {
- mojom = "extensions.mojom.URLPattern"
- cpp = "::URLPattern"
- },
- {
- mojom = "extensions.mojom.URLPatternSet"
- cpp = "::extensions::URLPatternSet"
- move_only = true
- },
- ]
- traits_headers =
- [ "//extensions/common/mojom/url_pattern_set_mojom_traits.h" ]
- traits_sources =
- [ "//extensions/common/mojom/url_pattern_set_mojom_traits.cc" ]
- },
- {
- types = [
- {
- mojom = "extensions.mojom.ActivationSequence"
- cpp = "::extensions::ActivationSequence"
- },
- ]
- traits_headers =
- [ "//extensions/common/mojom/activation_sequence_mojom_traits.h" ]
- traits_sources =
- [ "//extensions/common/mojom/activation_sequence_mojom_traits.cc" ]
- },
- ]
- overridden_deps = [ "//content/public/common:interfaces" ]
- component_deps = [ "//content/public/common" ]
- }
- # This must be a static library because extensions common depends on
- # GetTrustedICAPublicKey in extensions/browser which isn't always linked
- # in. TODO(brettw): This reverse dependency should be fixed.
- static_library("common") {
- sources = [
- "activation_sequence.h",
- "alias.h",
- "api/bluetooth/bluetooth_manifest_data.cc",
- "api/bluetooth/bluetooth_manifest_data.h",
- "api/bluetooth/bluetooth_manifest_handler.cc",
- "api/bluetooth/bluetooth_manifest_handler.h",
- "api/bluetooth/bluetooth_manifest_permission.cc",
- "api/bluetooth/bluetooth_manifest_permission.h",
- "api/commands/commands_handler.cc",
- "api/commands/commands_handler.h",
- "api/declarative/declarative_constants.cc",
- "api/declarative/declarative_constants.h",
- "api/declarative/declarative_manifest_data.cc",
- "api/declarative/declarative_manifest_data.h",
- "api/declarative/declarative_manifest_handler.cc",
- "api/declarative/declarative_manifest_handler.h",
- "api/declarative_net_request/constants.cc",
- "api/declarative_net_request/constants.h",
- "api/declarative_net_request/dnr_manifest_data.cc",
- "api/declarative_net_request/dnr_manifest_data.h",
- "api/declarative_net_request/dnr_manifest_handler.cc",
- "api/declarative_net_request/dnr_manifest_handler.h",
- "api/extension_action/action_info.cc",
- "api/extension_action/action_info.h",
- "api/messaging/message.h",
- "api/messaging/messaging_endpoint.cc",
- "api/messaging/messaging_endpoint.h",
- "api/messaging/port_context.cc",
- "api/messaging/port_context.h",
- "api/messaging/port_id.cc",
- "api/messaging/port_id.h",
- "api/printer_provider/usb_printer_manifest_data.cc",
- "api/printer_provider/usb_printer_manifest_data.h",
- "api/printer_provider/usb_printer_manifest_handler.cc",
- "api/printer_provider/usb_printer_manifest_handler.h",
- "api/sockets/sockets_manifest_data.cc",
- "api/sockets/sockets_manifest_data.h",
- "api/sockets/sockets_manifest_handler.cc",
- "api/sockets/sockets_manifest_handler.h",
- "api/sockets/sockets_manifest_permission.cc",
- "api/sockets/sockets_manifest_permission.h",
- "command.cc",
- "command.h",
- "common_manifest_handlers.cc",
- "common_manifest_handlers.h",
- "common_param_traits.h",
- "content_script_injection_url_getter.cc",
- "content_script_injection_url_getter.h",
- "cors_util.cc",
- "cors_util.h",
- "csp_validator.cc",
- "csp_validator.h",
- "dom_action_types.h",
- "draggable_region.cc",
- "draggable_region.h",
- "error_utils.cc",
- "error_utils.h",
- "event_filter.cc",
- "event_filter.h",
- "event_matcher.cc",
- "event_matcher.h",
- "extension.cc",
- "extension.h",
- "extension_api.cc",
- "extension_api.h",
- "extension_features.cc",
- "extension_features.h",
- "extension_icon_set.cc",
- "extension_icon_set.h",
- "extension_id.h",
- "extension_l10n_util.cc",
- "extension_l10n_util.h",
- "extension_message_generator.cc",
- "extension_message_generator.h",
- "extension_messages.h",
- "extension_paths.cc",
- "extension_paths.h",
- "extension_resource.cc",
- "extension_resource.h",
- "extension_resource_path_normalizer.cc",
- "extension_resource_path_normalizer.h",
- "extension_set.cc",
- "extension_set.h",
- "extension_updater_uma.h",
- "extension_urls.cc",
- "extension_urls.h",
- "extension_utility_types.h",
- "extensions_client.cc",
- "extensions_client.h",
- "feature_switch.cc",
- "feature_switch.h",
- "features/behavior_feature.cc",
- "features/behavior_feature.h",
- "features/complex_feature.cc",
- "features/complex_feature.h",
- "features/feature.cc",
- "features/feature.h",
- "features/feature_channel.cc",
- "features/feature_channel.h",
- "features/feature_developer_mode_only.cc",
- "features/feature_developer_mode_only.h",
- "features/feature_flags.cc",
- "features/feature_flags.h",
- "features/feature_provider.cc",
- "features/feature_provider.h",
- "features/feature_session_type.cc",
- "features/feature_session_type.h",
- "features/json_feature_provider_source.cc",
- "features/json_feature_provider_source.h",
- "features/manifest_feature.cc",
- "features/manifest_feature.h",
- "features/permission_feature.cc",
- "features/permission_feature.h",
- "features/simple_feature.cc",
- "features/simple_feature.h",
- "file_util.cc",
- "file_util.h",
- "hashed_extension_id.cc",
- "hashed_extension_id.h",
- "identifiability_metrics.cc",
- "identifiability_metrics.h",
- "image_util.cc",
- "image_util.h",
- "install_warning.cc",
- "install_warning.h",
- "manifest.cc",
- "manifest.h",
- "manifest_constants.cc",
- "manifest_constants.h",
- "manifest_handler.cc",
- "manifest_handler.h",
- "manifest_handler_helpers.cc",
- "manifest_handler_helpers.h",
- "manifest_handlers/app_isolation_info.cc",
- "manifest_handlers/app_isolation_info.h",
- "manifest_handlers/automation.cc",
- "manifest_handlers/automation.h",
- "manifest_handlers/background_info.cc",
- "manifest_handlers/background_info.h",
- "manifest_handlers/content_capabilities_handler.cc",
- "manifest_handlers/content_capabilities_handler.h",
- "manifest_handlers/content_scripts_handler.cc",
- "manifest_handlers/content_scripts_handler.h",
- "manifest_handlers/cross_origin_isolation_info.cc",
- "manifest_handlers/cross_origin_isolation_info.h",
- "manifest_handlers/csp_info.cc",
- "manifest_handlers/csp_info.h",
- "manifest_handlers/default_locale_handler.cc",
- "manifest_handlers/default_locale_handler.h",
- "manifest_handlers/extension_action_handler.cc",
- "manifest_handlers/extension_action_handler.h",
- "manifest_handlers/externally_connectable.cc",
- "manifest_handlers/externally_connectable.h",
- "manifest_handlers/file_handler_info.cc",
- "manifest_handlers/file_handler_info.h",
- "manifest_handlers/icons_handler.cc",
- "manifest_handlers/icons_handler.h",
- "manifest_handlers/incognito_info.cc",
- "manifest_handlers/incognito_info.h",
- "manifest_handlers/kiosk_mode_info.cc",
- "manifest_handlers/kiosk_mode_info.h",
- "manifest_handlers/mime_types_handler.cc",
- "manifest_handlers/mime_types_handler.h",
- "manifest_handlers/oauth2_manifest_handler.cc",
- "manifest_handlers/oauth2_manifest_handler.h",
- "manifest_handlers/offline_enabled_info.cc",
- "manifest_handlers/offline_enabled_info.h",
- "manifest_handlers/options_page_info.cc",
- "manifest_handlers/options_page_info.h",
- "manifest_handlers/permissions_parser.cc",
- "manifest_handlers/permissions_parser.h",
- "manifest_handlers/replacement_apps.cc",
- "manifest_handlers/replacement_apps.h",
- "manifest_handlers/requirements_info.cc",
- "manifest_handlers/requirements_info.h",
- "manifest_handlers/sandboxed_page_info.cc",
- "manifest_handlers/sandboxed_page_info.h",
- "manifest_handlers/shared_module_info.cc",
- "manifest_handlers/shared_module_info.h",
- "manifest_handlers/web_accessible_resources_info.cc",
- "manifest_handlers/web_accessible_resources_info.h",
- "manifest_handlers/webview_info.cc",
- "manifest_handlers/webview_info.h",
- "manifest_url_handlers.cc",
- "manifest_url_handlers.h",
- "message_bundle.cc",
- "message_bundle.h",
- "permissions/api_permission.cc",
- "permissions/api_permission.h",
- "permissions/api_permission_set.cc",
- "permissions/api_permission_set.h",
- "permissions/base_set_operators.h",
- "permissions/extensions_api_permissions.cc",
- "permissions/extensions_api_permissions.h",
- "permissions/manifest_permission.cc",
- "permissions/manifest_permission.h",
- "permissions/manifest_permission_set.cc",
- "permissions/manifest_permission_set.h",
- "permissions/permission_message.cc",
- "permissions/permission_message.h",
- "permissions/permission_message_provider.cc",
- "permissions/permission_message_provider.h",
- "permissions/permission_message_util.cc",
- "permissions/permission_message_util.h",
- "permissions/permission_set.cc",
- "permissions/permission_set.h",
- "permissions/permissions_data.cc",
- "permissions/permissions_data.h",
- "permissions/permissions_info.cc",
- "permissions/permissions_info.h",
- "permissions/set_disjunction_permission.h",
- "permissions/settings_override_permission.cc",
- "permissions/settings_override_permission.h",
- "permissions/socket_permission.cc",
- "permissions/socket_permission.h",
- "permissions/socket_permission_data.cc",
- "permissions/socket_permission_data.h",
- "permissions/socket_permission_entry.cc",
- "permissions/socket_permission_entry.h",
- "permissions/usb_device_permission.cc",
- "permissions/usb_device_permission.h",
- "permissions/usb_device_permission_data.cc",
- "permissions/usb_device_permission_data.h",
- "script_constants.h",
- "stack_frame.cc",
- "stack_frame.h",
- "switches.cc",
- "switches.h",
- "trace_util.cc",
- "trace_util.h",
- "url_pattern.cc",
- "url_pattern.h",
- "url_pattern_set.cc",
- "url_pattern_set.h",
- "user_script.cc",
- "user_script.h",
- "utils/base_string.cc",
- "utils/base_string.h",
- "utils/content_script_utils.cc",
- "utils/content_script_utils.h",
- "value_builder.cc",
- "value_builder.h",
- "value_counter.cc",
- "value_counter.h",
- "verifier_formats.cc",
- "verifier_formats.h",
- "view_type_util.cc",
- "view_type_util.h",
- ]
- configs += [
- "//build/config:precompiled_headers",
- "//build/config/compiler:wexit_time_destructors",
- ]
- public_deps = [
- ":common_constants",
- ":mojom",
- "//components/services/app_service/public/cpp:app_file_handling",
- "//content/public/common",
- "//ipc",
- "//skia",
- ]
- # Allows including manifest_handler.h and permissions/permissions_info.h
- # from mojom/permission_set_mojom_traits.cc.
- allow_circular_includes_from = [ ":mojom" ]
- deps = [
- "//base",
- "//build:branding_buildflags",
- "//build:chromeos_buildflags",
- "//components/crx_file",
- "//components/nacl/common:buildflags",
- "//components/url_formatter",
- "//components/url_matcher",
- "//components/version_info",
- "//crypto",
- "//device/bluetooth",
- "//device/bluetooth/public/cpp",
- "//extensions:extensions_resources",
- "//extensions/common:mojom",
- "//extensions/common/api",
- "//extensions/strings",
- "//net",
- "//services/device/public/cpp/usb",
- "//services/device/public/mojom:usb",
- "//services/network/public/mojom",
- "//third_party/boringssl",
- "//third_party/icu",
- "//third_party/re2",
- "//third_party/zlib/google:compression_utils",
- "//tools/json_schema_compiler:generated_api_util",
- "//ui/base",
- "//ui/gfx/geometry",
- "//ui/gfx/ipc",
- "//ui/gfx/ipc/geometry",
- "//ui/gfx/ipc/skia",
- "//url",
- ]
- if (enable_nacl) {
- sources += [
- "manifest_handlers/nacl_modules_handler.cc",
- "manifest_handlers/nacl_modules_handler.h",
- ]
- }
- if (is_chromeos) {
- sources += [
- "manifest_handlers/action_handlers_handler.cc",
- "manifest_handlers/action_handlers_handler.h",
- ]
- }
- }
- # NOTE: This is separate from ":common" because it depends on
- # extensions/common/api:extensions_features, which in turn depends on
- # :common.
- source_set("core_api_provider") {
- sources = [
- "core_extensions_api_provider.cc",
- "core_extensions_api_provider.h",
- ]
- configs += [ "//build/config/compiler:wexit_time_destructors" ]
- deps = [
- ":common",
- "//extensions:extensions_resources",
- "//extensions/common/api",
- "//extensions/common/api:extensions_features",
- ]
- }
- source_set("test_support") {
- testonly = true
- sources = [
- "api/declarative_net_request/test_utils.cc",
- "api/declarative_net_request/test_utils.h",
- "api/extension_action/action_info_test_util.cc",
- "api/extension_action/action_info_test_util.h",
- "file_test_util.cc",
- "file_test_util.h",
- ]
- deps = [
- ":common",
- "//base",
- "//components/version_info:channel",
- "//extensions/common/api",
- ]
- }
- source_set("unit_tests") {
- testonly = true
- sources = [
- "api/commands/commands_manifest_unittest.cc",
- "api/declarative/declarative_manifest_unittest.cc",
- "api/declarative_net_request/dnr_manifest_unittest.cc",
- "api/printer_provider/usb_printer_manifest_unittest.cc",
- "api/sockets/sockets_manifest_permission_unittest.cc",
- "command_unittest.cc",
- "component_extension_url_pattern_unittest.cc",
- "csp_validator_unittest.cc",
- "error_utils_unittest.cc",
- "event_filter_unittest.cc",
- "extension_builder_unittest.cc",
- "extension_icon_set_unittest.cc",
- "extension_l10n_util_unittest.cc",
- "extension_resource_path_normalizer_unittest.cc",
- "extension_resource_unittest.cc",
- "extension_set_unittest.cc",
- "extension_unittest.cc",
- "feature_switch_unittest.cc",
- "features/complex_feature_unittest.cc",
- "features/feature_provider_unittest.cc",
- "features/simple_feature_unittest.cc",
- "file_util_unittest.cc",
- "hashed_extension_id_unittest.cc",
- "image_util_unittest.cc",
- "manifest_handler_perf_test.cc",
- "manifest_handler_unittest.cc",
- "manifest_handlers/content_capabilities_manifest_unittest.cc",
- "manifest_handlers/csp_info_unittest.cc",
- "manifest_handlers/default_locale_manifest_unittest.cc",
- "manifest_handlers/extension_action_handler_unittest.cc",
- "manifest_handlers/externally_connectable_unittest.cc",
- "manifest_handlers/file_handler_manifest_unittest.cc",
- "manifest_handlers/icons_handler_unittest.cc",
- "manifest_handlers/incognito_manifest_unittest.cc",
- "manifest_handlers/kiosk_mode_info_unittest.cc",
- "manifest_handlers/manifest_v3_permissions_unittest.cc",
- "manifest_handlers/oauth2_manifest_unittest.cc",
- "manifest_handlers/replacement_apps_unittest.cc",
- "manifest_handlers/shared_module_manifest_unittest.cc",
- "manifest_unittest.cc",
- "message_bundle_unittest.cc",
- "mojom/permission_set_mojom_traits_unittest.cc",
- "mojom/url_pattern_set_mojom_traits_unittest.cc",
- "permissions/api_permission_set_unittest.cc",
- "permissions/api_permission_unittest.cc",
- "permissions/base_set_operators_unittest.cc",
- "permissions/manifest_permission_set_unittest.cc",
- "permissions/socket_permission_unittest.cc",
- "permissions/usb_device_permission_unittest.cc",
- "stack_frame_unittest.cc",
- "url_pattern_set_unittest.cc",
- "url_pattern_unittest.cc",
- "user_script_unittest.cc",
- "value_builder_unittest.cc",
- "value_counter_unittest.cc",
- ]
- deps = [
- ":common",
- ":test_support",
- "//base",
- "//base:i18n",
- "//base/test:test_support",
- "//components/crx_file",
- "//components/version_info:version_info",
- "//content/test:test_support",
- "//extensions:extensions_resources",
- "//extensions/common:mojom",
- "//extensions/common/api",
- "//mojo/public/cpp/test_support:test_utils",
- "//tools/json_schema_compiler:generated_api_util",
- # TODO(brettw) these tests should not be including headers from browser.
- "//extensions:test_support",
- "//extensions/browser",
- "//extensions/strings",
- "//ipc",
- "//services/device/public/cpp:test_support",
- "//testing/gmock",
- "//testing/gtest",
- "//third_party/zlib/google:compression_utils",
- "//ui/base",
- "//ui/gfx",
- "//url",
- ]
- if (is_chromeos_ash) {
- sources += [ "manifest_handlers/action_handlers_handler_unittest.cc" ]
- }
- data = [
- "//extensions/common/mojom/api_permission_id.mojom",
- "//tools/metrics/histograms/enums.xml",
- ]
- }
- fuzzer_test("extension_fuzzer") {
- sources = [ "extension_fuzzer.cc" ]
- deps = [
- ":common",
- "//base",
- ]
- }
- fuzzer_test("extension_manifest_fuzzer") {
- sources = [ "manifest_fuzzer.cc" ]
- deps = [
- ":common",
- "//base",
- "//extensions:test_support",
- ]
- }
- fuzzer_test("extension_url_pattern_fuzzer") {
- sources = [ "url_pattern_fuzzer.cc" ]
- deps = [
- ":common",
- "//base",
- ]
- }
- fuzzer_test("extension_csp_validator_fuzzer") {
- sources = [ "csp_validator_fuzzer.cc" ]
- deps = [
- ":common",
- "//base",
- "//third_party/icu/fuzzers:fuzzer_support",
- ]
- }
|