summaryrefslogtreecommitdiff
path: root/chromium/ui/android/BUILD.gn
blob: ec14b8b8b33225dae33bf2dfac87201fcfa7047a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
# Copyright 2015 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/config/android/rules.gni")
import("//build/config/locales.gni")
import("//testing/test.gni")

assert(is_android)

component("android") {
  output_name = "ui_android"
  sources = [
    "animation_utils.h",
    "delegated_frame_host_android.cc",
    "delegated_frame_host_android.h",
    "display_android_manager.cc",
    "display_android_manager.h",
    "edge_effect.cc",
    "edge_effect.h",
    "event_forwarder.cc",
    "event_forwarder.h",
    "handle_view_resources.cc",
    "handle_view_resources.h",
    "overscroll_glow.cc",
    "overscroll_glow.h",
    "overscroll_refresh.cc",
    "overscroll_refresh.h",
    "overscroll_refresh_handler.cc",
    "overscroll_refresh_handler.h",
    "resources/nine_patch_resource.cc",
    "resources/nine_patch_resource.h",
    "resources/resource.cc",
    "resources/resource.h",
    "resources/resource_factory.cc",
    "resources/resource_manager.h",
    "resources/resource_manager_impl.cc",
    "resources/resource_manager_impl.h",
    "resources/ui_resource_provider.h",
    "screen_android.h",
    "ui_android_export.h",
    "view_android.cc",
    "view_android.h",
    "view_android_observer.h",
    "window_android.cc",
    "window_android.h",
    "window_android_compositor.h",
    "window_android_observer.h",
  ]

  defines = [ "UI_ANDROID_IMPLEMENTATION" ]

  deps = [
    ":java_enums_srcjar",
    ":ui_android_jni_headers",
    "//base",
    "//cc",
    "//components/viz/client",
    "//components/viz/common",
    "//components/viz/host",
    "//services/viz/public/mojom",
    "//skia",
    "//third_party/blink/public:blink_headers",
    "//ui/base",
    "//ui/base/cursor:cursor_base",
    "//ui/base/cursor/mojom:cursor_type",
    "//ui/compositor",
    "//ui/display",
    "//ui/events",
    "//ui/events/devices",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/touch_selection",
    "//url",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "dummy_screen_android.cc",
    "dummy_screen_android.h",
  ]

  deps = [
    "//ui/android",
    "//ui/display",
  ]
}

generate_jni("ui_android_jni_headers") {
  sources = [
    "java/src/org/chromium/ui/OverscrollRefreshHandler.java",
    "java/src/org/chromium/ui/base/EventForwarder.java",
    "java/src/org/chromium/ui/base/ViewAndroidDelegate.java",
    "java/src/org/chromium/ui/base/WindowAndroid.java",
    "java/src/org/chromium/ui/display/DisplayAndroidManager.java",
    "java/src/org/chromium/ui/resources/HandleViewResources.java",
    "java/src/org/chromium/ui/resources/ResourceFactory.java",
    "java/src/org/chromium/ui/resources/ResourceManager.java",
  ]
}

java_cpp_enum("java_enums_srcjar") {
  sources = [
    "../base/ime/text_input_action.h",
    "../base/ime/text_input_type.h",
    "../base/page_transition_types.h",
    "../base/pointer/pointer_device.h",
    "../base/ui_base_types.h",
    "../events/android/gesture_event_type.h",
    "../gfx/android/java_bitmap.h",
    "overscroll_refresh.h",
    "resources/resource_manager.h",
    "resources/system_ui_resource_type.h",
  ]
}

java_strings_grd("ui_strings_grd") {
  grd_file = "java/strings/android_ui_strings.grd"
  outputs = [ "values/android_ui_strings.xml" ] +
            process_file_template(
                android_bundle_locales_as_resources,
                [ "values-{{source_name_part}}/android_ui_strings.xml" ])
}

