0

headless: Merge "headless_renderer" target into "headless_shared_sources"

Derived from tkent's work in https://chromium-review.googlesource.com/c/chromium/src/+/3865941

In order to fix "gn check" errors, this CL moves all dependencies of
headless_content_main_delegate.* to "headless_shared_sources". As the
result, all sources in "headless_(non_)renderer" are moved to
"headless_shared_sources".

Bug: 1158989
Change-Id: I5701a8becada158e8443def7a434b5fd57830491
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4125896
Auto-Submit: Ari Chivukula <arichiv@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Ari Chivukula <arichiv@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1087705}
This commit is contained in:
Ari Chivukula
2022-12-30 03:48:23 +00:00
committed by Chromium LUCI CQ
parent ca57bfa811
commit a6c4ae9ab6
3 changed files with 107 additions and 213 deletions
.gn
chrome
headless

4
.gn

@@ -68,10 +68,6 @@ default_args = {
# their includes checked for proper dependencies when you run either # their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check". # "gn check" or "gn gen --check".
no_check_targets = [ no_check_targets = [
# crbug.com/1158989
"//headless:headless_renderer", # 12 errors
"//headless:headless_shared_sources", # 2 errors
# //v8, https://crbug.com/v8/7330 # //v8, https://crbug.com/v8/7330
"//v8/src/inspector:inspector", # 20 errors "//v8/src/inspector:inspector", # 20 errors
"//v8/test/cctest:cctest_sources", # 15 errors "//v8/test/cctest:cctest_sources", # 15 errors

@@ -411,7 +411,7 @@ if (is_win) {
"//components/policy:generated", "//components/policy:generated",
"//content/public/app", "//content/public/app",
"//crypto", "//crypto",
"//headless:headless_renderer", "//headless:headless_non_renderer",
"//headless:headless_shell_browser_lib", "//headless:headless_shell_browser_lib",
"//net:net_resources", "//net:net_resources",
"//ppapi/buildflags", "//ppapi/buildflags",

@@ -247,10 +247,8 @@ foreach(domain, devtools_domains) {
action("gen_devtools_client_api") { action("gen_devtools_client_api") {
script = "lib/browser/devtools_api/client_api_generator.py" script = "lib/browser/devtools_api/client_api_generator.py"
deps = [ deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
":protocol_sources", public_deps = [ ":protocol_sources" ]
"//third_party/blink/public/devtools_protocol:protocol_version",
]
inputs = [ inputs = [
"$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json", "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
] ]
@@ -322,92 +320,11 @@ static_library("backend_cdp_bindings") {
] ]
} }
# Code needed in both processes. Only exposed through the |headless_renderer|
# target and the |headless_non_renderer| component.
source_set("headless_shared_sources") {
visibility = [
":headless_non_renderer",
":headless_renderer",
]
defines = []
sources = [
"app/headless_shell_switches.cc",
"app/headless_shell_switches.h",
"lib/headless_content_client.cc",
"lib/headless_content_client.h",
"lib/headless_content_main_delegate.cc",
"lib/headless_content_main_delegate.h",
"public/headless_browser.cc",
"public/headless_browser.h",
"public/headless_export.h",
"public/internal/message_dispatcher.h",
"public/internal/value_conversions.h",
"public/util/error_reporter.cc",
"public/util/error_reporter.h",
"public/util/user_agent.cc",
"public/util/user_agent.h",
]
if (headless_enable_commands) {
sources += [
"app/headless_command_switches.cc",
"app/headless_command_switches.h",
]
}
sources += generated_devtools_api_headers + generated_devtools_api_sources
if (!is_fuchsia) {
sources += [
"lib/headless_crash_reporter_client.cc",
"lib/headless_crash_reporter_client.h",
]
}
deps = [
":gen_devtools_client_api",
":version_header",
"//base:base_static",
"//components/embedder_support/origin_trials",
"//content/public/common",
"//ui/base",
"//url",
]
if (!is_fuchsia) {
deps += [
"//components/crash/content/browser",
"//components/crash/core/app",
]
}
if (is_win) {
deps += [ "//sandbox" ]
}
configs += [ ":inside_headless_component" ]
configs += [ ":headless_defines_config" ]
# TODO(caseq): this is only here because headless_content_main_delegate.cc is here.
# Move it to the browser-specific part.
if (headless_use_embedded_resources) {
defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ]
deps += [
":embedded_resource_pack_data",
":embedded_resource_pack_strings",
]
sources += [
"$root_gen_dir/headless/embedded_resource_pack_data.cc",
"$root_gen_dir/headless/embedded_resource_pack_data.h",
"$root_gen_dir/headless/embedded_resource_pack_strings.cc",
"$root_gen_dir/headless/embedded_resource_pack_strings.h",
]
}
}
# Code that is not needed in a renderer process. # Code that is not needed in a renderer process.
component("headless_non_renderer") { component("headless_non_renderer") {
sources = [ sources = [
"app/headless_shell_switches.cc",
"app/headless_shell_switches.h",
"lib/browser/directory_enumerator.cc", "lib/browser/directory_enumerator.cc",
"lib/browser/directory_enumerator.h", "lib/browser/directory_enumerator.h",
"lib/browser/headless_browser_context_impl.cc", "lib/browser/headless_browser_context_impl.cc",
@@ -418,6 +335,8 @@ component("headless_non_renderer") {
"lib/browser/headless_browser_impl.h", "lib/browser/headless_browser_impl.h",
"lib/browser/headless_browser_main_parts.cc", "lib/browser/headless_browser_main_parts.cc",
"lib/browser/headless_browser_main_parts.h", "lib/browser/headless_browser_main_parts.h",
"lib/browser/headless_content_browser_client.cc",
"lib/browser/headless_content_browser_client.h",
"lib/browser/headless_devtools.cc", "lib/browser/headless_devtools.cc",
"lib/browser/headless_devtools.h", "lib/browser/headless_devtools.h",
"lib/browser/headless_devtools_agent_host_client.cc", "lib/browser/headless_devtools_agent_host_client.cc",
@@ -446,11 +365,28 @@ component("headless_non_renderer") {
"lib/browser/protocol/page_handler.h", "lib/browser/protocol/page_handler.h",
"lib/browser/protocol/target_handler.cc", "lib/browser/protocol/target_handler.cc",
"lib/browser/protocol/target_handler.h", "lib/browser/protocol/target_handler.h",
"lib/headless_content_client.cc",
"lib/headless_content_client.h",
"lib/headless_content_main_delegate.cc",
"lib/headless_content_main_delegate.h",
"lib/renderer/headless_content_renderer_client.cc",
"lib/renderer/headless_content_renderer_client.h",
"lib/utility/headless_content_utility_client.cc",
"lib/utility/headless_content_utility_client.h",
"public/headless_browser.cc",
"public/headless_browser.h",
"public/headless_browser_context.h", "public/headless_browser_context.h",
"public/headless_devtools_channel.h", "public/headless_devtools_channel.h",
"public/headless_devtools_client.h", "public/headless_devtools_client.h",
"public/headless_devtools_target.h", "public/headless_devtools_target.h",
"public/headless_export.h",
"public/headless_web_contents.h", "public/headless_web_contents.h",
"public/internal/message_dispatcher.h",
"public/internal/value_conversions.h",
"public/util/error_reporter.cc",
"public/util/error_reporter.h",
"public/util/user_agent.cc",
"public/util/user_agent.h",
] ]
if (is_mac) { if (is_mac) {
@@ -462,21 +398,15 @@ component("headless_non_renderer") {
] ]
} }
if (is_linux || is_chromeos) { if (headless_enable_commands) {
sources += [ "lib/browser/headless_browser_main_parts_linux.cc" ] sources += [
"app/headless_command_switches.cc",
"app/headless_command_switches.h",
]
} }
if (headless_use_policy) { if (is_linux || is_chromeos) {
sources += [ sources += [ "lib/browser/headless_browser_main_parts_linux.cc" ]
"lib/browser/headless_pref_names.cc",
"lib/browser/headless_pref_names.h",
"lib/browser/policy/headless_browser_policy_connector.cc",
"lib/browser/policy/headless_browser_policy_connector.h",
"lib/browser/policy/headless_mode_policy.cc",
"lib/browser/policy/headless_mode_policy.h",
"lib/browser/policy/headless_policies.cc",
"lib/browser/policy/headless_policies.h",
]
} }
if (use_aura) { if (use_aura) {
@@ -494,8 +424,9 @@ component("headless_non_renderer") {
] ]
} }
sources += generated_devtools_api_headers + generated_devtools_api_sources
public_deps = [ public_deps = [
":headless_shared_sources",
"//base", "//base",
"//net", "//net",
] ]
@@ -506,56 +437,114 @@ component("headless_non_renderer") {
if (enable_printing) { if (enable_printing) {
public_deps += [ "//skia" ] public_deps += [ "//skia" ]
sources += [
"lib/renderer/headless_print_render_frame_helper_delegate.cc",
"lib/renderer/headless_print_render_frame_helper_delegate.h",
]
} }
deps = [ deps = [
":backend_cdp_bindings", ":backend_cdp_bindings",
":gen_devtools_client_api",
":version_header",
":version_header", ":version_header",
"//base:base_static", "//base:base_static",
"//base:base_static",
"//build:branding_buildflags",
"//build:branding_buildflags", "//build:branding_buildflags",
"//build:chromeos_buildflags", "//build:chromeos_buildflags",
"//components/cookie_config", "//components/cookie_config",
"//components/crash/core/common:common",
"//components/embedder_support", "//components/embedder_support",
"//components/embedder_support:embedder_support",
"//components/embedder_support/origin_trials",
"//components/keyed_service/content", "//components/keyed_service/content",
"//components/keyed_service/content:content",
"//components/origin_trials:browser", "//components/origin_trials:browser",
"//components/origin_trials:common", "//components/origin_trials:common",
"//components/os_crypt:os_crypt", "//components/os_crypt:os_crypt",
"//components/policy:generated", "//components/policy:generated",
"//components/policy/core/browser", "//components/policy/content:content",
"//components/policy/core/common:common_constants", "//components/policy/core/common:common_constants",
"//components/pref_registry", "//components/pref_registry",
"//components/pref_registry:pref_registry",
"//components/prefs", "//components/prefs",
"//components/prefs:prefs",
"//components/profile_metrics", "//components/profile_metrics",
"//components/profile_metrics:profile_metrics",
"//components/security_state/core", "//components/security_state/core",
"//content/public/app", "//content/public/app",
"//content/public/app:app",
"//content/public/browser", "//content/public/browser",
"//content/public/browser:browser",
"//content/public/common", "//content/public/common",
"//content/public/common",
"//content/public/renderer:renderer",
"//content/public/utility:utility",
"//printing/buildflags",
"//printing/buildflags", "//printing/buildflags",
"//services/cert_verifier/public/mojom", "//services/cert_verifier/public/mojom",
"//services/device/public/cpp/geolocation", "//services/device/public/cpp/geolocation",
"//services/device/public/cpp/geolocation:geolocation",
"//services/service_manager/public/cpp", "//services/service_manager/public/cpp",
"//third_party/inspector_protocol:crdtp", "//third_party/inspector_protocol:crdtp",
"//third_party/inspector_protocol:crdtp",
"//ui/base",
"//ui/base", "//ui/base",
"//ui/base/clipboard", "//ui/base/clipboard",
"//ui/compositor", "//ui/compositor",
"//ui/compositor",
"//ui/display", "//ui/display",
"//ui/events/devices", "//ui/events/devices",
"//ui/events/devices:devices",
"//ui/gfx", "//ui/gfx",
"//ui/shell_dialogs", "//ui/shell_dialogs",
"//ui/shell_dialogs:shell_dialogs",
"//url",
"//url", "//url",
] ]
if (headless_use_policy) {
sources += [
"lib/browser/headless_pref_names.cc",
"lib/browser/headless_pref_names.h",
"lib/browser/policy/headless_browser_policy_connector.cc",
"lib/browser/policy/headless_browser_policy_connector.h",
"lib/browser/policy/headless_mode_policy.cc",
"lib/browser/policy/headless_mode_policy.h",
"lib/browser/policy/headless_policies.cc",
"lib/browser/policy/headless_policies.h",
]
deps += [
"//components/policy/content",
"//components/policy/core/browser",
]
}
if (enable_printing) { if (enable_printing) {
deps += [ deps += [
"//components/printing/browser", "//components/printing/browser",
"//components/printing/browser/headless", "//components/printing/browser/headless",
"//components/printing/browser/headless:headless",
"//components/printing/browser/print_to_pdf:print_to_pdf",
"//components/printing/browser/print_to_pdf:print_to_pdf", "//components/printing/browser/print_to_pdf:print_to_pdf",
"//components/printing/common:mojo_interfaces", "//components/printing/common:mojo_interfaces",
"//components/printing/renderer:renderer",
"//components/services/print_compositor",
"//components/services/print_compositor/public/mojom",
"//printing", "//printing",
"//printing/mojom", "//printing/mojom",
] ]
} }
if (use_ozone) {
deps += [ "//ui/ozone" ]
}
if (is_mac) {
sources += [ "lib/headless_content_main_delegate_mac.mm" ]
}
if (headless_use_prefs) { if (headless_use_prefs) {
deps += [ deps += [
"//components/origin_trials:browser", "//components/origin_trials:browser",
@@ -566,26 +555,6 @@ component("headless_non_renderer") {
} }
if (is_component_build) { if (is_component_build) {
sources += [
"lib/browser/headless_content_browser_client.cc",
"lib/browser/headless_content_browser_client.h",
"lib/renderer/headless_content_renderer_client.cc",
"lib/renderer/headless_content_renderer_client.h",
"lib/utility/headless_content_utility_client.cc",
"lib/utility/headless_content_utility_client.h",
]
if (is_mac) {
sources += [ "lib/headless_content_main_delegate_mac.mm" ]
}
if (enable_printing) {
sources += [
"lib/renderer/headless_print_render_frame_helper_delegate.cc",
"lib/renderer/headless_print_render_frame_helper_delegate.h",
]
}
deps += [ deps += [
"//components/crash/core/common", "//components/crash/core/common",
"//components/security_state/content", "//components/security_state/content",
@@ -595,13 +564,6 @@ component("headless_non_renderer") {
"//v8", "//v8",
] ]
if (!is_fuchsia) {
deps += [
"//components/crash/content/browser",
"//components/crash/core/app",
]
}
if (enable_printing) { if (enable_printing) {
deps += [ deps += [
"//components/printing/browser", "//components/printing/browser",
@@ -614,10 +576,21 @@ component("headless_non_renderer") {
if (headless_use_prefs) { if (headless_use_prefs) {
deps += [ "//components/os_crypt" ] deps += [ "//components/os_crypt" ]
} }
}
if (headless_use_policy) { if (!is_fuchsia) {
deps += [ "//components/policy/content" ] deps += [
} "//components/crash/content/browser",
"//components/crash/core/app",
]
sources += [
"lib/headless_crash_reporter_client.cc",
"lib/headless_crash_reporter_client.h",
]
}
if (is_win) {
deps += [ "//sandbox" ]
} }
if (is_linux || is_chromeos) { if (is_linux || is_chromeos) {
@@ -665,10 +638,6 @@ component("headless_non_renderer") {
] ]
} }
if (use_ozone) {
deps += [ "//ui/ozone" ]
}
if (use_dbus) { if (use_dbus) {
defines += [ "USE_DBUS" ] defines += [ "USE_DBUS" ]
deps += [ "//device/bluetooth" ] deps += [ "//device/bluetooth" ]
@@ -678,73 +647,6 @@ component("headless_non_renderer") {
configs += [ ":headless_defines_config" ] configs += [ ":headless_defines_config" ]
} }
# Headless renderer is a convenience library for non component builds that
# includes headless classes that depend on the renderer.
if (!is_component_build) {
static_library("headless_renderer") {
defines = []
sources = [
"lib/browser/headless_web_contents_impl.cc",
"lib/browser/headless_web_contents_impl.h",
"lib/renderer/headless_content_renderer_client.cc",
"lib/renderer/headless_content_renderer_client.h",
"lib/utility/headless_content_utility_client.cc",
"lib/utility/headless_content_utility_client.h",
]
if (is_mac) {
sources += [ "lib/headless_content_main_delegate_mac.mm" ]
}
if (enable_printing) {
sources += [
"lib/renderer/headless_print_render_frame_helper_delegate.cc",
"lib/renderer/headless_print_render_frame_helper_delegate.h",
]
}
public_deps = [ ":headless_shared_sources" ]
deps = [
"//build:chromeos_buildflags",
"//components/crash/core/common",
"//components/security_state/content",
"//components/security_state/core",
"//content/public/app",
"//content/public/browser",
"//content/public/common",
"//content/public/renderer",
"//content/public/utility",
"//printing/buildflags",
"//third_party/blink/public:blink_headers",
"//ui/base",
"//ui/compositor",
"//v8",
]
if (use_ozone) {
deps += [ "//ui/ozone" ]
}
if (enable_printing) {
deps += [
"//components/printing/browser/headless:headless",
"//components/printing/renderer",
"//components/services/print_compositor",
"//components/services/print_compositor/public/mojom",
]
}
configs += [ ":headless_defines_config" ]
if (is_mac || is_win || is_linux || is_chromeos) {
deps += [ "//components/crash/core/app" ]
}
}
} else {
# For component builds all dependencies are already included in the headless
# component.
group("headless_renderer") {
public_deps = [ ":headless_non_renderer" ]
}
}
group("headless_tests") { group("headless_tests") {
testonly = true testonly = true
@@ -957,8 +859,6 @@ if (is_win) {
"app/headless_shell_command_line.cc", "app/headless_shell_command_line.cc",
"app/headless_shell_command_line.h", "app/headless_shell_command_line.h",
"app/headless_shell_switches.h", "app/headless_shell_switches.h",
"lib/browser/headless_content_browser_client.cc",
"lib/browser/headless_content_browser_client.h",
"public/headless_shell.h", "public/headless_shell.h",
] ]
deps = [ deps = [
@@ -1012,8 +912,6 @@ static_library("headless_shell_lib") {
if (!is_component_build) { if (!is_component_build) {
sources += [ sources += [
"lib/browser/headless_content_browser_client.cc",
"lib/browser/headless_content_browser_client.h",
"lib/utility/headless_content_utility_client.cc", "lib/utility/headless_content_utility_client.cc",
"lib/utility/headless_content_utility_client.h", "lib/utility/headless_content_utility_client.h",
] ]
@@ -1035,7 +933,7 @@ static_library("headless_shell_lib") {
] ]
public_deps = [ public_deps = [
":headless_renderer", ":headless_non_renderer",
"//base", "//base",
"//third_party/inspector_protocol:crdtp", "//third_party/inspector_protocol:crdtp",
] ]