File: BUILD.gn

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (934 lines) | stat: -rw-r--r-- 41,949 bytes parent folder | download | duplicates (2)
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
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
# Copyright 2015 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/buildflag_header.gni")
import("//build/config/android/rules.gni")
import("//build/rust/rust_static_library.gni")
import("//testing/test.gni")
import("//third_party/jni_zero/jni_zero.gni")
import("//tools/grit/grit_rule.gni")

assert(is_android)

declare_args() {
  # Include the new texture compressor in build (still subject to feature
  # flags).
  # If toolchain roll breaks due to usage of nightly features, it is OK to flip
  # this off. Please ping OWNERS of texture_compressor on the CL.
  enable_new_texture_compressor = true
}

buildflag_header("buildflags") {
  header = "buildflags.h"
  flags = [
    "UI_ANDROID_ENABLE_NEW_TEXTURE_COMPRESSOR=$enable_new_texture_compressor",
  ]
}

component("android") {
  output_name = "ui_android"
  sources = [
    "animation_utils.h",
    "browser_controls_offset_tag_constraints.h",
    "browser_controls_offset_tag_definitions.cc",
    "browser_controls_offset_tag_definitions.h",
    "bytes_formatting_android.cc",
    "color_utils_android.cc",
    "color_utils_android.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",
    "modal_dialog_manager_bridge.cc",
    "modal_dialog_manager_bridge.h",
    "modal_dialog_wrapper.cc",
    "modal_dialog_wrapper.h",
    "overscroll_glow.cc",
    "overscroll_glow.h",
    "overscroll_refresh.cc",
    "overscroll_refresh.h",
    "overscroll_refresh_handler.cc",
    "overscroll_refresh_handler.h",
    "progress_bar_config.h",
    "resources/etc1_utils.cc",
    "resources/etc1_utils.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",
    "ui_android_feature_map.cc",
    "ui_android_features.cc",
    "ui_android_features.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 = [
    ":buildflags",
    ":java_enums_srcjar",
    ":ui_android_jni_headers",
    "//base",
    "//cc/slim",
    "//components/viz/client",
    "//components/viz/common",
    "//components/viz/host",
    "//services/viz/public/mojom",
    "//skia",
    "//third_party/android_opengl/etc1",
    "//third_party/blink/public:blink_headers",
    "//ui/base",
    "//ui/base/cursor",
    "//ui/base/cursor/mojom:cursor_type",
    "//ui/compositor",
    "//ui/display",
    "//ui/display/util:util",
    "//ui/events",
    "//ui/events/blink:blink",
    "//ui/events/devices",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/touch_selection",
    "//url",
  ]

  if (enable_new_texture_compressor) {
    deps += [ ":texture_compressor" ]
  }
}

java_cpp_features("java_features_srcjar") {
  # External code should depend on ":android_java" instead.
  visibility = [ ":*" ]
  sources = [ "//ui/android/ui_android_features.cc" ]
  template = "//ui/android/java_templates/UiAndroidFeatures.java.tmpl"
}

# A minimal library used to expose ui features to webview
android_library("ui_android_features_java") {
  srcjar_deps = [ ":java_features_srcjar" ]
}

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

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

generate_jni("ui_android_jni_headers") {
  sources = [
    "java/src/org/chromium/ui/BrowserControlsOffsetTagConstraints.java",
    "java/src/org/chromium/ui/BrowserControlsOffsetTagDefinitions.java",
    "java/src/org/chromium/ui/ModalDialogWrapper.java",
    "java/src/org/chromium/ui/OffsetTagConstraints.java",
    "java/src/org/chromium/ui/OverscrollRefreshHandler.java",
    "java/src/org/chromium/ui/base/BytesFormatting.java",
    "java/src/org/chromium/ui/base/EventForwarder.java",
    "java/src/org/chromium/ui/base/LocalizationUtils.java",
    "java/src/org/chromium/ui/base/UiAndroidFeatureMap.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/dragdrop/DropDataAndroid.java",
    "java/src/org/chromium/ui/events/devices/InputDeviceObserver.java",
    "java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",
    "java/src/org/chromium/ui/listmenu/MenuModelBridge.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManagerBridge.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",
  ]
}

