summaryrefslogtreecommitdiff
path: root/chromium/cc/BUILD.gn
blob: 7e5e837b8e76b7e20ce0501f36dd1a3e2f3f3612 (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
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
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/sanitizers/sanitizers.gni")
import("//gpu/vulkan/features.gni")
import("//skia/features.gni")

import("//cc/cc.gni")

cc_component("cc") {
  sources = [
    "benchmarks/benchmark_instrumentation.cc",
    "benchmarks/benchmark_instrumentation.h",
    "benchmarks/invalidation_benchmark.cc",
    "benchmarks/invalidation_benchmark.h",
    "benchmarks/micro_benchmark.cc",
    "benchmarks/micro_benchmark.h",
    "benchmarks/micro_benchmark_controller.cc",
    "benchmarks/micro_benchmark_controller.h",
    "benchmarks/micro_benchmark_controller_impl.cc",
    "benchmarks/micro_benchmark_controller_impl.h",
    "benchmarks/micro_benchmark_impl.cc",
    "benchmarks/micro_benchmark_impl.h",
    "benchmarks/rasterize_and_record_benchmark.cc",
    "benchmarks/rasterize_and_record_benchmark.h",
    "benchmarks/rasterize_and_record_benchmark_impl.cc",
    "benchmarks/rasterize_and_record_benchmark_impl.h",
    "benchmarks/unittest_only_benchmark.cc",
    "benchmarks/unittest_only_benchmark.h",
    "benchmarks/unittest_only_benchmark_impl.cc",
    "benchmarks/unittest_only_benchmark_impl.h",
    "input/browser_controls_offset_manager.cc",
    "input/browser_controls_offset_manager.h",
    "input/browser_controls_offset_manager_client.h",
    "input/input_handler.h",
    "input/layer_selection_bound.cc",
    "input/layer_selection_bound.h",
    "input/main_thread_scrolling_reason.cc",
    "input/main_thread_scrolling_reason.h",
    "input/overscroll_behavior.h",
    "input/page_scale_animation.cc",
    "input/page_scale_animation.h",
    "input/scroll_elasticity_helper.cc",
    "input/scroll_elasticity_helper.h",
    "input/scroll_snap_data.cc",
    "input/scroll_snap_data.h",
    "input/scroll_state.cc",
    "input/scroll_state.h",
    "input/scroll_state_data.cc",
    "input/scroll_state_data.h",
    "input/scroll_utils.cc",
    "input/scroll_utils.h",
    "input/scrollbar.h",
    "input/scrollbar_animation_controller.cc",
    "input/scrollbar_animation_controller.h",
    "input/scrollbar_controller.cc",
    "input/scrollbar_controller.h",
    "input/single_scrollbar_animation_controller_thinning.cc",
    "input/single_scrollbar_animation_controller_thinning.h",
    "input/snap_fling_controller.cc",
    "input/snap_fling_controller.h",
    "input/snap_fling_curve.cc",
    "input/snap_fling_curve.h",
    "input/snap_selection_strategy.cc",
    "input/snap_selection_strategy.h",
    "input/touch_action.h",
    "layers/append_quads_data.cc",
    "layers/append_quads_data.h",
    "layers/content_layer_client.h",
    "layers/deadline_policy.cc",
    "layers/deadline_policy.h",
    "layers/draw_mode.h",
    "layers/draw_properties.cc",
    "layers/draw_properties.h",
    "layers/effect_tree_layer_list_iterator.cc",
    "layers/effect_tree_layer_list_iterator.h",
    "layers/heads_up_display_layer.cc",
    "layers/heads_up_display_layer.h",
    "layers/heads_up_display_layer_impl.cc",
    "layers/heads_up_display_layer_impl.h",
    "layers/layer.cc",
    "layers/layer.h",
    "layers/layer_collections.h",
    "layers/layer_impl.cc",
    "layers/layer_impl.h",
    "layers/layer_list_iterator.cc",
    "layers/layer_list_iterator.h",
    "layers/mirror_layer.cc",
    "layers/mirror_layer.h",
    "layers/mirror_layer_impl.cc",
    "layers/mirror_layer_impl.h",
    "layers/nine_patch_generator.cc",
    "layers/nine_patch_generator.h",
    "layers/nine_patch_layer.cc",
    "layers/nine_patch_layer.h",
    "layers/nine_patch_layer_impl.cc",
    "layers/nine_patch_layer_impl.h",
    "layers/painted_overlay_scrollbar_layer.cc",
    "layers/painted_overlay_scrollbar_layer.h",
    "layers/painted_overlay_scrollbar_layer_impl.cc",
    "layers/painted_overlay_scrollbar_layer_impl.h",
    "layers/painted_scrollbar_layer.cc",
    "layers/painted_scrollbar_layer.h",
    "layers/painted_scrollbar_layer_impl.cc",
    "layers/painted_scrollbar_layer_impl.h",
    "layers/picture_layer.cc",
    "layers/picture_layer.h",
    "layers/picture_layer_impl.cc",
    "layers/picture_layer_impl.h",
    "layers/recording_source.cc",
    "layers/recording_source.h",
    "layers/render_surface_impl.cc",
    "layers/render_surface_impl.h",
    "layers/scrollbar_layer_base.cc",
    "layers/scrollbar_layer_base.h",
    "layers/scrollbar_layer_impl_base.cc",
    "layers/scrollbar_layer_impl_base.h",
    "layers/solid_color_layer.cc",
    "layers/solid_color_layer.h",
    "layers/solid_color_layer_impl.cc",
    "layers/solid_color_layer_impl.h",
    "layers/solid_color_scrollbar_layer.cc",
    "layers/solid_color_scrollbar_layer.h",
    "layers/solid_color_scrollbar_layer_impl.cc",
    "layers/solid_color_scrollbar_layer_impl.h",
    "layers/surface_layer.cc",
    "layers/surface_layer.h",
    "layers/surface_layer_impl.cc",
    "layers/surface_layer_impl.h",
    "layers/texture_layer.cc",
    "layers/texture_layer.h",
    "layers/texture_layer_client.h",
    "layers/texture_layer_impl.cc",
    "layers/texture_layer_impl.h",
    "layers/tile_size_calculator.cc",
    "layers/tile_size_calculator.h",
    "layers/touch_action_region.cc",
    "layers/touch_action_region.h",
    "layers/ui_resource_layer.cc",
    "layers/ui_resource_layer.h",
    "layers/ui_resource_layer_impl.cc",
    "layers/ui_resource_layer_impl.h",
    "layers/video_frame_provider.h",
    "layers/video_frame_provider_client_impl.cc",
    "layers/video_frame_provider_client_impl.h",
    "layers/video_layer.cc",
    "layers/video_layer.h",
    "layers/video_layer_impl.cc",
    "layers/video_layer_impl.h",
    "layers/viewport.cc",
    "layers/viewport.h",
    "metrics/begin_main_frame_metrics.cc",
    "metrics/begin_main_frame_metrics.h",
    "metrics/compositor_frame_reporter.cc",
    "metrics/compositor_frame_reporter.h",
    "metrics/compositor_frame_reporting_controller.cc",
    "metrics/compositor_frame_reporting_controller.h",
    "metrics/compositor_timing_history.cc",
    "metrics/compositor_timing_history.h",
    "metrics/dropped_frame_counter.cc",
    "metrics/dropped_frame_counter.h",
    "metrics/event_metrics.cc",
    "metrics/event_metrics.h",
    "metrics/events_metrics_manager.cc",
    "metrics/events_metrics_manager.h",
    "metrics/frame_sequence_metrics.cc",
    "metrics/frame_sequence_metrics.h",
    "metrics/frame_sequence_tracker.cc",
    "metrics/frame_sequence_tracker.h",
    "metrics/frame_sequence_tracker_collection.cc",
    "metrics/frame_sequence_tracker_collection.h",
    "metrics/latency_ukm_reporter.cc",
    "metrics/latency_ukm_reporter.h",
    "metrics/lcd_text_metrics_reporter.cc",
    "metrics/lcd_text_metrics_reporter.h",
    "metrics/throughput_ukm_reporter.cc",
    "metrics/throughput_ukm_reporter.h",
    "metrics/video_playback_roughness_reporter.cc",
    "metrics/video_playback_roughness_reporter.h",
    "raster/bitmap_raster_buffer_provider.cc",
    "raster/bitmap_raster_buffer_provider.h",
    "raster/gpu_raster_buffer_provider.cc",
    "raster/gpu_raster_buffer_provider.h",
    "raster/lcd_text_disallowed_reason.cc",
    "raster/lcd_text_disallowed_reason.h",
    "raster/one_copy_raster_buffer_provider.cc",
    "raster/one_copy_raster_buffer_provider.h",
    "raster/paint_worklet_image_provider.cc",
    "raster/paint_worklet_image_provider.h",
    "raster/playback_image_provider.cc",
    "raster/playback_image_provider.h",
    "raster/raster_buffer.cc",
    "raster/raster_buffer.h",
    "raster/raster_buffer_provider.cc",
    "raster/raster_buffer_provider.h",
    "raster/raster_source.cc",
    "raster/raster_source.h",
    "raster/scoped_gpu_raster.cc",
    "raster/scoped_gpu_raster.h",
    "raster/scoped_grcontext_access.h",
    "raster/single_thread_task_graph_runner.cc",
    "raster/single_thread_task_graph_runner.h",
    "raster/staging_buffer_pool.cc",
    "raster/staging_buffer_pool.h",
    "raster/synchronous_task_graph_runner.cc",
    "raster/synchronous_task_graph_runner.h",
    "raster/task.cc",
    "raster/task.h",
    "raster/task_category.h",
    "raster/task_graph_runner.h",
    "raster/task_graph_work_queue.cc",
    "raster/task_graph_work_queue.h",
    "raster/tile_task.cc",
    "raster/tile_task.h",
    "raster/zero_copy_raster_buffer_provider.cc",
    "raster/zero_copy_raster_buffer_provider.h",
    "resources/cross_thread_shared_bitmap.cc",
    "resources/cross_thread_shared_bitmap.h",
    "resources/memory_history.cc",
    "resources/memory_history.h",
    "resources/resource_pool.cc",
    "resources/resource_pool.h",
    "resources/scoped_ui_resource.cc",
    "resources/scoped_ui_resource.h",
    "resources/shared_bitmap_id_registrar.cc",
    "resources/shared_bitmap_id_registrar.h",
    "resources/ui_resource_bitmap.cc",
    "resources/ui_resource_bitmap.h",
    "resources/ui_resource_client.h",
    "resources/ui_resource_manager.cc",
    "resources/ui_resource_manager.h",
    "resources/ui_resource_request.cc",
    "resources/ui_resource_request.h",
    "scheduler/begin_frame_tracker.cc",
    "scheduler/begin_frame_tracker.h",
    "scheduler/commit_earlyout_reason.h",
    "scheduler/draw_result.h",
    "scheduler/scheduler.cc",
    "scheduler/scheduler.h",
    "scheduler/scheduler_settings.cc",
    "scheduler/scheduler_settings.h",
    "scheduler/scheduler_state_machine.cc",
    "scheduler/scheduler_state_machine.h",
    "scheduler/video_frame_controller.h",
    "tiles/checker_image_tracker.cc",
    "tiles/checker_image_tracker.h",
    "tiles/decoded_image_tracker.cc",
    "tiles/decoded_image_tracker.h",
    "tiles/eviction_tile_priority_queue.cc",
    "tiles/eviction_tile_priority_queue.h",
    "tiles/frame_viewer_instrumentation.cc",
    "tiles/frame_viewer_instrumentation.h",
    "tiles/gpu_image_decode_cache.cc",
    "tiles/gpu_image_decode_cache.h",
    "tiles/image_controller.cc",
    "tiles/image_controller.h",
    "tiles/image_decode_cache.cc",
    "tiles/image_decode_cache.h",
    "tiles/image_decode_cache_utils.cc",
    "tiles/image_decode_cache_utils.h",
    "tiles/mipmap_util.cc",
    "tiles/mipmap_util.h",
    "tiles/picture_layer_tiling.cc",
    "tiles/picture_layer_tiling.h",
    "tiles/picture_layer_tiling_set.cc",
    "tiles/picture_layer_tiling_set.h",
    "tiles/prioritized_tile.cc",
    "tiles/prioritized_tile.h",
    "tiles/raster_tile_priority_queue.cc",
    "tiles/raster_tile_priority_queue.h",
    "tiles/raster_tile_priority_queue_all.cc",
    "tiles/raster_tile_priority_queue_all.h",
    "tiles/raster_tile_priority_queue_required.cc",
    "tiles/raster_tile_priority_queue_required.h",
    "tiles/software_image_decode_cache.cc",
    "tiles/software_image_decode_cache.h",
    "tiles/software_image_decode_cache_utils.cc",
    "tiles/software_image_decode_cache_utils.h",
    "tiles/tile.cc",
    "tiles/tile.h",
    "tiles/tile_draw_info.cc",
    "tiles/tile_draw_info.h",
    "tiles/tile_manager.cc",
    "tiles/tile_manager.h",
    "tiles/tile_manager_settings.h",
    "tiles/tile_priority.cc",
    "tiles/tile_priority.h",
    "tiles/tile_task_manager.cc",
    "tiles/tile_task_manager.h",
    "tiles/tiling_set_eviction_queue.cc",
    "tiles/tiling_set_eviction_queue.h",
    "tiles/tiling_set_raster_queue_all.cc",
    "tiles/tiling_set_raster_queue_all.h",
    "tiles/tiling_set_raster_queue_required.cc",
    "tiles/tiling_set_raster_queue_required.h",
    "trees/animated_paint_worklet_tracker.cc",
    "trees/animated_paint_worklet_tracker.h",
    "trees/animation_effect_timings.h",
    "trees/animation_options.h",
    "trees/browser_controls_params.cc",
    "trees/browser_controls_params.h",
    "trees/clip_expander.cc",
    "trees/clip_expander.h",
    "trees/clip_node.cc",
    "trees/clip_node.h",
    "trees/compositor_mode.h",
    "trees/damage_tracker.cc",
    "trees/damage_tracker.h",
    "trees/de_jelly_state.cc",
    "trees/de_jelly_state.h",
    "trees/debug_rect_history.cc",
    "trees/debug_rect_history.h",
    "trees/draw_property_utils.cc",
    "trees/draw_property_utils.h",
    "trees/effect_node.cc",
    "trees/effect_node.h",
    "trees/frame_rate_estimator.cc",
    "trees/frame_rate_estimator.h",
    "trees/image_animation_controller.cc",
    "trees/image_animation_controller.h",
    "trees/latency_info_swap_promise.cc",
    "trees/latency_info_swap_promise.h",
    "trees/latency_info_swap_promise_monitor.cc",
    "trees/latency_info_swap_promise_monitor.h",
    "trees/layer_tree_frame_sink.cc",
    "trees/layer_tree_frame_sink.h",
    "trees/layer_tree_frame_sink_client.h",
    "trees/layer_tree_host.cc",
    "trees/layer_tree_host.h",
    "trees/layer_tree_host_client.h",
    "trees/layer_tree_host_impl.cc",
    "trees/layer_tree_host_impl.h",
    "trees/layer_tree_host_single_thread_client.h",
    "trees/layer_tree_impl.cc",
    "trees/layer_tree_impl.h",
    "trees/layer_tree_mutator.cc",
    "trees/layer_tree_mutator.h",
    "trees/layer_tree_settings.cc",
    "trees/layer_tree_settings.h",
    "trees/managed_memory_policy.cc",
    "trees/managed_memory_policy.h",
    "trees/mutator_host.h",
    "trees/mutator_host_client.h",
    "trees/occlusion.cc",
    "trees/occlusion.h",
    "trees/occlusion_tracker.cc",
    "trees/occlusion_tracker.h",
    "trees/paint_holding_commit_trigger.h",
    "trees/presentation_time_callback_buffer.cc",
    "trees/presentation_time_callback_buffer.h",
    "trees/property_animation_state.cc",
    "trees/property_animation_state.h",
    "trees/property_tree.cc",
    "trees/property_tree.h",
    "trees/property_tree_builder.cc",
    "trees/property_tree_builder.h",
    "trees/proxy.h",
    "trees/proxy_common.cc",
    "trees/proxy_common.h",
    "trees/proxy_impl.cc",
    "trees/proxy_impl.h",
    "trees/proxy_main.cc",
    "trees/proxy_main.h",
    "trees/render_frame_metadata.cc",
    "trees/render_frame_metadata.h",
    "trees/render_frame_metadata_observer.h",
    "trees/scoped_abort_remaining_swap_promises.h",
    "trees/scroll_and_scale_set.cc",
    "trees/scroll_and_scale_set.h",
    "trees/scroll_node.cc",
    "trees/scroll_node.h",
    "trees/single_thread_proxy.cc",
    "trees/single_thread_proxy.h",
    "trees/sticky_position_constraint.cc",
    "trees/sticky_position_constraint.h",
    "trees/swap_promise.h",
    "trees/swap_promise_manager.cc",
    "trees/swap_promise_manager.h",
    "trees/swap_promise_monitor.cc",
    "trees/swap_promise_monitor.h",
    "trees/target_property.cc",
    "trees/target_property.h",
    "trees/task_runner_provider.cc",
    "trees/task_runner_provider.h",
    "trees/transform_node.cc",
    "trees/transform_node.h",
    "trees/tree_synchronizer.cc",
    "trees/tree_synchronizer.h",
    "trees/ukm_manager.cc",
    "trees/ukm_manager.h",
    "trees/viewport_layers.cc",
    "trees/viewport_layers.h",
  ]

  public_deps = [
    "//cc/base",
    "//cc/paint",
    "//components/viz/common",
    "//skia",
  ]
  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//components/viz/client",
    "//gpu",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/client:raster_interface",
    "//gpu/skia_bindings:skia_bindings",
    "//gpu/vulkan:buildflags",
    "//media",  # For VideoLayerImpl.
    "//mojo/public/cpp/bindings:struct_traits",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/metrics/public/mojom",
    "//services/tracing/public/cpp:cpp",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gl",
    "//ui/latency",
  ]

  defines = [ "CC_IMPLEMENTATION=1" ]
}

