blob: effe546cda88e44be4f1f69f580ca076b7c28356 [file] [log] [blame]
Avi Drissman8ba1bad2022-09-13 19:22:361# Copyright 2015 The Chromium Authors
revemanb195f41d2015-11-19 22:16:482# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Jim Shargo6b1b84e2021-06-17 20:30:515import("//build/buildflag_header.gni")
Yuta Hijikata9073b542020-11-25 02:45:416import("//build/config/chromeos/ui_mode.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:267import("//build/config/linux/pkg_config.gni")
brettwb5440a92015-12-03 00:47:128import("//build/config/ui.gni")
Steven Bennetts99f5b692018-11-27 16:31:409import("//chrome/common/features.gni")
revemanb195f41d2015-11-19 22:16:4810import("//testing/test.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:2611import("//ui/base/ui_features.gni")
12
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5913assert(use_ozone)
Mitsuru Oshima94a83f42022-10-04 07:18:5314assert(is_chromeos_ash)
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5915
Hidehiko Abe3375cfe52020-09-29 08:48:2616if (use_xkbcommon) {
17 pkg_config("xkbcommon") {
18 packages = [ "xkbcommon" ]
19 }
20}
revemanb195f41d2015-11-19 22:16:4821
Mitsuru Oshima51bf3d5472020-06-17 21:28:3422static_library("exo") {
revemanb195f41d2015-11-19 22:16:4823 sources = [
24 "buffer.cc",
25 "buffer.h",
Eriko Kurimotod02f7052022-11-29 01:23:1526 "client_controlled_accelerators.cc",
27 "client_controlled_accelerators.h",
28 "client_controlled_shell_surface.cc",
29 "client_controlled_shell_surface.h",
30 "custom_window_state_delegate.cc",
31 "custom_window_state_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5532 "data_device.cc",
33 "data_device.h",
34 "data_device_delegate.h",
Joel Hockey5875dba2020-12-01 22:47:5535 "data_exchange_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5536 "data_offer.cc",
37 "data_offer.h",
38 "data_offer_delegate.h",
Daichi Hirono29647ac2017-08-15 09:11:5239 "data_offer_observer.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5540 "data_source.cc",
41 "data_source.h",
42 "data_source_delegate.h",
Daichi Hirono19ff5882017-11-30 03:37:3443 "data_source_observer.h",
revemanb195f41d2015-11-19 22:16:4844 "display.cc",
45 "display.h",
Fergus Dalla4293852019-07-26 07:13:4746 "drag_drop_operation.cc",
47 "drag_drop_operation.h",
Eriko Kurimotod02f7052022-11-29 01:23:1548 "extended_drag_offer.cc",
49 "extended_drag_offer.h",
50 "extended_drag_source.cc",
51 "extended_drag_source.h",
Albert Chaulk56e96582019-01-30 19:33:1852 "frame_sink_resource_manager.cc",
53 "frame_sink_resource_manager.h",
Yuzhu Shenc5cd21e2023-02-20 01:15:0554 "frame_timing_history.cc",
55 "frame_timing_history.h",
Eriko Kurimotod02f7052022-11-29 01:23:1556 "gamepad.cc",
57 "gamepad.h",
58 "gamepad_observer.h",
59 "gaming_seat.cc",
60 "gaming_seat.h",
61 "input_method_surface.cc",
62 "input_method_surface.h",
63 "input_method_surface_manager.h",
[email protected]bfb23cb2019-05-29 21:02:5764 "input_trace.h",
Hidehiko Abe190f69342021-04-02 19:58:4565 "key_state.h",
Eriko Kurimotod02f7052022-11-29 01:23:1566 "keyboard.cc",
67 "keyboard.h",
reveman5cacf70c2015-12-09 22:50:0268 "keyboard_delegate.h",
yhanada5d5b8cb52016-12-10 04:16:0269 "keyboard_device_configuration_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:1570 "keyboard_modifiers.h",
yhanadaaaaf52e2017-07-14 09:53:5671 "keyboard_observer.h",
danakjc7afae52017-06-20 21:12:4172 "layer_tree_frame_sink_holder.cc",
73 "layer_tree_frame_sink_holder.h",
Fergus Dall9a9d37c2019-05-16 03:32:2574 "mime_utils.cc",
75 "mime_utils.h",
Eriko Kurimotod02f7052022-11-29 01:23:1576 "notification.cc",
77 "notification.h",
78 "notification_surface.cc",
79 "notification_surface.h",
80 "notification_surface_manager.h",
Nicholas Hollingumbad8a05f62019-12-05 05:56:2181 "permission.cc",
82 "permission.h",
Daniel Nicoara64d43752019-06-10 16:57:1583 "pointer.cc",
84 "pointer.h",
Nicholas Hollingume9a6744f2019-10-03 05:57:2985 "pointer_constraint_delegate.h",
Daniel Nicoara64d43752019-06-10 16:57:1586 "pointer_delegate.h",
Jeffrey Kardatzke51c59ff2022-01-10 20:47:2287 "protected_native_pixmap_query_delegate.h",
Daichi Hirono3d3468d2017-11-20 02:02:3488 "seat.cc",
89 "seat.h",
90 "seat_observer.h",
Nicholas Hollingumda837042022-07-18 23:46:4991 "security_delegate.h",
revemanb195f41d2015-11-19 22:16:4892 "shared_memory.cc",
93 "shared_memory.h",
Eriko Kurimotod02f7052022-11-29 01:23:1594 "shell_surface.cc",
95 "shell_surface.h",
96 "shell_surface_base.cc",
97 "shell_surface_base.h",
98 "shell_surface_observer.h",
99 "shell_surface_presentation_time_recorder.cc",
100 "shell_surface_presentation_time_recorder.h",
Shawn Galleaa2c085e2018-11-27 18:40:23101 "shell_surface_util.cc",
102 "shell_surface_util.h",
reveman27fe2642015-11-20 06:33:39103 "sub_surface.cc",
104 "sub_surface.h",
Lucas Berthouf18ac602021-11-12 21:35:10105 "sub_surface_observer.h",
revemanb195f41d2015-11-19 22:16:48106 "surface.cc",
107 "surface.h",
108 "surface_delegate.h",
reveman27fe2642015-11-20 06:33:39109 "surface_observer.h",
Peng Huangb07b0652017-06-27 17:25:22110 "surface_tree_host.cc",
111 "surface_tree_host.h",
Eriko Kurimotod02f7052022-11-29 01:23:15112 "text_input.cc",
113 "text_input.h",
114 "toast_surface.cc",
115 "toast_surface.h",
116 "toast_surface_manager.h",
reveman90b85ed2015-12-10 02:39:33117 "touch.cc",
118 "touch.h",
119 "touch_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15120 "ui_lock_controller.cc",
121 "ui_lock_controller.h",
kylechar5361171352019-04-26 18:23:12122 "vsync_timing_manager.cc",
123 "vsync_timing_manager.h",
Hiroki Satoebc5f73a32021-07-26 05:47:17124 "window_properties.cc",
125 "window_properties.h",
penghuang76977a52016-08-16 15:40:07126 "wm_helper.cc",
127 "wm_helper.h",
Eriko Kurimotod02f7052022-11-29 01:23:15128 "xdg_shell_surface.cc",
129 "xdg_shell_surface.h",
130 "xkb_tracker.cc",
131 "xkb_tracker.h",
revemanb195f41d2015-11-19 22:16:48132 ]
133
134 deps = [
Eriko Kurimotod02f7052022-11-29 01:23:15135 "//ash",
136 "//ash/constants",
137 "//ash/keyboard/ui",
138 "//ash/public/cpp",
139 "//ash/resources/vector_icons",
revemanb195f41d2015-11-19 22:16:48140 "//base",
revemanb195f41d2015-11-19 22:16:48141 "//cc",
Kramer Gefae2abd52023-07-20 05:48:54142 "//cc/mojo_embedder:mojo_embedder",
Eriko Kurimotod02f7052022-11-29 01:23:15143 "//chromeos/crosapi/cpp:crosapi_constants",
144 "//chromeos/dbus/power",
145 "//chromeos/dbus/power:power_manager_proto",
146 "//chromeos/ui/base",
147 "//chromeos/ui/frame",
Eriko Kurimoto2c8192942024-08-16 01:42:55148 "//components/account_id",
Eriko Kurimotod02f7052022-11-29 01:23:15149 "//components/app_restore",
150 "//components/fullscreen_control",
151 "//components/strings",
Eliot Courtney9d620302019-06-14 00:40:49152 "//components/viz/host",
denniskempin68de18242016-07-14 00:04:59153 "//device/gamepad",
juncai2f298a82017-04-18 03:51:39154 "//device/gamepad/public/cpp:shared_with_blink",
revemanb195f41d2015-11-19 22:16:48155 "//gpu",
Daniele Castagnaa8ace632019-04-03 18:01:29156 "//gpu/command_buffer/client:raster_interface",
Fergus Dall9a9d37c2019-05-16 03:32:25157 "//net",
158 "//services/data_decoder/public/cpp",
Miyoung Shin2be27f52019-07-27 15:35:39159 "//services/viz/privileged/mojom/compositing",
revemanb195f41d2015-11-19 22:16:48160 "//skia",
Fergus Dall9a9d37c2019-05-16 03:32:25161 "//third_party/blink/public/common",
Mitsuru Oshimaec55fb62023-04-28 16:55:18162 "//ui/accessibility",
Manu Cornet81dc4ecd2020-10-16 22:25:40163 "//ui/accessibility:ax_base",
revemanb195f41d2015-11-19 22:16:48164 "//ui/aura",
Eriko Kurimotod02f7052022-11-29 01:23:15165 "//ui/base",
166 "//ui/base:hit_test",
Henrique Ferreiro0fe310d112021-03-23 23:09:04167 "//ui/base/dragdrop:types",
Henrique Ferreiroa1f22d62021-02-12 17:32:20168 "//ui/base/dragdrop/mojom",
Jun Mukaia446ee7f2018-07-20 22:55:15169 "//ui/base/ime",
Timothy Loh3fc540082023-04-05 04:09:47170 "//ui/base/ime/ash",
revemanb195f41d2015-11-19 22:16:48171 "//ui/compositor",
Tommy C. Li092c628a2018-03-29 20:32:15172 "//ui/compositor_extra",
kylechar731f85f92016-12-01 20:50:46173 "//ui/display/manager",
yhanada5d5b8cb52016-12-10 04:16:02174 "//ui/events/devices:devices",
Michael Spang4305feb42019-11-20 18:24:27175 "//ui/events/ozone",
David Padlipsky20258f22024-02-17 01:50:02176 "//ui/events/ozone/evdev:mouse_button_property",
Eriko Kurimotod02f7052022-11-29 01:23:15177 "//ui/events/ozone/layout",
revemanb195f41d2015-11-19 22:16:48178 "//ui/gfx",
179 "//ui/gfx/geometry",
180 "//ui/gl",
Toshiki Kikuchi7c2894d2018-10-10 01:02:09181 "//ui/message_center",
182 "//ui/message_center/public/cpp",
Jingkui Wang9ec45ba2017-09-12 21:27:48183 "//ui/ozone",
revemanb195f41d2015-11-19 22:16:48184 "//ui/views",
skycea631e2016-12-16 21:52:22185 "//ui/wm",
Thiago Farina3b086a02017-05-30 22:32:50186 "//ui/wm/public",
revemanb195f41d2015-11-19 22:16:48187 ]
erosky9f31b772016-10-04 01:10:16188
Mitsuru Oshima19d909272020-06-26 19:13:15189 assert_no_deps = [
Yao Li5a6b8422021-12-03 03:23:25190 "//ash/components/arc",
Mitsuru Oshima19d909272020-06-26 19:13:15191 "//components/arc",
192 "//content/public/browser",
193 "//content/public/common",
194 ]
195
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20196 public_deps = [
Henrique Ferreiro5a79d8662021-12-07 14:56:42197 "//ui/base/cursor",
Henrique Ferreiroe09c0efd2020-05-07 14:29:46198 "//ui/base/cursor/mojom:cursor_type",
Henrique Ferreiro1748fd12020-08-04 12:51:46199 "//ui/base/dragdrop/mojom:mojom_headers",
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20200 ]
Henrique Ferreirob43235cf2020-02-27 01:05:36201
Eriko Kurimotod02f7052022-11-29 01:23:15202 if (use_xkbcommon) {
203 configs += [ ":xkbcommon" ]
erosky9f31b772016-10-04 01:10:16204 }
revemanb195f41d2015-11-19 22:16:48205}
206
207source_set("test_support") {
208 testonly = true
209
Daniel Nicoara3e65fb52018-12-05 22:02:46210 sources = [
yjliu00982d22020-10-14 00:31:12211 "mock_vsync_timing_observer.cc",
212 "mock_vsync_timing_observer.h",
Eriko Kurimotod02f7052022-11-29 01:23:15213 "test/exo_test_base.cc",
214 "test/exo_test_base.h",
Eriko Kurimotod02f7052022-11-29 01:23:15215 "test/exo_test_data_exchange_delegate.cc",
216 "test/exo_test_data_exchange_delegate.h",
217 "test/exo_test_helper.cc",
218 "test/exo_test_helper.h",
Daniel Nicoara332761202018-12-10 20:00:59219 "test/exo_test_suite_aura.cc",
220 "test/exo_test_suite_aura.h",
Nicholas Hollingumfb87b822022-07-20 01:08:26221 "test/mock_security_delegate.cc",
222 "test/mock_security_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15223 "test/shell_surface_builder.cc",
224 "test/shell_surface_builder.h",
Yuzhu Shenc5cd21e2023-02-20 01:15:05225 "test/surface_tree_host_test_util.cc",
226 "test/surface_tree_host_test_util.h",
Mitsuru Oshimad3f5d462023-11-14 02:16:58227 "test/test_data_device_delegate.cc",
228 "test/test_data_device_delegate.h",
Joel Hockey6439b5b2024-02-09 20:46:46229 "test/test_data_offer_delegate.cc",
230 "test/test_data_offer_delegate.h",
231 "test/test_data_source_delegate.cc",
232 "test/test_data_source_delegate.h",
Mitsuru Oshima5eb13a12022-08-01 16:54:41233 "test/test_security_delegate.cc",
234 "test/test_security_delegate.h",
Daniel Nicoara3e65fb52018-12-05 22:02:46235 ]
236
Mirko Bonadei1c098b882020-03-07 04:46:03237 public_deps = [ "//testing/gtest" ]
238
revemanb195f41d2015-11-19 22:16:48239 deps = [
penghuang608523d42016-08-18 17:05:28240 ":exo",
Eriko Kurimotod02f7052022-11-29 01:23:15241 "//ash:test_support",
242 "//ash/public/cpp",
revemanb195f41d2015-11-19 22:16:48243 "//base",
Daniel Nicoara332761202018-12-10 20:00:59244 "//base/test:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15245 "//chromeos/ui/base",
Alex Yang9947225d2024-05-28 01:14:19246 "//components/exo/wayland:test_controller_stub",
Max Ihlenfeldta4e9a572022-12-08 10:04:46247 "//components/exo/wayland:ui_controls_protocol_stub",
kylechara4a664e62020-01-15 18:46:44248 "//components/viz/service",
brettw15764b12015-11-30 22:11:05249 "//gpu",
revemanb195f41d2015-11-19 22:16:48250 "//skia",
brettw15764b12015-11-30 22:11:05251 "//ui/aura",
Henrique Ferreiroa1f22d62021-02-12 17:32:20252 "//ui/base/dragdrop/mojom",
Michael Spang539c6f32019-04-03 19:08:52253 "//ui/base/ime/init",
brettw15764b12015-11-30 22:11:05254 "//ui/compositor",
Daniel Nicoaraec62bcf42018-12-05 21:22:42255 "//ui/compositor:test_support",
256 "//ui/display/manager",
brettw15764b12015-11-30 22:11:05257 "//ui/gfx/geometry",
Daniel Nicoara332761202018-12-10 20:00:59258 "//ui/gl:test_support",
denniskempin31a496e2016-12-17 00:20:57259 "//ui/views",
Peter Kastingb2600ae32019-05-14 04:42:25260 "//ui/views:test_support",
Thiago Farina3b086a02017-05-30 22:32:50261 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48262 ]
revemanb195f41d2015-11-19 22:16:48263}
264
265source_set("unit_tests") {
266 testonly = true
267
Eriko Kurimotod02f7052022-11-29 01:23:15268 sources = [
269 "../../ui/events/ozone/gamepad/gamepad_event.cc",
270 "buffer_unittest.cc",
271 "client_controlled_shell_surface_unittest.cc",
272 "data_device_unittest.cc",
273 "data_offer_unittest.cc",
274 "data_source_unittest.cc",
275 "display_unittest.cc",
276 "drag_drop_operation_unittest.cc",
277 "event_latency_metrics_unittest.cc",
278 "extended_drag_source_unittest.cc",
279 "gamepad_unittest.cc",
280 "gaming_seat_unittest.cc",
281 "input_method_surface_unittest.cc",
282 "keyboard_unittest.cc",
283 "mime_utils_unittest.cc",
284 "notification_unittest.cc",
285 "permission_unittest.cc",
286 "pointer_unittest.cc",
287 "seat_unittest.cc",
288 "shared_memory_unittest.cc",
289 "shell_surface_presentation_time_recorder_unittest.cc",
290 "shell_surface_unittest.cc",
291 "shell_surface_util_unittest.cc",
292 "sub_surface_unittest.cc",
293 "surface_test_util.cc",
294 "surface_test_util.h",
295 "surface_tree_host_unittest.cc",
296 "surface_unittest.cc",
297 "text_input_unittest.cc",
298 "toast_surface_unittest.cc",
299 "touch_unittest.cc",
300 "ui_lock_controller_unittest.cc",
Mitsuru Oshima7e0d94622023-01-23 05:32:37301 "wm_helper_unittest.cc",
Eriko Kurimotod02f7052022-11-29 01:23:15302 "xdg_shell_surface_unittest.cc",
303 ]
304
revemanb195f41d2015-11-19 22:16:48305 deps = [
reveman27fe2642015-11-20 06:33:39306 ":exo",
307 ":test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15308 "//ash",
309 "//ash:test_support",
310 "//ash/constants",
311 "//ash/keyboard/ui",
312 "//ash/public/cpp",
313 "//ash/public/cpp/external_arc",
brettw15764b12015-11-30 22:11:05314 "//base",
denniskempin68de18242016-07-14 00:04:59315 "//base/test:test_support",
brettw15764b12015-11-30 22:11:05316 "//cc",
eseckler599d86bb2017-03-15 09:02:55317 "//cc:test_support",
Kramer Gefae2abd52023-07-20 05:48:54318 "//cc/mojo_embedder:mojo_embedder",
Yuki Awano64ec451f2023-05-09 04:07:57319 "//chromeos/ash/components/login/auth",
Eriko Kurimotod02f7052022-11-29 01:23:15320 "//chromeos/dbus/power",
321 "//chromeos/dbus/power:power_manager_proto",
322 "//chromeos/ui/base",
323 "//chromeos/ui/frame",
Toshiki Kikuchibfd314bb2023-04-20 03:52:14324 "//chromeos/ui/wm",
Eriko Kurimotod02f7052022-11-29 01:23:15325 "//components/fullscreen_control",
revemanb195f41d2015-11-19 22:16:48326 "//components/user_manager",
Fady Samuel764e0a42017-07-13 22:35:44327 "//components/viz/service",
Fady Samuelc296f5fb2017-07-21 04:02:19328 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59329 "//device/gamepad:test_helpers",
Daniele Castagnaa8ace632019-04-03 18:01:29330 "//gpu/command_buffer/client:raster_interface",
revemanb195f41d2015-11-19 22:16:48331 "//skia",
reveman39b32c872015-12-08 05:34:05332 "//testing/gmock",
revemanb195f41d2015-11-19 22:16:48333 "//testing/gtest",
brettw15764b12015-11-30 22:11:05334 "//ui/aura",
Eliot Courtneyb97953e2023-10-26 04:46:39335 "//ui/aura:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15336 "//ui/base:test_support",
337 "//ui/base/cursor/mojom:cursor_type",
338 "//ui/base/dragdrop:types",
339 "//ui/base/dragdrop/mojom",
340 "//ui/base/ime/ash",
Alex Zhang3f8482b2017-08-01 15:16:24341 "//ui/compositor:test_support",
Tommy C. Li092c628a2018-03-29 20:32:15342 "//ui/compositor_extra",
reveman5cacf70c2015-12-09 22:50:02343 "//ui/events:dom_keycode_converter",
reveman39b32c872015-12-08 05:34:05344 "//ui/events:test_support",
Michael Spang4305feb42019-11-20 18:24:27345 "//ui/events/ozone",
brettw15764b12015-11-30 22:11:05346 "//ui/gfx",
Eriko Kurimotod02f7052022-11-29 01:23:15347 "//ui/gfx:test_support",
348 "//ui/gfx/geometry",
Mitsuru Oshimad3f5d462023-11-14 02:16:58349 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48350 "//ui/message_center",
brettw15764b12015-11-30 22:11:05351 "//ui/views",
skycea631e2016-12-16 21:52:22352 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48353 ]
revemanb195f41d2015-11-19 22:16:48354}
355
356test("exo_unittests") {
Dirk Pranke79d065d2020-08-29 03:28:30357 use_xvfb = use_xvfb_in_this_config
358
Nico Weber5b5acd82020-01-13 19:55:59359 sources = [ "test/run_all_unittests.cc" ]
oshima2a44e112016-06-23 17:59:18360
revemanb195f41d2015-11-19 22:16:48361 deps = [
Daniel Nicoara332761202018-12-10 20:00:59362 ":test_support",
revemanb195f41d2015-11-19 22:16:48363 ":unit_tests",
brettw15764b12015-11-30 22:11:05364 "//base",
365 "//base/test:test_support",
Scott Violet260dabf2017-07-14 17:17:51366 "//cc:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15367 "//chromeos/ash/components:test_support",
368 "//components/exo/server:unit_tests",
369 "//components/exo/wayland:unit_tests",
Scott Violet260dabf2017-07-14 17:17:51370 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59371 "//device/gamepad:test_helpers",
Ken Rockot9b26bc52018-07-04 19:57:49372 "//mojo/core/embedder",
skyd06586d2017-02-22 17:46:36373 "//testing/gtest",
374 "//ui/aura",
Scott Violet348ecf72017-11-28 18:28:19375 "//ui/aura:test_support",
skyd06586d2017-02-22 17:46:36376 "//ui/base",
sky25b49b282017-03-31 14:41:13377 "//ui/compositor:test_support",
skyd06586d2017-02-22 17:46:36378 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48379 ]
oshima2a44e112016-06-23 17:59:18380
Steven Bennetts6972bbe2018-12-05 02:18:53381 data_deps = []
revemanb195f41d2015-11-19 22:16:48382}