1 # Copyright 2015 The Chromium Authors
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//build/config/c++/c++.gni")
6 import("//build/config/chrome_build.gni")
7 import("//build/config/python.gni")
8 import("//build/util/lastchange.gni")
9 import("//build/util/process_version.gni")
10 import("//headless/headless.gni")
11 import("//mojo/public/tools/bindings/mojom.gni")
12 import("//pdf/features.gni")
13 import("//printing/buildflags/buildflags.gni")
14 import("//testing/test.gni")
15 import("//third_party/closure_compiler/compile_js.gni")
16 import("//third_party/inspector_protocol/inspector_protocol.gni")
17 import("//tools/grit/grit_rule.gni")
18 import("//tools/grit/repack.gni")
19 import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
21 assert(!is_ios && !is_android)
23 if (headless_use_policy) {
24 assert(headless_use_prefs,
25 "'headless_use_policy' requires 'headless_use_prefs'.")
28 if (headless_enable_commands) {
30 !headless_use_embedded_resources,
31 "'headless_enable_commands' is not compatible with 'headless_use_embedded_resources'.")
34 # Headless defines config applied to every target below.
35 config("headless_defines_config") {
38 if (headless_enable_commands) {
39 defines += [ "HEADLESS_ENABLE_COMMANDS" ]
42 if (headless_use_prefs) {
43 defines += [ "HEADLESS_USE_PREFS" ]
46 if (headless_use_policy) {
47 defines += [ "HEADLESS_USE_POLICY" ]
50 if (headless_mode_policy_supported) {
51 defines += [ "HEADLESS_MODE_POLICY_SUPPORTED" ]
55 # For code inside the build component "headless".
56 config("inside_headless_component") {
57 defines = [ "HEADLESS_IMPLEMENTATION" ]
60 group("headless_lib") {
61 deps = [ ":headless_non_renderer" ]
64 repack("resource_pack_data") {
66 "$root_gen_dir/components/components_resources.pak",
67 "$root_gen_dir/content/content_resources.pak",
68 "$root_gen_dir/net/net_resources.pak",
69 "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
70 "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak",
71 "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
72 "$root_gen_dir/ui/resources/webui_resources.pak",
76 "//components/resources:components_resources",
77 "//content:content_resources",
78 "//net:net_resources",
79 "//third_party/blink/public:resources",
80 "//third_party/blink/public:scaled_resources_100_percent",
84 output = "$root_out_dir/headless_lib_data.pak"
87 repack("resource_pack_strings") {
89 "$root_gen_dir/components/strings/components_strings_en-US.pak",
90 "$root_gen_dir/third_party/blink/public/strings/blink_strings_en-US.pak",
91 "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak",
92 "$root_gen_dir/ui/strings/ax_strings_en-US.pak",
93 "$root_gen_dir/ui/strings/ui_strings_en-US.pak",
96 sources += [ "${root_gen_dir}/components/strings/components_${branding_path_product}_strings_en-US.pak" ]
99 "//components/strings",
100 "//third_party/blink/public/strings",
106 [ "$root_gen_dir/content/browser/devtools/devtools_resources.pak" ]
107 deps += [ "//content/browser/devtools:devtools_resources" ]
110 output = "$root_out_dir/headless_lib_strings.pak"
113 action("embedded_resource_pack_data") {
114 # TODO(altimin): Consider zipping file here, it can reduce size up to 80%.
115 script = "lib/embed_data.py"
117 inputs = [ "$root_out_dir/headless_lib_data.pak" ]
120 "$root_gen_dir/headless/embedded_resource_pack_data.cc",
121 "$root_gen_dir/headless/embedded_resource_pack_data.h",
126 rebase_path("$root_out_dir/headless_lib_data.pak", root_build_dir),
128 rebase_path("$root_gen_dir", root_build_dir),
130 "headless/embedded_resource_pack_data.h",
132 "headless/embedded_resource_pack_data.cc",
136 "kHeadlessResourcePackData",
139 deps = [ ":resource_pack_data" ]
142 action("embedded_resource_pack_strings") {
143 # TODO(altimin): Consider zipping file here, it can reduce size up to 80%.
144 script = "lib/embed_data.py"
146 inputs = [ "$root_out_dir/headless_lib_strings.pak" ]
149 "$root_gen_dir/headless/embedded_resource_pack_strings.cc",
150 "$root_gen_dir/headless/embedded_resource_pack_strings.h",
155 rebase_path("$root_out_dir/headless_lib_strings.pak", root_build_dir),
157 rebase_path("$root_gen_dir", root_build_dir),
159 "headless/embedded_resource_pack_strings.h",
161 "headless/embedded_resource_pack_strings.cc",
165 "kHeadlessResourcePackStrings",
168 deps = [ ":resource_pack_strings" ]
180 "device_orientation",
187 "headless_experimental",
208 generated_devtools_api_sources = []
209 generated_devtools_api_headers = []
210 foreach(domain, devtools_domains) {
211 generated_devtools_api_headers += [
212 "$target_gen_dir/public/devtools/domains/" + domain + ".h",
213 "$target_gen_dir/public/devtools/domains/types_" + domain + ".h",
214 "$target_gen_dir/public/devtools/internal/type_conversions_" + domain +
216 "$target_gen_dir/public/devtools/internal/" +
217 "types_forward_declarations_" + domain + ".h",
219 generated_devtools_api_sources += [
220 "$target_gen_dir/public/devtools/domains/" + domain + ".cc",
221 "$target_gen_dir/public/devtools/domains/types_" + domain + ".cc",
225 action("gen_devtools_client_api") {
226 script = "lib/browser/devtools_api/client_api_generator.py"
227 deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
228 public_deps = [ ":protocol_sources" ]
230 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
233 outputs = generated_devtools_api_headers + generated_devtools_api_sources
235 "lib/browser/devtools_api/domain_cc.template",
236 "lib/browser/devtools_api/domain_h.template",
237 "lib/browser/devtools_api/domain_type_conversions_h.template",
238 "lib/browser/devtools_api/domain_types_cc.template",
239 "lib/browser/devtools_api/domain_types_forward_declarations_h.template",
240 "lib/browser/devtools_api/domain_types_h.template",
245 rebase_path(inputs[0], root_build_dir),
247 rebase_path(target_gen_dir, root_build_dir) + "/public",
251 inspector_protocol_generate("protocol_sources") {
253 ":backend_cdp_bindings",
254 ":gen_devtools_client_api",
256 deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
257 _blink_protocol_path = rebase_path(
258 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
261 inspector_protocol_dir = "//third_party/inspector_protocol"
262 out_dir = target_gen_dir
263 config_file = "protocol_config.json"
264 config_values = [ "protocol.path=$_blink_protocol_path" ]
265 use_embedder_types = true
268 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
272 # These are relative to $target_gen_dir.
274 "lib/browser/protocol/browser.cc",
275 "lib/browser/protocol/browser.h",
276 "lib/browser/protocol/headless_experimental.cc",
277 "lib/browser/protocol/headless_experimental.h",
278 "lib/browser/protocol/page.cc",
279 "lib/browser/protocol/page.h",
280 "lib/browser/protocol/target.cc",
281 "lib/browser/protocol/target.h",
282 "lib/browser/protocol/protocol.h",
286 static_library("backend_cdp_bindings") {
290 "//third_party/inspector_protocol:crdtp",
292 sources = get_target_outputs(":protocol_sources")
293 visibility = [ ":headless_non_renderer" ]
295 "//build/config/compiler:wexit_time_destructors",
296 ":headless_defines_config",
297 ":inside_headless_component",
301 # Code that is not needed in a renderer process.
302 component("headless_non_renderer") {
304 "lib/browser/command_line_handler.cc",
305 "lib/browser/command_line_handler.h",
306 "lib/browser/directory_enumerator.cc",
307 "lib/browser/directory_enumerator.h",
308 "lib/browser/headless_browser_context_impl.cc",
309 "lib/browser/headless_browser_context_impl.h",
310 "lib/browser/headless_browser_context_options.cc",
311 "lib/browser/headless_browser_context_options.h",
312 "lib/browser/headless_browser_impl.cc",
313 "lib/browser/headless_browser_impl.h",
314 "lib/browser/headless_browser_main_parts.cc",
315 "lib/browser/headless_browser_main_parts.h",
316 "lib/browser/headless_client_hints_controller_delegate.cc",
317 "lib/browser/headless_client_hints_controller_delegate.h",
318 "lib/browser/headless_content_browser_client.cc",
319 "lib/browser/headless_content_browser_client.h",
320 "lib/browser/headless_devtools.cc",
321 "lib/browser/headless_devtools.h",
322 "lib/browser/headless_devtools_manager_delegate.cc",
323 "lib/browser/headless_devtools_manager_delegate.h",
324 "lib/browser/headless_permission_manager.cc",
325 "lib/browser/headless_permission_manager.h",
326 "lib/browser/headless_platform_event_source.cc",
327 "lib/browser/headless_platform_event_source.h",
328 "lib/browser/headless_request_context_manager.cc",
329 "lib/browser/headless_request_context_manager.h",
330 "lib/browser/headless_web_contents_impl.cc",
331 "lib/browser/headless_web_contents_impl.h",
332 "lib/browser/headless_window_tree_host.h",
333 "lib/browser/protocol/browser_handler.cc",
334 "lib/browser/protocol/browser_handler.h",
335 "lib/browser/protocol/domain_handler.h",
336 "lib/browser/protocol/headless_devtools_session.cc",
337 "lib/browser/protocol/headless_devtools_session.h",
338 "lib/browser/protocol/headless_handler.cc",
339 "lib/browser/protocol/headless_handler.h",
340 "lib/browser/protocol/page_handler.cc",
341 "lib/browser/protocol/page_handler.h",
342 "lib/browser/protocol/target_handler.cc",
343 "lib/browser/protocol/target_handler.h",
344 "lib/headless_content_client.cc",
345 "lib/headless_content_client.h",
346 "lib/headless_content_main_delegate.cc",
347 "lib/headless_content_main_delegate.h",
348 "lib/renderer/headless_content_renderer_client.cc",
349 "lib/renderer/headless_content_renderer_client.h",
351 "lib/utility/headless_content_utility_client.cc",
352 "lib/utility/headless_content_utility_client.h",
353 "public/headless_browser.h",
354 "public/headless_browser_context.h",
355 "public/headless_export.h",
356 "public/headless_web_contents.h",
357 "public/internal/message_dispatcher.h",
358 "public/internal/value_conversions.h",
360 "public/util/error_reporter.cc",
361 "public/util/error_reporter.h",
362 "public/util/user_agent.cc",
363 "public/util/user_agent.h",
366 configs += [ "//build/config/compiler:wexit_time_destructors" ]
370 "lib/browser/headless_browser_impl_mac.mm",
371 "lib/browser/headless_shell_application_mac.h",
372 "lib/browser/headless_shell_application_mac.mm",
373 "lib/headless_content_main_delegate_mac.mm",
378 sources += [ "lib/browser/headless_browser_main_parts_posix.cc" ]
383 "lib/browser/headless_browser_impl_aura.cc",
384 "lib/browser/headless_focus_client.cc",
385 "lib/browser/headless_focus_client.h",
386 "lib/browser/headless_screen.cc",
387 "lib/browser/headless_screen.h",
388 "lib/browser/headless_window_parenting_client.cc",
389 "lib/browser/headless_window_parenting_client.h",
390 "lib/browser/headless_window_tree_host.cc",
394 sources += generated_devtools_api_headers + generated_devtools_api_sources
405 if (enable_printing) {
406 public_deps += [ "//skia" ]
408 "lib/renderer/headless_print_render_frame_helper_delegate.cc",
409 "lib/renderer/headless_print_render_frame_helper_delegate.h",
414 ":backend_cdp_bindings",
415 ":gen_devtools_client_api",
416 "//base:base_static",
417 "//build:branding_buildflags",
418 "//build:chromeos_buildflags",
419 "//components/cookie_config",
420 "//components/crash/core/common:common",
421 "//components/devtools/devtools_pipe",
422 "//components/embedder_support",
423 "//components/embedder_support:browser_util",
424 "//components/embedder_support:embedder_support",
425 "//components/embedder_support/origin_trials",
426 "//components/headless/clipboard",
427 "//components/headless/command_handler:switches",
428 "//components/headless/select_file_dialog",
429 "//components/keyed_service/content",
430 "//components/origin_trials:browser",
431 "//components/origin_trials:common",
432 "//components/os_crypt/sync",
433 "//components/policy:generated",
434 "//components/policy/content",
435 "//components/policy/core/common:common_constants",
436 "//components/pref_registry",
437 "//components/prefs",
438 "//components/profile_metrics",
439 "//components/security_state/core",
440 "//components/version_info",
441 "//content/public/app",
442 "//content/public/browser",
443 "//content/public/common",
444 "//content/public/renderer",
445 "//content/public/utility",
446 "//printing/buildflags",
447 "//services/cert_verifier/public/mojom",
448 "//services/device/public/cpp/geolocation",
449 "//services/service_manager/public/cpp",
450 "//third_party/inspector_protocol:crdtp",
454 "//ui/events/devices",
459 if (headless_use_policy) {
461 "lib/browser/policy/headless_browser_policy_connector.cc",
462 "lib/browser/policy/headless_browser_policy_connector.h",
463 "lib/browser/policy/headless_policies.cc",
464 "lib/browser/policy/headless_policies.h",
465 "lib/browser/policy/headless_prefs.cc",
466 "lib/browser/policy/headless_prefs.h",
469 "//components/headless/policy",
470 "//components/policy/content",
471 "//components/policy/core/browser",
472 "//components/policy/core/common:policy_path_constants",
476 if (enable_printing) {
478 "//components/printing/browser",
479 "//components/printing/browser/headless",
480 "//components/printing/browser/print_to_pdf",
481 "//components/printing/common:mojo_interfaces",
482 "//components/printing/renderer:renderer",
483 "//components/services/print_compositor",
484 "//components/services/print_compositor/public/mojom",
491 deps += [ "//ui/ozone" ]
494 if (headless_use_prefs) {
496 "//components/origin_trials:browser",
497 "//components/origin_trials:common",
498 "//components/user_prefs",
499 "//third_party/blink/public/common",
503 if (is_component_build) {
505 "//components/crash/core/common",
506 "//components/security_state/content",
508 "//third_party/blink/public:blink",
513 if (enable_printing) {
515 "//components/printing/browser",
516 "//components/printing/renderer",
517 "//components/services/print_compositor",
518 "//components/services/print_compositor/public/mojom",
522 if (headless_use_prefs) {
523 deps += [ "//components/os_crypt/sync" ]
529 "//components/crash/content/browser",
530 "//components/crash/core/app",
533 "lib/headless_crash_reporter_client.cc",
534 "lib/headless_crash_reporter_client.h",
539 deps += [ "//sandbox" ]
542 if (is_linux || is_chromeos) {
543 data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
546 # Normally set to false (see build/args/headless.gn), but we can optionally
547 # use external v8 startup data too.
548 if ((!is_win || is_component_build) && v8_use_external_startup_data) {
549 public_deps += [ "//v8" ]
550 if (use_v8_context_snapshot) {
551 data += [ "$root_out_dir/$v8_context_snapshot_filename" ]
552 data_deps += [ "//tools/v8_context_snapshot" ]
554 data += [ "$root_out_dir/snapshot_blob.bin" ]
559 deps += [ ":mac_helpers" ]
562 "CoreFoundation.framework",
565 deps += [ "//ui/aura" ]
568 if (headless_use_embedded_resources) {
569 defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ]
571 ":embedded_resource_pack_data",
572 ":embedded_resource_pack_strings",
575 "$root_gen_dir/headless/embedded_resource_pack_data.cc",
576 "$root_gen_dir/headless/embedded_resource_pack_data.h",
577 "$root_gen_dir/headless/embedded_resource_pack_strings.cc",
578 "$root_gen_dir/headless/embedded_resource_pack_strings.h",
582 ":resource_pack_data",
583 ":resource_pack_strings",
588 defines += [ "USE_DBUS" ]
589 deps += [ "//device/bluetooth" ]
592 configs += [ ":inside_headless_component" ]
593 configs += [ ":headless_defines_config" ]
596 group("headless_tests") {
600 ":headless_browsertests",
601 ":headless_unittests",
605 test("headless_unittests") {
607 "lib/browser/headless_browser_impl_unittest.cc",
608 "lib/browser/headless_client_hints_controller_delegate_unittest.cc",
609 "public/domains/types_unittest.cc",
610 "public/util/error_reporter_unittest.cc",
612 # Headers for code under test that aren't normally exposed.
613 "public/headless_export.h",
614 "public/util/error_reporter.h",
617 # Headers for generated API code under test.
618 sources += generated_devtools_api_headers
623 ":gen_devtools_client_api",
624 ":headless_non_renderer",
625 ":headless_shell_lib",
626 "//base/test:run_all_unittests",
627 "//base/test:test_support",
628 "//components/embedder_support",
629 "//components/embedder_support:browser_util",
630 "//components/embedder_support/origin_trials",
631 "//components/security_state/content",
632 "//content/public/app",
633 "//content/public/child:child",
634 "//content/public/common",
637 "//ui/gfx:test_support",
641 deps += [ "//components/crash/core/app:crash_export_thunks" ]
644 if (enable_printing) {
646 "//components/printing/browser",
647 "//components/printing/browser/headless",
649 "//printing/buildflags",
650 "//third_party/blink/public:blink",
654 configs += [ ":headless_defines_config" ]
658 copy("mac_helpers") {
659 sources = [ "$root_out_dir/chrome_crashpad_handler" ]
661 deps = [ "//components/crash/core/app:chrome_crashpad_handler" ]
663 outputs = [ "$root_out_dir/Helpers/{{source_file_part}}" ]
667 test("headless_browsertests") {
669 "//net:net_test_config",
670 "//v8:external_startup_data",
673 "test/headless_browser_browsertest.cc",
674 "test/headless_browser_context_browsertest.cc",
675 "test/headless_browser_test.cc",
676 "test/headless_browser_test.h",
677 "test/headless_browser_test_utils.cc",
678 "test/headless_browser_test_utils.h",
679 "test/headless_browser_user_agent_metadata_browsertest.cc",
680 "test/headless_client_browsertest.cc",
681 "test/headless_devtooled_browsertest.cc",
682 "test/headless_devtooled_browsertest.h",
683 "test/headless_devtools_client_browsertest.cc",
684 "test/headless_origin_trials_browsertest.cc",
685 "test/headless_test_launcher.cc",
686 "test/headless_web_contents_browsertest.cc",
687 "test/test_network_interceptor.cc",
688 "test/test_network_interceptor.h",
691 if (enable_printing && enable_pdf) {
692 sources += [ "test/headless_printtopdf_browsertest.cc" ]
695 if (headless_use_policy) {
696 sources += [ "test/headless_policy_browsertest.cc" ]
699 if (headless_enable_commands) {
700 sources += [ "test/headless_command_browsertest.cc" ]
703 # TODO(crbug.com/1318548): Enable on Fuchsia when no longer flakily timeout.
706 "test/headless_compositor_browsertest.cc",
707 "test/headless_protocol_browsertest.cc",
708 "test/headless_protocol_browsertest.h",
714 "test/dom_tree_extraction_expected_nodes.txt",
715 "test/dom_tree_extraction_expected_styles.txt",
716 "$root_out_dir/headless_lib_data.pak",
717 "$root_out_dir/headless_lib_strings.pak",
718 "//net/tools/testserver/",
719 "//third_party/blink/web_tests/http/tests/inspector-protocol/",
720 "//third_party/pywebsocket3/",
725 if (headless_enable_commands) {
726 data += [ "$root_out_dir/headless_command_resources.pak" ]
727 data_deps += [ "//components/headless/command_handler" ]
731 additional_manifest_fragments = [
732 "//build/config/fuchsia/test/fonts.shard.test-cml",
734 # TODO(https://crbug.com/1185811): Investigate removing the requirement
736 "//build/config/fuchsia/test/mark_vmo_executable.shard.test-cml",
737 "//build/config/fuchsia/test/network.shard.test-cml",
738 "//third_party/fuchsia-sdk/sdk/pkg/vulkan/client.shard.cml",
743 data_deps += [ ":mac_helpers" ]
746 defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
749 ":headless_shell_lib",
752 "//components/devtools/simple_devtools_protocol_client",
753 "//components/embedder_support",
754 "//components/embedder_support:browser_util",
755 "//components/embedder_support:embedder_support",
756 "//components/headless/select_file_dialog",
757 "//components/headless/test",
758 "//components/policy/core/browser",
759 "//components/security_state/content",
760 "//components/version_info",
761 "//content/test:browsertest_support",
762 "//content/test:test_support",
764 "//net:test_support",
766 "//printing/buildflags",
767 "//services/device/public/cpp:test_support",
768 "//services/network/public/mojom",
771 "//tools/v8_context_snapshot:buildflags",
772 "//ui/base/clipboard",
773 "//ui/shell_dialogs",
777 deps += [ "//services/device/public/cpp:test_support" ]
781 deps += [ "//third_party/crashpad/crashpad/client" ]
784 if (enable_printing) {
786 "//components/headless/command_handler:switches",
787 "//components/printing/browser",
796 if (headless_use_policy) {
798 "//components/headless/policy",
799 "//components/policy/core/common:test_support",
803 if (headless_enable_commands) {
805 "//components/headless/command_handler",
806 "//components/headless/command_handler:switches",
810 configs += [ ":headless_defines_config" ]
814 # Headless library with only browser dependencies. This is used when no child
815 # dependencies are needed in the target (e.g. chrome:main_dll).
816 static_library("headless_shell_browser_lib") {
818 "app/headless_shell.cc",
819 "public/headless_shell.h",
822 ":headless_non_renderer",
823 "//build:branding_buildflags",
824 "//components/crash/core/app:app",
825 "//components/crash/core/app:run_as_crashpad_handler",
826 "//components/devtools/simple_devtools_protocol_client",
827 "//components/embedder_support",
828 "//content:sandbox_helper_win",
829 "//content/public/app",
830 "//content/public/browser",
831 "//content/public/common",
833 "//printing/buildflags",
836 if (headless_use_policy) {
838 "//components/headless/policy",
839 "//components/policy/content",
842 if (enable_printing) {
843 deps += [ "//components/printing/browser/headless:headless" ]
845 if (headless_enable_commands) {
846 deps += [ "//components/headless/command_handler" ]
850 ":headless_defines_config",
851 "//build/config/compiler:wexit_time_destructors",
856 # Headless library with all included dependencies. Use this library unless you
857 # have browser/child dependencies restrictions.
858 static_library("headless_shell_lib") {
860 "app/headless_shell.cc",
861 "public/headless_shell.h",
865 if (!is_component_build) {
867 "lib/utility/headless_content_utility_client.cc",
868 "lib/utility/headless_content_utility_client.h",
873 "//build:branding_buildflags",
874 "//components/devtools/simple_devtools_protocol_client",
875 "//components/embedder_support",
876 "//components/policy/content",
877 "//components/security_state/content",
879 "//content/public/app",
880 "//content/public/browser",
881 "//content/public/child:child",
882 "//content/public/common",
883 "//content/public/utility",
884 "//printing/buildflags",
888 ":headless_non_renderer",
890 "//third_party/inspector_protocol:crdtp",
893 if (!is_component_build) {
894 public_deps += [ ":headless_non_renderer" ]
898 deps += [ "//components/crash/content/browser" ]
901 if (enable_printing) {
903 "//components/printing/browser",
904 "//components/printing/browser/headless:headless",
905 "//components/printing/renderer",
906 "//components/services/print_compositor",
907 "//components/services/print_compositor/public/mojom",
911 if (headless_use_policy) {
913 "//components/headless/policy",
914 "//components/policy/content",
918 if (headless_enable_commands) {
919 deps += [ "//components/headless/command_handler" ]
923 defines = [ "HEADLESS_USE_CRASHPAD" ]
926 "//components/crash/core/app:run_as_crashpad_handler",
927 "//content:sandbox_helper_win",
933 deps += [ "//components/os_crypt/sync" ]
936 if (is_win || (is_posix && !is_mac)) {
937 deps += [ "//components/crash/core/app" ]
941 ":headless_defines_config",
942 "//build/config/compiler:wexit_time_destructors",
946 executable("headless_shell") {
947 configs -= [ "//build/config/compiler:thinlto_optimize_default" ]
948 configs += [ "//build/config/compiler:thinlto_optimize_max" ]
950 sources = [ "app/headless_shell_main.cc" ]
953 deps = [ ":headless_shell_lib" ]
955 if (!headless_use_embedded_resources) {
957 "$root_out_dir/headless_lib_data.pak",
958 "$root_out_dir/headless_lib_strings.pak",
964 "//build/win:default_exe_manifest",
965 "//content/public/app",
970 deps += [ "//sandbox/mac:seatbelt" ]
974 ":headless_defines_config",
975 "//build/config/compiler:wexit_time_destructors",