cc_test_static_library("test_support") {
  testonly = true
  sources = [
    "test/animation_test_common.cc",
    "test/animation_test_common.h",
    "test/animation_timelines_test_common.cc",
    "test/animation_timelines_test_common.h",
    "test/fake_compositor_frame_reporting_controller.cc",
    "test/fake_compositor_frame_reporting_controller.h",
    "test/fake_content_layer_client.cc",
    "test/fake_content_layer_client.h",
    "test/fake_impl_task_runner_provider.h",
    "test/fake_layer_tree_frame_sink.cc",
    "test/fake_layer_tree_frame_sink.h",
    "test/fake_layer_tree_frame_sink_client.cc",
    "test/fake_layer_tree_frame_sink_client.h",
    "test/fake_layer_tree_host.cc",
    "test/fake_layer_tree_host.h",
    "test/fake_layer_tree_host_client.cc",
    "test/fake_layer_tree_host_client.h",
    "test/fake_layer_tree_host_impl.cc",
    "test/fake_layer_tree_host_impl.h",
    "test/fake_layer_tree_host_impl_client.cc",
    "test/fake_layer_tree_host_impl_client.h",
    "test/fake_mask_layer_impl.cc",
    "test/fake_mask_layer_impl.h",
    "test/fake_output_surface_client.cc",
    "test/fake_output_surface_client.h",
    "test/fake_paint_image_generator.cc",
    "test/fake_paint_image_generator.h",
    "test/fake_painted_scrollbar_layer.cc",
    "test/fake_painted_scrollbar_layer.h",
    "test/fake_picture_layer.cc",
    "test/fake_picture_layer.h",
    "test/fake_picture_layer_impl.cc",
    "test/fake_picture_layer_impl.h",
    "test/fake_picture_layer_tiling_client.cc",
    "test/fake_picture_layer_tiling_client.h",
    "test/fake_proxy.cc",
    "test/fake_proxy.h",
    "test/fake_raster_buffer_provider.cc",
    "test/fake_raster_buffer_provider.h",
    "test/fake_raster_source.cc",
    "test/fake_raster_source.h",
    "test/fake_recording_source.cc",
    "test/fake_recording_source.h",
    "test/fake_rendering_stats_instrumentation.h",
    "test/fake_scoped_ui_resource.cc",
    "test/fake_scoped_ui_resource.h",
    "test/fake_scrollbar.cc",
    "test/fake_scrollbar.h",
    "test/fake_tile_manager.cc",
    "test/fake_tile_manager.h",
    "test/fake_tile_manager_client.cc",
    "test/fake_tile_manager_client.h",
    "test/fake_tile_task_manager.cc",
    "test/fake_tile_task_manager.h",
    "test/fake_ui_resource_layer_tree_host_impl.cc",
    "test/fake_ui_resource_layer_tree_host_impl.h",
    "test/fake_video_frame_provider.cc",
    "test/fake_video_frame_provider.h",
    "test/geometry_test_utils.cc",
    "test/geometry_test_utils.h",
    "test/layer_test_common.cc",
    "test/layer_test_common.h",
    "test/layer_tree_impl_test_base.cc",
    "test/layer_tree_impl_test_base.h",
    "test/layer_tree_json_parser.cc",
    "test/layer_tree_json_parser.h",
    "test/layer_tree_pixel_resource_test.cc",
    "test/layer_tree_pixel_resource_test.h",
    "test/layer_tree_pixel_test.cc",
    "test/layer_tree_pixel_test.h",
    "test/layer_tree_test.cc",
    "test/layer_tree_test.h",
    "test/mock_layer_tree_mutator.cc",
    "test/mock_layer_tree_mutator.h",
    "test/mock_mutator_host.cc",
    "test/mock_mutator_host.h",
    "test/mock_occlusion_tracker.h",
    "test/paint_op_helper.h",
    "test/pixel_comparator.cc",
    "test/pixel_comparator.h",
    "test/pixel_test.cc",
    "test/pixel_test.h",
    "test/pixel_test_output_surface.cc",
    "test/pixel_test_output_surface.h",
    "test/pixel_test_utils.cc",
    "test/pixel_test_utils.h",
    "test/property_tree_test_utils.cc",
    "test/property_tree_test_utils.h",
    "test/push_properties_counting_layer.cc",
    "test/push_properties_counting_layer.h",
    "test/push_properties_counting_layer_impl.cc",
    "test/push_properties_counting_layer_impl.h",
    "test/render_pass_test_utils.cc",
    "test/render_pass_test_utils.h",
    "test/resource_provider_test_utils.cc",
    "test/resource_provider_test_utils.h",
    "test/scheduler_test_common.cc",
    "test/scheduler_test_common.h",
    "test/skia_common.cc",
    "test/skia_common.h",
    "test/solid_color_content_layer_client.cc",
    "test/solid_color_content_layer_client.h",
    "test/stub_decode_cache.cc",
    "test/stub_decode_cache.h",
    "test/stub_layer_tree_host_client.cc",
    "test/stub_layer_tree_host_client.h",
    "test/stub_layer_tree_host_single_thread_client.cc",
    "test/stub_layer_tree_host_single_thread_client.h",
    "test/task_graph_runner_test_template.cc",
    "test/task_graph_runner_test_template.h",
    "test/test_hooks.cc",
    "test/test_hooks.h",
    "test/test_layer_tree_frame_sink.cc",
    "test/test_layer_tree_frame_sink.h",
    "test/test_layer_tree_host_base.cc",
    "test/test_layer_tree_host_base.h",
    "test/test_occlusion_tracker.h",
    "test/test_options_provider.cc",
    "test/test_options_provider.h",
    "test/test_paint_worklet_input.cc",
    "test/test_paint_worklet_input.h",
    "test/test_paint_worklet_layer_painter.cc",
    "test/test_paint_worklet_layer_painter.h",
    "test/test_skcanvas.cc",
    "test/test_skcanvas.h",
    "test/test_task_graph_runner.cc",
    "test/test_task_graph_runner.h",
    "test/test_tile_priorities.cc",
    "test/test_tile_priorities.h",
    "test/test_tile_task_runner.cc",
    "test/test_tile_task_runner.h",
    "test/test_ukm_recorder_factory.cc",
    "test/test_ukm_recorder_factory.h",
    "test/transfer_cache_test_helper.cc",
    "test/transfer_cache_test_helper.h",
  ]

  public_deps = [
    ":cc",
    "//cc/animation",
    "//gpu:test_support",
    "//testing/gmock",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//base/third_party/dynamic_annotations",
    "//cc/paint",
    "//components/ukm",
    "//components/ukm:test_support",
    "//components/viz/client",
    "//components/viz/common",
    "//components/viz/service",
    "//components/viz/test:test_support",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/command_buffer/client:raster",
    "//gpu/command_buffer/common",
    "//gpu/ipc:gl_in_process_context",
    "//gpu/ipc/service",
    "//gpu/skia_bindings",
    "//media",
    "//services/viz/privileged/mojom",
    "//skia",
    "//testing/gtest",
    "//ui/gfx",
    "//ui/gfx:test_support",
    "//ui/gfx/geometry",
    "//ui/gl",
    "//ui/gl:test_support",
    "//ui/latency",
  ]
  if (enable_vulkan) {
    deps += [ "//gpu/vulkan/init" ]
  }
  if (!is_android) {
    data_deps = [ "//third_party/mesa_headers" ]
  }
}

