# Copyright 2014 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/chromeos/ui_mode.gni")
import("//build/config/ui.gni")
import("//content/common/features.gni")
import("//device/vr/buildflags/buildflags.gni")
import("//media/media_options.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//third_party/protobuf/proto_library.gni")
import("//third_party/webrtc/webrtc.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
# See //content/BUILD.gn for how this works.
group("browser") {
if (is_component_build) {
public_deps = [ "//content" ]
} else {
public_deps = [ ":browser_sources" ]
}
}
source_set("browser_sources") {
# External code should depend on via ":browser" above.
visibility = [ "//content/*" ]
sources = [
"active_url_message_filter.cc",
"active_url_message_filter.h",
"allow_service_worker_result.cc",
"allow_service_worker_result.h",
"anchor_element_preconnect_delegate.h",
"attribution_data_model.cc",
"attribution_data_model.h",
"auction_result.h",
"audio_service.h",
"audio_service_info.cc",
"audio_service_info.h",
"audio_stream_broker.cc",
"audio_stream_broker.h",
"authenticator_common.h",
"ax_inspect_factory.cc",
"ax_inspect_factory.h",
"back_forward_cache.h",
"back_forward_transition_animation_manager.cc",
"back_forward_transition_animation_manager.h",
"background_fetch_delegate.cc",
"background_fetch_delegate.h",
"background_fetch_description.cc",
"background_fetch_description.h",
"background_fetch_response.cc",
"background_fetch_response.h",
"background_sync_context.h",
"background_sync_controller.h",
"background_sync_parameters.cc",
"background_sync_parameters.h",
"background_sync_registration.cc",
"background_sync_registration.h",
"background_tracing_config.cc",
"background_tracing_config.h",
"background_tracing_manager.h",
"blob_handle.h",
"bluetooth_chooser.cc",
"bluetooth_chooser.h",
"bluetooth_delegate.h",
"bluetooth_scanning_prompt.cc",
"bluetooth_scanning_prompt.h",
"browser_accessibility_state.h",
"browser_child_process_host.h",
"browser_child_process_host_delegate.cc",
"browser_child_process_host_delegate.h",
"browser_child_process_host_iterator.cc",
"browser_child_process_host_iterator.h",
"browser_child_process_observer.cc",
"browser_child_process_observer.h",
"browser_context.h",
"browser_main_parts.cc",
"browser_main_parts.h",
"browser_main_runner.h",
"browser_or_resource_context.cc",
"browser_or_resource_context.h",
"browser_plugin_guest_delegate.cc",
"browser_plugin_guest_delegate.h",
"browser_plugin_guest_manager.cc",
"browser_plugin_guest_manager.h",
"browser_task_traits.h",
"browser_thread.h",
"browser_url_handler.h",
"browsing_data_filter_builder.h",
"browsing_data_remover.h",
"browsing_data_remover_delegate.h",
"browsing_instance_id.h",
"browsing_topics_site_data_manager.h",
"cdm_registry.h",
"cdm_storage_data_model.h",
"certificate_request_result_type.h",
"child_process_data.cc",
"child_process_data.h",
"child_process_host.h",
"child_process_host_delegate.h",
"child_process_launcher_utils.h",
"child_process_security_policy.h",
"child_process_termination_info.cc",
"child_process_termination_info.h",
"clear_site_data_utils.h",
"client_certificate_delegate.h",
"client_hints.cc",
"client_hints.h",
"client_hints_controller_delegate.cc",
"client_hints_controller_delegate.h",
"clipboard_types.cc",
"clipboard_types.h",
"commit_deferring_condition.cc",
"commit_deferring_condition.h",
"console_message.cc",
"console_message.h",
"contacts_picker_properties.h",
"content_browser_client.cc",
"content_browser_client.h",
"content_index_context.h",
"content_index_provider.cc",
"content_index_provider.h",
"context_menu_params.cc",
"context_menu_params.h",
"cookie_access_details.cc",
"cookie_access_details.h",
"cookie_deprecation_label_manager.h",
"cookie_store_factory.h",
"cors_origin_pattern_setter.cc",
"cors_origin_pattern_setter.h",
"dedicated_worker_creator.h",
"dedicated_worker_service.h",
"desktop_capture.cc",
"desktop_capture.h",
"desktop_media_id.cc",
"desktop_media_id.h",
"desktop_streams_registry.h",
"device_service.h",
"devtools_agent_host.h",
"devtools_agent_host_client.cc",
"devtools_agent_host_client.h",
"devtools_agent_host_client_channel.h",
"devtools_agent_host_observer.cc",
"devtools_agent_host_observer.h",
"devtools_background_services_context.h",
"devtools_external_agent_proxy.h",
"devtools_external_agent_proxy_delegate.h",
"devtools_frontend_host.h",
"devtools_manager_delegate.cc",
"devtools_manager_delegate.h",
"devtools_network_transaction_factory.h",
"devtools_socket_factory.h",
"digital_credentials_cross_device.h",
"digital_identity_interstitial_type.h",
"digital_identity_provider.cc",
"digital_identity_provider.h",
"dips_delegate.cc",
"dips_delegate.h",
"disallow_activation_reason.h",
"document_picture_in_picture_window_controller.h",
"document_ref.cc",
"document_ref.h",
"document_service.h",
"document_service_internal.cc",
"document_service_internal.h",
"document_user_data.cc",
"document_user_data.h",
"dom_storage_context.h",
"download_item_utils.h",
"download_manager.cc",
"download_manager.h",
"download_manager_delegate.cc",
"download_manager_delegate.h",
"download_request_utils.h",
"download_utils.h",
"eye_dropper.h",
"eye_dropper_listener.h",
"favicon_status.cc",
"favicon_status.h",
"feature_observer_client.h",
"federated_identity_api_permission_context_delegate.cc",
"federated_identity_api_permission_context_delegate.h",
"federated_identity_auto_reauthn_permission_context_delegate.h",
"federated_identity_modal_dialog_view_delegate.h",
"federated_identity_permission_context_delegate.h",
"file_select_listener.h",
"file_system_access_entry_factory.h",
"file_system_access_permission_context.h",
"file_system_access_permission_grant.cc",
"file_system_access_permission_grant.h",
"file_system_access_write_item.cc",
"file_system_access_write_item.h",
"file_url_loader.h",
"first_party_sets_handler.h",
"focused_node_details.h",
"font_list_async.h",
"frame_accept_header.cc",
"frame_accept_header.h",
"frame_rate_throttling.h",
"frame_type.h",
"fullscreen_types.h",
"generated_code_cache_settings.h",
"global_request_id.cc",
"global_request_id.h",
"global_routing_id.h",
"gpu_client.h",
"gpu_data_manager.h",
"gpu_data_manager_observer.h",
"gpu_feature_checker.cc",
"gpu_feature_checker.h",
"gpu_service_registry.cc",
"gpu_service_registry.h",
"gpu_utils.cc",
"gpu_utils.h",
"hid_chooser.h",
"hid_delegate.h",
"histogram_fetcher.h",
"host_zoom_map.h",
"identity_request_account.cc",
"identity_request_account.h",
"identity_request_dialog_controller.cc",
"identity_request_dialog_controller.h",
"installability_error.cc",
"installability_error.h",
"installed_payment_apps_finder.h",
"interest_group_api_operation.h",
"interest_group_manager.h",
"invalidate_type.h",
"isolated_context_util.cc",
"isolated_context_util.h",
"isolated_web_apps_policy.cc",
"isolated_web_apps_policy.h",
"jank_monitor.h",
"javascript_dialog_manager.cc",
"javascript_dialog_manager.h",
"k_anonymity_service_delegate.h",
"keyboard_event_processing_result.h",
"legacy_tech_cookie_issue_details.cc",
"legacy_tech_cookie_issue_details.h",
"login_delegate.h",
"manifest_icon_downloader.h",
"media_capture_devices.h",
"media_device_id.cc",
"media_device_id.h",
"media_keys_listener_manager.cc",
"media_keys_listener_manager.h",
"media_player_id.cc",
"media_player_id.h",
"media_player_watch_time.cc",
"media_player_watch_time.h",
"media_request_state.h",
"media_service.h",
"media_session.h",
"media_session_client.cc",
"media_session_client.h",
"media_session_service.h",
"media_stream_request.cc",
"media_stream_request.h",
"message_port_provider.h",
"mhtml_extra_parts.h",
"mhtml_generation_result.cc",
"mhtml_generation_result.h",
"mojo_binder_policy_map.h",
"mojom_devtools_agent_host_delegate.h",
"navigation_controller.cc",
"navigation_controller.h",
"navigation_details.cc",
"navigation_details.h",
"navigation_discard_reason.h",
"navigation_entry.h",
"navigation_entry_restore_context.h",
"navigation_handle.cc",
"navigation_handle.h",
"navigation_handle_timing.cc",
"navigation_handle_timing.h",
"navigation_handle_user_data.h",
"navigation_throttle.cc",
"navigation_throttle.h",
"navigation_ui_data.h",
"network_context_client_base.h",
"network_quality_observer_factory.h",
"network_service_instance.h",
"network_service_util.cc",
"network_service_util.h",
"notification_database_data.cc",
"notification_database_data.h",
"notification_event_dispatcher.h",
"notification_resource_data.h",
"origin_trial_status_change_details.cc",
"origin_trial_status_change_details.h",
"origin_trials_controller_delegate.h",
"overlay_window.h",
"overscroll_configuration.h",
"page.h",
"page_navigator.cc",
"page_navigator.h",
"page_user_data.h",
"payment_app_provider.h",
"payment_app_provider_util.h",
"peak_gpu_memory_tracker_factory.h",
"peer_connection_tracker_host_observer.cc",
"peer_connection_tracker_host_observer.h",
"per_web_ui_browser_interface_broker.h",
"permission_controller.h",
"permission_controller_delegate.cc",
"permission_controller_delegate.h",
"permission_overrides.cc",
"permission_overrides.h",
"permission_request_description.cc",
"permission_request_description.h",
"permission_result.cc",
"permission_result.h",
"permission_status_subscription.cc",
"permission_status_subscription.h",
"picture_in_picture_window_controller.h",
"platform_notification_context.h",
"platform_notification_service.h",
"prefetch_metrics.h",
"prefetch_service_delegate.cc",
"prefetch_service_delegate.h",
"preloading.h",
"preloading_data.h",
"preloading_trigger_type.h",
"prerender_handle.h",
"prerender_web_contents_delegate.cc",
"prerender_web_contents_delegate.h",
"presentation_observer.h",
"presentation_receiver_flags.h",
"presentation_request.cc",
"presentation_request.h",
"presentation_screen_availability_listener.h",
"presentation_service_delegate.h",
"preview_cancel_reason.cc",
"preview_cancel_reason.h",
"privacy_sandbox_attestations_observer.h",
"privacy_sandbox_invoking_api.h",
"private_aggregation_data_model.cc",
"private_aggregation_data_model.h",
"private_network_device_delegate.h",
"process_visibility_util.h",
"provision_fetcher_factory.h",
"provision_fetcher_impl.cc",
"provision_fetcher_impl.h",
"push_messaging_service.cc",
"push_messaging_service.h",
"reduce_accept_language_controller_delegate.h",
"reload_type.h",
"render_frame_host.h",
"render_frame_host_receiver_set.h",
"render_frame_metadata_provider.h",
"render_process_host.h",
"render_process_host_creation_observer.h",
"render_process_host_factory.h",
"render_process_host_observer.cc",
"render_process_host_observer.h",
"render_process_host_priority_client.h",
"render_view_host.h",
"render_widget_host.h",
"render_widget_host_iterator.h",
"render_widget_host_observer.cc",
"render_widget_host_observer.h",
"render_widget_host_view.h",
"render_widget_host_view_mac_delegate.h",
"renderer_preferences_util.cc",
"renderer_preferences_util.h",
"replaced_navigation_entry_data.h",
"resource_context.h",
"resource_coordinator_service.h",
"responsiveness_calculator_delegate.h",
"restore_type.h",
"runtime_feature_state/runtime_feature_state_document_data.cc",
"runtime_feature_state/runtime_feature_state_document_data.h",
"save_page_type.h",
"scoped_accessibility_mode.h",
"scoped_authenticator_environment_for_testing.h",
"screen_orientation_delegate.h",
"screenlock_observer.h",
"secure_payment_confirmation_utils.cc",
"secure_payment_confirmation_utils.h",
"serial_chooser.cc",
"serial_chooser.h",
"serial_delegate.h",
"service_process_host.cc",
"service_process_host.h",
"service_process_host_passkeys.h",
"service_process_info.cc",
"service_process_info.h",
"service_worker_client_info.h",
"service_worker_context.h",
"service_worker_context_observer.h",
"service_worker_external_request_result.h",
"service_worker_external_request_timeout_type.h",
"service_worker_running_info.cc",
"service_worker_running_info.h",
"service_worker_version_base_info.cc",
"service_worker_version_base_info.h",
"session_storage_namespace.cc",
"session_storage_namespace.h",
"session_storage_usage_info.h",
"shared_cors_origin_access_list.h",
"shared_worker_instance.cc",
"shared_worker_instance.h",
"shared_worker_service.h",
"site_instance.h",
"site_instance_process_assignment.h",
"site_isolation_mode.h",
"site_isolation_policy.cc",
"site_isolation_policy.h",
"sms_fetcher.h",
"speculation_host_delegate.h",
"speech_recognition_audio_forwarder_config.cc",
"speech_recognition_audio_forwarder_config.h",
"speech_recognition_event_listener.h",
"speech_recognition_manager.h",
"speech_recognition_manager_delegate.h",
"speech_recognition_session_config.cc",
"speech_recognition_session_config.h",
"speech_recognition_session_context.cc",
"speech_recognition_session_context.h",
"speech_recognition_session_preamble.cc",
"speech_recognition_session_preamble.h",
"ssl_host_state_delegate.h",
"ssl_status.cc",
"ssl_status.h",
"storage_notification_service.h",
"storage_partition.h",
"storage_partition_config.cc",
"storage_partition_config.h",
"storage_usage_info.h",
"stored_payment_app.cc",
"stored_payment_app.h",
"supported_delegations.cc",
"supported_delegations.h",
"swap_metrics_driver.h",
"synthetic_trial_syncer.h",
"touch_selection_controller_client_manager.h",
"tracing_controller.h",
"tracing_delegate.cc",
"tracing_delegate.h",
"tracing_service.h",
"trust_token_access_details.cc",
"trust_token_access_details.h",
"tts_controller.h",
"tts_platform.h",
"tts_utterance.h",
"url_data_source.cc",
"url_data_source.h",
"url_loader_request_interceptor.cc",
"url_loader_request_interceptor.h",
"url_loader_throttles.h",
"usb_chooser.cc",
"usb_chooser.h",
"usb_delegate.h",
"video_capture_device_launcher.cc",
"video_capture_device_launcher.h",
"video_capture_service.h",
"video_picture_in_picture_window_controller.h",
"visibility.h",
"vpn_service_proxy.h",
"weak_document_ptr.cc",
"weak_document_ptr.h",
"web_contents.cc",
"web_contents.h",
"web_contents_delegate.cc",
"web_contents_delegate.h",
"web_contents_media_capture_id.cc",
"web_contents_media_capture_id.h",
"web_contents_observer.cc",
"web_contents_observer.h",
"web_contents_user_data.h",
"web_contents_view_delegate.cc",
"web_contents_view_delegate.h",
"web_drag_dest_delegate.h",
"web_exposed_isolation_level.h",
"web_ui.h",
"web_ui_browser_interface_broker_registry.h",
"web_ui_controller.cc",
"web_ui_controller.h",
"web_ui_controller_factory.h",
"web_ui_controller_interface_binder.cc",
"web_ui_controller_interface_binder.h",
"web_ui_data_source.h",
"web_ui_managed_interface.cc",
"web_ui_managed_interface.h",
"web_ui_message_handler.h",
"web_ui_url_loader_factory.h",
"webauthn_security_utils.cc",
"webauthn_security_utils.h",
"webrtc_event_logger.cc",
"webrtc_event_logger.h",
"webrtc_log.cc",
"webrtc_log.h",
"websocket_handshake_request_info.h",
"webui_config.cc",
"webui_config.h",
"webui_config_map.cc",
"webui_config_map.h",
"worker_type.h",
"zoom_level_delegate.h",
]
configs += [
"//build/config:precompiled_headers",
"//build/config/compiler:wexit_time_destructors",
"//content:content_implementation",
]
if (is_android) {
sources += [ "color_chooser.h" ]
}
if (rtc_use_pipewire) {
configs +=
[ "//third_party/webrtc/modules/desktop_capture:pipewire_config" ]
}
if (content_enable_legacy_ipc) {
sources += [
"browser_message_filter.cc",
"browser_message_filter.h",
]
}
public_deps = [
"//base",
"//build:chromecast_buildflags",
"//components/browsing_topics/common:common",
"//components/download/public/common:public",
"//components/file_access",
"//components/services/storage/privileged/mojom",
"//components/services/storage/public/mojom",
"//content/public/common:common_sources",
"//device/vr/buildflags",
"//ipc",
"//media/mojo/mojom",
"//media/mojo/mojom:remoting",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
"//sandbox/policy/mojom",
"//services/audio/public/mojom",
"//services/cert_verifier/public/mojom",
"//services/data_decoder/public/mojom",
"//services/device/public/mojom:device_service",
"//services/device/public/mojom:usb",
"//services/media_session/public/cpp",
"//services/media_session/public/mojom",
"//services/network/public/mojom",
"//services/on_device_model/public/cpp",
"//services/on_device_model/public/mojom",
"//services/resource_coordinator/public/cpp:resource_coordinator_cpp",
"//services/service_manager/public/cpp",
"//services/tracing/public/cpp",
"//services/tracing/public/mojom",
"//services/video_capture/public/mojom",
"//services/video_effects/public/mojom:mojom",
"//services/viz/public/mojom",
# We expose skia headers in the public API.
"//skia",
# We expose storage headers for quota and blob storage context in the public API.
"//storage/browser",
"//third_party/webrtc_overrides:webrtc_component",
"//ui/base/dragdrop/mojom:mojom_headers",
]
deps = [
"//build:chromeos_buildflags",
"//cc",
"//components/input",
"//components/services/storage/public/cpp",
"//components/variations:variations",
"//components/viz/host",
"//content/browser", # Must not be public_deps!
"//device/fido",
"//gpu",
"//gpu/command_buffer/service:gles2",
"//media",
"//media/capture",
"//media/mojo/mojom:web_speech_recognition",
"//net",
"//services/device/public/cpp/geolocation",
"//services/metrics/public/cpp:metrics_cpp",
"//third_party/blink/public/common:buildflags",
"//third_party/blink/public/common:headers",
"//ui/accessibility",
"//ui/base",
"//ui/base/clipboard",
"//ui/base/cursor/mojom:cursor_type_shared",
"//ui/events",
"//ui/gl",
"//ui/shell_dialogs",
"//ui/surface",
]
allow_circular_includes_from = [
# This target is a pair with content / browser.They always go together and
# include headers from each other.
"//content/browser",
]
if (enable_plugins) {
sources += [
"plugin_service.h",
"plugin_service_filter.h",
]
}
if (enable_ppapi) {
sources += [
"browser_ppapi_host.h",
"pepper_vpn_provider_resource_host_proxy.h",
]
deps += [ "//ppapi/c" ]
}
if (is_posix || is_fuchsia) {
sources += [ "posix_file_descriptor_info.h" ]
}
if (is_android) {
deps += [
"//cc/slim",
"//third_party/jni_zero",
"//ui/android",
]
sources += [
"android/additional_navigation_params_android.h",
"android/android_overlay_provider.h",
"android/browser_context_handle.h",
"android/child_process_importance.h",
"android/compositor.h",
"android/compositor_client.h",
"android/devtools_auth.h",
"android/gpu_video_accelerator_factories_provider.h",
"android/impression_android.h",
"android/java_interfaces.h",
"android/media_url_interceptor_register.cc",
"android/media_url_interceptor_register.h",
"android/message_payload.h",
"android/message_payload_type.h",
"android/message_port_helper.h",
"android/motion_event_action.h",
"android/synchronous_compositor.cc",
"android/synchronous_compositor.h",
"android/synchronous_compositor_client.h",
"ax_inspect_factory_android.cc",
"tts_environment_android.h",
]
}
if (use_aura || is_mac) {
sources += [ "context_factory.h" ]
}
if (is_mac) {
sources += [
"ax_inspect_factory_mac.mm",
"native_event_processor_mac.h",
"native_event_processor_observer_mac.h",
"native_event_processor_observer_mac.mm",
"remote_cocoa.h",
]
}
if (is_fuchsia) {
sources += [ "ax_inspect_factory_fuchsia.cc" ]
}
if (is_win) {
sources += [ "ax_inspect_factory_win.cc" ]
}
if (use_atk) {
sources += [ "ax_inspect_factory_auralinux.cc" ]
configs += [ "//build/config/linux/atspi2" ]
}
if (is_linux || is_chromeos) {
sources += [ "zygote_host/zygote_host_linux.h" ]
}
if (allow_oop_video_decoder) {
sources += [ "stable_video_decoder_factory.h" ]
public_deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ]
}
if (is_chromeos) {
sources += [
"chromeos/multi_capture_service.cc",
"chromeos/multi_capture_service.h",
"lock_screen_storage.h",
"smart_card_delegate.h",
]
}
if (!is_android) {
sources += [
"direct_sockets_delegate.h",
# Some Web Authentication related targets only apply to desktop because
# Android provides its own native implementation of that API.
"authenticator_request_client_delegate.cc",
"authenticator_request_client_delegate.h",
"web_authentication_request_proxy.h",
]
}
if (is_chromeos_ash) {
sources += [
"chromeos/delegate_to_browser_gpu_service_accelerator_factory.h",
"tts_controller_delegate.cc",
"tts_controller_delegate.h",
]
}
if (enable_vr) {
sources += [
"browser_xr_runtime.h",
"xr_install_helper.h",
"xr_integration_client.cc",
"xr_integration_client.h",
"xr_runtime_manager.h",
]
public_deps += [
"//device/vr/public/cpp",
"//device/vr/public/mojom:isolated_xr_service",
]
}
if (use_clang_profiling_inside_sandbox) {
sources += [ "profiling_utils.h" ]
}
if (is_chromeos_lacros) {
deps += [ "//chromeos/startup" ]
}
}
if (is_android) {
java_cpp_enum("contacts_picker_properties_javagen") {
sources = [ "contacts_picker_properties.h" ]
}
java_cpp_enum("bluetooth_chooser_event_javagen") {
sources = [ "bluetooth_chooser.h" ]
}
java_cpp_enum("digital_identity_enum") {
sources = [
"digital_identity_interstitial_type.h",
"digital_identity_provider.h",
]
}
}
proto_library("proto") {
sources = [ "google_streaming_api.proto" ]
}