generate_jni("menu_model_bridge_jni_headers") {
  sources = [ "java/src/org/chromium/ui/listmenu/MenuModelBridge.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",
    "../events/android/gesture_event_type.h",
    "../events/back_gesture_event.h",
    "../gfx/android/java_bitmap.h",
    "../gfx/overlay_transform.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"
}

android_resources("ui_java_resources") {
  sources = [
    "java/res/anim/emphasized.xml",
    "java/res/anim/menu_enter.xml",
    "java/res/anim/menu_enter_dropdown.xml",
    "java/res/anim/menu_enter_from_bottom.xml",
    "java/res/anim/menu_enter_from_bottom_left.xml",
    "java/res/anim/menu_enter_from_top_left.xml",
    "java/res/anim/menu_enter_raiseup.xml",
    "java/res/anim/menu_exit.xml",
    "java/res/anim/menu_exit_dropdown.xml",
    "java/res/anim/menu_exit_from_bottom.xml",
    "java/res/anim/menu_exit_from_bottom_left.xml",
    "java/res/anim/menu_exit_from_top_left.xml",
    "java/res/anim/menu_exit_raiseup.xml",
    "java/res/color-night/toast_color.xml",
    "java/res/color/blue_when_enabled_dark.xml",
    "java/res/color/blue_when_enabled_list.xml",
    "java/res/color/default_text_color_light_list.xml",
    "java/res/color/default_text_color_list_baseline.xml",
    "java/res/color/default_text_color_on_accent1_baseline_list.xml",
    "java/res/color/default_text_color_secondary_light_list.xml",
    "java/res/color/default_text_color_secondary_list_baseline.xml",
    "java/res/color/filled_button_bg.xml",
    "java/res/color/filled_button_ripple_color.xml",
    "java/res/color/list_menu_item_icon_color_list.xml",
    "java/res/color/list_menu_item_text_color_list.xml",
    "java/res/color/text_button_ripple_color_list_baseline.xml",
    "java/res/color/toast_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-hdpi/popup_bg_24dp.9.png",
    "java/res/drawable-hdpi/popup_bg_8dp.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-mdpi/popup_bg_24dp.9.png",
    "java/res/drawable-mdpi/popup_bg_8dp.9.png",
    "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-xhdpi/popup_bg_24dp.9.png",
    "java/res/drawable-xhdpi/popup_bg_8dp.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-xxhdpi/popup_bg_24dp.9.png",
    "java/res/drawable-xxhdpi/popup_bg_8dp.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-xxxhdpi/popup_bg_24dp.9.png",
    "java/res/drawable-xxxhdpi/popup_bg_8dp.9.png",
    "java/res/drawable/custom_toast_background.xml",
    "java/res/drawable/dialog_bg_baseline.xml",
    "java/res/drawable/drag_shadow_background.xml",
    "java/res/drawable/ic_apps_blue_24dp.xml",
    "java/res/drawable/ic_expand_more_horizontal_black_24dp.xml",
    "java/res/drawable/ic_globe_24dp.xml",
    "java/res/drawable/ic_globe_48dp.xml",
    "java/res/drawable/list_menu_background.xml",
    "java/res/drawable/menu_bg_baseline.xml",
    "java/res/drawable/span_background.xml",
    "java/res/drawable/transition_expand_less_expand_more_black_24dp.xml",
    "java/res/drawable/transition_expand_more_expand_less_black_24dp.xml",
    "java/res/font/accent_font.xml",
    "java/res/layout-v28/list_section_divider.xml",
    "java/res/layout/custom_toast_layout.xml",
    "java/res/layout/dropdown_item.xml",
    "java/res/layout/horizontal_divider.xml",
    "java/res/layout/list_menu_item.xml",
    "java/res/layout/list_menu_layout.xml",
    "java/res/layout/list_section_divider.xml",
    "java/res/values-ldrtl/dimens.xml",
    "java/res/values-ldrtl/values.xml",
    "java/res/values-night/colors.xml",
    "java/res/values-sw600dp/dimens.xml",
    "java/res/values-sw600dp/values.xml",
    "java/res/values-sw720dp/values.xml",
    "java/res/values-v31/colors.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/overlayable.xml",
    "java/res/values/semantic_colors_adaptive.xml",
    "java/res/values/semantic_colors_non_adaptive.xml",
    "java/res/values/strings.xml",
    "java/res/values/styles.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/KeyboardUtils.java",
    "java/src/org/chromium/ui/KeyboardVisibilityDelegate.java",
    "java/src/org/chromium/ui/UiUtils.java",
  ]
  deps = [
    "//base:base_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
    "//third_party/androidx:androidx_core_core_java",
  ]
}

android_library("ui_no_recycler_view_java") {
  sources = [
    "java/src/org/chromium/ui/AsyncViewProvider.java",
    "java/src/org/chromium/ui/AsyncViewStub.java",
    "java/src/org/chromium/ui/BrowserControlsOffsetTagConstraints.java",
    "java/src/org/chromium/ui/BrowserControlsOffsetTagDefinitions.java",
    "java/src/org/chromium/ui/CaptionBarInsetsRectProvider.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/ElidedUrlTextView.java",
    "java/src/org/chromium/ui/HorizontalListDividerDrawable.java",
    "java/src/org/chromium/ui/InsetObserver.java",
    "java/src/org/chromium/ui/InsetsRectProvider.java",
    "java/src/org/chromium/ui/LayoutInflaterUtils.java",
    "java/src/org/chromium/ui/ModalDialogWrapper.java",
    "java/src/org/chromium/ui/OffsetTagConstraints.java",
    "java/src/org/chromium/ui/OverscrollRefreshHandler.java",
    "java/src/org/chromium/ui/UiSwitches.java",
    "java/src/org/chromium/ui/ViewProvider.java",
    "java/src/org/chromium/ui/animation/AnimationHandler.java",
    "java/src/org/chromium/ui/animation/AnimationPerformanceTracker.java",
    "java/src/org/chromium/ui/animation/DrawableFadeInAnimatorFactory.java",
    "java/src/org/chromium/ui/animation/DrawableTranslationAnimatorFactory.java",
    "java/src/org/chromium/ui/animation/EmptyAnimationListener.java",
    "java/src/org/chromium/ui/animation/PathAnimationUtils.java",
    "java/src/org/chromium/ui/animation/RunOnNextLayout.java",
    "java/src/org/chromium/ui/animation/RunOnNextLayoutDelegate.java",
    "java/src/org/chromium/ui/animation/TranslationAnimatorFactory.java",
    "java/src/org/chromium/ui/animation/ViewCurvedMotionAnimatorFactory.java",
    "java/src/org/chromium/ui/base/ActivityIntentRequestTrackerDelegate.java",
    "java/src/org/chromium/ui/base/ActivityKeyboardVisibilityDelegate.java",
    "java/src/org/chromium/ui/base/ActivityWindowAndroid.java",
    "java/src/org/chromium/ui/base/ApplicationViewportInsetSupplier.java",
    "java/src/org/chromium/ui/base/BytesFormatting.java",
    "java/src/org/chromium/ui/base/Clipboard.java",
    "java/src/org/chromium/ui/base/ClipboardImpl.java",
    "java/src/org/chromium/ui/base/DeviceFormFactor.java",
    "java/src/org/chromium/ui/base/DeviceInput.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/IntentRequestTracker.java",
    "java/src/org/chromium/ui/base/IntentRequestTrackerImpl.java",
    "java/src/org/chromium/ui/base/LocalizationUtils.java",
    "java/src/org/chromium/ui/base/MimeTypeUtils.java",
    "java/src/org/chromium/ui/base/OverlayTransformApiHelper.java",
    "java/src/org/chromium/ui/base/PhotoPicker.java",
    "java/src/org/chromium/ui/base/PhotoPickerDelegate.java",
    "java/src/org/chromium/ui/base/PhotoPickerListener.java",
    "java/src/org/chromium/ui/base/PointerLockEventHelper.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/UiAndroidFeatureList.java",
    "java/src/org/chromium/ui/base/UiAndroidFeatureMap.java",
    "java/src/org/chromium/ui/base/ViewAndroidDelegate.java",
    "java/src/org/chromium/ui/base/ViewUtils.java",
    "java/src/org/chromium/ui/base/ViewportInsets.java",
    "java/src/org/chromium/ui/base/WindowAndroid.java",
    "java/src/org/chromium/ui/base/WindowDelegate.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/dragdrop/AnimatedImageDragShadowBuilder.java",
    "java/src/org/chromium/ui/dragdrop/DragAndDropBrowserDelegate.java",
    "java/src/org/chromium/ui/dragdrop/DragAndDropDelegate.java",
    "java/src/org/chromium/ui/dragdrop/DragAndDropDelegateImpl.java",
    "java/src/org/chromium/ui/dragdrop/DragDropGlobalState.java",
    "java/src/org/chromium/ui/dragdrop/DragDropMetricUtils.java",
    "java/src/org/chromium/ui/dragdrop/DragEventDispatchHelper.java",
    "java/src/org/chromium/ui/dragdrop/DragStateTracker.java",
    "java/src/org/chromium/ui/dragdrop/DropDataAndroid.java",
    "java/src/org/chromium/ui/dragdrop/DropDataContentProvider.java",
    "java/src/org/chromium/ui/dragdrop/DropDataProviderImpl.java",
    "java/src/org/chromium/ui/dragdrop/DropDataProviderUtils.java",
    "java/src/org/chromium/ui/drawable/AnimationLooper.java",
    "java/src/org/chromium/ui/drawable/BorderDrawable.java",
    "java/src/org/chromium/ui/drawable/StateListDrawableBuilder.java",
    "java/src/org/chromium/ui/events/devices/InputDeviceObserver.java",
    "java/src/org/chromium/ui/gfx/BitmapHelper.java",
    "java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",
    "java/src/org/chromium/ui/gl/ChromeSurfaceTexture.java",
    "java/src/org/chromium/ui/gl/ScopedJavaSurfaceControl.java",
    "java/src/org/chromium/ui/interpolators/AndroidxInterpolators.java",
    "java/src/org/chromium/ui/interpolators/Interpolators.java",
    "java/src/org/chromium/ui/listmenu/BasicListMenu.java",
    "java/src/org/chromium/ui/listmenu/ContextMenuCheckItemProperties.java",
    "java/src/org/chromium/ui/listmenu/ContextMenuRadioItemProperties.java",
    "java/src/org/chromium/ui/listmenu/ContextMenuSubmenuItemProperties.java",
    "java/src/org/chromium/ui/listmenu/ListMenu.java",
    "java/src/org/chromium/ui/listmenu/ListMenuButton.java",
    "java/src/org/chromium/ui/listmenu/ListMenuDelegate.java",
    "java/src/org/chromium/ui/listmenu/ListMenuHost.java",
    "java/src/org/chromium/ui/listmenu/ListMenuItemAdapter.java",
    "java/src/org/chromium/ui/listmenu/ListMenuItemProperties.java",
    "java/src/org/chromium/ui/listmenu/ListMenuItemViewBinder.java",
    "java/src/org/chromium/ui/listmenu/ListSectionDividerProperties.java",
    "java/src/org/chromium/ui/listmenu/ListSectionDividerViewBinder.java",
    "java/src/org/chromium/ui/modaldialog/DialogDismissalCause.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManager.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManagerBridge.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogManagerHolder.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogProperties.java",
    "java/src/org/chromium/ui/modaldialog/ModalDialogUtils.java",
    "java/src/org/chromium/ui/modaldialog/PendingDialogContainer.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/ModelListCleaner.java",
    "java/src/org/chromium/ui/modelutil/ModelListPropertyChangeFilter.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/PropertyModelAnimatorFactory.java",
    "java/src/org/chromium/ui/modelutil/PropertyModelChangeProcessor.java",
    "java/src/org/chromium/ui/modelutil/PropertyObservable.java",
    "java/src/org/chromium/ui/modelutil/SimpleList.java",
    "java/src/org/chromium/ui/modelutil/ViewGroupAdapter.java",
    "java/src/org/chromium/ui/permissions/ActivityAndroidPermissionDelegate.java",
    "java/src/org/chromium/ui/permissions/AndroidPermissionDelegate.java",
    "java/src/org/chromium/ui/permissions/AndroidPermissionDelegateWithRequester.java",
    "java/src/org/chromium/ui/permissions/ContextualNotificationPermissionRequester.java",
    "java/src/org/chromium/ui/permissions/PermissionCallback.java",
    "java/src/org/chromium/ui/permissions/PermissionPrefs.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/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/CaptureObserver.java",
    "java/src/org/chromium/ui/resources/dynamics/CaptureUtils.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/DynamicResourceReadyOnceCallback.java",
    "java/src/org/chromium/ui/resources/dynamics/DynamicResourceSnapshot.java",
    "java/src/org/chromium/ui/resources/dynamics/SoftwareDraw.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/ChromeClickableSpan.java",
    "java/src/org/chromium/ui/text/DownloadableFontTextAppearanceSpan.java",
    "java/src/org/chromium/ui/text/EmptyTextWatcher.java",
    "java/src/org/chromium/ui/text/SpanApplier.java",
    "java/src/org/chromium/ui/util/AccessibilityUtil.java",
    "java/src/org/chromium/ui/util/AttrUtils.java",
    "java/src/org/chromium/ui/util/ClickWithMetaStateCallback.java",
    "java/src/org/chromium/ui/util/ColorBlendAnimationFactory.java",
    "java/src/org/chromium/ui/util/ColorUtils.java",
    "java/src/org/chromium/ui/util/KeyboardNavigationListener.java",
    "java/src/org/chromium/ui/util/MotionEventUtils.java",
    "java/src/org/chromium/ui/util/RunnableTimer.java",
    "java/src/org/chromium/ui/util/StyleUtils.java",
    "java/src/org/chromium/ui/util/TokenHolder.java",
    "java/src/org/chromium/ui/util/ValueUtils.java",
    "java/src/org/chromium/ui/util/WindowInsetsUtils.java",
    "java/src/org/chromium/ui/util/XrUtils.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/ChromeBulletSpan.java",
    "java/src/org/chromium/ui/widget/ChromeImageButton.java",
    "java/src/org/chromium/ui/widget/ChromeImageView.java",
    "java/src/org/chromium/ui/widget/LoadingView.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/SpanBackgroundHelper.java",
    "java/src/org/chromium/ui/widget/TextViewWithClickableSpans.java",
    "java/src/org/chromium/ui/widget/TextViewWithLeading.java",
    "java/src/org/chromium/ui/widget/TextViewWithTightWrap.java",
    "java/src/org/chromium/ui/widget/Toast.java",
    "java/src/org/chromium/ui/widget/ToastManager.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",
    "java/src/org/chromium/ui/widget/ViewRectUpdater.java",
  ]
  deps = [
    ":ui_android_features_java",
    ":ui_java_resources",
    ":ui_utils_java",
    "//base:base_java",
    "//base:content_uri_utils_java",
    "//build/android:build_java",
    "//cc:cc_java",
    "//components/cached_flags:java",
    "//components/input/android:java",
    "//components/url_formatter/android:url_formatter_java",
    "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
    "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java",
    "//third_party/androidx:androidx_activity_activity_java",
    "//third_party/androidx:androidx_annotation_annotation_experimental_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_appcompat_appcompat_java",
    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
    "//third_party/androidx:androidx_asynclayoutinflater_asynclayoutinflater_java",
    "//third_party/androidx:androidx_core_core_animation_java",
    "//third_party/androidx:androidx_core_core_java",
    "//third_party/androidx:androidx_interpolator_interpolator_java",
    "//third_party/androidx:androidx_vectordrawable_vectordrawable_animated_java",
    "//third_party/androidx:androidx_xr_scenecore_scenecore_java",
    "//third_party/jni_zero:jni_zero_java",
    "//ui/accessibility:ax_base_java",
    "//ui/base:clipboard_jni_headers_java",
    "//ui/base:select_file_dialog_jni_headers_java",
    "//ui/base/cursor/mojom:cursor_type_java",
    "//ui/base/ime/mojom:mojom_java",
    "//ui/gl:gl_jni_headers_java",
    "//url:gurl_java",
  ]

  srcjar_deps = [
    ":java_enums_srcjar",
    ":ui_android_jni_headers",
  ]
  resources_package = "org.chromium.ui"
}

android_library("ui_recycler_view_java") {
  sources = [
    "java/src/org/chromium/ui/modelutil/RecyclerViewAdapter.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",
  ]
  deps = [
    ":ui_no_recycler_view_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_recyclerview_recyclerview_java",
  ]
}

java_group("ui_full_java") {
  deps = [
    ":ui_no_recycler_view_java",
    ":ui_recycler_view_java",
  ]
}

robolectric_library("ui_junit_test_support") {
  sources = [
    "junit/src/org/chromium/ui/resources/dynamics/DynamicResourceTestUtils.java",
    "junit/src/org/chromium/ui/shadows/ShadowAnimatedStateListDrawable.java",
    "junit/src/org/chromium/ui/shadows/ShadowAppCompatResources.java",
    "junit/src/org/chromium/ui/shadows/ShadowAsyncLayoutInflater.java",
    "junit/src/org/chromium/ui/shadows/ShadowColorUtils.java",
  ]
  deps = [
    ":ui_java",
    "//base:base_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
    "//third_party/androidx:androidx_asynclayoutinflater_asynclayoutinflater_java",
    "//third_party/junit",
  ]
}

android_library("ui_java_test_support") {
  testonly = true
  sources = [
    "javatests/src/org/chromium/ui/listmenu/ListMenuTestUtils.java",
    "javatests/src/org/chromium/ui/test/transit/SoftKeyboardCondition.java",
    "javatests/src/org/chromium/ui/test/transit/SoftKeyboardElement.java",
    "javatests/src/org/chromium/ui/test/util/BlankUiTestActivity.java",
    "javatests/src/org/chromium/ui/test/util/DeviceRestriction.java",
    "javatests/src/org/chromium/ui/test/util/GmsCoreVersionRestriction.java",
    "javatests/src/org/chromium/ui/test/util/MockitoHelper.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/TestViewAndroidDelegate.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/ViewUtils.java",
    "javatests/src/org/chromium/ui/test/util/WindowInsetsTestUtils.java",
    "javatests/src/org/chromium/ui/test/util/modaldialog/FakeModalDialogManager.java",
    "javatests/src/org/chromium/ui/test/util/modelutil/FakeViewProvider.java",
    "junit/src/org/chromium/ui/base/MotionEventTestUtils.java",
    "junit/src/org/chromium/ui/base/TestActivity.java",
  ]
  deps = [
    ":ui_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//base/test:public_transit_java",
    "//components/browser_ui/modaldialog/android:java",
    "//third_party/android_deps:com_google_code_findbugs_jsr305_java",

    # For androidx.test.espresso.ViewInteraction
    "//third_party/android_deps:espresso_java",
    "//third_party/android_deps:material_design_java",
    "//third_party/androidx:androidx_activity_activity_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_appcompat_appcompat_java",
    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
    "//third_party/androidx:androidx_core_core_java",
    "//third_party/androidx:androidx_test_monitor_java",
    "//third_party/androidx:androidx_vectordrawable_vectordrawable_animated_java",
    "//third_party/hamcrest:hamcrest_core_java",
    "//third_party/hamcrest:hamcrest_library_java",
    "//third_party/jni_zero:jni_zero_java",
    "//third_party/junit",
    "//third_party/mockito:mockito_java",
    "//ui/android:ui_no_recycler_view_java",
  ]
}

android_resources("ui_junit_resources") {
  testonly = true
  sources = [
    "junit/res/font/custom_font.xml",
    "junit/res/layout/inflated_view.xml",
    "junit/res/layout/layout_view_builder_test.xml",
    "junit/res/layout/list_menu_button_unittest.xml",
    "junit/res/layout/main_view.xml",
    "junit/res/values/strings.xml",
    "junit/res/values/styles.xml",
  ]
  android_manifest = "junit/AndroidManifest.xml"
}

robolectric_library("ui_android_junit_tests") {
  testonly = true
  resources_package = "org.chromium.ui"
  sources = [
    "java/src/org/chromium/ui/text/DownloadableFontTextAppearanceSpanTest.java",
    "junit/src/org/chromium/ui/AsyncViewProviderTest.java",
    "junit/src/org/chromium/ui/AsyncViewStubTest.java",
    "junit/src/org/chromium/ui/InsetObserverTest.java",
    "junit/src/org/chromium/ui/InsetsRectProviderTest.java",
    "junit/src/org/chromium/ui/animation/AnimationHandlerUnitTest.java",
    "junit/src/org/chromium/ui/animation/AnimationPerformanceTrackerUnitTest.java",
    "junit/src/org/chromium/ui/animation/DrawableFadeInAnimatorFactoryUnitTest.java",
    "junit/src/org/chromium/ui/animation/DrawableTranslationAnimatorFactoryUnitTest.java",
    "junit/src/org/chromium/ui/animation/PathAnimationUtilsUnitTest.java",
    "junit/src/org/chromium/ui/animation/RunOnNextLayoutDelegateUnitTest.java",
    "junit/src/org/chromium/ui/animation/TranslationAnimatorFactoryUnitTest.java",
    "junit/src/org/chromium/ui/base/ActivityKeyboardVisibilityDelegateUnitTest.java",
    "junit/src/org/chromium/ui/base/ApplicationViewportInsetSupplierTest.java",
    "junit/src/org/chromium/ui/base/ClipboardTest.java",
    "junit/src/org/chromium/ui/base/DeviceInputTest.java",
    "junit/src/org/chromium/ui/base/EventForwarderTest.java",
    "junit/src/org/chromium/ui/base/EventOffsetHandlerTest.java",
    "junit/src/org/chromium/ui/base/LocalizationUtilsTest.java",
    "junit/src/org/chromium/ui/base/MimeTypeUtilsTest.java",
    "junit/src/org/chromium/ui/base/PointerLockEventHelperTest.java",
    "junit/src/org/chromium/ui/base/PointerLockTest.java",
    "junit/src/org/chromium/ui/base/SelectFileDialogTest.java",
    "junit/src/org/chromium/ui/display/DisplayAndroidManagerTest.java",
    "junit/src/org/chromium/ui/display/DisplayAndroidTest.java",
    "junit/src/org/chromium/ui/display/DisplayUtilTest.java",
    "junit/src/org/chromium/ui/dragdrop/AnimatedImageDragShadowBuilderUnitTest.java",
    "junit/src/org/chromium/ui/dragdrop/DragAndDropDelegateImplUnitTest.java",
    "junit/src/org/chromium/ui/dragdrop/DragDropGlobalStateTest.java",
    "junit/src/org/chromium/ui/dragdrop/DragEventDispatchHelperUnitTest.java",
    "junit/src/org/chromium/ui/dragdrop/DropDataAndroidUnitTest.java",
    "junit/src/org/chromium/ui/dragdrop/DropDataContentProviderTest.java",
    "junit/src/org/chromium/ui/dragdrop/DropDataProviderImplTest.java",
    "junit/src/org/chromium/ui/drawable/AnimationLooperTest.java",
    "junit/src/org/chromium/ui/drawable/StateListDrawableBuilderTest.java",
    "junit/src/org/chromium/ui/listmenu/ListMenuHostUnitTest.java",
    "junit/src/org/chromium/ui/modaldialog/ModalDialogManagerTest.java",
    "junit/src/org/chromium/ui/modaldialog/PendingDialogContainerTest.java",
    "junit/src/org/chromium/ui/modelutil/LazyConstructionPropertyMcpTest.java",
    "junit/src/org/chromium/ui/modelutil/ModelListAdapterTest.java",
    "junit/src/org/chromium/ui/modelutil/ModelListCleanerTest.java",
    "junit/src/org/chromium/ui/modelutil/ModelListPropertyChangeFilterTest.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/modelutil/ViewGroupAdapterTest.java",
    "junit/src/org/chromium/ui/permissions/ActivityAndroidPermissionDelegateTest.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/ShadowAppCompatResourcesTest.java",
    "junit/src/org/chromium/ui/test/util/WindowInsetsTestUtilsUnitTest.java",
    "junit/src/org/chromium/ui/text/SpanApplierTest.java",
    "junit/src/org/chromium/ui/util/ColorBlendAnimationFactoryTest.java",
    "junit/src/org/chromium/ui/util/ColorUtilsTest.java",
    "junit/src/org/chromium/ui/util/RunnableTimerTest.java",
    "junit/src/org/chromium/ui/util/StyleUtilsTest.java",
    "junit/src/org/chromium/ui/util/TokenHolderTest.java",
    "junit/src/org/chromium/ui/util/WindowInsetsUtilsUnitTest.java",
    "junit/src/org/chromium/ui/util/XrUtilsTest.java",
    "junit/src/org/chromium/ui/widget/AnchoredPopupWindowTest.java",
    "junit/src/org/chromium/ui/widget/LoadingViewTest.java",
    "junit/src/org/chromium/ui/widget/SpanBackgroundHelperTest.java",
    "junit/src/org/chromium/ui/widget/TextViewWithClickableSpansTest.java",
    "junit/src/org/chromium/ui/widget/ToastManagerTest.java",
    "junit/src/org/chromium/ui/widget/ToastTest.java",
    "junit/src/org/chromium/ui/widget/ViewLookupCachingFrameLayoutTest.java",
    "junit/src/org/chromium/ui/widget/ViewRectProviderTest.java",
  ]
  deps = [
    ":ui_android_features_java",
    ":ui_java",
    ":ui_java_resources",
    ":ui_java_test_support",
    ":ui_junit_resources",
    ":ui_junit_test_support",
    "//base:base_java",
    "//base:base_java_test_support",
    "//base:base_junit_test_support",
    "//base/test:test_support_java",
    "//build/android:build_java",
    "//third_party/android_deps:guava_android_java",
    "//third_party/androidx:androidx_activity_activity_java",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
    "//third_party/androidx:androidx_asynclayoutinflater_asynclayoutinflater_java",
    "//third_party/androidx:androidx_core_core_java",
    "//third_party/androidx:androidx_lifecycle_lifecycle_common_java",
    "//third_party/androidx:androidx_test_core_java",
    "//third_party/androidx:androidx_test_ext_junit_java",
    "//third_party/androidx:androidx_test_runner_java",
    "//third_party/androidx:androidx_xr_scenecore_scenecore_java",
    "//third_party/hamcrest:hamcrest_java",
    "//third_party/jni_zero:jni_zero_java",
    "//third_party/junit:junit",
    "//third_party/mockito:mockito_java",
    "//ui/accessibility:ax_base_java",
    "//ui/base/ime/mojom:mojom_java",
    "//url:gurl_java",
    "//url:gurl_junit_test_support",
  ]
}

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",
    "color_utils_android_unittest.cc",
    "display_android_manager_unittest.cc",
    "modal_dialog_wrapper_unittest.cc",
    "overscroll_refresh_unittest.cc",
    "resources/resource_manager_impl_unittest.cc",
    "run_all_unittests.cc",
    "view_android_unittest.cc",
  ]
  deps = [
    ":android",
    ":java_enums_srcjar",
    ":test_support",
    ":ui_java",
    ":ui_java_test_support",
    ":ui_javatest_jni_headers",
    "//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/display",
    "//ui/display/util:util",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources:ui_test_pak",
  ]
  if (enable_new_texture_compressor) {
    deps += [ ":texture_compressor_unittests" ]
  }
}