cc_test("cc_unittests") {
  sources = [
    "base/delayed_unique_notifier_unittest.cc",
    "base/float_quad_unittest.cc",
    "base/histograms_unittest.cc",
    "base/index_rect_unittest.cc",
    "base/list_container_unittest.cc",
    "base/math_util_unittest.cc",
    "base/region_unittest.cc",
    "base/rolling_time_delta_history_unittest.cc",
    "base/rtree_unittest.cc",
    "base/simple_enclosed_region_unittest.cc",
    "base/spiral_iterator_unittest.cc",
    "base/tiling_data_unittest.cc",
    "base/unique_notifier_unittest.cc",
    "benchmarks/micro_benchmark_controller_unittest.cc",
    "debug/rendering_stats_unittest.cc",
    "input/browser_controls_offset_manager_unittest.cc",
    "input/main_thread_scrolling_reason_unittest.cc",
    "input/scroll_snap_data_unittest.cc",
    "input/scroll_state_unittest.cc",
    "input/scrollbar_animation_controller_unittest.cc",
    "input/single_scrollbar_animation_controller_thinning_unittest.cc",
    "input/snap_fling_controller_unittest.cc",
    "input/snap_fling_curve_unittest.cc",
    "layers/effect_tree_layer_list_iterator_unittest.cc",
    "layers/heads_up_display_layer_impl_unittest.cc",
    "layers/heads_up_display_unittest.cc",
    "layers/layer_impl_unittest.cc",
    "layers/layer_list_iterator_unittest.cc",
    "layers/layer_unittest.cc",
    "layers/mirror_layer_unittest.cc",
    "layers/nine_patch_generator_unittest.cc",
    "layers/nine_patch_layer_impl_unittest.cc",
    "layers/nine_patch_layer_unittest.cc",
    "layers/painted_overlay_scrollbar_layer_unittest.cc",
    "layers/painted_scrollbar_layer_impl_unittest.cc",
    "layers/painted_scrollbar_layer_unittest.cc",
    "layers/picture_layer_impl_unittest.cc",
    "layers/picture_layer_unittest.cc",
    "layers/recording_source_unittest.cc",
    "layers/render_surface_impl_unittest.cc",
    "layers/render_surface_unittest.cc",
    "layers/scrollbar_layer_unittest.cc",
    "layers/solid_color_layer_impl_unittest.cc",
    "layers/solid_color_scrollbar_layer_impl_unittest.cc",
    "layers/surface_layer_impl_unittest.cc",
    "layers/surface_layer_unittest.cc",
    "layers/texture_layer_impl_unittest.cc",
    "layers/texture_layer_unittest.cc",
    "layers/touch_action_region_unittest.cc",
    "layers/ui_resource_layer_impl_unittest.cc",
    "layers/ui_resource_layer_unittest.cc",
    "layers/video_frame_provider_client_impl_unittest.cc",
    "layers/video_layer_impl_unittest.cc",
    "layers/viewport_unittest.cc",
    "metrics/compositor_frame_reporter_unittest.cc",
    "metrics/compositor_frame_reporting_controller_unittest.cc",
    "metrics/compositor_timing_history_unittest.cc",
    "metrics/events_metrics_manager_unittest.cc",
    "metrics/frame_sequence_metrics_unittest.cc",
    "metrics/frame_sequence_tracker_unittest.cc",
    "metrics/video_playback_roughness_reporter_unittest.cc",
    "mojo_embedder/async_layer_tree_frame_sink_unittest.cc",
    "paint/discardable_image_map_unittest.cc",
    "paint/display_item_list_unittest.cc",
    "paint/filter_operations_unittest.cc",
    "paint/image_transfer_cache_entry_unittest.cc",
    "paint/oop_pixeltest.cc",
    "paint/paint_cache_unittest.cc",
    "paint/paint_filter_unittest.cc",
    "paint/paint_image_unittest.cc",
    "paint/paint_op_buffer_unittest.cc",
    "paint/paint_op_helper_unittest.cc",
    "paint/paint_shader_unittest.cc",
    "paint/scoped_raster_flags_unittest.cc",
    "paint/skia_paint_canvas_unittest.cc",
    "paint/solid_color_analyzer_unittest.cc",
    "paint/transfer_cache_unittest.cc",
    "raster/playback_image_provider_unittest.cc",
    "raster/raster_buffer_provider_unittest.cc",
    "raster/raster_source_unittest.cc",
    "raster/scoped_gpu_raster_unittest.cc",
    "raster/single_thread_task_graph_runner_unittest.cc",
    "raster/staging_buffer_pool_unittest.cc",
    "raster/synchronous_task_graph_runner_unittest.cc",
    "raster/task_graph_work_queue_unittest.cc",
    "resources/resource_pool_unittest.cc",
    "scheduler/scheduler_state_machine_unittest.cc",
    "scheduler/scheduler_unittest.cc",
    "test/mock_mutator_host_unittest.cc",
    "tiles/checker_image_tracker_unittest.cc",
    "tiles/decoded_image_tracker_unittest.cc",
    "tiles/gpu_image_decode_cache_unittest.cc",
    "tiles/image_controller_unittest.cc",
    "tiles/mipmap_util_unittest.cc",
    "tiles/picture_layer_tiling_set_unittest.cc",
    "tiles/picture_layer_tiling_unittest.cc",
    "tiles/software_image_decode_cache_unittest.cc",
    "tiles/software_image_decode_cache_unittest_combinations.cc",
    "tiles/tile_manager_unittest.cc",
    "tiles/tile_priority_unittest.cc",
    "trees/damage_tracker_unittest.cc",
    "trees/draw_properties_unittest.cc",
    "trees/frame_rate_estimator_unittest.cc",
    "trees/image_animation_controller_unittest.cc",
    "trees/layer_tree_frame_sink_unittest.cc",
    "trees/layer_tree_host_impl_unittest.cc",
    "trees/layer_tree_host_pixeltest_blending.cc",
    "trees/layer_tree_host_pixeltest_filters.cc",
    "trees/layer_tree_host_pixeltest_masks.cc",
    "trees/layer_tree_host_pixeltest_mirror.cc",
    "trees/layer_tree_host_pixeltest_readback.cc",
    "trees/layer_tree_host_pixeltest_scrollbars.cc",
    "trees/layer_tree_host_pixeltest_synchronous.cc",
    "trees/layer_tree_host_pixeltest_tiles.cc",
    "trees/layer_tree_host_unittest.cc",
    "trees/layer_tree_host_unittest_animation.cc",
    "trees/layer_tree_host_unittest_capture_content.cc",
    "trees/layer_tree_host_unittest_checkerimaging.cc",
    "trees/layer_tree_host_unittest_context.cc",
    "trees/layer_tree_host_unittest_copyrequest.cc",
    "trees/layer_tree_host_unittest_damage.cc",
    "trees/layer_tree_host_unittest_masks.cc",
    "trees/layer_tree_host_unittest_occlusion.cc",
    "trees/layer_tree_host_unittest_picture.cc",
    "trees/layer_tree_host_unittest_proxy.cc",
    "trees/layer_tree_host_unittest_record_gpu_histogram.cc",
    "trees/layer_tree_host_unittest_scroll.cc",
    "trees/layer_tree_host_unittest_video.cc",
    "trees/layer_tree_impl_unittest.cc",
    "trees/occlusion_tracker_unittest.cc",
    "trees/occlusion_unittest.cc",
    "trees/presentation_time_callback_buffer_unittest.cc",
    "trees/property_tree_builder_unittest.cc",
    "trees/property_tree_unittest.cc",
    "trees/swap_promise_manager_unittest.cc",
    "trees/tree_synchronizer_unittest.cc",
    "trees/ukm_manager_unittest.cc",

    # Animation test files.
    "animation/animation_host_unittest.cc",
    "animation/animation_timeline_unittest.cc",
    "animation/animation_unittest.cc",
    "animation/element_animations_unittest.cc",
    "animation/keyframe_model_unittest.cc",
    "animation/keyframed_animation_curve_unittest.cc",
    "animation/scroll_offset_animation_curve_unittest.cc",
    "animation/scroll_timeline_unittest.cc",
    "animation/transform_operations_unittest.cc",
    "animation/worklet_animation_unittest.cc",

    # Setup.
    "test/cc_test_suite.cc",
    "test/cc_test_suite.h",
    "test/run_all_unittests.cc",
  ]

  if (!is_android) {
    data = [ "//components/viz/test/data/" ]
    sources += [ "paint/skottie_transfer_cache_entry_unittest.cc" ]
  }

  deps = [
    ":cc",
    ":test_support",
    "//base/test:test_support",
    "//cc/mojo_embedder",
    "//cc/paint",
    "//components/ukm:test_support",
    "//components/viz/client",
    "//components/viz/common",
    "//components/viz/service",
    "//components/viz/test:test_support",
    "//gpu",
    "//gpu:test_support",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/client:raster",
    "//gpu/command_buffer/client:raster_interface",
    "//gpu/ipc:gl_in_process_context",
    "//gpu/skia_bindings",
    "//media",
    "//mojo/core/embedder",
    "//mojo/public/cpp/bindings",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx:test_support",
    "//ui/gfx/geometry",
    "//ui/gl",
    "//ui/gl:test_support",
  ]
  data_deps = [
    "//testing/buildbot/filters:cc_unittests_filters",
    "//third_party/mesa_headers",
  ]

  defines = []

  if (is_fuchsia) {
    manifest = "//build/config/fuchsia/gfx_tests.cmx"
  }

  if (enable_vulkan) {
    deps += [
      "//gpu/vulkan:test_support",
      "//gpu/vulkan/init",
    ]

    # TODO(samans): Support more configurations.
    # CFI issue: https://crbug.com/967819
    # LSAN issue: https://crbug.com/971325
    # Fuchsia ARM64 https://crbug.com/1058247
    if ((use_x11 && !is_cfi && !is_lsan) ||
        (is_fuchsia && target_cpu == "x64")) {
      defines += [ "ENABLE_CC_VULKAN_TESTS" ]
    }
  }

  if (skia_use_dawn) {
    defines += [ "ENABLE_CC_DAWN_TESTS" ]
  }
}

