# Copyright 2017 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/jumbo.gni")
import("//third_party/blink/renderer/platform/platform.gni")
import("//third_party/protobuf/proto_library.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

blink_platform_sources("scheduler") {
  sources = [
    "child/features.cc",
    "child/features.h",
    "child/pollable_thread_safe_flag.cc",
    "child/pollable_thread_safe_flag.h",
    "child/process_state.cc",
    "child/process_state.h",
    "child/single_thread_idle_task_runner.cc",
    "common/background_scheduler.cc",
    "common/cancelable_closure_holder.cc",
    "common/cancelable_closure_holder.h",
    "common/frame_or_worker_scheduler.cc",
    "common/idle_canceled_delayed_task_sweeper.cc",
    "common/idle_canceled_delayed_task_sweeper.h",
    "common/idle_helper.cc",
    "common/idle_helper.h",
    "common/metrics_helper.cc",
    "common/metrics_helper.h",
    "common/scheduler_helper.cc",
    "common/scheduler_helper.h",
    "common/scheduling_lifecycle_state.cc",
    "common/simple_thread_scheduler.cc",
    "common/simple_thread_scheduler.h",
    "common/thread.cc",
    "common/thread_scheduler.cc",
    "common/thread_scheduler_impl.cc",
    "common/thread_scheduler_impl.h",
    "common/throttling/budget_pool.cc",
    "common/throttling/budget_pool.h",
    "common/throttling/cpu_time_budget_pool.cc",
    "common/throttling/cpu_time_budget_pool.h",
    "common/throttling/task_queue_throttler.cc",
    "common/throttling/task_queue_throttler.h",
    "common/throttling/throttled_time_domain.cc",
    "common/throttling/throttled_time_domain.h",
    "common/throttling/wake_up_budget_pool.cc",
    "common/throttling/wake_up_budget_pool.h",
    "common/unprioritized_resource_loading_task_runner_handle.cc",
    "common/unprioritized_resource_loading_task_runner_handle.h",
    "common/web_resource_loading_task_runner_handle.cc",
    "common/web_thread_scheduler.cc",
    "main_thread/auto_advancing_virtual_time_domain.cc",
    "main_thread/auto_advancing_virtual_time_domain.h",
    "main_thread/deadline_task_runner.cc",
    "main_thread/deadline_task_runner.h",
    "main_thread/frame_origin_type.cc",
    "main_thread/frame_origin_type.h",
    "main_thread/frame_scheduler_impl.cc",
    "main_thread/frame_scheduler_impl.h",
    "main_thread/frame_task_queue_controller.cc",
    "main_thread/frame_task_queue_controller.h",
    "main_thread/idle_time_estimator.cc",
    "main_thread/idle_time_estimator.h",
    "main_thread/main_thread.cc",
    "main_thread/main_thread.h",
    "main_thread/main_thread_metrics_helper.cc",
    "main_thread/main_thread_metrics_helper.h",
    "main_thread/main_thread_scheduler_helper.cc",
    "main_thread/main_thread_scheduler_helper.h",
    "main_thread/main_thread_scheduler_impl.cc",
    "main_thread/main_thread_scheduler_impl.h",
    "main_thread/main_thread_task_queue.cc",
    "main_thread/main_thread_task_queue.h",
    "main_thread/page_scheduler_impl.cc",
    "main_thread/page_scheduler_impl.h",
    "main_thread/page_visibility_state.cc",
    "main_thread/page_visibility_state.h",
    "main_thread/prioritize_compositing_after_input_experiment.cc",
    "main_thread/prioritize_compositing_after_input_experiment.h",
    "main_thread/queueing_time_estimator.cc",
    "main_thread/queueing_time_estimator.h",
    "main_thread/render_widget_signals.cc",
    "main_thread/render_widget_signals.h",
    "main_thread/resource_loading_task_runner_handle_impl.cc",
    "main_thread/resource_loading_task_runner_handle_impl.h",
    "main_thread/task_cost_estimator.cc",
    "main_thread/task_cost_estimator.h",
    "main_thread/task_type_names.cc",
    "main_thread/task_type_names.h",
    "main_thread/use_case.h",
    "main_thread/user_model.cc",
    "main_thread/user_model.h",
    "main_thread/web_render_widget_scheduling_state.cc",
    "public/background_scheduler.h",
    "public/frame_or_worker_scheduler.h",
    "public/frame_scheduler.h",
    "public/page_lifecycle_state.h",
    "public/page_scheduler.h",
    "public/scheduling_lifecycle_state.h",
    "public/thread.h",
    "public/thread_scheduler.h",
    "public/worker_scheduler.h",
    "renderer/frame_status.cc",
    "renderer/frame_status.h",
    "renderer/web_scoped_virtual_time_pauser.cc",
    "util/aggregated_metric_reporter.h",
    "util/thread_cpu_throttler.cc",
    "util/thread_cpu_throttler.h",
    "util/thread_load_tracker.cc",
    "util/thread_load_tracker.h",
    "util/tracing_helper.cc",
    "util/tracing_helper.h",
    "worker/compositor_metrics_helper.cc",
    "worker/compositor_metrics_helper.h",
    "worker/compositor_thread_scheduler.cc",
    "worker/compositor_thread_scheduler.h",
    "worker/non_main_thread_scheduler_helper.cc",
    "worker/non_main_thread_scheduler_helper.h",
    "worker/non_main_thread_scheduler_impl.cc",
    "worker/non_main_thread_scheduler_impl.h",
    "worker/non_main_thread_task_queue.cc",
    "worker/non_main_thread_task_queue.h",
    "worker/worker_metrics_helper.cc",
    "worker/worker_metrics_helper.h",
    "worker/worker_scheduler.cc",
    "worker/worker_scheduler_proxy.cc",
    "worker/worker_scheduler_proxy.h",
    "worker/worker_thread.cc",
    "worker/worker_thread.h",
    "worker/worker_thread_scheduler.cc",
    "worker/worker_thread_scheduler.h",
  ]

  deps = [
    "//base",
    "//cc",
    "//components/scheduling_metrics",
    "//device/base/synchronization",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/metrics/public/mojom",
    "//third_party/blink/renderer/platform:make_platform_generated",
    "//third_party/blink/renderer/platform/wtf",
  ]
}

jumbo_source_set("test_support") {
  testonly = true

  sources = [
    "test/fake_frame_scheduler.h",
    "test/fake_page_scheduler.h",
    "test/fake_renderer_scheduler.cc",
    "test/fake_task_runner.cc",
    "test/fake_task_runner.h",
    "test/renderer_scheduler_test_support.cc",
    "test/test_queueing_time_estimator_client.cc",
    "test/test_queueing_time_estimator_client.h",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//mojo/public/cpp/bindings",
    "//third_party/blink/public/mojom:mojom_platform_blink_headers",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

jumbo_source_set("unit_tests") {
  testonly = true

  sources = [
    "common/background_scheduler_unittest.cc",
    "common/idle_canceled_delayed_task_sweeper_unittest.cc",
    "common/idle_helper_unittest.cc",
    "common/metrics_helper_unittest.cc",
    "common/scheduler_helper_unittest.cc",
    "common/throttling/budget_pool_unittest.cc",
    "common/throttling/task_queue_throttler_unittest.cc",
    "main_thread/auto_advancing_virtual_time_domain_unittest.cc",
    "main_thread/deadline_task_runner_unittest.cc",
    "main_thread/frame_scheduler_impl_unittest.cc",
    "main_thread/frame_task_queue_controller_unittest.cc",
    "main_thread/idle_time_estimator_unittest.cc",
    "main_thread/main_thread_metrics_helper_unittest.cc",
    "main_thread/main_thread_scheduler_impl_unittest.cc",
    "main_thread/main_thread_unittest.cc",
    "main_thread/page_scheduler_impl_unittest.cc",
    "main_thread/queueing_time_estimator_unittest.cc",
    "main_thread/render_widget_signals_unittest.cc",
    "main_thread/task_cost_estimator_unittest.cc",
    "main_thread/user_model_unittest.cc",
    "util/thread_load_tracker_unittest.cc",
    "util/tracing_helper_unittest.cc",
    "worker/compositor_thread_scheduler_unittest.cc",
    "worker/worker_scheduler_proxy_unittest.cc",
    "worker/worker_scheduler_unittest.cc",
    "worker/worker_thread_scheduler_unittest.cc",
    "worker/worker_thread_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public:test_support",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

source_set("perf_tests") {
  testonly = true

  sources = [
    "test/queueing_time_estimator_perf_test.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//testing/perf",
    "//third_party/blink/public:test_support",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

source_set("scheduler_fuzzer_tests") {
  testonly = true

  sources = []
  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/renderer/platform/scheduler:test_support",
  ]

  if (is_linux) {
    sources += [
      "test/fuzzer/sequence_manager_fuzzer_processor.cc",
      "test/fuzzer/sequence_manager_fuzzer_processor.h",
      "test/fuzzer/sequence_manager_fuzzer_processor_unittest.cc",
      "test/fuzzer/simple_thread_impl.cc",
      "test/fuzzer/simple_thread_impl.h",
      "test/fuzzer/task_queue_with_voters.h",
      "test/fuzzer/thread_manager.cc",
      "test/fuzzer/thread_manager.h",
      "test/fuzzer/thread_pool_manager.cc",
      "test/fuzzer/thread_pool_manager.h",
    ]

    deps += [
      ":sequence_manager_test_description_proto",
      "//third_party/libprotobuf-mutator",
    ]
  }

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

fuzzer_test("sequence_manager_fuzzer") {
  sources = [
    "test/fuzzer/sequence_manager_fuzzer.cc",
    "test/fuzzer/sequence_manager_fuzzer_processor.cc",
    "test/fuzzer/sequence_manager_fuzzer_processor.h",
    "test/fuzzer/simple_thread_impl.cc",
    "test/fuzzer/simple_thread_impl.h",
    "test/fuzzer/task_queue_with_voters.h",
    "test/fuzzer/thread_manager.cc",
    "test/fuzzer/thread_manager.h",
    "test/fuzzer/thread_pool_manager.cc",
    "test/fuzzer/thread_pool_manager.h",
  ]

  deps = [
    ":sequence_manager_test_description_proto",
    "//third_party/blink/renderer/platform:blink_fuzzer_test_support",
    "//third_party/blink/renderer/platform:test_support",
    "//third_party/libprotobuf-mutator",
  ]
}

proto_library("sequence_manager_test_description_proto") {
  sources = [
    "test/fuzzer/proto/sequence_manager_test_description.proto",
  ]
}
