| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//chrome/common/features.gni") |
| import("//components/guest_view/buildflags/buildflags.gni") |
| import("//extensions/buildflags/buildflags.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| # The public interface for task_manager does not allow circular dependencies. |
| source_set("task_manager") { |
| sources = [ |
| "providers/browser_process_task.h", |
| "providers/browser_process_task_provider.h", |
| "providers/child_process_task.h", |
| "providers/child_process_task_provider.h", |
| "providers/fallback_task_provider.h", |
| "providers/per_profile_worker_task_tracker.h", |
| "providers/render_process_host_task_provider.h", |
| "providers/spare_render_process_host_task_provider.h", |
| "providers/task.h", |
| "providers/task_provider.h", |
| "providers/task_provider_observer.h", |
| "providers/web_contents/back_forward_cache_task.h", |
| "providers/web_contents/devtools_tag.h", |
| "providers/web_contents/devtools_task.h", |
| "providers/web_contents/fenced_frame_task.h", |
| "providers/web_contents/isolated_web_app_task.h", |
| "providers/web_contents/no_state_prefetch_tag.h", |
| "providers/web_contents/no_state_prefetch_task.h", |
| "providers/web_contents/prerender_task.h", |
| "providers/web_contents/printing_tag.h", |
| "providers/web_contents/printing_task.h", |
| "providers/web_contents/renderer_task.h", |
| "providers/web_contents/subframe_task.h", |
| "providers/web_contents/tab_contents_tag.h", |
| "providers/web_contents/tab_contents_task.h", |
| "providers/web_contents/tool_tag.h", |
| "providers/web_contents/tool_task.h", |
| "providers/web_contents/web_app_tag.h", |
| "providers/web_contents/web_app_task.h", |
| "providers/web_contents/web_contents_tag.h", |
| "providers/web_contents/web_contents_tags_manager.h", |
| "providers/web_contents/web_contents_task_provider.h", |
| "providers/worker_task.h", |
| "providers/worker_task_provider.h", |
| "sampling/shared_sampler.h", |
| "sampling/task_group.h", |
| "sampling/task_group_sampler.h", |
| "sampling/task_manager_impl.h", |
| "task_manager_interface.h", |
| "task_manager_metrics_recorder.h", |
| "task_manager_observer.h", |
| "web_contents_tags.h", |
| ] |
| public_deps = [ |
| "//base", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/profiles:profile_util", |
| "//chrome/common:buildflags", |
| "//components/favicon/core", |
| "//components/guest_view/buildflags", |
| "//components/sessions:session_id", |
| "//components/webapps/common", |
| "//content/public/browser", |
| "//extensions/buildflags", |
| "//services/resource_coordinator/public/cpp/memory_instrumentation", |
| "//third_party/blink/public/common:headers", |
| "//third_party/blink/public/common/tokens:tokens_headers", |
| "//ui/gfx", |
| ] |
| |
| if (is_win) { |
| sources += [ "sampling/shared_sampler_win_defines.h" ] |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "providers/arc/arc_process_task.h", |
| "providers/arc/arc_process_task_provider.h", |
| "providers/vm/crostini_process_task.h", |
| "providers/vm/plugin_vm_process_task.h", |
| "providers/vm/vm_process_task.h", |
| "providers/vm/vm_process_task_provider.h", |
| "sampling/arc_shared_sampler.h", |
| ] |
| public_deps += [ |
| "//chromeos/ash/components/dbus/concierge", |
| "//chromeos/ash/components/dbus/concierge:concierge_proto", |
| "//chromeos/ash/components/process_snapshot", |
| "//chromeos/ash/experiences/arc/intent_helper", |
| "//chromeos/ash/experiences/arc/mojom", |
| "//chromeos/ash/experiences/arc/process", |
| "//chromeos/ash/experiences/arc/session:connection_holder", |
| ] |
| } |
| if (!is_android) { |
| sources += [ |
| "providers/web_contents/background_contents_tag.h", |
| "providers/web_contents/background_contents_task.h", |
| "providers/web_contents/extension_tag.h", |
| "providers/web_contents/extension_task.h", |
| "providers/web_contents/guest_tag.h", |
| "providers/web_contents/guest_task.h", |
| "providers/web_contents/guest_task_mparch.h", |
| ] |
| public_deps += [ |
| "//extensions/browser", |
| "//extensions/buildflags", |
| "//extensions/common:mojom", |
| ] |
| } |
| } |
| |
| # The implementation must be linked into the same binary as the public |
| # interface. This does have circular dependencies with //chrome/browser and |
| # //chrome/browser/ui. |
| source_set("impl") { |
| public_deps = [ "//chrome/browser:browser_public_dependencies" ] |
| |
| sources = [ |
| "providers/browser_process_task.cc", |
| "providers/browser_process_task_provider.cc", |
| "providers/child_process_task.cc", |
| "providers/child_process_task_provider.cc", |
| "providers/fallback_task_provider.cc", |
| "providers/per_profile_worker_task_tracker.cc", |
| "providers/render_process_host_task_provider.cc", |
| "providers/spare_render_process_host_task_provider.cc", |
| "providers/task.cc", |
| "providers/task_provider.cc", |
| "providers/web_contents/back_forward_cache_task.cc", |
| "providers/web_contents/devtools_tag.cc", |
| "providers/web_contents/devtools_task.cc", |
| "providers/web_contents/fenced_frame_task.cc", |
| "providers/web_contents/isolated_web_app_task.cc", |
| "providers/web_contents/no_state_prefetch_tag.cc", |
| "providers/web_contents/no_state_prefetch_task.cc", |
| "providers/web_contents/prerender_task.cc", |
| "providers/web_contents/printing_tag.cc", |
| "providers/web_contents/printing_task.cc", |
| "providers/web_contents/renderer_task.cc", |
| "providers/web_contents/subframe_task.cc", |
| "providers/web_contents/tab_contents_tag.cc", |
| "providers/web_contents/tab_contents_task.cc", |
| "providers/web_contents/tool_tag.cc", |
| "providers/web_contents/tool_task.cc", |
| "providers/web_contents/web_app_tag.cc", |
| "providers/web_contents/web_app_task.cc", |
| "providers/web_contents/web_contents_tag.cc", |
| "providers/web_contents/web_contents_tags_manager.cc", |
| "providers/web_contents/web_contents_task_provider.cc", |
| "providers/worker_task.cc", |
| "providers/worker_task_provider.cc", |
| "sampling/task_group.cc", |
| "sampling/task_group_sampler.cc", |
| "sampling/task_manager_impl.cc", |
| "task_manager_interface.cc", |
| "task_manager_metrics_recorder.cc", |
| "task_manager_observer.cc", |
| "web_contents_tags.cc", |
| ] |
| |
| deps = [ |
| ":task_manager", |
| "//base", |
| "//base", |
| "//base:i18n", |
| "//chrome/app:generated_resources", |
| "//chrome/app:generated_resources_grit", |
| "//chrome/app/theme:theme_resources", |
| "//chrome/app/theme:theme_resources_grit", |
| "//chrome/browser:browser_process", |
| "//chrome/browser/favicon", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/task_manager", |
| "//chrome/browser/task_manager/common", |
| "//chrome/browser/ui:url_identity", |
| "//chrome/common", |
| "//chrome/common:constants", |
| "//chrome/common:non_code_constants", |
| "//components/prefs", |
| "//components/sessions", |
| "//components/webapps/common", |
| "//content/public/browser", |
| "//content/public/common", |
| "//content/public/common:result_codes", |
| "//gpu/ipc/common", |
| "//mojo/public/cpp/bindings", |
| "//printing/buildflags", |
| "//services/network/public/cpp", |
| "//services/network/public/mojom", |
| "//services/resource_coordinator/public/cpp/memory_instrumentation", |
| "//sql", |
| "//ui/base", |
| "//ui/gfx", |
| "//url", |
| ] |
| |
| if (is_win) { |
| sources += [ "sampling/shared_sampler_win.cc" ] |
| } else { |
| sources += [ "sampling/shared_sampler_stub.cc" ] |
| } |
| if (is_chromeos) { |
| sources += [ |
| "providers/arc/arc_process_task.cc", |
| "providers/arc/arc_process_task_provider.cc", |
| "providers/vm/crostini_process_task.cc", |
| "providers/vm/plugin_vm_process_task.cc", |
| "providers/vm/vm_process_task.cc", |
| "providers/vm/vm_process_task_provider.cc", |
| "sampling/arc_shared_sampler.cc", |
| ] |
| deps += [ |
| "//chrome/app/theme:chrome_unscaled_resources_grit", |
| "//chrome/browser/ash/crostini", |
| "//chrome/browser/ash/plugin_vm", |
| "//chromeos/ash/components/dbus/concierge", |
| "//chromeos/ash/experiences/arc:arc_base_utils", |
| "//chromeos/ash/experiences/arc/intent_helper", |
| "//chromeos/ash/experiences/arc/process", |
| "//chromeos/ash/experiences/arc/session", |
| ] |
| } |
| if (!is_android) { |
| deps += [ "//chrome/browser/background" ] |
| sources += [ |
| "providers/web_contents/background_contents_tag.cc", |
| "providers/web_contents/background_contents_task.cc", |
| ] |
| } |
| if (enable_guest_view) { |
| deps += [ "//components/guest_view/browser" ] |
| sources += [ |
| "providers/web_contents/guest_tag.cc", |
| "providers/web_contents/guest_task.cc", |
| "providers/web_contents/guest_task_mparch.cc", |
| ] |
| } |
| if (enable_extensions_core) { |
| deps += [ |
| "//chrome/browser/extensions", |
| "//extensions:extensions_browser_resources", |
| "//extensions:extensions_browser_resources_grit", |
| "//extensions/browser", |
| "//extensions/buildflags", |
| "//extensions/common", |
| ] |
| sources += [ |
| "providers/web_contents/extension_tag.cc", |
| "providers/web_contents/extension_task.cc", |
| ] |
| } |
| if (enable_glic) { |
| deps += [ "//chrome/browser/glic" ] |
| } |
| |
| # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and |
| # enable the diagnostic by removing this line. |
| configs += [ "//build/config/compiler:no_exit_time_destructors" ] |
| } |
| |
| if (is_android) { |
| java_cpp_enum("java_enum_srcjar") { |
| visibility = [ "//chrome/browser/task_manager/internal/android:*" ] |
| sources = [ "task_manager_observer.h" ] |
| } |
| } |