android_resources("ui_java_resources") {
  create_srcjar = false
  sources = [
    "java/res/color/blue_when_enabled.xml",
    "java/res/color/chip_background_color.xml",
    "java/res/color/chip_ripple_color.xml",
    "java/res/color/chip_stroke_color.xml",
    "java/res/color/chip_text_color.xml",
    "java/res/color/chip_text_color_secondary.xml",
    "java/res/color/default_text_color_inverse_list.xml",
    "java/res/color/default_text_color_light_list.xml",
    "java/res/color/default_text_color_list.xml",
    "java/res/color/default_text_color_secondary_light_list.xml",
    "java/res/color/default_text_color_secondary_list.xml",
    "java/res/color/filled_button_bg.xml",
    "java/res/color/filled_button_ripple_color.xml",
    "java/res/color/text_button_ripple_color.xml",
    "java/res/drawable-hdpi/btn_close.png",
    "java/res/drawable-hdpi/ic_expand_less_black_24dp.png",
    "java/res/drawable-hdpi/ic_expand_more_black_24dp.png",
    "java/res/drawable-hdpi/popup_bg.9.png",
    "java/res/drawable-mdpi/btn_close.png",
    "java/res/drawable-mdpi/ic_expand_less_black_24dp.png",
    "java/res/drawable-mdpi/ic_expand_more_black_24dp.png",
    "java/res/drawable-mdpi/popup_bg.9.png",
    "java/res/drawable-v21/popup_bg_tinted.xml",
    "java/res/drawable-v21/transition_expand_less_expand_more_black_24dp.xml",
    "java/res/drawable-v21/transition_expand_more_expand_less_black_24dp.xml",
    "java/res/drawable-xhdpi/btn_close.png",
    "java/res/drawable-xhdpi/ic_expand_less_black_24dp.png",
    "java/res/drawable-xhdpi/ic_expand_more_black_24dp.png",
    "java/res/drawable-xhdpi/popup_bg.9.png",
    "java/res/drawable-xxhdpi/btn_close.png",
    "java/res/drawable-xxhdpi/ic_expand_less_black_24dp.png",
    "java/res/drawable-xxhdpi/ic_expand_more_black_24dp.png",
    "java/res/drawable-xxhdpi/popup_bg.9.png",
    "java/res/drawable-xxxhdpi/btn_close.png",
    "java/res/drawable-xxxhdpi/ic_expand_less_black_24dp.png",
    "java/res/drawable-xxxhdpi/ic_expand_more_black_24dp.png",
    "java/res/drawable-xxxhdpi/popup_bg.9.png",
    "java/res/drawable/drag_handlebar.xml",
    "java/res/drawable/ic_expand_more_horizontal_black_24dp.xml",
    "java/res/drawable/popup_bg_tinted.xml",
    "java/res/font/accent_font.xml",
    "java/res/layout/dropdown_footer_wrapper_jellybean.xml",
    "java/res/layout/dropdown_item.xml",
    "java/res/layout/dropdown_window.xml",
    "java/res/values-ldrtl/dimens.xml",
    "java/res/values-ldrtl/values.xml",
    "java/res/values-night/colors.xml",
    "java/res/values-night/dimens.xml",
    "java/res/values-sw600dp/values.xml",
    "java/res/values-sw720dp-v17/values.xml",
    "java/res/values-v17/styles.xml",
    "java/res/values-v21/styles.xml",
    "java/res/values/attrs.xml",
    "java/res/values/color_palette.xml",
    "java/res/values/dimens.xml",
    "java/res/values/font_certs.xml",
    "java/res/values/ids.xml",
    "java/res/values/one_off_colors.xml",
    "java/res/values/semantic_colors_adaptive.xml",
    "java/res/values/semantic_colors_non_adaptive.xml",
    "java/res/values/strings.xml",
    "java/res/values/values.xml",
  ]

  deps = [ ":ui_strings_grd" ]
}

java_group("ui_java") {
  deps = [
    ":ui_full_java",
    ":ui_utils_java",
  ]
}

# This is created explicitly for remoting_apk to avoid including
# unused JNI functions.
android_library("ui_utils_java") {
  sources = [
    "java/src/org/chromium/ui/ContactsPickerListener.java",
    "java/src/org/chromium/ui/KeyboardVisibilityDelegate.java",
    "java/src/org/chromium/ui/UiUtils.java",
  ]
  deps = [
    "//base:base_java",
    "//components/payments/mojom:mojom_java",
    "//third_party/android_deps:androidx_annotation_annotation_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
    "//third_party/android_deps:androidx_core_core_java",
    "//third_party/blink/public/mojom:mojom_platform_java",
  ]
}

