template <typename BuilderImpl>

class WireTableBaseBuilder

Defined at line 931 of file fidling/gen/sdk/fidl/fuchsia.web/fuchsia.web/cpp/fidl/fuchsia.web/cpp/wire_types.h

Public Methods

::fuchsia_web::wire::CreateContextParams Build ()

Build and return the table. The builder should not be used after this.

bool has_service_directory ()
void clear_service_directory ()

Clears the service_directory field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::ClientEnd< ::fuchsia_io::Directory> & service_directory ()

Service directory to be used by the context.

The following services must be present in the service directory:

- [`fuchsia.buildinfo/Provider`]

- [`fuchsia.device/NameProvider`]

- [`fuchsia.fonts/Provider`]

- [`fuchsia.hwinfo.Product`]

- [`fuchsia.intl/PropertyProvider`]

- [`fuchsia.kernel/VmexResource`] (unless [`ContextFeatureFlags.DISABLE_DYNAMIC_CODE_GENERATION`] is set)

- [`fuchsia.logger/LogSink`]

- [`fuchsia.memorypressure/Provider`]

- [`fuchsia.process/Launcher`]

- [`fuchsia.sysmem/Allocator`]

The following services are recommended to be present in order to allow CPU scheduling

profiles to be applied to threads to tune their performance, especially for media rendering.

- [`fuchsia.media.ProfileProvider`] (requirement will be removed in 2025)

- [`fuchsia.scheduler.RoleManager`]

The following services must be present in order to render web content in a Scenic view

using [`Frame.CreateView`], [`Frame.CreateViewWithViewRef`] or [`Frame.CreateView2`]]:

- [`fuchsia.accessibility.semantics/SemanticsManager`]

- [`fuchsia.ui.composition/Allocator`]

- [`fuchsia.ui.composition/Flatland`]

- [`fuchsia.ui.scenic/Scenic`]

The following service must be present in order to collect diagnostic tracing data.

- [`fuchsia.tracing.perfetto.ProducerConnector`]

BuilderImpl & service_directory (::fidl::ClientEnd< ::fuchsia_io::Directory> elem)

Service directory to be used by the context.

The following services must be present in the service directory:

- [`fuchsia.buildinfo/Provider`]

- [`fuchsia.device/NameProvider`]

- [`fuchsia.fonts/Provider`]

- [`fuchsia.hwinfo.Product`]

- [`fuchsia.intl/PropertyProvider`]

- [`fuchsia.kernel/VmexResource`] (unless [`ContextFeatureFlags.DISABLE_DYNAMIC_CODE_GENERATION`] is set)

- [`fuchsia.logger/LogSink`]

- [`fuchsia.memorypressure/Provider`]

- [`fuchsia.process/Launcher`]

- [`fuchsia.sysmem/Allocator`]

The following services are recommended to be present in order to allow CPU scheduling

profiles to be applied to threads to tune their performance, especially for media rendering.

- [`fuchsia.media.ProfileProvider`] (requirement will be removed in 2025)

- [`fuchsia.scheduler.RoleManager`]

The following services must be present in order to render web content in a Scenic view

using [`Frame.CreateView`], [`Frame.CreateViewWithViewRef`] or [`Frame.CreateView2`]]:

- [`fuchsia.accessibility.semantics/SemanticsManager`]

- [`fuchsia.ui.composition/Allocator`]

- [`fuchsia.ui.composition/Flatland`]

- [`fuchsia.ui.scenic/Scenic`]

The following service must be present in order to collect diagnostic tracing data.

- [`fuchsia.tracing.perfetto.ProducerConnector`]

bool has_data_directory ()
void clear_data_directory ()

Clears the data_directory field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::ClientEnd< ::fuchsia_io::Directory> & data_directory ()

Handle to the directory that will contain the [`Context`]'s persistent data. If it is left

unset, then the created [`Context`] will be stateless, with all of its data discarded upon

[`Context`] destruction.

If set, `data_directory` must not be shared with any other [`Context`].

BuilderImpl & data_directory (::fidl::ClientEnd< ::fuchsia_io::Directory> elem)

