| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//mojo/public/tools/bindings/mojom.gni") |
| import("//testing/test.gni") |
| import("//tools/grit/grit_rule.gni") |
| import("//tools/grit/repack.gni") |
| |
| config("headless_implementation") { |
| defines = [ "HEADLESS_IMPLEMENTATION" ] |
| } |
| |
| group("headless") { |
| deps = [ |
| "//headless:headless_lib", |
| ] |
| } |
| |
| repack("pak") { |
| sources = [ |
| "$root_gen_dir/blink/devtools_resources.pak", |
| "$root_gen_dir/blink/public/resources/blink_image_resources_100_percent.pak", |
| "$root_gen_dir/blink/public/resources/blink_resources.pak", |
| "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", |
| "$root_gen_dir/content/app/strings/content_strings_en-US.pak", |
| "$root_gen_dir/content/browser/tracing/tracing_resources.pak", |
| "$root_gen_dir/content/content_resources.pak", |
| "$root_gen_dir/headless/headless_lib_resources.pak", |
| "$root_gen_dir/net/net_resources.pak", |
| "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", |
| "$root_gen_dir/ui/resources/webui_resources.pak", |
| "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak", |
| "$root_gen_dir/ui/strings/ui_strings_en-US.pak", |
| ] |
| |
| deps = [ |
| ":headless_lib_resources_grit", |
| "//content:resources", |
| "//content/app/resources", |
| "//content/app/strings", |
| "//content/browser/devtools:resources", |
| "//content/browser/tracing:resources", |
| "//net:net_resources", |
| "//third_party/WebKit/public:image_resources", |
| "//third_party/WebKit/public:resources", |
| "//ui/resources", |
| "//ui/strings", |
| ] |
| |
| output = "$root_out_dir/headless_lib.pak" |
| } |
| |
| grit("headless_lib_resources_grit") { |
| source = "lib/resources/headless_lib_resources.grd" |
| outputs = [ |
| "grit/headless_lib_resources.h", |
| "$root_gen_dir/headless/headless_lib_resources.pak", |
| ] |
| } |
| |
| generated_devtools_api = [ |
| "$target_gen_dir/public/domains/accessibility.cc", |
| "$target_gen_dir/public/domains/accessibility.h", |
| "$target_gen_dir/public/domains/animation.cc", |
| "$target_gen_dir/public/domains/animation.h", |
| "$target_gen_dir/public/domains/application_cache.cc", |
| "$target_gen_dir/public/domains/application_cache.h", |
| "$target_gen_dir/public/domains/browser.cc", |
| "$target_gen_dir/public/domains/browser.h", |
| "$target_gen_dir/public/domains/cache_storage.cc", |
| "$target_gen_dir/public/domains/cache_storage.h", |
| "$target_gen_dir/public/domains/console.cc", |
| "$target_gen_dir/public/domains/console.h", |
| "$target_gen_dir/public/domains/css.cc", |
| "$target_gen_dir/public/domains/css.h", |
| "$target_gen_dir/public/domains/database.cc", |
| "$target_gen_dir/public/domains/database.h", |
| "$target_gen_dir/public/domains/debugger.cc", |
| "$target_gen_dir/public/domains/debugger.h", |
| "$target_gen_dir/public/domains/device_orientation.cc", |
| "$target_gen_dir/public/domains/device_orientation.h", |
| "$target_gen_dir/public/domains/dom_debugger.cc", |
| "$target_gen_dir/public/domains/dom_debugger.h", |
| "$target_gen_dir/public/domains/dom.cc", |
| "$target_gen_dir/public/domains/dom.h", |
| "$target_gen_dir/public/domains/dom_storage.cc", |
| "$target_gen_dir/public/domains/dom_storage.h", |
| "$target_gen_dir/public/domains/emulation.cc", |
| "$target_gen_dir/public/domains/emulation.h", |
| "$target_gen_dir/public/domains/heap_profiler.cc", |
| "$target_gen_dir/public/domains/heap_profiler.h", |
| "$target_gen_dir/public/domains/indexeddb.cc", |
| "$target_gen_dir/public/domains/indexeddb.h", |
| "$target_gen_dir/public/domains/input.cc", |
| "$target_gen_dir/public/domains/input.h", |
| "$target_gen_dir/public/domains/inspector.cc", |
| "$target_gen_dir/public/domains/inspector.h", |
| "$target_gen_dir/public/domains/io.cc", |
| "$target_gen_dir/public/domains/io.h", |
| "$target_gen_dir/public/domains/layer_tree.cc", |
| "$target_gen_dir/public/domains/layer_tree.h", |
| "$target_gen_dir/public/domains/log.cc", |
| "$target_gen_dir/public/domains/log.h", |
| "$target_gen_dir/public/domains/memory.cc", |
| "$target_gen_dir/public/domains/memory.h", |
| "$target_gen_dir/public/domains/network.cc", |
| "$target_gen_dir/public/domains/network.h", |
| "$target_gen_dir/public/domains/page.cc", |
| "$target_gen_dir/public/domains/page.h", |
| "$target_gen_dir/public/domains/profiler.cc", |
| "$target_gen_dir/public/domains/profiler.h", |
| "$target_gen_dir/public/domains/rendering.cc", |
| "$target_gen_dir/public/domains/rendering.h", |
| "$target_gen_dir/public/domains/runtime.cc", |
| "$target_gen_dir/public/domains/runtime.h", |
| "$target_gen_dir/public/domains/security.cc", |
| "$target_gen_dir/public/domains/security.h", |
| "$target_gen_dir/public/domains/service_worker.cc", |
| "$target_gen_dir/public/domains/service_worker.h", |
| "$target_gen_dir/public/domains/tracing.cc", |
| "$target_gen_dir/public/domains/tracing.h", |
| "$target_gen_dir/public/domains/type_conversions.h", |
| "$target_gen_dir/public/domains/types.cc", |
| "$target_gen_dir/public/domains/types.h", |
| "$target_gen_dir/public/domains/worker.cc", |
| "$target_gen_dir/public/domains/worker.h", |
| ] |
| |
| action("gen_devtools_client_api") { |
| script = "//headless/lib/browser/client_api_generator.py" |
| deps = [ |
| "//third_party/WebKit/Source/core/inspector:protocol_version", |
| ] |
| inputs = [ |
| "$root_gen_dir/blink/core/inspector/protocol.json", |
| ] |
| |
| outputs = generated_devtools_api |
| |
| sources = [ |
| "lib/browser/domain_cc.template", |
| "lib/browser/domain_h.template", |
| "lib/browser/type_conversions_h.template", |
| "lib/browser/types_cc.template", |
| "lib/browser/types_h.template", |
| ] |
| |
| args = [ |
| "--protocol", |
| rebase_path(inputs[0], root_build_dir), |
| "--output_dir", |
| rebase_path(target_gen_dir) + "/public/domains", |
| ] |
| } |
| |
| static_library("headless_lib") { |
| sources = generated_devtools_api + [ |
| "lib/browser/headless_browser_context_impl.cc", |
| "lib/browser/headless_browser_context_impl.h", |
| "lib/browser/headless_browser_context_options.cc", |
| "lib/browser/headless_browser_context_options.h", |
| "lib/browser/headless_browser_impl.cc", |
| "lib/browser/headless_browser_impl.h", |
| "lib/browser/headless_browser_main_parts.cc", |
| "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.h", |
| "lib/browser/headless_devtools_client_impl.cc", |
| "lib/browser/headless_devtools_client_impl.h", |
| "lib/browser/headless_devtools_manager_delegate.cc", |
| "lib/browser/headless_devtools_manager_delegate.h", |
| "lib/browser/headless_screen.cc", |
| "lib/browser/headless_screen.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_client.cc", |
| "lib/browser/headless_window_tree_client.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_devtools_client.h", |
| "public/headless_devtools_host.h", |
| "public/headless_devtools_target.h", |
| "public/headless_export.h", |
| "public/headless_web_contents.h", |
| "public/internal/message_dispatcher.h", |
| "public/internal/value_conversions.h", |
| "public/util/black_hole_protocol_handler.cc", |
| "public/util/black_hole_protocol_handler.h", |
| "public/util/deterministic_dispatcher.cc", |
| "public/util/deterministic_dispatcher.h", |
| "public/util/error_reporter.cc", |
| "public/util/error_reporter.h", |
| "public/util/expedited_dispatcher.cc", |
| "public/util/expedited_dispatcher.h", |
| "public/util/generic_url_request_job.cc", |
| "public/util/generic_url_request_job.h", |
| "public/util/in_memory_protocol_handler.cc", |
| "public/util/in_memory_protocol_handler.h", |
| "public/util/in_memory_request_job.cc", |
| "public/util/in_memory_request_job.h", |
| "public/util/managed_dispatch_url_request_job.cc", |
| "public/util/managed_dispatch_url_request_job.h", |
| "public/util/user_agent.cc", |
| "public/util/user_agent.h", |
| "public/util/url_fetcher.cc", |
| "public/util/url_fetcher.h", |
| "public/util/url_request_dispatcher.h", |
| ] |
| |
| deps = [ |
| ":gen_devtools_client_api", |
| ":pak", |
| "//base", |
| "//content/public/app:both", |
| "//content/public/browser", |
| "//content/public/child", |
| "//content/public/common", |
| "//content/public/renderer", |
| "//content/public/utility", |
| "//net", |
| "//services/shell/public/cpp", |
| "//third_party/mesa:osmesa", |
| "//ui/aura", |
| "//ui/base", |
| "//ui/compositor", |
| "//ui/display", |
| "//ui/ozone", |
| "//url", |
| ] |
| |
| configs += [ ":headless_implementation" ] |
| } |
| |
| group("headless_tests") { |
| testonly = true |
| |
| deps = [ |
| ":client_api_generator_tests", |
| ":headless_browsertests", |
| ":headless_unittests", |
| ] |
| } |
| |
| test("headless_unittests") { |
| sources = [ |
| "public/domains/types_unittest.cc", |
| "public/util/deterministic_dispatcher_test.cc", |
| "public/util/error_reporter_unittest.cc", |
| "public/util/expedited_dispatcher_test.cc", |
| "public/util/generic_url_request_job_test.cc", |
| "public/util/testing/fake_managed_dispatch_url_request_job.cc", |
| "public/util/testing/fake_managed_dispatch_url_request_job.h", |
| "public/util/testing/generic_url_request_mocks.cc", |
| "public/util/testing/generic_url_request_mocks.h", |
| ] |
| |
| deps = [ |
| ":headless_lib", |
| "//base/test:run_all_unittests", |
| "//base/test:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| action("client_api_generator_tests") { |
| _stamp = "$target_gen_dir/client_api_generator_unittests.stamp" |
| inputs = [ |
| "lib/browser/client_api_generator.py", |
| "lib/browser/client_api_generator_unittest.py", |
| ] |
| outputs = [ |
| _stamp, |
| ] |
| |
| script = "lib/browser/client_api_generator_unittest.py" |
| args = [ |
| "--stamp", |
| rebase_path(_stamp, root_build_dir), |
| ] |
| } |
| |
| mojom("embedder_mojo_for_testing") { |
| sources = [ |
| "lib/embedder_test.mojom", |
| ] |
| } |
| |
| grit("headless_browsertest_resources_grit") { |
| source = "lib/headless_browsertest_resources.grd" |
| outputs = [ |
| "grit/headless_browsertest_resources.h", |
| "$root_gen_dir/headless/headless_browsertest_resources.pak", |
| ] |
| grit_flags = [ |
| "-E", |
| "mojom_root=" + rebase_path(root_gen_dir), |
| ] |
| deps = [ |
| ":embedder_mojo_for_testing__generator", |
| ] |
| resource_ids = "lib/headless_browsertest_resource_ids" |
| } |
| |
| repack("headless_browser_tests_pak") { |
| sources = [ |
| "$root_gen_dir/headless/headless_browsertest_resources.pak", |
| ] |
| output = "$root_out_dir/headless_browser_tests.pak" |
| deps = [ |
| ":headless_browsertest_resources_grit", |
| ] |
| } |
| |
| test("headless_browsertests") { |
| sources = [ |
| "lib/embedder_mojo_browsertest.cc", |
| "lib/headless_browser_browsertest.cc", |
| "lib/headless_browser_context_browsertest.cc", |
| "lib/headless_devtools_client_browsertest.cc", |
| "lib/headless_web_contents_browsertest.cc", |
| "test/headless_browser_test.cc", |
| "test/headless_browser_test.h", |
| "test/headless_test_launcher.cc", |
| "test/test_protocol_handler.cc", |
| "test/test_protocol_handler.h", |
| "test/test_url_request_job.cc", |
| "test/test_url_request_job.h", |
| ] |
| |
| data = [ |
| "$root_out_dir/headless_browser_tests.pak", |
| ] |
| |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| |
| deps = [ |
| ":embedder_mojo_for_testing", |
| ":headless_browser_tests_pak", |
| "//base", |
| "//content/test:test_support", |
| "//headless:headless_lib", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| executable("headless_shell") { |
| sources = [ |
| "app/headless_shell.cc", |
| "app/headless_shell_switches.cc", |
| "app/headless_shell_switches.h", |
| ] |
| |
| deps = [ |
| "//headless:headless_lib", |
| ] |
| } |