android_library("ui_full_java") {
  sources = [
    "java/src/org/chromium/ui/AsyncViewProvider.java",
    "java/src/org/chromium/ui/AsyncViewStub.java",
    "java/src/org/chromium/ui/DeferredViewStubInflationProvider.java",
    "java/src/org/chromium/ui/DropdownAdapter.java",
    "java/src/org/chromium/ui/DropdownDividerDrawable.java",
    "java/src/org/chromium/ui/DropdownItem.java",
    "java/src/org/chromium/ui/DropdownItemBase.java",
    "java/src/org/chromium/ui/DropdownPopupWindow.java",
    "java/src/org/chromium/ui/DropdownPopupWindowImpl.java",
    "java/src/org/chromium/ui/DropdownPopupWindowInterface.java",
    "java/src/org/chromium/ui/DropdownPopupWindowJellyBean.java",
    "java/src/org/chromium/ui/HorizontalListDividerDrawable.java",
    "java/src/org/chromium/ui/LayoutInflaterUtils.java",
    "java/src/org/chromium/ui/OverscrollRefreshHandler.java",
    "java/src/org/chromium/ui/UiSwitches.java",
    "java/src/org/chromium/ui/VSyncMonitor.java",
    "java/src/org/chromium/ui/ViewProvider.java",
    "java/src/org/chromium/ui/base/ActivityAndroidPermissionDelegate.java",
    "java/src/org/chromium/ui/base/ActivityKeyboardVisibilityDelegate.java",
    "java/src/org/chromium/ui/base/ActivityWindowAndroid.java",
    "java/src/org/chromium/ui/base/AndroidPermissionDelegate.java",
    "java/src/org/chromium/ui/base/AndroidPermissionDelegateWithRequester.java",
    "java/src/org/chromium/ui/base/ApplicationViewportInsetSupplier.java",
    "java/src/org/chromium/ui/base/Clipboard.java",
    "java/src/org/chromium/ui/base/DeviceFormFactor.java",
    "java/src/org/chromium/ui/base/EventForwarder.java",
    "java/src/org/chromium/ui/base/EventOffsetHandler.java",
    "java/src/org/chromium/ui/base/IdleDetector.java",
    "java/src/org/chromium/ui/base/ImmutableWeakReference.java",
    "java/src/org/chromium/ui/base/IntentWindowAndroid.java",
    "java/src/org/chromium/ui/base/LocalizationUtils.java",
    "java/src/org/chromium/ui/base/PermissionCallback.java",
    "java/src/org/chromium/ui/base/PhotoPickerDelegate.java",
    "java/src/org/chromium/ui/base/PhotoPickerListener.java",
    "java/src/org/chromium/ui/base/ResourceBundle.java",
    "java/src/org/chromium/ui/base/SPenSupport.java",
    "java/src/org/chromium/ui/base/SelectFileDialog.java",
    "java/src/org/chromium/ui/base/TouchDevice.java",
    "java/src/org/chromium/ui/base/ViewAndroidDelegate.java",
    "java/src/org/chromium/ui/base/ViewUtils.java",
    "java/src/org/chromium/ui/base/WindowAndroid.java",
    "java/src/org/chromium/ui/display/DisplayAndroid.java",
    "java/src/org/chromium/ui/display/DisplayAndroidManager.java",
    "java/src/org/chromium/ui/display/DisplaySwitches.java",
    "java/src/org/chromium/ui/display/DisplayUtil.java",
    "java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java",
    "java/src/org/chromium/ui/display/VirtualDisplayAndroid.java",
    "java/src/org/chromium/ui/drawable/AnimationLooper.java",
    "java/src/org/chromium/ui/drawable/StateListDrawableBuilder.java",
    "java/src/org/chromium/ui/events/devices/InputDeviceObserver.java",
    "java/src/org/chromium/ui/gfx/Animation.java",
    "java/src/org/chromium/ui/gfx/BitmapHelper.java",
    "java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",
    "java/src/org/chromium/ui/gl/SurfaceTextureListener.java",
    "java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java",
    "java/src/org/chromium/ui/interpolators/BakedBezierInterpolator.java",
    "java/src/org/chromium/ui/modaldialog/DialogDismissalCause.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManager.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManagerHolder.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogProperties.java",
    "java/src/org/chromium/ui/modaldialog/SimpleModalDialogController.java",
    "java/src/org/chromium/ui/modelutil/ForwardingListObservable.java",
    "java/src/org/chromium/ui/modelutil/LayoutViewBuilder.java",
    "java/src/org/chromium/ui/modelutil/LazyConstructionPropertyMcp.java",
    "java/src/org/chromium/ui/modelutil/ListModel.java",
    "java/src/org/chromium/ui/modelutil/ListModelBase.java",
    "java/src/org/chromium/ui/modelutil/ListModelChangeProcessor.java",
    "java/src/org/chromium/ui/modelutil/ListObservable.java",
    "java/src/org/chromium/ui/modelutil/ListObservableImpl.java",
    "java/src/org/chromium/ui/modelutil/MVCListAdapter.java",
    "java/src/org/chromium/ui/modelutil/ModelListAdapter.java",
    "java/src/org/chromium/ui/modelutil/PropertyKey.java",
    "java/src/org/chromium/ui/modelutil/PropertyListModel.java",
    "java/src/org/chromium/ui/modelutil/PropertyModel.java",
    "java/src/org/chromium/ui/modelutil/PropertyModelChangeProcessor.java",
    "java/src/org/chromium/ui/modelutil/PropertyObservable.java",
    "java/src/org/chromium/ui/modelutil/RecyclerViewAdapter.java",
    "java/src/org/chromium/ui/modelutil/SimpleList.java",
    "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewAdapter.java",
    "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewMcp.java",
    "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewMcpBase.java",
    "java/src/org/chromium/ui/resources/HandleViewResources.java",
    "java/src/org/chromium/ui/resources/LayoutResource.java",
    "java/src/org/chromium/ui/resources/Resource.java",
    "java/src/org/chromium/ui/resources/ResourceExtractor.java",
    "java/src/org/chromium/ui/resources/ResourceFactory.java",
    "java/src/org/chromium/ui/resources/ResourceLoader.java",
    "java/src/org/chromium/ui/resources/ResourceManager.java",
    "java/src/org/chromium/ui/resources/async/AsyncPreloadResourceLoader.java",
    "java/src/org/chromium/ui/resources/dynamics/BitmapDynamicResource.java",
    "java/src/org/chromium/ui/resources/dynamics/DynamicResource.java",
    "java/src/org/chromium/ui/resources/dynamics/DynamicResourceLoader.java",
    "java/src/org/chromium/ui/resources/dynamics/ViewResourceAdapter.java",
    "java/src/org/chromium/ui/resources/dynamics/ViewResourceInflater.java",
    "java/src/org/chromium/ui/resources/statics/NinePatchData.java",
    "java/src/org/chromium/ui/resources/statics/StaticResource.java",
    "java/src/org/chromium/ui/resources/statics/StaticResourceLoader.java",
    "java/src/org/chromium/ui/resources/system/SystemResourceLoader.java",
    "java/src/org/chromium/ui/text/NoUnderlineClickableSpan.java",
    "java/src/org/chromium/ui/text/SpanApplier.java",
    "java/src/org/chromium/ui/util/AccessibilityUtil.java",
    "java/src/org/chromium/ui/util/ColorUtils.java",
    "java/src/org/chromium/ui/util/TokenHolder.java",
    "java/src/org/chromium/ui/vr/VrModeObserver.java",
    "java/src/org/chromium/ui/vr/VrModeProvider.java",
    "java/src/org/chromium/ui/widget/AnchoredPopupWindow.java",
    "java/src/org/chromium/ui/widget/ButtonCompat.java",
    "java/src/org/chromium/ui/widget/CheckableImageView.java",
    "java/src/org/chromium/ui/widget/ChipView.java",
    "java/src/org/chromium/ui/widget/ChromeBulletSpan.java",
    "java/src/org/chromium/ui/widget/ChromeImageButton.java",
    "java/src/org/chromium/ui/widget/ChromeImageView.java",
    "java/src/org/chromium/ui/widget/OptimizedFrameLayout.java",
    "java/src/org/chromium/ui/widget/RectProvider.java",
    "java/src/org/chromium/ui/widget/RippleBackgroundHelper.java",
    "java/src/org/chromium/ui/widget/TextViewWithClickableSpans.java",
    "java/src/org/chromium/ui/widget/TextViewWithLeading.java",
    "java/src/org/chromium/ui/widget/Toast.java",
    "java/src/org/chromium/ui/widget/UiWidgetFactory.java",
    "java/src/org/chromium/ui/widget/ViewLookupCachingFrameLayout.java",
    "java/src/org/chromium/ui/widget/ViewRectProvider.java",
  ]
  deps = [
    ":ui_java_resources",
    ":ui_utils_java",
    "//base:base_java",
    "//base:jni_java",
    "//third_party/android_deps:android_support_v7_appcompat_java",
    "//third_party/android_deps:androidx_annotation_annotation_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
    "//third_party/android_deps:androidx_asynclayoutinflater_asynclayoutinflater_java",
    "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
    "//ui/base/cursor/mojom:cursor_type_java",
  ]
  annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  srcjar_deps = [ ":java_enums_srcjar" ]
  resources_package = "org.chromium.ui"
}

