| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| assert(is_fuchsia) |
| |
| import("//build/config/cast.gni") |
| import("//build/config/fuchsia/generate_runner_scripts.gni") |
| import("//third_party/fuchsia-gn-sdk/src/component.gni") |
| import("//third_party/fuchsia-gn-sdk/src/package.gni") |
| |
| # Nothing else should depend on these targets except the final component. |
| visibility = [ ":*" ] |
| |
| group("shell") { |
| testonly = true |
| visibility += [ |
| "//chrome/test:*", |
| "//content/test:*", |
| "//fuchsia_web:gn_all", |
| ] |
| deps = [ ":web_engine_shell" ] |
| |
| if (enable_cast_receiver) { |
| deps += [ ":cast_streaming_shell" ] |
| } |
| } |
| |
| source_set("remote_debugging_port") { |
| sources = [ |
| "remote_debugging_port.cc", |
| "remote_debugging_port.h", |
| ] |
| deps = [ "//base" ] |
| } |
| |
| source_set("present_frame") { |
| testonly = true |
| sources = [ |
| "present_frame.cc", |
| "present_frame.h", |
| ] |
| deps = [ "//base" ] |
| public_deps = [ |
| "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.element", |
| "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.web", |
| ] |
| } |
| |
| fuchsia_component("web_engine_shell_component") { |
| testonly = true |
| manifest = "web_engine_shell.cml" |
| data_deps = [ ":web_engine_shell_exec" ] |
| } |
| |
| # WebInstanceHost needs to serve capabilities to web_instance. Since the |
| # primary web_engine_shell component is a test component, it is not able to do |
| # this directly. Instead, it launches this here component to start instances via |
| # WebInstanceHost. |
| fuchsia_component("web_engine_shell_for_web_instance_host_component") { |
| testonly = true |
| manifest = "web_engine_shell_for_web_instance_host.cml" |
| data_deps = [ ":web_engine_shell_exec" ] |
| } |
| |
| fuchsia_package("web_engine_shell_pkg") { |
| testonly = true |
| |
| # TODO(fxbug.dev/100944): Add appropriate visibility when fixed. |
| package_name = "web_engine_shell" |
| deps = [ |
| ":web_engine_shell_component", |
| ":web_engine_shell_for_web_instance_host_component", |
| ] |
| } |
| |
| fuchsia_package_installer("web_engine_shell") { |
| testonly = true |
| package = ":web_engine_shell_pkg" |
| package_name = "web_engine_shell" |
| package_deps = [ |
| [ |
| "//fuchsia_web/webengine:web_engine", |
| "web_engine", |
| ], |
| [ |
| "//fuchsia_web/webengine:web_engine_with_webui", |
| "web_engine_with_webui", |
| ], |
| ] |
| } |
| |
| executable("web_engine_shell_exec") { |
| testonly = true |
| sources = [ "web_engine_shell.cc" ] |
| |
| data = [ "data" ] |
| |
| deps = [ |
| ":present_frame", |
| ":remote_debugging_port", |
| ":shell_relauncher", |
| "//base", |
| "//components/fuchsia_component_support:annotations_manager", |
| "//fuchsia_web/common", |
| "//fuchsia_web/webinstance_host:webinstance_host", |
| "//third_party/fuchsia-sdk/sdk/pkg/fdio", |
| "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp", |
| "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", |
| "//third_party/widevine/cdm:buildflags", |
| "//url", |
| ] |
| } |
| |
| source_set("shell_relauncher") { |
| testonly = true |
| public = [ "shell_relauncher.h" ] |
| sources = [ "shell_relauncher.cc" ] |
| public_deps = [ |
| "//base", |
| "//third_party/abseil-cpp:absl", |
| ] |
| deps = [ |
| "//fuchsia_web/common/test:test_support", |
| "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component:fuchsia.component_hlcpp", |
| "//third_party/fuchsia-sdk/sdk/pkg/sys_component_cpp_testing", |
| ] |
| } |
| |
| if (enable_cast_receiver) { |
| fuchsia_component("cast_streaming_shell_component") { |
| testonly = true |
| manifest = "cast_streaming_shell.cml" |
| data_deps = [ ":cast_streaming_shell_exe" ] |
| } |
| |
| # WebInstanceHost needs to serve capabilities to child components, which is |
| # not possible when running inside a test component, such as |
| # cast_streaming_shell. The shell therefore uses an intermediate component to |
| # actually run the WebInstanceHost, from which the capabilities can be served. |
| fuchsia_component("cast_streaming_shell_for_web_instance_host_component") { |
| testonly = true |
| manifest = "cast_streaming_shell_for_web_instance_host.cml" |
| data_deps = [ ":cast_streaming_shell_exe" ] |
| } |
| |
| fuchsia_package("cast_streaming_shell_pkg") { |
| testonly = true |
| package_name = "cast_streaming_shell" |
| deps = [ |
| ":cast_streaming_shell_component", |
| ":cast_streaming_shell_for_web_instance_host_component", |
| ] |
| } |
| |
| fuchsia_package_installer("cast_streaming_shell") { |
| testonly = true |
| package = ":cast_streaming_shell_pkg" |
| package_name = "cast_streaming_shell" |
| package_deps = [ [ |
| "//fuchsia_web/webengine:web_engine", |
| "web_engine", |
| ] ] |
| } |
| |
| executable("cast_streaming_shell_exe") { |
| testonly = true |
| sources = [ "cast_streaming_shell.cc" ] |
| |
| data = [ |
| "cast_streaming_shell_data", |
| rebase_path("//media/test/data/bear-1280x720.ivf"), |
| ] |
| |
| deps = [ |
| ":present_frame", |
| ":remote_debugging_port", |
| ":shell_relauncher", |
| "//base", |
| "//base/test:test_support", |
| "//components/cast/message_port:message_port", |
| "//components/cast_streaming/test:test_sender_using_net_sockets", |
| "//components/fuchsia_component_support:annotations_manager", |
| "//fuchsia_web/cast_streaming", |
| "//fuchsia_web/common", |
| "//fuchsia_web/common/test:test_support", |
| "//fuchsia_web/webengine:switches", |
| "//fuchsia_web/webinstance_host:webinstance_host", |
| "//media", |
| "//media/gpu/test:test_helpers", |
| "//third_party/fuchsia-sdk/sdk/pkg/fdio", |
| "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", |
| "//url", |
| ] |
| } |
| } |