cc_test("cc_perftests") {
  sources = [
    "animation/animation_host_perftest.cc",
    "base/rtree_perftest.cc",
    "layers/layer_perftest.cc",
    "layers/picture_layer_impl_perftest.cc",
    "paint/paint_op_perftest.cc",
    "raster/raster_buffer_provider_perftest.cc",
    "raster/task_graph_runner_perftest.cc",
    "test/cc_test_suite.cc",
    "test/cc_test_suite.h",
    "test/run_all_perftests.cc",
    "tiles/gpu_image_decode_cache_perftest.cc",
    "tiles/software_image_decode_cache_perftest.cc",
    "tiles/tile_manager_perftest.cc",
    "trees/draw_property_utils_perftest.cc",
    "trees/layer_tree_host_perftest.cc",
  ]

  deps = [
    ":cc",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//cc/paint",
    "//components/viz/client",
    "//components/viz/common",
    "//components/viz/test:test_support",
    "//gpu",
    "//gpu:test_support",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/command_buffer/client:raster",
    "//gpu/command_buffer/client:raster_interface",
    "//gpu/ipc:gl_in_process_context",
    "//gpu/ipc/common:mojom_traits",
    "//media",
    "//mojo/core/embedder",
    "//mojo/public/cpp/bindings",
    "//services/viz/public/mojom",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
    "//testing/perf",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gl",
    "//ui/gl:test_support",
  ]

  # This target should not require the Chrome executable to run.
  assert_no_deps = [ "//chrome" ]

  data = [ "//components/viz/test/data/" ]

  data_deps = [
    # Needed for isolate script to execute.
    "//testing:run_perf_test",
  ]
}