blob: 00479059ce4701b1634adb0cee817b5ee2628508 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
include: [
"//src/sys/test_runners/gtest/default.shard.cml",
"inspect/offer.shard.cml",
"sys/component/realm_builder.shard.cml",
"syslog/client.shard.cml",
// Required for ContextFeatureFlags::VULKAN.
"vulkan/client.shard.cml",
],
program: {
binary: "bin/web_runner_integration_tests_bin",
},
children: [
{
name: "build_info",
url: "#meta/fake_build_info.cm",
},
{
name: "property_provider",
url: "fuchsia-pkg://fuchsia.com/intl_property_manager#meta/intl_property_manager.cm",
},
{
name: "netstack",
url: "#meta/netstack-debug.cm",
},
{
name: "ui",
url: "fuchsia-pkg://fuchsia.com/test-ui-stack#meta/test-ui-stack.cm",
},
],
use: [
// The following blocks contain protocols that must be provided when
// creating a `fuchsia.web.Context` that can render Frames in Scenic.
{
protocol: [
"fuchsia.accessibility.semantics.SemanticsManager",
// "fuchsia.buildinfo.Provider", is provided below.
"fuchsia.device.NameProvider",
"fuchsia.fonts.Provider",
"fuchsia.hwinfo.Product",
// "fuchsia.intl.PropertyProvider", is provided below.
"fuchsia.kernel.VmexResource", // Assuming JavaScript desired.
// "fuchsia.logger/LogSink", is included by the shard above.
"fuchsia.memorypressure.Provider",
"fuchsia.process.Launcher",
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
],
},
{
protocol: "fuchsia.buildinfo.Provider",
from: "#build_info",
},
{
protocol: "fuchsia.intl.PropertyProvider",
from: "#property_provider",
},
{
protocol: [
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.scenic.Scenic",
],
from: "#ui",
},
{
protocol: [
// TODO(crbug.com/1224707): Migrate to `fuchsia.scheduler`.
"fuchsia.media.ProfileProvider",
// The `web_instance` attempts to connect to this service.
// Tests may pass a clone of the test component's Service
// Directory in the `Create()` call. Including it here
// suppresses "proper `use` declaration" warnings.
// If the protocol is not actually provided, an "Optional
// protocol `fuchsia.tracing.perfetto.ProducerConnector` was
// not available for target component" message will be logged.
// TODO(crbug.com/1364196): Provide and use conditionally when
// enabled once WebEngine respects the same condition.
"fuchsia.tracing.perfetto.ProducerConnector",
],
availability: "optional",
},
// Required for `ContextFeatureFlags::NETWORK`.
// Get these directly from the hermetic netstack component.
{
protocol: [
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
// This is also needed to launch a web server.
"fuchsia.posix.socket.Provider",
],
from: "#netstack",
},
],
offer: [
{
directory: "config-data",
from: "parent",
as: "config-data",
to: "#realm_builder",
subdir: "web-runner-integration-test",
},
{
// Required for `ContextFeatureFlags::NETWORK`.
directory: "root-ssl-certificates",
from: "parent",
to: "#realm_builder",
availability: "required",
},
{
directory: "tzdata-icu",
from: "parent",
to: "#realm_builder",
},
{
// Used by ContextProvider.
protocol: [
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReportingProductRegister",
],
from: "parent",
to: "#realm_builder",
},
{
protocol: [
"fuchsia.scheduler.RoleManager",
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
"fuchsia.tracing.provider.Registry",
"fuchsia.vulkan.loader.Loader",
],
from: "parent",
to: [
"#realm_builder",
"#ui",
],
},
],
facets: {
"fuchsia.test": {
"deprecated-allowed-packages": [
"intl_property_manager",
"test-ui-stack",
"web_engine",
],
},
},
}