android_library("ui_java_test_support") {
  testonly = true
  sources = [
    "javatests/src/org/chromium/ui/test/util/DisableAnimationsTestRule.java",
    "javatests/src/org/chromium/ui/test/util/DummyUiActivity.java",
    "javatests/src/org/chromium/ui/test/util/DummyUiActivityTestCase.java",
    "javatests/src/org/chromium/ui/test/util/NightModeTestUtils.java",
    "javatests/src/org/chromium/ui/test/util/RenderTestRule.java",
    "javatests/src/org/chromium/ui/test/util/UiDisableIf.java",
    "javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java",
    "javatests/src/org/chromium/ui/test/util/UiRestriction.java",
    "javatests/src/org/chromium/ui/test/util/UiRestrictionSkipCheck.java",
    "javatests/src/org/chromium/ui/test/util/modelutil/FakeViewProvider.java",
    "junit/src/org/chromium/ui/base/TestActivity.java",
  ]
  deps = [
    ":ui_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//third_party/android_deps:android_support_v7_appcompat_java",
    "//third_party/android_deps:androidx_annotation_annotation_java",
    "//third_party/android_support_test_runner:rules_java",
    "//third_party/junit",
  ]
}

android_resources("ui_javatest_resources") {
  testonly = true
  create_srcjar = false
  sources = [
    "junit/res/layout/inflated_view.xml",
    "junit/res/layout/layout_view_builder_test.xml",
    "junit/res/layout/main_view.xml",
  ]
  android_manifest = "junit/AndroidManifest.xml"
}

