
This expands 2 PerformanceManager features that are currently only initialized in renderer processes to all child processes: performance scenario shared memory regions (shared browser to child), and perfetto process track ID's (shared child to browser). Adds a ChildProcessCoordinationUnit interface that's connected to all child processes, including renderers. Moves RequestSharedPerformanceScenarioRegions() to the new interface and renames it InitializeChildProcessCoordination() since it exchanges several bits of data at process startup. Moves the child process ScopedReadOnlyScenarioMemory holders from RenderResourceCoordinatorImpl to a new ChildPerformanceCoordinator class (owned by ChildThreadImpl), which exists in every child process and sends InitializeChildProcessCoordination() on startup. Bug: 378879528,365586676 Change-Id: Iaa5ed4b4cef1a1a0b0110667e0cc3cf0fb343592 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6018369 Commit-Queue: Nasko Oskov <nasko@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Auto-Submit: Joe Mason <joenotcharles@google.com> Cr-Commit-Position: refs/heads/main@{#1383864}
148 lines
4.5 KiB
Python
148 lines
4.5 KiB
Python
# Do NOT add chrome to the list below. We shouldn't be including files
|
|
# from src/chrome in src/content.
|
|
include_rules = [
|
|
# The subdirectories in content/ will manually allow their own include
|
|
# directories in content/ so we disallow all of them.
|
|
"-content",
|
|
"+content/app/strings/grit", # For generated headers
|
|
"+content/common",
|
|
"+content/grit",
|
|
"+content/public/common",
|
|
"+content/public/test",
|
|
"+content/services/auction_worklet/public",
|
|
"+content/test",
|
|
"+blink/public/resources/grit",
|
|
"+cc",
|
|
|
|
"-components",
|
|
# Content can depend on components that are:
|
|
# 1) related to the implementation of the web platform, or,
|
|
# 2) shared code between third_party/blink and content
|
|
# It should not depend on chrome features or implementation details, i.e. the
|
|
# original components/ directories which was code split out from chrome/ to be
|
|
# shared with iOS. This includes, but isn't limited to, browser features such
|
|
# as autofill or extensions, and chrome implementation details such as
|
|
# settings, packaging details, installation or crash reporting.
|
|
|
|
"+components/app_launch_prefetch",
|
|
"+components/attribution_reporting",
|
|
"+components/browsing_topics/common",
|
|
"+components/input",
|
|
"+components/memory_pressure",
|
|
# components/performance_manager sits between chrome/ and content/, except for
|
|
# the mojo interfaces it exposes to content/ and third_party/blink/.
|
|
"+components/performance_manager/public/mojom",
|
|
"+components/services/filesystem",
|
|
"+components/services/font/public",
|
|
"+components/services/font_data/public",
|
|
"+components/startup_metric_utils",
|
|
"+components/variations",
|
|
"+components/value_store",
|
|
|
|
"+crypto",
|
|
"+grit/blink_resources.h",
|
|
|
|
"+dbus",
|
|
"+gpu",
|
|
"+media",
|
|
"+mojo/core/embedder",
|
|
"+mojo/public",
|
|
"+net",
|
|
"+ppapi",
|
|
"+printing",
|
|
"+sandbox",
|
|
"+services/proxy_resolver/public/mojom",
|
|
"+services/service_manager/zygote",
|
|
"+skia",
|
|
|
|
# In general, content/ should not rely on google_apis, since URLs
|
|
# and access tokens should usually be provided by the
|
|
# embedder.
|
|
#
|
|
# There are a couple of specific parts of content that are excepted
|
|
# from this rule, e.g. content/browser/speech/DEPS. These are cases of
|
|
# implementations that are strongly tied to Google servers, i.e. we
|
|
# don't expect alternate implementations to be provided by the
|
|
# embedder.
|
|
"-google_apis",
|
|
|
|
# Don't allow inclusion of these other libs we shouldn't be calling directly.
|
|
"-v8",
|
|
"-tools",
|
|
|
|
# Allow inclusion of third-party code:
|
|
"+third_party/angle",
|
|
"+third_party/boringssl/src/include",
|
|
"+third_party/flac",
|
|
"+third_party/mozilla",
|
|
"+third_party/ocmock",
|
|
"+third_party/re2",
|
|
"+third_party/skia",
|
|
"+third_party/sqlite",
|
|
"+third_party/khronos",
|
|
"+third_party/webrtc",
|
|
"+third_party/webrtc_overrides",
|
|
"+third_party/zlib/google",
|
|
"+third_party/blink/public",
|
|
|
|
"+ui/accelerated_widget_mac",
|
|
"+ui/accessibility",
|
|
"+ui/android",
|
|
# Aura is analogous to Win32 or a Gtk, so it is allowed.
|
|
"+ui/aura",
|
|
"+ui/base",
|
|
"+ui/color",
|
|
"+ui/compositor",
|
|
"+ui/display",
|
|
"+ui/events",
|
|
"+ui/gfx",
|
|
"+ui/gl",
|
|
"+ui/latency",
|
|
"+ui/native_theme",
|
|
"+ui/resources/grit/ui_resources.h",
|
|
"+ui/resources/grit/webui_resources.h",
|
|
"+ui/resources/grit/webui_resources_map.h",
|
|
"+ui/shell_dialogs",
|
|
"+ui/snapshot",
|
|
"+ui/strings/grit/ui_strings.h",
|
|
"+ui/surface",
|
|
"+ui/touch_selection",
|
|
"+ui/wm",
|
|
# Content knows about grd files, but the specifics of how to get a resource
|
|
# given its id is left to the embedder.
|
|
"-ui/base/l10n",
|
|
"-ui/base/resource",
|
|
# These files aren't related to grd, so they're fine.
|
|
"+ui/base/l10n/l10n_util_android.h",
|
|
"+ui/base/l10n/l10n_util_win.h",
|
|
"+ui/base/resource/resource_scale_factor.h",
|
|
|
|
# Content shouldn't depend on views. While we technically don't need this
|
|
# line, since the top level DEPS doesn't allow it, we add it to make this
|
|
# explicit.
|
|
"-ui/views",
|
|
|
|
"+storage/browser",
|
|
"+storage/common",
|
|
|
|
# For generated JNI includes.
|
|
"+content/public/android/common_jni",
|
|
"+content/public/android/content_jni_headers",
|
|
"+content/public/android/content_main_dex_jni",
|
|
"+content/public/android/jar_jni",
|
|
]
|
|
|
|
specific_include_rules = {
|
|
".*_browsertest[a-z_]*\.(cc|h|mm)": [
|
|
# content -> content/shell dependency is disallowed, except browser tests.
|
|
"+content/shell/browser",
|
|
"+content/shell/common",
|
|
],
|
|
"content_(features|switches).h": [
|
|
# content -> tools dependency is disallowed, except buildflags for switches.
|
|
"+tools/v8_context_snapshot/buildflags.h",
|
|
],
|
|
}
|
|
|
|
new_usages_require_review = True
|