Handle to the directory that will contain the [`Context`]'s persistent data. If it is left

unset, then the created [`Context`] will be stateless, with all of its data discarded upon

[`Context`] destruction.

If set, `data_directory` must not be shared with any other [`Context`].

bool has_user_agent_product ()
void clear_user_agent_product ()

Clears the user_agent_product field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::StringView & user_agent_product ()

Optional string describing the embedding product to append to the User-Agent string.

See the specification for the

[HTTP User-Agent header](https://tools.ietf.org/html/rfc7231#section-5.5.3).

Requires that `user_agent_version` is also specified.

BuilderImpl & user_agent_product (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::StringView>> elem)

Optional string describing the embedding product to append to the User-Agent string.

See the specification for the

[HTTP User-Agent header](https://tools.ietf.org/html/rfc7231#section-5.5.3).

Requires that `user_agent_version` is also specified.

bool has_user_agent_version ()
void clear_user_agent_version ()

Clears the user_agent_version field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::StringView & user_agent_version ()

Optional version for the embedding product to append to the User-Agent string.

Requires that `user_agent_product` is also specified.

BuilderImpl & user_agent_version (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::StringView>> elem)

Optional version for the embedding product to append to the User-Agent string.

Requires that `user_agent_product` is also specified.

bool has_remote_debugging_port ()
void clear_remote_debugging_port ()

Clears the remote_debugging_port field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint16_t & remote_debugging_port ()

Enables Frames to be created with remote debugging enabled using the DevTools protocol. If

`port` is 0, then an ephemeral port will be used, which can be queried via the

[`Context.GetRemoteDebuggingPort`] API.

Because remote debugging uses TCP, it is not valid to set a remote

debugging port without having also set [`ContextFeatureFlags.NETWORK`]

for the context.

BuilderImpl & remote_debugging_port (uint16_t elem)

Enables Frames to be created with remote debugging enabled using the DevTools protocol. If

`port` is 0, then an ephemeral port will be used, which can be queried via the

[`Context.GetRemoteDebuggingPort`] API.

Because remote debugging uses TCP, it is not valid to set a remote

debugging port without having also set [`ContextFeatureFlags.NETWORK`]

for the context.

bool has_content_directories ()
void clear_content_directories ()

Clears the content_directories field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::VectorView< ::fuchsia_web::wire::ContentDirectoryProvider> & content_directories ()

List of providers whose contents will be served by `fuchsia-dir://` URLs.

BuilderImpl & content_directories (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_web::wire::ContentDirectoryProvider>>> elem)

List of providers whose contents will be served by `fuchsia-dir://` URLs.

bool has_features ()
void clear_features ()

Clears the features field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fuchsia_web::wire::ContextFeatureFlags & features ()

Optional features that should be enabled for this context. Some features may also require

additional services in `service_directory`.

BuilderImpl & features (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fuchsia_web::wire::ContextFeatureFlags>> elem)

Optional features that should be enabled for this context. Some features may also require

additional services in `service_directory`.

bool has_playready_key_system ()
void clear_playready_key_system ()

Clears the playready_key_system field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::StringView & playready_key_system ()

Enables PlayReady CDM for the Context using the specified string as a key system

string. The string should be a reverse domain name, as required by

[EME API](https://www.w3.org/TR/encrypted-media/#key-system).

- Requires [`fuchsia.media.drm/PlayReady`] service.

- Requires that a `cdm_data_directory` be specified in [`CreateContextParams`].

BuilderImpl & playready_key_system (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::StringView>> elem)

Enables PlayReady CDM for the Context using the specified string as a key system

string. The string should be a reverse domain name, as required by

[EME API](https://www.w3.org/TR/encrypted-media/#key-system).

- Requires [`fuchsia.media.drm/PlayReady`] service.

- Requires that a `cdm_data_directory` be specified in [`CreateContextParams`].

bool has_unsafely_treat_insecure_origins_as_secure ()
void clear_unsafely_treat_insecure_origins_as_secure ()

Clears the unsafely_treat_insecure_origins_as_secure field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::VectorView< ::fidl::StringView> & unsafely_treat_insecure_origins_as_secure ()

Treat given insecure origins as secure origins. For the definition of secure contexts, see

[Secure Contexts](https://w3c.github.io/webappsec-secure-contexts/) and

[origin trustworthiness](https://www.w3.org/TR/powerful-features/#is-origin-trustworthy).

Example value: `{"http://a.com", "http://b.com"}`.

BuilderImpl & unsafely_treat_insecure_origins_as_secure (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::VectorView< ::fidl::StringView>>> elem)

Treat given insecure origins as secure origins. For the definition of secure contexts, see

[Secure Contexts](https://w3c.github.io/webappsec-secure-contexts/) and

[origin trustworthiness](https://www.w3.org/TR/powerful-features/#is-origin-trustworthy).

Example value: `{"http://a.com", "http://b.com"}`.

bool has_cors_exempt_headers ()
void clear_cors_exempt_headers ()

Clears the cors_exempt_headers field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::VectorView< ::fidl::VectorView<uint8_t>> & cors_exempt_headers ()

Specifies a set of header names for which [Cross-Origin Resource Sharing

(CORS)](https://www.w3.org/TR/cors/) checks should not be enforced.

BuilderImpl & cors_exempt_headers (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::VectorView< ::fidl::VectorView<uint8_t>>>> elem)

Specifies a set of header names for which [Cross-Origin Resource Sharing

(CORS)](https://www.w3.org/TR/cors/) checks should not be enforced.

bool has_cdm_data_directory ()
void clear_cdm_data_directory ()

Clears the cdm_data_directory field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::ClientEnd< ::fuchsia_io::Directory> & cdm_data_directory ()

Specifies the storage to use to persistent content licensing related data (e.g.

provisioning data, persistent session data). By default these data will be placed under the

`data_directory`, if specified.

If neither `data_directory` nor `cdm_data_directory` are specified, then content licensing

features requiring persistent storage (e.g. persistent licensing sessions) will not be

available to the [`Context`].

Note that not all content licensing systems support persistent sessions, regardless of

whether persistent storage is provided.

BuilderImpl & cdm_data_directory (::fidl::ClientEnd< ::fuchsia_io::Directory> elem)

Specifies the storage to use to persistent content licensing related data (e.g.

provisioning data, persistent session data). By default these data will be placed under the

`data_directory`, if specified.

If neither `data_directory` nor `cdm_data_directory` are specified, then content licensing

features requiring persistent storage (e.g. persistent licensing sessions) will not be

available to the [`Context`].

Note that not all content licensing systems support persistent sessions, regardless of

whether persistent storage is provided.

bool has_cdm_data_quota_bytes ()
void clear_cdm_data_quota_bytes ()

Clears the cdm_data_quota_bytes field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint64_t & cdm_data_quota_bytes ()

Specifies a target maximum size for `cdm_data_directory` contents, in bytes. If the amount

of persisted CDM data exceeds this threshold, then the [`Context`] will attempt to purge

some data to meet the specified quota.

BuilderImpl & cdm_data_quota_bytes (Wrapper_Ignore_Me_< ::fidl::ObjectView<uint64_t>> elem)

Specifies a target maximum size for `cdm_data_directory` contents, in bytes. If the amount

of persisted CDM data exceeds this threshold, then the [`Context`] will attempt to purge

some data to meet the specified quota.

bool has_data_quota_bytes ()
void clear_data_quota_bytes ()

Clears the data_quota_bytes field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint64_t & data_quota_bytes ()

Specifies a target maximum size for `data_directory` contents, in bytes.

The [`Context`] will attempt to limit browsing state (e.g. cookies, LocalStorage) to

not exceed the specified size.

BuilderImpl & data_quota_bytes (Wrapper_Ignore_Me_< ::fidl::ObjectView<uint64_t>> elem)

Specifies a target maximum size for `data_directory` contents, in bytes.

The [`Context`] will attempt to limit browsing state (e.g. cookies, LocalStorage) to

not exceed the specified size.

Protected Methods

void WireTableBaseBuilder< ::fuchsia_web::wire::CreateContextParams, BuilderImpl> (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_web::wire::CreateContextParams>> && frame)

Records