junit_binary("ui_junit_tests") {
  sources = [
    "junit/src/org/chromium/ui/AsyncViewProviderTest.java",
    "junit/src/org/chromium/ui/AsyncViewStubTest.java",
    "junit/src/org/chromium/ui/base/ActivityAndroidPermissionDelegateTest.java",
    "junit/src/org/chromium/ui/base/ApplicationViewportInsetSupplierTest.java",
    "junit/src/org/chromium/ui/base/ClipboardTest.java",
    "junit/src/org/chromium/ui/base/EventOffsetHandlerTest.java",
    "junit/src/org/chromium/ui/base/LocalizationUtilsTest.java",
    "junit/src/org/chromium/ui/base/SelectFileDialogTest.java",
    "junit/src/org/chromium/ui/drawable/AnimationLooperTest.java",
    "junit/src/org/chromium/ui/drawable/StateListDrawableBuilderTest.java",
    "junit/src/org/chromium/ui/modaldialog/ModalDialogManagerTest.java",
    "junit/src/org/chromium/ui/modelutil/LazyConstructionPropertyMcpTest.java",
    "junit/src/org/chromium/ui/modelutil/ListModelBaseTest.java",
    "junit/src/org/chromium/ui/modelutil/ModelListAdapterTest.java",
    "junit/src/org/chromium/ui/modelutil/PropertyListModelTest.java",
    "junit/src/org/chromium/ui/modelutil/PropertyModelTest.java",
    "junit/src/org/chromium/ui/modelutil/SimpleListObservableTest.java",
    "junit/src/org/chromium/ui/modelutil/SimpleRecyclerViewAdapterTest.java",
    "junit/src/org/chromium/ui/resources/dynamics/BitmapDynamicResourceTest.java",
    "junit/src/org/chromium/ui/resources/dynamics/ViewResourceAdapterTest.java",
    "junit/src/org/chromium/ui/shadows/ShadowAnimatedStateListDrawable.java",
    "junit/src/org/chromium/ui/shadows/ShadowAppCompatResources.java",
    "junit/src/org/chromium/ui/shadows/ShadowAppCompatResourcesTest.java",
    "junit/src/org/chromium/ui/shadows/ShadowAsyncLayoutInflater.java",
    "junit/src/org/chromium/ui/text/SpanApplierTest.java",
    "junit/src/org/chromium/ui/util/TokenHolderTest.java",
    "junit/src/org/chromium/ui/widget/AnchoredPopupWindowTest.java",
    "junit/src/org/chromium/ui/widget/ViewLookupCachingFrameLayoutTest.java",
  ]
  deps = [
    ":ui_java",
    ":ui_java_test_support",
    ":ui_javatest_resources",
    "//base:base_java",
    "//base:base_java_test_support",
    "//base:base_junit_test_support",
    "//base/test:test_support_java",
    "//third_party/android_deps:androidx_annotation_annotation_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
    "//third_party/android_deps:androidx_asynclayoutinflater_asynclayoutinflater_java",
    "//third_party/android_deps:androidx_test_core_java",
    "//third_party/android_deps:androidx_test_ext_junit_java",
    "//third_party/android_deps:androidx_test_runner_java",
    "//third_party/hamcrest:hamcrest_java",
    "//third_party/mockito:mockito_java",
  ]
  android_manifest = "junit/AndroidManifest.xml"
}

