blob: b243e708007ffe90ee6a460ed71c0e13d83c8708 [file] [log] [blame]
revemanb195f41d2015-11-19 22:16:481# Copyright 2015 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Yuta Hijikata9073b542020-11-25 02:45:415import("//build/config/chromeos/ui_mode.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:266import("//build/config/linux/pkg_config.gni")
brettwb5440a92015-12-03 00:47:127import("//build/config/ui.gni")
Steven Bennetts99f5b692018-11-27 16:31:408import("//chrome/common/features.gni")
revemanb195f41d2015-11-19 22:16:489import("//testing/test.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:2610import("//ui/base/ui_features.gni")
11
12if (use_xkbcommon) {
13 pkg_config("xkbcommon") {
14 packages = [ "xkbcommon" ]
15 }
16}
revemanb195f41d2015-11-19 22:16:4817
Mitsuru Oshima51bf3d5472020-06-17 21:28:3418static_library("exo") {
revemanb195f41d2015-11-19 22:16:4819 sources = [
20 "buffer.cc",
21 "buffer.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5522 "data_device.cc",
23 "data_device.h",
24 "data_device_delegate.h",
25 "data_offer.cc",
26 "data_offer.h",
27 "data_offer_delegate.h",
Daichi Hirono29647ac2017-08-15 09:11:5228 "data_offer_observer.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5529 "data_source.cc",
30 "data_source.h",
31 "data_source_delegate.h",
Daichi Hirono19ff5882017-11-30 03:37:3432 "data_source_observer.h",
revemanb195f41d2015-11-19 22:16:4833 "display.cc",
34 "display.h",
Fergus Dalla4293852019-07-26 07:13:4735 "drag_drop_operation.cc",
36 "drag_drop_operation.h",
Joel Hockeycbf5f452020-11-12 23:13:0137 "file_helper.h",
Albert Chaulk56e96582019-01-30 19:33:1838 "frame_sink_resource_manager.cc",
39 "frame_sink_resource_manager.h",
[email protected]bfb23cb2019-05-29 21:02:5740 "input_trace.h",
reveman5cacf70c2015-12-09 22:50:0241 "keyboard_delegate.h",
yhanada5d5b8cb52016-12-10 04:16:0242 "keyboard_device_configuration_delegate.h",
yhanadaaaaf52e2017-07-14 09:53:5643 "keyboard_observer.h",
danakjc7afae52017-06-20 21:12:4144 "layer_tree_frame_sink_holder.cc",
45 "layer_tree_frame_sink_holder.h",
Fergus Dall9a9d37c2019-05-16 03:32:2546 "mime_utils.cc",
47 "mime_utils.h",
Nicholas Hollingumbad8a05f62019-12-05 05:56:2148 "permission.cc",
49 "permission.h",
Daniel Nicoara64d43752019-06-10 16:57:1550 "pointer.cc",
51 "pointer.h",
Nicholas Hollingume9a6744f2019-10-03 05:57:2952 "pointer_constraint_delegate.h",
Daniel Nicoara64d43752019-06-10 16:57:1553 "pointer_delegate.h",
Daichi Hirono3d3468d2017-11-20 02:02:3454 "seat.cc",
55 "seat.h",
56 "seat_observer.h",
revemanb195f41d2015-11-19 22:16:4857 "shared_memory.cc",
58 "shared_memory.h",
Shawn Galleaa2c085e2018-11-27 18:40:2359 "shell_surface_util.cc",
60 "shell_surface_util.h",
reveman27fe2642015-11-20 06:33:3961 "sub_surface.cc",
62 "sub_surface.h",
revemanb195f41d2015-11-19 22:16:4863 "surface.cc",
64 "surface.h",
65 "surface_delegate.h",
reveman27fe2642015-11-20 06:33:3966 "surface_observer.h",
Peng Huangb07b0652017-06-27 17:25:2267 "surface_tree_host.cc",
68 "surface_tree_host.h",
reveman90b85ed2015-12-10 02:39:3369 "touch.cc",
70 "touch.h",
71 "touch_delegate.h",
kylechar5361171352019-04-26 18:23:1272 "vsync_timing_manager.cc",
73 "vsync_timing_manager.h",
penghuang76977a52016-08-16 15:40:0774 "wm_helper.cc",
75 "wm_helper.h",
revemanb195f41d2015-11-19 22:16:4876 ]
77
78 deps = [
revemanb195f41d2015-11-19 22:16:4879 "//base",
Yuta Hijikata9073b542020-11-25 02:45:4180 "//build:chromeos_buildflags",
revemanb195f41d2015-11-19 22:16:4881 "//cc",
Eliot Courtney9d620302019-06-14 00:40:4982 "//components/viz/host",
denniskempin68de18242016-07-14 00:04:5983 "//device/gamepad",
juncai2f298a82017-04-18 03:51:3984 "//device/gamepad/public/cpp:shared_with_blink",
revemanb195f41d2015-11-19 22:16:4885 "//gpu",
Daniele Castagnaa8ace632019-04-03 18:01:2986 "//gpu/command_buffer/client:raster_interface",
Fergus Dall9a9d37c2019-05-16 03:32:2587 "//net",
88 "//services/data_decoder/public/cpp",
Miyoung Shin2be27f52019-07-27 15:35:3989 "//services/viz/privileged/mojom/compositing",
revemanb195f41d2015-11-19 22:16:4890 "//skia",
Fergus Dall9a9d37c2019-05-16 03:32:2591 "//third_party/blink/public/common",
Manu Cornet81dc4ecd2020-10-16 22:25:4092 "//ui/accessibility:ax_base",
revemanb195f41d2015-11-19 22:16:4893 "//ui/aura",
Henrique Ferreiro41a8f462020-05-21 15:59:1594 "//ui/base/cursor",
Jun Mukaia446ee7f2018-07-20 22:55:1595 "//ui/base/ime",
revemanb195f41d2015-11-19 22:16:4896 "//ui/compositor",
Tommy C. Li092c628a2018-03-29 20:32:1597 "//ui/compositor_extra",
kylechar731f85f92016-12-01 20:50:4698 "//ui/display/manager",
yhanada5d5b8cb52016-12-10 04:16:0299 "//ui/events/devices:devices",
Michael Spang4305feb42019-11-20 18:24:27100 "//ui/events/ozone",
revemanb195f41d2015-11-19 22:16:48101 "//ui/gfx",
102 "//ui/gfx/geometry",
103 "//ui/gl",
Toshiki Kikuchi7c2894d2018-10-10 01:02:09104 "//ui/message_center",
105 "//ui/message_center/public/cpp",
Jingkui Wang9ec45ba2017-09-12 21:27:48106 "//ui/ozone",
revemanb195f41d2015-11-19 22:16:48107 "//ui/views",
skycea631e2016-12-16 21:52:22108 "//ui/wm",
Thiago Farina3b086a02017-05-30 22:32:50109 "//ui/wm/public",
revemanb195f41d2015-11-19 22:16:48110 ]
erosky9f31b772016-10-04 01:10:16111
Mitsuru Oshima19d909272020-06-26 19:13:15112 assert_no_deps = [
113 "//components/arc",
114 "//content/public/browser",
115 "//content/public/common",
116 ]
117
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20118 public_deps = [
Henrique Ferreirob111d602020-05-21 15:47:51119 "//ui/base/cursor:cursor_base",
Henrique Ferreiroe09c0efd2020-05-07 14:29:46120 "//ui/base/cursor/mojom:cursor_type",
Henrique Ferreiro1748fd12020-08-04 12:51:46121 "//ui/base/dragdrop/mojom:mojom_headers",
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20122 ]
Henrique Ferreirob43235cf2020-02-27 01:05:36123
Yuta Hijikata9073b542020-11-25 02:45:41124 if (is_chromeos_ash) {
Shawn Gallea41ed30262018-10-19 17:23:37125 deps += [
Mitsuru Oshima51bf3d5472020-06-17 21:28:34126 "//ash",
Darren Shen50e14952019-05-14 03:40:43127 "//ash/keyboard/ui",
Shawn Gallea41ed30262018-10-19 17:23:37128 "//ash/public/cpp",
Nicholas Hollingume9a6744f2019-10-03 05:57:29129 "//chromeos/constants",
Hidehiko Abe302fc7f2020-10-09 01:43:00130 "//chromeos/crosapi/cpp",
Antonio Gomes2b02c8412020-10-09 22:47:07131 "//chromeos/ui/base",
Antonio Gomes5c833252020-10-13 18:42:19132 "//chromeos/ui/frame",
Hidehiko Abe080ad302020-10-30 17:41:27133 "//ui/base",
Hidehiko Abe4f0a1152020-09-17 10:34:20134 "//ui/events/ozone/layout",
Shawn Gallea41ed30262018-10-19 17:23:37135 ]
136 sources += [
Mikolaj Walczak297ece62019-10-11 02:55:40137 "client_controlled_accelerators.cc",
138 "client_controlled_accelerators.h",
Shawn Gallea41ed30262018-10-19 17:23:37139 "client_controlled_shell_surface.cc",
140 "client_controlled_shell_surface.h",
Nick Diego Yamane82ff17de2020-11-06 18:53:11141 "extended_drag_offer.cc",
142 "extended_drag_offer.h",
143 "extended_drag_source.cc",
144 "extended_drag_source.h",
Merissa Tan2b79cc92020-08-18 00:59:43145 "gamepad.cc",
146 "gamepad.h",
147 "gamepad_observer.h",
Shawn Gallea41ed30262018-10-19 17:23:37148 "gaming_seat.cc",
149 "gaming_seat.h",
150 "input_method_surface.cc",
151 "input_method_surface.h",
152 "input_method_surface_manager.h",
153 "keyboard.cc",
154 "keyboard.h",
Hidehiko Abe23f5e812020-09-20 02:57:19155 "keyboard_modifiers.h",
Shawn Gallea41ed30262018-10-19 17:23:37156 "notification.cc",
157 "notification.h",
158 "notification_surface.cc",
159 "notification_surface.h",
160 "notification_surface_manager.h",
Shawn Gallea41ed30262018-10-19 17:23:37161 "shell_surface.cc",
162 "shell_surface.h",
163 "shell_surface_base.cc",
164 "shell_surface_base.h",
165 "text_input.cc",
166 "text_input.h",
Toshiki Kikuchi87e95102020-07-09 03:32:58167 "toast_surface.cc",
168 "toast_surface.h",
169 "toast_surface_manager.h",
Chloe Pellinga0e11359d2020-08-27 07:26:57170 "ui_lock_controller.cc",
171 "ui_lock_controller.h",
Shawn Gallea0a2ee0a2018-11-05 18:55:04172 "wm_helper_chromeos.cc",
173 "wm_helper_chromeos.h",
Shawn Gallea41ed30262018-10-19 17:23:37174 "xdg_shell_surface.cc",
175 "xdg_shell_surface.h",
Hidehiko Abe4f0a1152020-09-17 10:34:20176 "xkb_tracker.cc",
177 "xkb_tracker.h",
Shawn Gallea41ed30262018-10-19 17:23:37178 ]
Hidehiko Abe3375cfe52020-09-29 08:48:26179 if (use_xkbcommon) {
180 configs += [ ":xkbcommon" ]
181 }
erosky9f31b772016-10-04 01:10:16182 }
Shawn Gallead1908432018-11-12 15:49:39183
184 if (is_chromecast) {
Randy Rossi45693bf2019-07-31 14:57:25185 deps += [ "//ui/accessibility:accessibility" ]
Shawn Gallead1908432018-11-12 15:49:39186 sources += [
187 "fullscreen_shell_surface.cc",
188 "fullscreen_shell_surface.h",
189 ]
190 }
revemanb195f41d2015-11-19 22:16:48191}
192
193source_set("test_support") {
194 testonly = true
195
Daniel Nicoara3e65fb52018-12-05 22:02:46196 sources = [
yjliu00982d22020-10-14 00:31:12197 "mock_vsync_timing_observer.cc",
198 "mock_vsync_timing_observer.h",
Peter Kastingb2600ae32019-05-14 04:42:25199 "test/exo_test_base_views.cc",
200 "test/exo_test_base_views.h",
Daniel Nicoara332761202018-12-10 20:00:59201 "test/exo_test_suite_aura.cc",
202 "test/exo_test_suite_aura.h",
Daniel Nicoara3e65fb52018-12-05 22:02:46203 ]
204
Mirko Bonadei1c098b882020-03-07 04:46:03205 public_deps = [ "//testing/gtest" ]
206
revemanb195f41d2015-11-19 22:16:48207 deps = [
penghuang608523d42016-08-18 17:05:28208 ":exo",
revemanb195f41d2015-11-19 22:16:48209 "//base",
Daniel Nicoara332761202018-12-10 20:00:59210 "//base/test:test_support",
kylechara4a664e62020-01-15 18:46:44211 "//components/viz/service",
brettw15764b12015-11-30 22:11:05212 "//gpu",
revemanb195f41d2015-11-19 22:16:48213 "//skia",
brettw15764b12015-11-30 22:11:05214 "//ui/aura",
Michael Spang539c6f32019-04-03 19:08:52215 "//ui/base/ime/init",
brettw15764b12015-11-30 22:11:05216 "//ui/compositor",
Daniel Nicoaraec62bcf42018-12-05 21:22:42217 "//ui/compositor:test_support",
218 "//ui/display/manager",
brettw15764b12015-11-30 22:11:05219 "//ui/gfx/geometry",
Daniel Nicoara332761202018-12-10 20:00:59220 "//ui/gl:test_support",
denniskempin31a496e2016-12-17 00:20:57221 "//ui/views",
Peter Kastingb2600ae32019-05-14 04:42:25222 "//ui/views:test_support",
Thiago Farina3b086a02017-05-30 22:32:50223 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48224 ]
Shawn Gallea41ed30262018-10-19 17:23:37225
Yuta Hijikata9073b542020-11-25 02:45:41226 if (is_chromeos_ash) {
Daniel Nicoara3e65fb52018-12-05 22:02:46227 sources += [
Shawn Gallead1908432018-11-12 15:49:39228 "test/exo_test_base.cc",
229 "test/exo_test_base.h",
Joel Hockey8ddf2392020-11-05 00:08:28230 "test/exo_test_file_helper.cc",
231 "test/exo_test_file_helper.h",
Shawn Gallead1908432018-11-12 15:49:39232 "test/exo_test_helper.cc",
233 "test/exo_test_helper.h",
Shawn Gallead1908432018-11-12 15:49:39234 ]
Shawn Gallea41ed30262018-10-19 17:23:37235 deps += [
Scott Violet6ac56412018-12-19 17:25:50236 "//ash:test_support",
Shawn Gallea41ed30262018-10-19 17:23:37237 "//ash/public/cpp",
Antonio Gomes2b02c8412020-10-09 22:47:07238 "//chromeos/ui/base",
Shawn Gallea41ed30262018-10-19 17:23:37239 ]
240 }
revemanb195f41d2015-11-19 22:16:48241}
242
243source_set("unit_tests") {
244 testonly = true
245
revemanb195f41d2015-11-19 22:16:48246 deps = [
reveman27fe2642015-11-20 06:33:39247 ":exo",
248 ":test_support",
brettw15764b12015-11-30 22:11:05249 "//base",
denniskempin68de18242016-07-14 00:04:59250 "//base/test:test_support",
brettw15764b12015-11-30 22:11:05251 "//cc",
eseckler599d86bb2017-03-15 09:02:55252 "//cc:test_support",
revemanb195f41d2015-11-19 22:16:48253 "//components/user_manager",
Fady Samuel764e0a42017-07-13 22:35:44254 "//components/viz/service",
Fady Samuelc296f5fb2017-07-21 04:02:19255 "//components/viz/test:test_support",
Fergus Dall9a9d37c2019-05-16 03:32:25256 "//content/test:test_support",
denniskempin68de18242016-07-14 00:04:59257 "//device/gamepad:test_helpers",
Daniele Castagnaa8ace632019-04-03 18:01:29258 "//gpu/command_buffer/client:raster_interface",
revemanb195f41d2015-11-19 22:16:48259 "//skia",
reveman39b32c872015-12-08 05:34:05260 "//testing/gmock",
revemanb195f41d2015-11-19 22:16:48261 "//testing/gtest",
brettw15764b12015-11-30 22:11:05262 "//ui/aura",
Alex Zhang3f8482b2017-08-01 15:16:24263 "//ui/compositor:test_support",
Tommy C. Li092c628a2018-03-29 20:32:15264 "//ui/compositor_extra",
reveman5cacf70c2015-12-09 22:50:02265 "//ui/events:dom_keycode_converter",
reveman39b32c872015-12-08 05:34:05266 "//ui/events:test_support",
Michael Spang4305feb42019-11-20 18:24:27267 "//ui/events/ozone",
brettw15764b12015-11-30 22:11:05268 "//ui/gfx",
revemanb195f41d2015-11-19 22:16:48269 "//ui/message_center",
brettw15764b12015-11-30 22:11:05270 "//ui/views",
skycea631e2016-12-16 21:52:22271 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48272 ]
brettwb5440a92015-12-03 00:47:12273
Nico Weber5b5acd82020-01-13 19:55:59274 sources = [ "mime_utils_unittest.cc" ]
Fergus Dall9a9d37c2019-05-16 03:32:25275
brettwb5440a92015-12-03 00:47:12276 if (use_ozone) {
277 deps += [ "//ui/ozone" ]
278 }
Shawn Gallea41ed30262018-10-19 17:23:37279
Yuta Hijikata9073b542020-11-25 02:45:41280 if (is_chromeos_ash) {
Fergus Dall9a9d37c2019-05-16 03:32:25281 sources += [
Shawn Gallead1908432018-11-12 15:49:39282 "../../ui/events/ozone/gamepad/gamepad_event.cc",
283 "buffer_unittest.cc",
284 "client_controlled_shell_surface_unittest.cc",
285 "data_device_unittest.cc",
286 "data_offer_unittest.cc",
287 "data_source_unittest.cc",
288 "display_unittest.cc",
Tetsui Ohkuboaec98802020-06-04 00:33:56289 "drag_drop_operation_unittest.cc",
Nick Diego Yamanebcdf53a2020-10-30 17:05:42290 "extended_drag_source_unittest.cc",
Merissa Tan2b79cc92020-08-18 00:59:43291 "gamepad_unittest.cc",
Shawn Gallead1908432018-11-12 15:49:39292 "gaming_seat_unittest.cc",
Tetsui Ohkubo57fcf732020-02-10 03:09:10293 "input_method_surface_unittest.cc",
Shawn Gallead1908432018-11-12 15:49:39294 "keyboard_unittest.cc",
295 "notification_unittest.cc",
Nicholas Hollingumbad8a05f62019-12-05 05:56:21296 "permission_unittest.cc",
Shawn Gallead1908432018-11-12 15:49:39297 "pointer_unittest.cc",
298 "seat_unittest.cc",
299 "shared_memory_unittest.cc",
300 "shell_surface_unittest.cc",
301 "sub_surface_unittest.cc",
302 "surface_unittest.cc",
303 "text_input_unittest.cc",
Toshiki Kikuchi87e95102020-07-09 03:32:58304 "toast_surface_unittest.cc",
Shawn Gallead1908432018-11-12 15:49:39305 "touch_unittest.cc",
Chloe Pellinga0e11359d2020-08-27 07:26:57306 "ui_lock_controller_unittest.cc",
yjliu00982d22020-10-14 00:31:12307 "wm_helper_chromeos_unittest.cc",
Nicholas Hollingumdf801312019-09-30 05:31:17308 "xdg_shell_surface_unittest.cc",
Shawn Gallead1908432018-11-12 15:49:39309 ]
310
Shawn Gallea41ed30262018-10-19 17:23:37311 deps += [
312 "//ash",
Scott Violet6ac56412018-12-19 17:25:50313 "//ash:test_support",
Darren Shen50e14952019-05-14 03:40:43314 "//ash/keyboard/ui",
Shawn Gallea41ed30262018-10-19 17:23:37315 "//ash/public/cpp",
Yuta Hijikata9073b542020-11-25 02:45:41316 "//build:chromeos_buildflags",
Prabir Pradhan0eb25912020-01-08 18:26:42317 "//chromeos/constants",
Antonio Gomes7cdd2662020-10-19 01:08:45318 "//chromeos/ui/base",
Antonio Gomes5c833252020-10-13 18:42:19319 "//chromeos/ui/frame",
Yuichiro Hanada3a6c31d02020-06-03 08:45:12320 "//ui/base:test_support",
Henrique Ferreiroe09c0efd2020-05-07 14:29:46321 "//ui/base/cursor/mojom:cursor_type",
Henrique Ferreiro1748fd12020-08-04 12:51:46322 "//ui/base/dragdrop/mojom:mojom_shared",
Shawn Gallea41ed30262018-10-19 17:23:37323 ]
324 }
Shawn Gallead1908432018-11-12 15:49:39325
326 if (is_chromecast) {
Randy Rossi45693bf2019-07-31 14:57:25327 deps += [ "//ui/accessibility:accessibility" ]
Fergus Dall9a9d37c2019-05-16 03:32:25328 sources += [ "fullscreen_shell_surface_unittest.cc" ]
Shawn Gallead1908432018-11-12 15:49:39329 }
revemanb195f41d2015-11-19 22:16:48330}
331
332test("exo_unittests") {
Dirk Pranke79d065d2020-08-29 03:28:30333 use_xvfb = use_xvfb_in_this_config
334
Nico Weber5b5acd82020-01-13 19:55:59335 sources = [ "test/run_all_unittests.cc" ]
oshima2a44e112016-06-23 17:59:18336
revemanb195f41d2015-11-19 22:16:48337 deps = [
Daniel Nicoara332761202018-12-10 20:00:59338 ":test_support",
revemanb195f41d2015-11-19 22:16:48339 ":unit_tests",
brettw15764b12015-11-30 22:11:05340 "//base",
341 "//base/test:test_support",
Yuta Hijikata9073b542020-11-25 02:45:41342 "//build:chromeos_buildflags",
Scott Violet260dabf2017-07-14 17:17:51343 "//cc:test_support",
344 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59345 "//device/gamepad:test_helpers",
Ken Rockot9b26bc52018-07-04 19:57:49346 "//mojo/core/embedder",
skyd06586d2017-02-22 17:46:36347 "//testing/gtest",
348 "//ui/aura",
Scott Violet348ecf72017-11-28 18:28:19349 "//ui/aura:test_support",
skyd06586d2017-02-22 17:46:36350 "//ui/base",
sky25b49b282017-03-31 14:41:13351 "//ui/compositor:test_support",
Jun Mukai17c449d2018-04-13 18:38:38352 "//ui/display:display_manager_test_api",
skyd06586d2017-02-22 17:46:36353 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48354 ]
oshima2a44e112016-06-23 17:59:18355
Steven Bennetts6972bbe2018-12-05 02:18:53356 data_deps = []
oshima2a44e112016-06-23 17:59:18357
Sean McAllister8ccdb7642020-07-30 20:05:52358 if (is_linux || is_chromeos) {
revemanb195f41d2015-11-19 22:16:48359 deps += [ "//components/exo/wayland:unit_tests" ]
360 }
Shawn Gallea41ed30262018-10-19 17:23:37361
Yuta Hijikata9073b542020-11-25 02:45:41362 if (is_chromeos_ash) {
Shawn Gallea41ed30262018-10-19 17:23:37363 sources += [
364 "../../ash/test/ash_test_suite.cc",
365 "../../ash/test/ash_test_suite.h",
366 ]
367
368 deps += [
Scott Violet6ac56412018-12-19 17:25:50369 "//ash:test_support",
Shawn Gallea41ed30262018-10-19 17:23:37370 "//ash/public/cpp",
371 ]
372
373 data_deps += [
Shawn Gallea41ed30262018-10-19 17:23:37374 "//ash/resources:ash_test_resources_100_percent",
375 "//ash/resources:ash_test_resources_200_percent",
Natalie Chouinardf699c352019-12-16 20:23:30376 "//ash/strings:ash_test_strings",
Shawn Gallea41ed30262018-10-19 17:23:37377 ]
378 }
revemanb195f41d2015-11-19 22:16:48379}