Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: headless/BUILD.gn

Issue 2762593002: Add --headless flag to Windows (Closed)
Patch Set: added TODO Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/app/chrome_main.cc ('k') | headless/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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") {
« no previous file with comments | « chrome/app/chrome_main.cc ('k') | headless/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698