123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350 |
- # 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/buildflag_header.gni")
- import("//build/config/chromeos/ui_mode.gni")
- import("//build/config/compiler/compiler.gni")
- import("//build/config/dcheck_always_on.gni")
- import("//build/config/linux/gtk/gtk.gni")
- import("//build/config/linux/pangocairo/pangocairo.gni")
- import("//build/config/locales.gni")
- import("//build/config/ozone.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- import("//build/config/ui.gni")
- import("//build/util/branding.gni")
- import("//skia/features.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- import("//testing/test.gni")
- import("//tools/grit/grit_rule.gni")
- import("//ui/base/ui_features.gni")
- import("//ui/qt/qt.gni")
- if (is_android) {
- import("//build/config/android/config.gni")
- import("//build/config/android/rules.gni")
- } else if (is_mac) {
- import("//build/config/mac/rules.gni")
- }
- build_ime = !is_ios
- # As part of building Chrome on iOS, it is necessary to run a tool on
- # the host to load datapack and generate output in a format defined
- # by the platform (this is to support notifications).
- #
- # Introduce a standalone target that can build on both 'host' and 'target'
- # toolchains that just builds the support to load datapacks. The dependencies
- # should be kept minimal to not have to build too many targets with multiple
- # toolchains.
- component("ui_data_pack") {
- sources = [
- "resource/data_pack.cc",
- "resource/data_pack.h",
- "resource/data_pack_export.h",
- "resource/resource_handle.h",
- "resource/resource_scale_factor.cc",
- "resource/resource_scale_factor.h",
- "resource/scoped_file_writer.cc",
- "resource/scoped_file_writer.h",
- ]
- deps = [
- "//base",
- "//net",
- "//third_party/zlib/google:compression_utils",
- ]
- defines = [ "UI_DATA_PACK_IMPLEMENTATION" ]
- if (is_chromeos) {
- sources += [
- "resource/temporary_shared_resource_path_chromeos.cc",
- "resource/temporary_shared_resource_path_chromeos.h",
- ]
- }
- if (is_chromeos_lacros) {
- sources += [
- "resource/data_pack_with_resource_sharing_lacros.cc",
- "resource/data_pack_with_resource_sharing_lacros.h",
- ]
- deps += [ "//components/version_info" ]
- }
- configs += [ "//build/config/compiler:wexit_time_destructors" ]
- }
- buildflag_header("buildflags") {
- header = "buildflags.h"
- flags = [
- "ENABLE_HIDPI=$enable_hidpi",
- "ENABLE_MESSAGE_CENTER=$enable_message_center",
- "USE_ATK=$use_atk",
- "USE_XKBCOMMON=$use_xkbcommon",
- "HAS_NATIVE_ACCESSIBILITY=$has_native_accessibility",
- "HAS_PLATFORM_ACCESSIBILITY_SUPPORT=$has_platform_accessibility_support",
- "USE_GTK=$use_gtk",
- "USE_QT=$use_qt",
- ]
- }
- source_set("hit_test") {
- sources = [
- "hit_test.cc",
- "hit_test.h",
- ]
- }
- component("base") {
- output_name = "ui_base"
- sources = [
- "class_property.cc",
- "class_property.h",
- "default_style.h",
- "device_form_factor.h",
- "device_form_factor_desktop.cc",
- "dragdrop/drop_target_event.cc",
- "dragdrop/drop_target_event.h",
- "dragdrop/os_exchange_data.cc",
- "dragdrop/os_exchange_data.h",
- "dragdrop/os_exchange_data_provider_factory.cc",
- "dragdrop/os_exchange_data_provider_factory.h",
- "ime/utf_offset.cc",
- "ime/utf_offset.h",
- "interaction/element_identifier.cc",
- "interaction/element_identifier.h",
- "interaction/element_tracker.cc",
- "interaction/element_tracker.h",
- "interaction/framework_specific_implementation.h",
- "interaction/interaction_sequence.cc",
- "interaction/interaction_sequence.h",
- "l10n/formatter.cc",
- "l10n/formatter.h",
- "l10n/l10n_font_util.cc",
- "l10n/l10n_font_util.h",
- "l10n/l10n_util.cc",
- "l10n/l10n_util.h",
- "l10n/l10n_util_collator.h",
- "l10n/time_format.cc",
- "l10n/time_format.h",
- "layout.cc",
- "layout.h",
- "models/button_menu_item_model.cc",
- "models/button_menu_item_model.h",
- "models/combobox_model.cc",
- "models/combobox_model.h",
- "models/combobox_model_observer.h",
- "models/dialog_model.cc",
- "models/dialog_model.h",
- "models/dialog_model_field.cc",
- "models/dialog_model_field.h",
- "models/dialog_model_host.h",
- "models/dialog_model_menu_model_adapter.cc",
- "models/dialog_model_menu_model_adapter.h",
- "models/image_model.cc",
- "models/image_model.h",
- "models/list_model.h",
- "models/list_model_observer.h",
- "models/list_selection_model.cc",
- "models/list_selection_model.h",
- "models/menu_model.cc",
- "models/menu_model.h",
- "models/menu_model_delegate.h",
- "models/menu_separator_types.h",
- "models/simple_combobox_model.cc",
- "models/simple_combobox_model.h",
- "models/simple_menu_model.cc",
- "models/simple_menu_model.h",
- "models/table_model.cc",
- "models/table_model.h",
- "models/table_model_observer.h",
- "models/tree_model.cc",
- "models/tree_model.h",
- "models/tree_node_iterator.h",
- "models/tree_node_model.h",
- "nine_image_painter_factory.cc",
- "nine_image_painter_factory.h",
- "page_transition_types.cc",
- "page_transition_types.h",
- "pointer/touch_ui_controller.cc",
- "pointer/touch_ui_controller.h",
- "resource/allowlist.h",
- "resource/resource_bundle.cc",
- "resource/resource_bundle.h",
- "scoped_visibility_tracker.cc",
- "scoped_visibility_tracker.h",
- "template_expressions.cc",
- "template_expressions.h",
- "theme_provider.cc",
- "theme_provider.h",
- "ui_base_exports.cc",
- "ui_base_paths.cc",
- "ui_base_paths.h",
- "ui_base_switches.cc",
- "ui_base_switches.h",
- "ui_base_switches_util.cc",
- "ui_base_switches_util.h",
- "view_prop.cc",
- "view_prop.h",
- "webui/i18n_source_stream.cc",
- "webui/i18n_source_stream.h",
- "webui/jstemplate_builder.cc",
- "webui/jstemplate_builder.h",
- "webui/resource_path.h",
- "webui/web_ui_util.cc",
- "webui/web_ui_util.h",
- "window_open_disposition.cc",
- "window_open_disposition.h",
- ]
- libs = []
- if (is_android) {
- sources += [
- "device_form_factor_android.cc",
- "l10n/l10n_util_android.cc",
- "l10n/l10n_util_android.h",
- "resource/resource_bundle_android.cc",
- "resource/resource_bundle_android.h",
- ]
- }
- if (is_win) {
- sources += [
- "dragdrop/drag_source_win.cc",
- "dragdrop/drag_source_win.h",
- "dragdrop/drop_target_win.cc",
- "dragdrop/drop_target_win.h",
- "dragdrop/os_exchange_data_provider_win.cc",
- "dragdrop/os_exchange_data_provider_win.h",
- "l10n/l10n_util_win.cc",
- "l10n/l10n_util_win.h",
- "resource/resource_bundle_win.cc",
- "resource/resource_bundle_win.h",
- "resource/resource_data_dll_win.cc",
- "resource/resource_data_dll_win.h",
- "win/accessibility_ids_win.h",
- "win/atl_module.h",
- "win/event_creation_utils.cc",
- "win/event_creation_utils.h",
- "win/foreground_helper.cc",
- "win/foreground_helper.h",
- "win/hidden_window.cc",
- "win/hidden_window.h",
- "win/hwnd_metrics.cc",
- "win/hwnd_metrics.h",
- "win/hwnd_subclass.cc",
- "win/hwnd_subclass.h",
- "win/internal_constants.cc",
- "win/internal_constants.h",
- "win/lock_state.cc",
- "win/lock_state.h",
- "win/message_box_win.cc",
- "win/message_box_win.h",
- "win/mouse_wheel_util.cc",
- "win/mouse_wheel_util.h",
- "win/power_setting_change_listener.cc",
- "win/power_setting_change_listener.h",
- "win/scoped_ole_initializer.cc",
- "win/scoped_ole_initializer.h",
- "win/session_change_observer.cc",
- "win/session_change_observer.h",
- "win/shell.cc",
- "win/shell.h",
- "win/touch_input.cc",
- "win/touch_input.h",
- "win/win_cursor.cc",
- "win/win_cursor.h",
- "win/win_cursor_factory.cc",
- "win/win_cursor_factory.h",
- "win/window_event_target.cc",
- "win/window_event_target.h",
- ]
- ldflags = [ "/DELAYLOAD:dwmapi.dll" ]
- libs += [
- "dwmapi.lib",
- "wtsapi32.lib",
- ]
- }
- if (is_mac) {
- sources += [
- "cocoa/accessibility_focus_overrider.h",
- "cocoa/accessibility_focus_overrider.mm",
- "cocoa/animation_utils.h",
- "cocoa/appkit_utils.h",
- "cocoa/appkit_utils.mm",
- "cocoa/base_view.h",
- "cocoa/base_view.mm",
- "cocoa/cocoa_base_utils.h",
- "cocoa/cocoa_base_utils.mm",
- "cocoa/command_dispatcher.h",
- "cocoa/command_dispatcher.mm",
- "cocoa/constrained_window/constrained_window_animation.h",
- "cocoa/constrained_window/constrained_window_animation.mm",
- "cocoa/cursor_utils.h",
- "cocoa/cursor_utils.mm",
- "cocoa/defaults_utils.h",
- "cocoa/defaults_utils.mm",
- "cocoa/find_pasteboard.h",
- "cocoa/find_pasteboard.mm",
- "cocoa/flipped_view.h",
- "cocoa/flipped_view.mm",
- "cocoa/menu_controller.h",
- "cocoa/menu_controller.mm",
- "cocoa/nsmenu_additions.h",
- "cocoa/nsmenu_additions.mm",
- "cocoa/nsmenuitem_additions.h",
- "cocoa/nsmenuitem_additions.mm",
- "cocoa/nswindow_test_util.cc",
- "cocoa/nswindow_test_util.h",
- "cocoa/permissions_utils.h",
- "cocoa/permissions_utils.mm",
- "cocoa/quartz_util.h",
- "cocoa/quartz_util.mm",
- "cocoa/remote_accessibility_api.h",
- "cocoa/remote_accessibility_api.mm",
- "cocoa/remote_layer_api.h",
- "cocoa/remote_layer_api.mm",
- "cocoa/secure_password_input.h",
- "cocoa/secure_password_input.mm",
- "cocoa/text_services_context_menu.h",
- "cocoa/text_services_context_menu.mm",
- "cocoa/tool_tip_base_view.h",
- "cocoa/tool_tip_base_view.mm",
- "cocoa/touch_bar_util.h",
- "cocoa/touch_bar_util.mm",
- "cocoa/tracking_area.h",
- "cocoa/tracking_area.mm",
- "cocoa/underlay_opengl_hosting_window.h",
- "cocoa/underlay_opengl_hosting_window.mm",
- "cocoa/user_interface_item_command_handler.h",
- "cocoa/views_hostable.h",
- "cocoa/weak_ptr_nsobject.h",
- "cocoa/weak_ptr_nsobject.mm",
- "cocoa/window_size_constants.h",
- "cocoa/window_size_constants.mm",
- "dragdrop/os_exchange_data_provider_builder_mac.h",
- "dragdrop/os_exchange_data_provider_builder_mac.mm",
- "dragdrop/os_exchange_data_provider_mac.h",
- "dragdrop/os_exchange_data_provider_mac.mm",
- "interaction/element_tracker_mac.h",
- "interaction/element_tracker_mac.mm",
- "l10n/l10n_util_mac.h",
- "l10n/l10n_util_mac.mm",
- "resource/resource_bundle_mac.mm",
- ]
- }
- if (is_chromeos_lacros) {
- sources += [ "resource/resource_bundle_lacros.cc" ]
- }
- if (is_ios) {
- sources += [
- "device_form_factor_ios.mm",
- "resource/resource_bundle_ios.mm",
- ]
- }
- if (!is_ios) {
- sources += [
- "accelerators/accelerator.cc",
- "accelerators/accelerator.h",
- "accelerators/accelerator_manager.cc",
- "accelerators/accelerator_manager.h",
- "accelerators/accelerator_map.h",
- "accelerators/media_keys_listener.cc",
- "accelerators/media_keys_listener.h",
- "accelerators/media_keys_util.cc",
- "accelerators/media_keys_util.h",
- "accelerators/menu_label_accelerator_util.cc",
- "accelerators/menu_label_accelerator_util.h",
- "base_window.cc",
- "base_window.h",
- "emoji/emoji_panel_helper.h",
- "pointer/pointer_device.h",
- "pointer/pointer_device_util.cc",
- "pointer/touch_editing_controller.cc",
- "pointer/touch_editing_controller.h",
- "text/bytes_formatting.cc",
- "text/bytes_formatting.h",
- "themed_vector_icon.cc",
- "themed_vector_icon.h",
- "ui_base_types.cc",
- "ui_base_types.h",
- "user_activity/user_activity_detector.cc",
- "user_activity/user_activity_detector.h",
- "user_activity/user_activity_observer.h",
- ]
- if (is_linux || is_chromeos) {
- sources += [
- "accelerators/menu_label_accelerator_util_linux.cc",
- "accelerators/menu_label_accelerator_util_linux.h",
- "linux/linux_desktop.cc",
- "linux/linux_desktop.h",
- ]
- }
- if (is_mac) {
- sources += [
- "accelerators/platform_accelerator_cocoa.h",
- "accelerators/platform_accelerator_cocoa.mm",
- "cocoa/bubble_closer.h",
- "cocoa/bubble_closer.mm",
- "dragdrop/cocoa_dnd_util.h",
- "dragdrop/cocoa_dnd_util.mm",
- ]
- }
- }
- if (is_mac) {
- sources += [ "emoji/emoji_panel_helper_mac.mm" ]
- } else if (is_win) {
- sources += [ "emoji/emoji_panel_helper_win.cc" ]
- } else if (is_chromeos_ash) {
- sources += [ "emoji/emoji_panel_helper_chromeos.cc" ]
- } else {
- # Empty implementation for all other platforms.
- sources += [ "emoji/emoji_panel_helper.cc" ]
- }
- if (is_mac) {
- sources += [ "accelerators/media_keys_listener_mac.mm" ]
- } else if (is_win) {
- sources += [
- "accelerators/global_media_keys_listener_win.cc",
- "accelerators/global_media_keys_listener_win.h",
- "accelerators/media_keys_listener_win.cc",
- ]
- } else {
- sources += [ "accelerators/media_keys_listener_stub.cc" ]
- }
- if (is_win) {
- sources += [ "pointer/pointer_device_win.cc" ]
- } else if (is_android) {
- sources += [ "pointer/pointer_device_android.cc" ]
- } else if (is_ios) {
- sources += [ "pointer/pointer_device_ios.cc" ]
- } else if (is_linux || is_chromeos) {
- sources += [ "pointer/pointer_device_linux.cc" ]
- } else {
- # Empty implementation for all other cases.
- sources += [ "pointer/pointer_device.cc" ]
- sources -= [ "pointer/pointer_device_util.cc" ]
- }
- if (is_fuchsia) {
- sources += [ "resource/resource_bundle_fuchsia.cc" ]
- }
- configs += [ "//build/config/compiler:wexit_time_destructors" ]
- defines = [ "IS_UI_BASE_IMPL" ]
- if (enable_pseudolocales) {
- defines += [ "ENABLE_PSEUDOLOCALES" ]
- }
- public_deps = [
- ":buildflags",
- ":features",
- ":hit_test",
- ":ui_data_pack",
- "//base",
- "//skia",
- "//third_party/abseil-cpp:absl",
- "//ui/color:color_headers",
- "//ui/gfx",
- "//ui/gfx/geometry",
- ]
- deps = [
- ":locales_list",
- "//base",
- "//base:base_static",
- "//base:i18n",
- "//base/third_party/dynamic_annotations",
- "//build:chromeos_buildflags",
- "//net",
- "//third_party/brotli:dec",
- "//third_party/icu",
- "//third_party/modp_b64",
- "//third_party/zlib:zlib",
- "//third_party/zlib/google:compression_utils",
- "//ui/base:data_exchange",
- "//ui/base/clipboard:clipboard_types",
- "//ui/base/dragdrop/mojom",
- "//ui/color",
- "//ui/display",
- "//ui/display/util:gpu_info_util",
- "//ui/events",
- "//ui/events/devices",
- "//ui/resources:webui_generated_resources_grd",
- "//ui/strings",
- "//url",
- ]
- if (is_debug || dcheck_always_on) {
- deps += [ "//third_party/re2" ]
- }
- if (!is_ios) {
- # iOS does not use Chromium-specific code for event handling.
- public_deps += [
- "//ui/base/clipboard:file_info",
- "//ui/events:dom_keycode_converter",
- "//ui/events:events_base",
- "//ui/events/platform",
- ]
- }
- if (is_ios) {
- sources += [
- "l10n/l10n_util_mac.h",
- "l10n/l10n_util_mac.mm",
- "l10n/l10n_util_mac_bridge.h",
- "l10n/l10n_util_mac_bridge.mm",
- ]
- public_deps += [ "//ui/events:event_constants" ]
- deps -= [
- "//ui/events",
- "//ui/events/devices",
- ]
- }
- if (is_win) {
- public_deps += [
- "//ui/base/cursor",
- "//ui/base/cursor/mojom:cursor_type_shared",
- ]
- deps += [ "//ui/resources:ui_unscaled_resources_grd" ]
- }
- if (is_mac) {
- public_deps += [ "//ui/base/cursor" ]
- deps += [ "//ui/resources:ui_resources_grd" ]
- }
- if (toolkit_views) {
- deps += [ "//ui/events" ]
- }
- if (use_aura && (is_linux || is_chromeos)) {
- sources += [ "resource/resource_bundle_auralinux.cc" ]
- }
- if (is_linux || is_chromeos) {
- deps += [ "//third_party/fontconfig" ]
- }
- if (is_chromeos_lacros) {
- deps += [
- "//chromeos/crosapi/cpp:crosapi_constants",
- "//chromeos/lacros:lacros_paths",
- ]
- }
- if (use_glib) {
- configs += [ "//build/config/linux:glib" ]
- sources += [
- "glib/glib_cast.h",
- "glib/glib_integers.h",
- "glib/glib_signal.h",
- "glib/scoped_gobject.h",
- ]
- }
- if (is_chromeos_ash || (use_aura && (is_linux || is_chromeos_lacros)) ||
- is_fuchsia) {
- sources += [
- "dragdrop/os_exchange_data_provider_non_backed.cc",
- "dragdrop/os_exchange_data_provider_non_backed.h",
- ]
- }
- if (is_mac || is_win) {
- deps += [ "//ui/base/clipboard" ]
- }
- if (!use_aura) {
- sources -= [
- "view_prop.cc",
- "view_prop.h",
- ]
- }
- if (is_mac) {
- deps += [ "//third_party/mozilla" ]
- frameworks = [
- "Accelerate.framework",
- "AppKit.framework",
- "QuartzCore.framework",
- "AudioUnit.framework",
- "Carbon.framework",
- "CoreVideo.framework",
- "Foundation.framework",
- ]
- }
- if (!toolkit_views && !use_aura) {
- sources -= [
- "dragdrop/drop_target_event.cc",
- "dragdrop/drop_target_event.h",
- "dragdrop/os_exchange_data.cc",
- "dragdrop/os_exchange_data.h",
- "dragdrop/os_exchange_data_provider_factory.cc",
- "dragdrop/os_exchange_data_provider_factory.h",
- "nine_image_painter_factory.cc",
- "nine_image_painter_factory.h",
- ]
- }
- if (is_android) {
- deps += [ ":ui_base_jni_headers" ]
- libs += [ "jnigraphics" ]
- sources -= [
- "l10n/l10n_font_util.cc",
- "models/button_menu_item_model.cc",
- "pointer/touch_editing_controller.cc",
- "theme_provider.cc",
- "ui_base_types.cc",
- ]
- }
- if (is_android || is_ios) {
- sources -= [ "device_form_factor_desktop.cc" ]
- }
- }
- component("data_exchange") {
- defines = [ "IS_UI_BASE_DATA_EXCHANGE_IMPL" ]
- sources = [
- "dragdrop/download_file_info.cc",
- "dragdrop/download_file_info.h",
- "dragdrop/download_file_interface.h",
- "dragdrop/os_exchange_data_provider.h",
- "dragdrop/os_exchange_data_provider_factory_ozone.cc",
- "dragdrop/os_exchange_data_provider_factory_ozone.h",
- ]
- deps = [
- "//base",
- "//ui/base/clipboard:clipboard_types",
- "//ui/base/clipboard:file_info",
- "//ui/gfx",
- "//ui/gfx/geometry",
- "//url",
- ]
- public_deps = [ "//ui/base/data_transfer_policy" ]
- }
- component("features") {
- output_name = "ui_base_features"
- defines = [ "IS_UI_BASE_FEATURES_IMPL" ]
- sources = [
- "ui_base_features.cc",
- "ui_base_features.h",
- ]
- if (is_chromeos_ash) {
- sources += [
- "shortcut_mapping_pref_delegate.cc",
- "shortcut_mapping_pref_delegate.h",
- ]
- }
- deps = [
- ":buildflags",
- "//base",
- "//build:chromeos_buildflags",
- ]
- if (is_android) {
- sources += [ "ui_base_feature_list_android.cc" ]
- deps += [ ":ui_base_jni_headers" ]
- }
- }
- if (is_win || is_mac || is_linux || is_chromeos) {
- static_library("pixel_diff_test_support") {
- testonly = true
- sources = [
- "test/skia_gold_matching_algorithm.cc",
- "test/skia_gold_matching_algorithm.h",
- "test/skia_gold_pixel_diff.cc",
- "test/skia_gold_pixel_diff.h",
- ]
- deps = [
- "//base",
- "//base/test:test_config",
- "//build:chromeos_buildflags",
- "//testing/gtest",
- "//ui/gfx",
- "//ui/snapshot",
- ]
- if (!is_fuchsia) {
- data_deps = [ ":goldctl" ]
- }
- }
- }
- if (!is_ios) {
- group("goldctl") {
- data = []
- # Because this links to a CIPD dependency, which is a symlink on Unix
- # platforms, refer to the actual executable rather than the whole directory;
- # copying the whole directory doesn't work, at least with "mb.py zip".
- if (is_win) {
- data += [ "//tools/skia_goldctl/win/goldctl.exe" ]
- } else if (is_mac) {
- data += [
- "//tools/skia_goldctl/mac_amd64/goldctl",
- "//tools/skia_goldctl/mac_arm64/goldctl",
- ]
- } else {
- data += [ "//tools/skia_goldctl/linux/goldctl" ]
- }
- }
- }
- static_library("test_support") {
- testonly = true
- sources = [
- "interaction/element_test_util.cc",
- "interaction/element_test_util.h",
- "interaction/expect_call_in_scope.h",
- "interaction/interaction_test_util.cc",
- "interaction/interaction_test_util.h",
- "resource/mock_resource_bundle_delegate.cc",
- "resource/mock_resource_bundle_delegate.h",
- "test/idle_test_utils.cc",
- "test/idle_test_utils.h",
- ]
- if (is_mac) {
- sources += [
- "interaction/interaction_test_util_mac.h",
- "interaction/interaction_test_util_mac.mm",
- "test/cocoa_helper.h",
- "test/cocoa_helper.mm",
- "test/menu_test_observer.h",
- "test/menu_test_observer.mm",
- "test/ns_ax_tree_validator.h",
- "test/ns_ax_tree_validator.mm",
- "test/scoped_fake_full_keyboard_access.h",
- "test/scoped_fake_full_keyboard_access.mm",
- "test/scoped_fake_nswindow_focus.h",
- "test/scoped_fake_nswindow_focus.mm",
- "test/scoped_fake_nswindow_fullscreen.h",
- "test/scoped_fake_nswindow_fullscreen.mm",
- "test/scoped_preferred_scroller_style_mac.h",
- "test/scoped_preferred_scroller_style_mac.mm",
- "test/ui_controls_mac.mm",
- "test/view_tree_validator.mm",
- "test/windowed_nsnotification_observer.h",
- "test/windowed_nsnotification_observer.mm",
- ]
- }
- if (is_win) {
- sources += [
- "test/ui_controls_internal_win.cc",
- "test/ui_controls_internal_win.h",
- ]
- }
- if (!is_ios) {
- sources += [
- "accelerators/test_accelerator_target.cc",
- "accelerators/test_accelerator_target.h",
- "test/mock_base_window.cc",
- "test/mock_base_window.h",
- "test/test_dialog_model_host.cc",
- "test/test_dialog_model_host.h",
- "test/ui_controls.h",
- "test/view_tree_validator.h",
- ]
- } else {
- sources += [
- "test/ios/keyboard_appearance_listener.h",
- "test/ios/keyboard_appearance_listener.mm",
- "test/ios/ui_image_test_utils.h",
- "test/ios/ui_image_test_utils.mm",
- ]
- }
- if (use_aura) {
- sources += [
- "test/ui_controls_aura.cc",
- "test/ui_controls_aura.h",
- ]
- }
- public_deps = [
- ":base",
- "//ui/base/idle",
- ]
- deps = [
- "//base",
- "//base/test:test_config",
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//skia",
- "//testing/gmock",
- "//testing/gtest",
- "//ui/base:ui_data_pack",
- "//ui/display:test_support",
- "//ui/events:events_base",
- "//ui/events:test_support",
- "//ui/gfx",
- "//ui/gfx/geometry",
- ]
- if (is_ios) {
- deps -= [
- "//ui/events:events_base",
- "//ui/events:test_support",
- ]
- }
- if (build_ime) {
- sources += [
- "ime/dummy_input_method.cc",
- "ime/dummy_input_method.h",
- "ime/dummy_text_input_client.cc",
- "ime/dummy_text_input_client.h",
- "ime/fake_text_input_client.cc",
- "ime/fake_text_input_client.h",
- ]
- deps += [
- "//ui/base/ime",
- "//ui/events",
- ]
- if (is_win) {
- deps += [ "//ui/base/ime/win" ]
- }
- }
- if (is_chromeos_ash) {
- sources += [
- "ime/ash/mock_component_extension_ime_manager.cc",
- "ime/ash/mock_component_extension_ime_manager.h",
- "ime/ash/mock_component_extension_ime_manager_delegate.cc",
- "ime/ash/mock_component_extension_ime_manager_delegate.h",
- "ime/ash/mock_ime_candidate_window_handler.cc",
- "ime/ash/mock_ime_candidate_window_handler.h",
- "ime/ash/mock_ime_engine_handler.cc",
- "ime/ash/mock_ime_engine_handler.h",
- "ime/ash/mock_ime_input_context_handler.cc",
- "ime/ash/mock_ime_input_context_handler.h",
- "ime/ash/mock_input_method_manager.cc",
- "ime/ash/mock_input_method_manager.h",
- ]
- deps += [
- "//ui/base/ime/ash",
- "//ui/base/ime/ash:typing_session_manager",
- ]
- }
- }
- if (is_android) {
- generate_jni("ui_base_jni_headers") {
- sources = [
- "../android/java/src/org/chromium/ui/base/Clipboard.java",
- "../android/java/src/org/chromium/ui/base/DeviceFormFactor.java",
- "../android/java/src/org/chromium/ui/base/IdleDetector.java",
- "../android/java/src/org/chromium/ui/base/LocalizationUtils.java",
- "../android/java/src/org/chromium/ui/base/ResourceBundle.java",
- "../android/java/src/org/chromium/ui/base/SelectFileDialog.java",
- "../android/java/src/org/chromium/ui/base/TouchDevice.java",
- "../android/java/src/org/chromium/ui/base/UiBaseFeatureList.java",
- ]
- }
- java_cpp_features("java_features_srcjar") {
- # External code should depend on ":features_java" instead.
- visibility = [ ":*" ]
- sources = [ "ui_base_features.cc" ]
- template =
- "../android/java/src/org/chromium/ui/base/UiBaseFeatures.java.tmpl"
- }
- android_library("features_java") {
- srcjar_deps = [ ":java_features_srcjar" ]
- }
- android_library("feature_list_java") {
- sources =
- [ "../android/java/src/org/chromium/ui/base/UiBaseFeatureList.java" ]
- deps = [
- "//base:base_java",
- "//base:jni_java",
- "//build/android:build_java",
- ]
- annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
- }
- }
- bundle_data("ui_base_unittests_bundle_data") {
- testonly = true
- sources = [ "test/data/data_pack_unittest/truncated-header.pak" ]
- outputs = [ "{{bundle_resources_dir}}/" +
- "{{source_root_relative_dir}}/{{source_file_part}}" ]
- }
- # The resource labels below should not end with "_resources" or the Android
- # build rules will look for a nonexistent __build_config label.
- grit("ui_base_test_resources_grit") {
- testonly = true
- source = "test/ui_base_test_resources.grd"
- outputs = [
- "grit/ui_base_test_resources.h",
- "ui_base_test_resources.pak",
- ]
- }
- copy("ui_base_test_resources_pak") {
- testonly = true
- sources = [ "$target_gen_dir/ui_base_test_resources.pak" ]
- outputs = [ "$root_out_dir/ui_base_test_resources.pak" ]
- public_deps = [ ":ui_base_test_resources_grit" ]
- }
- if (is_android) {
- android_assets("ui_base_test_android_assets") {
- testonly = true
- # Use $target_gen_dir so the associated .pak.info file is available.
- sources = [ "$target_gen_dir/ui_base_test_resources.pak" ]
- deps = [ ":ui_base_test_resources_grit" ]
- }
- }
- if (is_ios) {
- bundle_data("ui_base_test_bundle_data") {
- testonly = true
- public_deps = [ ":ui_base_test_resources_grit" ]
- sources = [ "$target_gen_dir/ui_base_test_resources.pak" ]
- outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
- }
- }
- test("ui_base_unittests") {
- use_xvfb = use_xvfb_in_this_config
- sources = [
- "class_property_unittest.cc",
- "clipboard/file_info_unittest.cc",
- "ime/utf_offset_unittest.cc",
- "interaction/element_identifier_unittest.cc",
- "interaction/element_tracker_unittest.cc",
- "interaction/framework_specific_implementation_unittest.cc",
- "interaction/interaction_sequence_unittest.cc",
- "interaction/interaction_test_util_unittest.cc",
- "l10n/l10n_util_unittest.cc",
- "l10n/time_format_unittest.cc",
- "layout_unittest.cc",
- "models/image_model_unittest.cc",
- "models/simple_combobox_model_unittest.cc",
- "models/simple_menu_model_unittest.cc",
- "models/tree_node_iterator_unittest.cc",
- "pointer/touch_ui_controller_unittest.cc",
- "prediction/empty_filter_unittests.cc",
- "prediction/input_filter_unittest_helpers.cc",
- "prediction/input_filter_unittest_helpers.h",
- "prediction/input_predictor_unittest_helpers.cc",
- "prediction/input_predictor_unittest_helpers.h",
- "prediction/kalman_predictor_unittest.cc",
- "prediction/least_squares_predictor_unittest.cc",
- "prediction/linear_predictor_unittest.cc",
- "prediction/linear_resampling_unittest.cc",
- "prediction/one_euro_filter_unittests.cc",
- "prediction/prediction_metrics_handler_unittest.cc",
- "prediction/prediction_unittest_helpers.h",
- "resource/data_pack_literal.cc",
- "resource/data_pack_literal.h",
- "resource/data_pack_unittest.cc",
- "resource/resource_bundle_unittest.cc",
- "resource/scale_factor_unittest.cc",
- "scoped_visibility_tracker_unittest.cc",
- "template_expressions_unittest.cc",
- "test/page_transition_types_unittest.cc",
- "test/run_all_unittests.cc",
- "webui/i18n_source_stream_unittest.cc",
- ]
- if (is_mac) {
- sources += [
- "cocoa/defaults_utils_unittest.mm",
- "cocoa/nsmenu_additions_unittest.mm",
- "cocoa/nsmenuitem_additions_unittest.mm",
- "interaction/element_tracker_mac_unittest.mm",
- "l10n/l10n_util_mac_unittest.mm",
- ]
- }
- if (is_chromeos_lacros) {
- sources += [ "resource/data_pack_with_resource_sharing_lacros_unittest.cc" ]
- }
- if (!is_ios) {
- sources += [
- "themed_vector_icon_unittest.cc",
- "user_activity/user_activity_detector_unittest.cc",
- ]
- if (is_mac) {
- sources += [ "test/view_tree_validator_unittest.mm" ]
- }
- }
- data = []
- data_deps = [ "//testing/buildbot/filters:ui_base_unittests_filters" ]
- deps = [
- ":ui_base_test_resources_grit",
- ":ui_base_unittests_bundle_data",
- "//base",
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//components/vector_icons",
- "//mojo/core/embedder",
- "//net",
- "//net:test_support",
- "//skia",
- "//testing/gmock",
- "//testing/gtest",
- "//third_party/brotli:dec",
- "//third_party/icu",
- "//third_party/zlib/google:compression_utils",
- "//ui/base",
- "//ui/base:data_exchange",
- "//ui/base:test_support",
- "//ui/base:ui_data_pack",
- "//ui/base/clipboard:clipboard_test",
- "//ui/base/clipboard:clipboard_types",
- "//ui/base/clipboard:file_info",
- "//ui/base/cursor:unittests",
- "//ui/base/data_transfer_policy:unittests",
- "//ui/base/metadata:metadata_tests",
- "//ui/base/prediction:prediction",
- "//ui/color",
- "//ui/display",
- "//ui/events:events_base",
- "//ui/events:test_support",
- "//ui/gfx:test_support",
- "//ui/resources",
- "//ui/resources:ui_test_pak",
- "//ui/strings",
- "//url",
- ]
- if (is_android) {
- sources -= [ "user_activity/user_activity_detector_unittest.cc" ]
- }
- if (is_ios) {
- sources += [
- "l10n/l10n_util_mac_unittest.mm",
- "test/ios/ui_image_test_utils_unittest.mm",
- ]
- deps -= [
- "//ui/events:events_base",
- "//ui/events:test_support",
- ]
- } else { # !is_ios
- sources += [
- "accelerators/accelerator_manager_unittest.cc",
- "accelerators/accelerator_map_unittest.cc",
- "accelerators/accelerator_unittest.cc",
- "accelerators/menu_label_accelerator_util_unittest.cc",
- "models/dialog_model_unittest.cc",
- "models/list_model_unittest.cc",
- "models/list_selection_model_unittest.cc",
- "models/tree_node_model_unittest.cc",
- "text/bytes_formatting_unittest.cc",
- "webui/web_ui_util_unittest.cc",
- ]
- if (is_linux || is_chromeos) {
- sources +=
- [ "accelerators/menu_label_accelerator_util_linux_unittest.cc" ]
- }
- if (is_mac) {
- sources += [
- "accelerators/platform_accelerator_cocoa_unittest.mm",
- "cocoa/base_view_unittest.mm",
- "cocoa/bubble_closer_unittest.mm",
- "cocoa/cocoa_base_utils_unittest.mm",
- "cocoa/constrained_window/constrained_window_animation_unittest.mm",
- "cocoa/menu_controller_unittest.mm",
- "cocoa/touch_bar_util_unittest.mm",
- "cocoa/tracking_area_unittest.mm",
- "cocoa/weak_ptr_nsobject_unittest.mm",
- ]
- }
- }
- # TODO(crbug.com/1091985): Support CrOS.
- if (is_win || is_mac || is_linux || is_chromeos_lacros) {
- sources += [
- "test/skia_gold_matching_algorithm_unittest.cc",
- "test/skia_gold_pixel_diff_unittest.cc",
- ]
- deps += [ ":pixel_diff_test_support" ]
- }
- if (build_ime) {
- sources += [
- "ime/candidate_window_unittest.cc",
- "ime/composition_text_unittest.cc",
- "ime/input_method_base_unittest.cc",
- "ime/mojom/ime_mojom_traits_unittest.cc",
- ]
- if (is_win) {
- sources += [
- "ime/win/imm32_manager_unittest.cc",
- "ime/win/on_screen_keyboard_display_manager_unittest.cc",
- "ime/win/tsf_input_scope_unittest.cc",
- "ime/win/tsf_text_store_unittest.cc",
- ]
- deps += [ "//ui/base/ime/win" ]
- }
- if (is_chromeos_ash) {
- sources += [
- "dragdrop/os_exchange_data_provider_non_backed_unittest.cc",
- "ime/ash/extension_ime_util_unittest.cc",
- "ime/ash/ime_keyboard_unittest.cc",
- "ime/ash/input_method_ash_unittest.cc",
- "ime/ash/input_method_descriptor_unittest.cc",
- "ime/ash/input_method_util_unittest.cc",
- "ime/ash/typing_session_manager_unittest.cc",
- ]
- deps += [
- "//build:branding_buildflags",
- "//ui/base/ime/ash",
- "//ui/base/ime/ash:typing_session_manager",
- ]
- }
- if ((is_linux || is_chromeos_lacros) && use_aura) {
- sources += [
- "dragdrop/os_exchange_data_provider_non_backed_unittest.cc",
- "ime/input_method_minimal_unittest.cc",
- "ime/linux/input_method_auralinux_unittest.cc",
- ]
- deps += [
- "//ui/base/ime/init",
- "//ui/base/ime/linux",
- ]
- }
- if (is_linux && !is_castos) {
- sources += [ "ime/linux/composition_text_util_pango_unittest.cc" ]
- }
- if (is_chromeos_ash || use_ozone) {
- sources += [ "ime/character_composer_unittest.cc" ]
- }
- }
- # Include the correct ui_base_test resources per platform.
- if (is_android) {
- deps += [ ":ui_base_test_android_assets" ]
- data_deps += [ ":ui_base_test_resources_pak" ]
- } else if (is_ios) {
- deps += [ ":ui_base_test_bundle_data" ]
- } else {
- data += [ "$root_out_dir/ui_base_test_resources.pak" ]
- data_deps += [ ":ui_base_test_resources_pak" ]
- }
- if (build_ime) {
- deps += [
- "//ui/base/ime",
- "//ui/base/ime/mojom:test_interfaces",
- ]
- }
- if (is_ios) {
- deps += [ "//ui/resources:ui_test_pak_bundle_data" ]
- } else {
- deps += [
- "//ui/base/accelerators/mojom:unittests",
- "//ui/base/cursor/mojom:unittests",
- ]
- }
- if (is_win) {
- sources += [
- "dragdrop/os_exchange_data_win_unittest.cc",
- "view_prop_unittest.cc",
- "win/hwnd_subclass_unittest.cc",
- "win/win_cursor_factory_unittest.cc",
- ]
- deps += [
- "//ui/base/cursor",
- "//ui/base/cursor/mojom:cursor_type_shared",
- ]
- }
- if (is_android) {
- deps += [
- "//chrome:resources",
- "//ui/android:ui_java",
- ]
- }
- if (use_pangocairo) {
- configs += [ "//build/config/linux/pangocairo" ]
- }
- if (is_mac) {
- deps += [
- ":ui_unittests_framework",
- "//third_party/mozilla",
- ]
- }
- if (use_aura || toolkit_views) {
- sources += [ "dragdrop/os_exchange_data_unittest.cc" ]
- deps += [
- "//ui/events",
- "//ui/events/platform",
- ]
- }
- if (is_chromeos_ash) {
- deps += [ "//ui/events:dom_keycode_converter" ]
- }
- if (is_android || is_linux || is_chromeos || is_mac || is_win || is_fuchsia) {
- # TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
- # instead of depending directly on the non-test .pak files, but depending
- # on ui_test_pak seems to have no effect.
- data += [
- "test/data/data_pack_unittest/truncated-header.pak",
- "$root_out_dir/ui_test.pak", # TODO(brettw): remove this line.
- ]
- data_deps += [
- "//third_party/mesa_headers",
- "//ui/resources:ui_test_pak", # TODO(brettw): this does nothing.
- ]
- }
- if (is_linux || is_chromeos || is_win || is_fuchsia) {
- data += [
- # TODO(brettw): Remove these two lines.
- "$root_out_dir/ui/en-US.pak",
- "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
- ]
- }
- if (is_mac) {
- data += [ "$root_out_dir/ui_unittests Framework.framework/" ]
- }
- if (skia_support_skottie && !is_ios) {
- sources += [ "//ui/lottie/animation_unittest.cc" ]
- deps += [
- "//cc:test_support",
- "//cc/paint",
- "//third_party/abseil-cpp:absl",
- "//ui/lottie",
- ]
- }
- # If the platform supports wayland, run wayland library unittests, too.
- if (is_chromeos_ash || ozone_platform_wayland) {
- deps += [ "//ui/base/wayland:unittests" ]
- }
- }
- if (is_mac) {
- mac_framework_bundle("ui_unittests_framework") {
- testonly = true
- framework_version = "U"
- framework_contents = [ "Resources" ]
- deps = [ "//ui/resources:ui_test_pak_bundle_data" ]
- info_plist = "test/framework-Info.plist"
- extra_substitutions = [ "CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id" ]
- output_name = "ui_unittests Framework"
- }
- }
- if (is_win) {
- # This source set is used by both //chrome/browser and
- # //chrome/installer/setup. It must have minimal dependencies for the latter
- # (e.g., no skia).
- source_set("fullscreen_win") {
- sources = [
- "fullscreen_win.cc",
- "fullscreen_win.h",
- ]
- }
- }
- if (is_linux || is_chromeos) {
- # This source set defines linux wm role names and must not have any external
- # dependencies and be kept as minimal as possible.
- source_set("wm_role_names") {
- sources = [
- "wm_role_names_linux.cc",
- "wm_role_names_linux.h",
- ]
- }
- }
- # This target is added as a dependency of browser interactive_ui_tests. It must
- # be source_set, otherwise the linker will drop the tests as dead code.
- source_set("base_interactive_ui_tests") {
- testonly = true
- if (is_win) {
- sources =
- [ "accelerators/global_media_keys_listener_win_interactive_test.cc" ]
- deps = [
- ":base",
- ":test_support",
- "//base/test:test_support",
- "//testing/gtest",
- "//ui/events:events",
- ]
- }
- }
- fuzzer_test("file_info_fuzzer") {
- sources = [ "clipboard/file_info_fuzzer.cc" ]
- deps = [
- "//base",
- "//ui/base/clipboard:file_info",
- ]
- }
- # Same as locales, but includes "en" on Apple platforms.
- # Apple platforms use "en" instead of "en-US" (see the definition of
- # |locales_as_apple_outputs| in locales.gni). However, we still want to keep
- # "en-US" in the list as the |ResourceBundle::GetLocaleFilePath| implementations
- # in ui/base/resource/resource_bundle_{mac,ios}.mm return a valid path for
- # "en-US" (as they internally rewrite it as "en" instead).
- locales_for_platform_list = platform_pak_locales
- if (is_apple) {
- locales_for_platform_list += [ "en" ]
- }
- action("locales_list_gen") {
- script = "//tools/l10n/generate_locales_list.py"
- outputs = [ "$root_gen_dir/ui/base/l10n/l10n_util_locales_list.inc" ]
- args = rebase_path(outputs, root_build_dir) + locales_for_platform_list
- }
- source_set("locales_list") {
- deps = [ ":locales_list_gen" ]
- sources = [ "$root_gen_dir/ui/base/l10n/l10n_util_locales_list.inc" ]
- }
|