android_library("clipboard_java_test_support") {
  testonly = true

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

  deps = [
    "//base:base_java_test_support",
    "//build/android:build_java",
    "//third_party/jni_zero:jni_zero_java",
  ]
}

android_resources("test_java_resources") {
  testonly = true
  sources = [
    "test/java/res/layout/text_view_with_leading_bad_text_appearance.xml",
    "test/java/res/layout/text_view_with_leading_direct.xml",
    "test/java/res/layout/text_view_with_leading_no_leading.xml",
    "test/java/res/layout/text_view_with_leading_style.xml",
    "test/java/res/layout/text_view_with_leading_style_into_text_appearance.xml",
    "test/java/res/layout/text_view_with_leading_text_appearance.xml",
    "test/java/res/values/attrs.xml",
    "test/java/res/values/styles.xml",
  ]
}

android_library("ui_unit_device_javatests") {
  testonly = true
  resources_package = "org.chromium.ui"

  sources = [
    "java/src/org/chromium/ui/UiUtilsTest.java",
    "java/src/org/chromium/ui/listmenu/ListMenuButtonTest.java",
    "java/src/org/chromium/ui/widget/TextViewWithTightWrapTest.java",
    "javatests/src/org/chromium/ui/animation/RenderTestAnimationUtils.java",
    "javatests/src/org/chromium/ui/animation/ViewCurvedMotionAnimatorFactoryRenderTest.java",
    "javatests/src/org/chromium/ui/base/ClipboardAndroidTest.java",
    "javatests/src/org/chromium/ui/util/WindowInsetsUtilsJavaUnitTest.java",
    "junit/src/org/chromium/ui/widget/TextViewWithLeadingTest.java",
  ]

  deps = [
    ":clipboard_java_test_support",
    ":test_java_resources",
    ":ui_android_features_java",
    ":ui_java",
    ":ui_java_test_support",
    "//base:base_java",
    "//base:base_java_test_support",
    "//components/browser_ui/widget/android:java_resources",
    "//content/public/test/android:content_java_test_support",
    "//third_party/androidx:androidx_annotation_annotation_java",
    "//third_party/androidx:androidx_core_core_java",
    "//third_party/androidx:androidx_test_core_java",
    "//third_party/androidx:androidx_test_runner_java",
    "//third_party/hamcrest:hamcrest_java",
    "//third_party/hamcrest:hamcrest_library_java",
    "//third_party/junit",
    "//third_party/mockito:mockito_java",
  ]
}

