# Copyright 2020 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/config/chrome_build.gni") import("//testing/libfuzzer/fuzzer_test.gni") assert(is_chromeos, "Nearby Share is CrOS only") source_set("share_target") { sources = [ "attachment.cc", "attachment.h", "file_attachment.cc", "file_attachment.h", "share_target.cc", "share_target.h", "text_attachment.cc", "text_attachment.h", "wifi_credentials_attachment.cc", "wifi_credentials_attachment.h", ] deps = [ "//base", "//chrome/browser/ui/webui/nearby_share:share_type", "//chromeos/ash/services/nearby/public/mojom", "//chromeos/ash/services/nearby/public/mojom:nearby_share_settings", "//components/drive", "//net", "//url", ] } source_set("nearby_sharing") { public = [ "attachment_info.h", "bluetooth_advertising_interval_client.h", "constants.h", "fast_initiation/constants.h", "fast_initiation/fast_initiation_advertiser.h", "fast_initiation/fast_initiation_scanner.h", "fast_initiation/fast_initiation_scanner_feature_usage_metrics.h", "firewall_hole/nearby_connections_firewall_hole.h", "firewall_hole/nearby_connections_firewall_hole_factory.h", "incoming_frames_reader.h", "incoming_share_target_info.h", "instantmessaging/constants.h", "instantmessaging/receive_messages_express.h", "instantmessaging/send_message_express.h", "instantmessaging/stream_parser.h", "instantmessaging/token_fetcher.h", "metrics/attachment_metric_logger.h", "metrics/discovery_metric_logger.h", "metrics/metric_common.h", "metrics/nearby_share_metric_logger.h", "metrics/throughput_metric_logger.h", "nearby_confirmation_manager.h", "nearby_notification_delegate.h", "nearby_notification_handler.h", "nearby_notification_manager.h", "nearby_per_session_discovery_manager.h", "nearby_receive_manager.h", "nearby_share_delegate_impl.h", "nearby_share_error.h", "nearby_share_feature_status.h", "nearby_share_feature_usage_metrics.h", "nearby_share_logger.h", "nearby_share_metrics.h", "nearby_share_settings.h", "nearby_share_transfer_profiler.h", "nearby_sharing_service.h", "nearby_sharing_service_factory.h", "nearby_sharing_service_impl.h", "outgoing_share_target_info.h", "paired_key_verification_runner.h", "payload_tracker.h", "power_client.h", "power_client_chromeos.h", "share_target_discovered_callback.h", "share_target_info.h", "sharing_mojo_service.h", "tachyon_ice_config_fetcher.h", "tcp_socket/nearby_connections_tcp_socket_factory.h", "transfer_metadata.h", "transfer_metadata_builder.h", "transfer_update_callback.h", "webrtc_request_builder.h", "webrtc_signaling_messenger.h", "wifi_network_configuration/wifi_network_configuration_handler.h", ] public_deps = [ ":share_target", "//ash/public/cpp", "//base", "//chrome/browser/nearby_sharing/certificates", "//chrome/browser/nearby_sharing/client", "//chrome/browser/nearby_sharing/instantmessaging/proto", "//chrome/browser/nearby_sharing/local_device_data", "//chrome/browser/notifications", "//chrome/browser/profiles", "//chrome/browser/sharesheet", "//chrome/browser/ui/webui/nearby_share:mojom", "//chrome/browser/ui/webui/nearby_share:share_type", "//chrome/services/sharing/public/proto", "//chromeos/ash/components/feature_usage", "//chromeos/ash/components/nearby/common/connections_manager", "//chromeos/ash/components/nearby/presence", "//chromeos/ash/services/nearby/public/cpp", "//chromeos/ash/services/nearby/public/mojom", "//chromeos/ash/services/nearby/public/mojom:nearby_share_settings", "//chromeos/dbus/power", "//chromeos/services/network_config/public/mojom", "//components/keyed_service/core", "//components/prefs", "//components/signin/public/identity_manager", "//device/bluetooth", "//google_apis", "//mojo/public/cpp/bindings", "//mojo/public/cpp/system", "//net", "//services/network/public/cpp", "//services/network/public/mojom", "//url", ] } source_set("impl") { sources = [ "attachment_info.cc", "bluetooth_advertising_interval_client.cc", "fast_initiation/fast_initiation_advertiser.cc", "fast_initiation/fast_initiation_scanner.cc", "fast_initiation/fast_initiation_scanner_feature_usage_metrics.cc", "firewall_hole/nearby_connections_firewall_hole.cc", "firewall_hole/nearby_connections_firewall_hole_factory.cc", "incoming_frames_reader.cc", "incoming_share_target_info.cc", "instantmessaging/receive_messages_express.cc", "instantmessaging/send_message_express.cc", "instantmessaging/stream_parser.cc", "instantmessaging/token_fetcher.cc", "metrics/attachment_metric_logger.cc", "metrics/discovery_metric_logger.cc", "metrics/metric_common.cc", "metrics/nearby_share_metric_logger.cc", "metrics/throughput_metric_logger.cc", "nearby_confirmation_manager.cc", "nearby_notification_handler.cc", "nearby_notification_manager.cc", "nearby_per_session_discovery_manager.cc", "nearby_receive_manager.cc", "nearby_share_delegate_impl.cc", "nearby_share_feature_status.cc", "nearby_share_feature_usage_metrics.cc", "nearby_share_logger.cc", "nearby_share_metrics.cc", "nearby_share_settings.cc", "nearby_share_transfer_profiler.cc", "nearby_sharing_service_factory.cc", "nearby_sharing_service_impl.cc", "outgoing_share_target_info.cc", "paired_key_verification_runner.cc", "payload_tracker.cc", "power_client.cc", "power_client_chromeos.cc", "share_target_info.cc", "sharesheet/nearby_share_action.cc", "sharesheet/nearby_share_action.h", "sharing_mojo_service.cc", "tachyon_ice_config_fetcher.cc", "tcp_socket/nearby_connections_tcp_socket_factory.cc", "transfer_metadata.cc", "transfer_metadata_builder.cc", "webrtc_request_builder.cc", "webrtc_signaling_messenger.cc", "wifi_network_configuration/wifi_network_configuration_handler.cc", ] public_deps = [ ":nearby_sharing", "//chrome/browser:browser_public_dependencies", ] deps = [ "//ash/constants", "//ash/resources/vector_icons", "//ash/webui/settings/public/constants:mojom", "//chrome/app:generated_resources", "//chrome/app/vector_icons", "//chrome/browser:browser_process", "//chrome/browser/ash/file_manager", "//chrome/browser/ash/nearby", "//chrome/browser/download", "//chrome/browser/image_decoder", "//chrome/browser/local_discovery", "//chrome/browser/nearby_sharing/certificates", "//chrome/browser/nearby_sharing/client", "//chrome/browser/nearby_sharing/common", "//chrome/browser/nearby_sharing/contacts", "//chrome/browser/nearby_sharing/instantmessaging/proto", "//chrome/browser/nearby_sharing/local_device_data", "//chrome/browser/nearby_sharing/logging:util", "//chrome/browser/nearby_sharing/proto:tachyon_proto", "//chrome/browser/signin", "//chrome/browser/ui/ash/holding_space", "//chrome/browser/ui/ash/session", "//chrome/browser/ui/webui/nearby_share", "//chrome/common", "//chrome/services/sharing/public/cpp", "//chromeos/ash/components/browser_context_helper", "//chromeos/ash/components/nearby/common/client", "//chromeos/ash/components/nearby/common/connections_manager", "//chromeos/ash/components/network", "//chromeos/ash/services/nearby/public/cpp", "//chromeos/ash/services/nearby/public/cpp:tcp_server_socket_port", "//chromeos/ash/services/network_config", "//chromeos/ash/services/network_config:in_process_instance", "//chromeos/components/firewall_hole", "//chromeos/constants", "//components/cross_device/logging", "//components/cross_device/nearby", "//components/drive", "//components/metrics/structured", "//components/metrics/structured:structured_events", "//components/policy:generated", "//components/policy/core/common", "//components/pref_registry", "//components/user_manager", "//content/public/browser", "//crypto", "//device/bluetooth", "//google_apis", "//mojo/public/cpp/bindings", "//net", "//services/network/public/cpp", "//services/network/public/mojom", "//storage/browser", "//third_party/icu", "//third_party/nearby:rpc_resources_proto", "//third_party/nearby:wire_format_proto", "//third_party/protobuf:protobuf_lite", "//ui/base", "//ui/base/clipboard", "//ui/chromeos/styles:cros_tokens_color_mappings", "//ui/gfx", "//ui/message_center/public/cpp", "//ui/strings", "//ui/views", "//url", ] if (is_chrome_branded) { deps += [ "//chrome/browser/nearby_sharing/internal/icons:vector_icons" ] } } fuzzer_test("nearby_sharing_instantmessaging_stream_parser_fuzzer") { sources = [ "instantmessaging/stream_parser_fuzzer.cc" ] deps = [ ":impl", ":nearby_sharing", "//base", "//chrome/browser", "//components/exo/wayland:ui_controls_protocol_stub", ] } source_set("test_support") { testonly = true if (is_chromeos) { sources = [ "instantmessaging/fake_token_fetcher.cc", "instantmessaging/fake_token_fetcher.h", "mock_nearby_sharing_service.cc", "mock_nearby_sharing_service.h", "wifi_network_configuration/fake_wifi_network_configuration_handler.cc", "wifi_network_configuration/fake_wifi_network_configuration_handler.h", ] deps = [ "//base", "//chrome/browser/nearby_sharing", "//chrome/browser/nearby_sharing:impl", "//content/test:test_support", "//testing/gmock", "//testing/gtest", ] } } source_set("unit_tests") { testonly = true # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # remove this. configs += [ "//build/config/compiler:no_exit_time_destructors" ] if (is_chromeos) { sources = [ "bluetooth_advertising_interval_client_unittest.cc", "fast_initiation/fast_initiation_advertiser_unittest.cc", "fast_initiation/fast_initiation_scanner_feature_usage_metrics_unittest.cc", "fast_initiation/fast_initiation_scanner_unittest.cc", "file_attachment_unittest.cc", "firewall_hole/nearby_connections_firewall_hole_factory_unittest.cc", "incoming_frames_reader_unittest.cc", "instantmessaging/receive_messages_express_unittest.cc", "instantmessaging/send_message_express_unittest.cc", "instantmessaging/stream_parser_unittest.cc", "nearby_confirmation_manager_unittest.cc", "nearby_notification_manager_unittest.cc", "nearby_per_session_discovery_manager_unittest.cc", "nearby_receive_manager_unittest.cc", "nearby_share_delegate_impl_unittest.cc", "nearby_share_feature_usage_metrics_unittest.cc", "nearby_share_settings_unittest.cc", "nearby_share_transfer_profiler_unittest.cc", "nearby_sharing_service_impl_unittest.cc", "paired_key_verification_runner_unittest.cc", "payload_tracker_unittest.cc", "sharesheet/nearby_share_action_unittest.cc", "tachyon_ice_config_fetcher_unittest.cc", "tcp_socket/nearby_connections_tcp_socket_factory_unittest.cc", "text_attachment_unittest.cc", "webrtc_request_builder_unittest.cc", "webrtc_signaling_messenger_unittest.cc", "wifi_credentials_attachment_unittest.cc", "wifi_network_configuration/wifi_network_configuration_handler_unittest.cc", ] deps = [ ":test_support", "//ash/public/cpp", "//base", "//base:i18n", "//base/test:test_support", "//chrome/browser/ash/file_manager", "//chrome/browser/ash/login/users:test_support", "//chrome/browser/download", "//chrome/browser/local_discovery", "//chrome/browser/local_discovery:test_support", "//chrome/browser/nearby_sharing", "//chrome/browser/nearby_sharing:impl", "//chrome/browser/nearby_sharing/certificates:test_support", "//chrome/browser/nearby_sharing/common", "//chrome/browser/nearby_sharing/contacts", "//chrome/browser/nearby_sharing/contacts:test_support", "//chrome/browser/nearby_sharing/local_device_data:test_support", "//chrome/browser/nearby_sharing/proto:tachyon_proto", "//chrome/browser/notifications", "//chrome/browser/ui/ash/holding_space", "//chrome/browser/ui/ash/holding_space:test_support", "//chrome/browser/ui/ash/session:test_support", "//chrome/browser/ui/webui/nearby_share:mojom", "//chrome/common:constants", "//chrome/services/sharing/nearby/decoder", "//chrome/services/sharing/public/cpp", "//chrome/test:test_support", "//chromeos/ash/components/browser_context_helper", "//chromeos/ash/components/feature_usage", "//chromeos/ash/components/nearby/common/connections_manager", "//chromeos/ash/components/nearby/common/connections_manager:test_support", "//chromeos/ash/components/network", "//chromeos/ash/components/network:test_support", "//chromeos/ash/components/system", "//chromeos/ash/services/nearby/public/cpp:tcp_server_socket_port", "//chromeos/ash/services/nearby/public/cpp:test_support", "//chromeos/ash/services/nearby/public/mojom", "//chromeos/ash/services/network_config", "//chromeos/ash/services/network_config:in_process_instance", "//chromeos/constants", "//chromeos/dbus/permission_broker", "//components/account_id", "//components/prefs:test_support", "//components/signin/public/identity_manager:test_support", "//components/sync_preferences:test_support", "//components/user_manager", "//components/user_manager:test_support", "//content/test:test_support", "//device/bluetooth", "//device/bluetooth:mocks", "//google_apis", "//mojo/public/cpp/bindings", "//net", "//net:test_support", "//net/base:registry_controlled_domains", "//net/traffic_annotation", "//net/traffic_annotation:test_support", "//services/data_decoder/public/cpp:test_support", "//services/network:test_support", "//services/network/public/cpp", "//skia:skia_core_public_headers", "//storage/browser", "//storage/common", "//testing/gmock", "//testing/gtest", "//third_party/icu:icui18n", "//third_party/nearby:wire_format_proto", "//ui/base", "//ui/base/clipboard", "//ui/base/clipboard:clipboard_test_support", "//ui/gfx", "//ui/gfx:gfx_skia", "//ui/gfx:test_support", "//ui/gfx/codec", ] if (is_internal_chrome_branded) { deps += [ "//chrome/browser/nearby_sharing/internal/icons:vector_icons" ] } } }