| Index: headless/BUILD.gn
|
| diff --git a/headless/BUILD.gn b/headless/BUILD.gn
|
| index d74479a5ad78aecbbedcb0dbac3a49fbb38c3af6..719ee27900f1b89619513e535d12b2ca94dfdc20 100644
|
| --- a/headless/BUILD.gn
|
| +++ b/headless/BUILD.gn
|
| @@ -19,9 +19,9 @@ config("headless_implementation") {
|
| }
|
| }
|
|
|
| -group("headless") {
|
| +group("headless_lib") {
|
| deps = [
|
| - ":headless_lib",
|
| + ":headless",
|
| ]
|
| }
|
|
|
| @@ -200,7 +200,7 @@ action("gen_devtools_client_api") {
|
| ]
|
| }
|
|
|
| -static_library("headless_lib") {
|
| +component("headless") {
|
| sources = [
|
| "app/headless_shell_switches.cc",
|
| "app/headless_shell_switches.h",
|
| @@ -214,8 +214,6 @@ static_library("headless_lib") {
|
| "lib/browser/headless_browser_main_parts.cc",
|
| "lib/browser/headless_browser_main_parts.h",
|
| "lib/browser/headless_browser_main_parts_mac.mm",
|
| - "lib/browser/headless_content_browser_client.cc",
|
| - "lib/browser/headless_content_browser_client.h",
|
| "lib/browser/headless_devtools.cc",
|
| "lib/browser/headless_devtools.h",
|
| "lib/browser/headless_devtools_client_impl.cc",
|
| @@ -238,17 +236,11 @@ static_library("headless_lib") {
|
| "lib/browser/headless_tab_socket_impl.h",
|
| "lib/browser/headless_url_request_context_getter.cc",
|
| "lib/browser/headless_url_request_context_getter.h",
|
| - "lib/browser/headless_web_contents_impl.cc",
|
| - "lib/browser/headless_web_contents_impl.h",
|
| "lib/browser/headless_window_tree_host.h",
|
| "lib/headless_content_client.cc",
|
| "lib/headless_content_client.h",
|
| - "lib/headless_content_main_delegate.cc",
|
| - "lib/headless_content_main_delegate.h",
|
| "lib/headless_crash_reporter_client.cc",
|
| "lib/headless_crash_reporter_client.h",
|
| - "lib/renderer/headless_content_renderer_client.cc",
|
| - "lib/renderer/headless_content_renderer_client.h",
|
| "public/headless_browser.cc",
|
| "public/headless_browser.h",
|
| "public/headless_browser_context.h",
|
| @@ -324,19 +316,14 @@ static_library("headless_lib") {
|
| ]
|
|
|
| if (enable_basic_printing) {
|
| - public_deps += [ "//components/printing/browser" ]
|
| + public_deps += [ "//skia" ]
|
| }
|
|
|
| deps = [
|
| ":gen_devtools_client_api",
|
| ":tab_socket",
|
| ":version_header",
|
| - "//components/crash/content/browser",
|
| - "//components/security_state/content",
|
| "//components/security_state/core",
|
| - "//content/public/app:both",
|
| - "//content/public/browser",
|
| - "//content/public/child:child",
|
| "//content/public/common",
|
| "//content/public/common:service_names",
|
| "//services/service_manager/public/cpp",
|
| @@ -348,16 +335,37 @@ static_library("headless_lib") {
|
| "//url",
|
| ]
|
|
|
| + if (is_component_build) {
|
| + sources += [
|
| + "lib/browser/headless_content_browser_client.cc",
|
| + "lib/browser/headless_content_browser_client.h",
|
| + "lib/browser/headless_web_contents_impl.cc",
|
| + "lib/browser/headless_web_contents_impl.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",
|
| + ]
|
| +
|
| + deps += [
|
| + "//components/crash/content/browser",
|
| + "//components/security_state/content",
|
| + ]
|
| +
|
| + if (enable_basic_printing) {
|
| + deps += [
|
| + "//components/printing/browser",
|
| + "//components/printing/renderer",
|
| + ]
|
| + }
|
| + }
|
| +
|
| if (is_mac) {
|
| deps += [ ":mac_helpers" ]
|
| } else {
|
| deps += [ "//ui/aura" ]
|
| }
|
|
|
| - if (enable_basic_printing) {
|
| - deps += [ "//components/printing/renderer" ]
|
| - }
|
| -
|
| if (headless_use_embedded_resources) {
|
| deps += [ ":embed_resources" ]
|
| sources += [
|
| @@ -375,6 +383,30 @@ static_library("headless_lib") {
|
| configs += [ ":headless_implementation" ]
|
| }
|
|
|
| +# Headless renderer is a convenience library that includes headless classes
|
| +# that depend on the renderer. These are not added in case of a component build
|
| +# since in that case they are already included in the headless component.
|
| +static_library("headless_renderer") {
|
| + deps = [
|
| + ":headless",
|
| + ]
|
| + if (!is_component_build) {
|
| + sources = [
|
| + "lib/browser/headless_web_contents_impl.cc",
|
| + "lib/browser/headless_web_contents_impl.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",
|
| + ]
|
| + deps += [ "//ui/base" ]
|
| + if (enable_basic_printing) {
|
| + deps += [ "//components/printing/renderer" ]
|
| + }
|
| + configs += [ ":headless_implementation" ]
|
| + }
|
| +}
|
| +
|
| group("headless_tests") {
|
| testonly = true
|
|
|
| @@ -396,17 +428,37 @@ test("headless_unittests") {
|
| "public/util/testing/fake_managed_dispatch_url_request_job.h",
|
| ]
|
|
|
| - if (enable_basic_printing) {
|
| - sources += [ "lib/browser/headless_printing_unittest.cc" ]
|
| + if (is_component_build) {
|
| + deps = [
|
| + ":headless",
|
| + ]
|
| + } else {
|
| + sources += [
|
| + "lib/browser/headless_content_browser_client.cc",
|
| + "lib/browser/headless_content_browser_client.h",
|
| + ]
|
| +
|
| + deps = [
|
| + ":headless_renderer",
|
| + ]
|
| }
|
|
|
| - deps = [
|
| - ":headless_lib",
|
| + deps += [
|
| "//base/test:run_all_unittests",
|
| "//base/test:test_support",
|
| + "//components/crash/content/browser",
|
| + "//components/security_state/content",
|
| + "//content/public/app:both",
|
| + "//content/public/child:child",
|
| + "//content/public/common",
|
| "//testing/gmock",
|
| "//testing/gtest",
|
| ]
|
| +
|
| + if (enable_basic_printing) {
|
| + sources += [ "lib/browser/headless_printing_unittest.cc" ]
|
| + deps += [ "//components/printing/browser" ]
|
| + }
|
| }
|
|
|
| if (is_mac) {
|
| @@ -459,19 +511,117 @@ test("headless_browsertests") {
|
|
|
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
|
|
|
| - deps = [
|
| - ":headless_lib",
|
| + if (is_component_build) {
|
| + deps = [
|
| + ":headless",
|
| + ]
|
| + } else {
|
| + sources += [
|
| + "lib/browser/headless_content_browser_client.cc",
|
| + "lib/browser/headless_content_browser_client.h",
|
| + ]
|
| +
|
| + deps = [
|
| + ":headless_renderer",
|
| + ]
|
| + }
|
| +
|
| + deps += [
|
| "//base",
|
| + "//components/crash/content/browser",
|
| + "//components/security_state/content",
|
| "//content/test:test_support",
|
| "//testing/gmock",
|
| "//testing/gtest",
|
| ]
|
|
|
| if (enable_basic_printing) {
|
| - deps += [ "//pdf" ]
|
| + deps += [
|
| + "//components/printing/browser",
|
| + "//pdf",
|
| + ]
|
| }
|
| }
|
|
|
| +if (is_win) {
|
| + # Headless library with only browser dependencies. This is used when no child
|
| + # dependencies are needed in the target (e.g. chrome:main_dll).
|
| + static_library("headless_shell_browser_lib") {
|
| + sources = [
|
| + "app/headless_shell.cc",
|
| + "app/headless_shell.h",
|
| + "app/headless_shell_switches.cc",
|
| + "app/headless_shell_switches.h",
|
| + "app/shell_navigation_request.cc",
|
| + "app/shell_navigation_request.h",
|
| + "lib/browser/headless_content_browser_client.cc",
|
| + "lib/browser/headless_content_browser_client.h",
|
| + "public/headless_shell.h",
|
| + ]
|
| +
|
| + if (is_multi_dll_chrome) {
|
| + defines = [ "CHROME_MULTIPLE_DLL_BROWSER" ]
|
| + sources += [
|
| + "lib/browser/headless_web_contents_impl.cc",
|
| + "lib/browser/headless_web_contents_impl.h",
|
| + "lib/headless_content_main_delegate.cc",
|
| + "lib/headless_content_main_delegate.h",
|
| + ]
|
| + }
|
| +
|
| + deps = [
|
| + ":headless",
|
| + "//content/public/browser",
|
| + "//content/public/common",
|
| + "//net",
|
| + ]
|
| +
|
| + if (is_win) {
|
| + deps += [
|
| + "//content:sandbox_helper_win",
|
| + "//sandbox",
|
| + ]
|
| + }
|
| +
|
| + configs += [ ":headless_implementation" ]
|
| + }
|
| +
|
| + # Headless library with child specific dependencies (e.g., renderer). This
|
| + # is used when no browser depencendies are needed (e.g. chrome:child_dll).
|
| + static_library("headless_shell_child_lib") {
|
| + sources = [
|
| + "app/headless_shell.cc",
|
| + "app/headless_shell.h",
|
| + "app/headless_shell_switches.cc",
|
| + "app/headless_shell_switches.h",
|
| + "app/shell_navigation_request.cc",
|
| + "app/shell_navigation_request.h",
|
| + "public/headless_shell.h",
|
| + ]
|
| +
|
| + if (is_multi_dll_chrome) {
|
| + defines = [ "CHROME_MULTIPLE_DLL_CHILD" ]
|
| + sources += [
|
| + "lib/browser/headless_web_contents_impl.cc",
|
| + "lib/browser/headless_web_contents_impl.h",
|
| + "lib/headless_content_main_delegate.cc",
|
| + "lib/headless_content_main_delegate.h",
|
| + ]
|
| + }
|
| +
|
| + deps = [
|
| + ":headless_renderer",
|
| + "//content/public/child:child",
|
| + "//net",
|
| + "//ui/base",
|
| + ]
|
| +
|
| + configs += [ ":headless_implementation" ]
|
| + }
|
| +}
|
| +
|
| +# Headless library with all included dependencies. Use this library unless you
|
| +# have browser/child dependencies restrictions.
|
| static_library("headless_shell_lib") {
|
| sources = [
|
| "app/headless_shell.cc",
|
| @@ -480,14 +630,43 @@ static_library("headless_shell_lib") {
|
| "app/headless_shell_switches.h",
|
| "app/shell_navigation_request.cc",
|
| "app/shell_navigation_request.h",
|
| + "lib/browser/headless_content_browser_client.cc",
|
| + "lib/browser/headless_content_browser_client.h",
|
| "public/headless_shell.h",
|
| ]
|
|
|
| - deps = [
|
| - ":headless_lib",
|
| + if (is_component_build) {
|
| + deps = [
|
| + ":headless",
|
| + ]
|
| + } else {
|
| + deps = [
|
| + ":headless_renderer",
|
| + ]
|
| + }
|
| +
|
| + deps += [
|
| + "//components/crash/content/browser",
|
| + "//components/security_state/content",
|
| + "//content/public/app:both",
|
| + "//content/public/browser",
|
| + "//content/public/child:child",
|
| + "//content/public/common",
|
| ]
|
|
|
| - configs += [ ":headless_implementation" ]
|
| + if (enable_basic_printing) {
|
| + deps += [
|
| + "//components/printing/browser",
|
| + "//components/printing/renderer",
|
| + ]
|
| + }
|
| +
|
| + if (is_win) {
|
| + deps += [
|
| + "//content:sandbox_helper_win",
|
| + "//sandbox",
|
| + ]
|
| + }
|
| }
|
|
|
| executable("headless_shell") {
|
| @@ -500,14 +679,8 @@ executable("headless_shell") {
|
| ]
|
|
|
| if (is_win) {
|
| - deps += [
|
| - "//build/win:default_exe_manifest",
|
| - "//content:sandbox_helper_win",
|
| - "//sandbox",
|
| - ]
|
| + deps += [ "//build/win:default_exe_manifest" ]
|
| }
|
| -
|
| - configs += [ ":headless_implementation" ]
|
| }
|
|
|
| process_version("version_header") {
|
|
|