generate_jni("ui_javatest_jni_headers") {
  testonly = true

  sources = [
    "javatests/src/org/chromium/ui/base/ClipboardAndroidTestSupport.java",
    "javatests/src/org/chromium/ui/test/util/TestViewAndroidDelegate.java",
    "javatests/src/org/chromium/ui/test/util/modaldialog/FakeModalDialogManager.java",
  ]
}

if (enable_new_texture_compressor) {
  rust_static_library("texture_compressor") {
    crate_root = "texture_compressor/lib.rs"
    sources = [
      "texture_compressor/cxx.rs",
      "texture_compressor/dither.rs",
      "texture_compressor/lib.rs",
      "texture_compressor/quant.rs",
      "texture_compressor/selectors.rs",
    ]
    allow_unsafe = true
    cxx_bindings = [ "texture_compressor/cxx.rs" ]
    deps = [ "//third_party/rust/bytemuck/v1:lib" ]

    # Required for #[feature(portable_simd)]
    configs -= [ "//build/config/compiler:disallow_unstable_features" ]
    rustflags = [ "-Zallow-features=portable_simd" ]
  }

  rust_static_library("texture_compressor_unittests") {
    testonly = true
    is_gtest_unittests = true
    crate_root = "texture_compressor/tests.rs"
    sources = [
      "texture_compressor/lib_tests.rs",
      "texture_compressor/quant_tests.rs",
      "texture_compressor/selectors_tests.rs",
      "texture_compressor/tests.rs",
    ]

    deps = [
      ":texture_compressor",
      "//testing/rust_gtest_interop",
    ]

    # Required for #[feature(portable_simd)]
    configs -= [ "//build/config/compiler:disallow_unstable_features" ]
    rustflags = [ "-Zallow-features=portable_simd" ]
  }
}