test("ui_android_unittests") {
  sources = [
    # Clipboard unittests are run here for Android as gtests on Android are not
    # sharded. On other OSs these are run as part of interactive_ui_tests.
    "//ui/base/clipboard/clipboard_unittest.cc",
    "overscroll_refresh_unittest.cc",
    "resources/resource_manager_impl_unittest.cc",
    "run_all_unittests.cc",
    "view_android_unittests.cc",
  ]
  deps = [
    ":android",
    ":java_enums_srcjar",
    ":ui_java",
    "//base",
    "//base/test:test_support",
    "//cc",
    "//cc:test_support",
    "//components/viz/host:host",
    "//components/viz/test:test_support",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/base",
    "//ui/base/clipboard",
    "//ui/base/clipboard:clipboard_test_support",
    "//ui/compositor",
    "//ui/events",
    "//ui/gfx",
    "//ui/resources:ui_test_pak",
  ]
}

android_library("clipboard_java_test_support") {
  testonly = true
  annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]

  sources =
      [ "javatests/src/org/chromium/ui/base/ClipboardAndroidTestSupport.java" ]

  deps = [
    "//base:base_java",
    "//base:base_java_test_support",
    "//base:jni_java",
  ]
}

android_library("ui_javatests") {
  testonly = true

  sources = [ "javatests/src/org/chromium/ui/base/ClipboardAndroidTest.java" ]

  deps = [
    ":clipboard_java_test_support",
    ":ui_java",
    ":ui_java_test_support",
    "//base:base_java",
    "//base:base_java_test_support",
    "//base:jni_java",
    "//content/public/test/android:content_java_test_support",
    "//third_party/android_deps:androidx_test_runner_java",
    "//third_party/junit",
  ]
}

generate_jni("ui_javatest_jni_headers") {
  testonly = true

  sources =
      [ "javatests/src/org/chromium/ui/base/ClipboardAndroidTestSupport.java" ]
}