Fuchsia.web

添加时间:7

协议

上下文

fuchsia.web/context.fidl 中定义

管理与一组 Frame 相关联的浏览状态(例如 LocalStorage、Cookie 等)。

CreateFrame

在此 Context 下创建一个新的 Frame。销毁 Context 会触发 与其所有关联的 Frame 的销毁。Frame 可以被传输到另一个 但不能在多个组件之间共享。

  • frame:将绑定到所创建的 Frame 的接口请求。

请求

名称类型
frame server_end<Frame>

CreateFrameWithParams

Context.CreateFrame 类似,但具有额外的参数。

  • params:用于创建 Frame 的配置。 如果表不可克隆,此方法将失败并显示 ZX_ERR_INVALID_ARGS
  • frame:将绑定到所创建的 Frame 的接口请求。

请求

名称类型
params CreateFrameParams
frame server_end<Frame>

GetCookieManager

用于观察在此上下文下托管的网站的 Cookie。

请求

名称类型
manager server_end<CookieManager>

GetRemoteDebuggingPort

等待一个或多个帧上完成调试,并返回开发者工具端口 数字。接收端口号时,系统可能会将多个呼叫加入队列。

如果发生错误,ContextError 将设置为以下值:

  • REMOTE_DEBUGGING_PORT_NOT_OPENED:未在以下位置设置remote_debugging_portCreateContextParams 或远程调试服务启动失败。

请求

<空>

响应

名称类型
payload Context_GetRemoteDebuggingPort_Result

ContextProvider

fuchsia.web/context.fidl 中定义

允许创建上下文资源的顶级服务接口。

创建

创建一个新的浏览器 Context,其状态完全独立于 Context(Contexts)。

  • params:用于创建上下文的配置。
  • context:将接收绑定的 Context 的接口请求 服务。

请求

名称类型
params CreateContextParams
context server_end<Context>

CookieManager

fuchsia.web/cookie.fidl 中定义

提供监控和访问浏览器 Cookie 状态的方法。

GetCookieList

返回 Cookie 列表,可选择性地限制为与 url 匹配的 Cookie,并视需要返回 namecookies 会迭代匹配的 Cookie,包括其 value

请求

名称类型
url Url
name CookieName
cookies server_end<CookiesIterator>

ObserveCookieChanges

观察在向 url 发送的请求中发送的所有名为 name 的 Cookie 的变化。

如果 urlname 均未设置,则系统会观察所有 Cookie。如果仅设置了 url 系统就会观察该网址的所有 Cookie如果两者都设置了,则只有与这两者都匹配的 Cookie 字段。

changes 会迭代一系列 Cookie 更改。添加或更新以 完整的 Cookie,而删除操作则以未设置 value 的 Cookie 的形式表示。

请求

名称类型
url Url
name CookieName
changes server_end<CookiesIterator>

CookiesIterator

fuchsia.web/cookie.fidl 中定义

用于对一组 Cookie 或一系列 Cookie 更改进行迭代。

GetNext

提取下一批 Cookie 或对 Cookie 的更改。 RFC6265 没有规定 可能被存储。

请求

<空>

响应

名称类型
changed_cookies vector<Cookie>

调试

fuchsia.web/debug.fidl 中定义

允许对 Context 启用开发者工具服务的调试服务。

EnableDevTools

后续每次创建 Context 时启用开发者工具服务,并提供 后续开发者工具事件发送到提供的 listener。该回调将指示 WebEngine 处于可调试状态。系统会将事件发送到每个使用以下域名注册的 listener: 此方法。

由于开发者工具的调试功能使用 TCP 作为传输进行公开,因此只有 创建的有权访问网络功能的上下文会报告 自身可用于调试。

请求

名称类型
listener DevToolsListener

响应

<空>

DevToolsListener

fuchsia.web/debug.fidl 中定义

用于观察开发者工具服务可用性事件的接口。

OnContextDevToolsAvailable

当开发者工具服务在新的 Context 上可用时调用。

  • listener:新 Context 的开发者工具事件将用于的渠道 。当 Context 被销毁时,此通道将断开连接。

请求

名称类型
listener server_end<DevToolsPerContextListener>

DevToolsPerContextListener

fuchsia.web/debug.fidl 中定义

由调试组件提供的接口,用于观察开发者工具服务打开事件。

OnHttpPortOpen

当开发者工具服务在 port 上开始接受 TCP 连接时调用。port将会 保持打开状态,直到 Context 被销毁。

  • port:服务使用的端口。

请求

名称类型
port uint16

fuchsia.web/frame.fidl 中定义

AddBeforeLoadJavaScript

对于每次加载 Frame 的网址所在的后续页面,执行 UTF-8 编码的 scriptorigins中有所反映。脚本在执行之前提前执行 文档脚本的位置。

脚本由客户端管理的标识符 id 标识。之前注入的任何脚本 同一个id将被替换。

多个绑定的执行顺序与 已添加绑定。如果添加的脚本破坏了同一个现有脚本 id,注入顺序中系统会保留前一个脚本的优先级。

必须至少指定一个 origins 条目。如果以下对象中指定了通配符 "*"origins,则系统将无条件评估脚本。

如果发生错误,FrameError 将设为以下值之一:

  • BUFFER_NOT_UTF8script 未采用 UTF-8 编码。
  • INVALID_ORIGINorigins 是一个空矢量。

请求

名称类型
id uint64
origins vector<string>
script fuchsia.mem/Buffer

响应

名称类型
payload Frame_AddBeforeLoadJavaScript_Result

关闭

请求优雅或立即拆解框架内容并发出完成通知 通过 Frame epitaph

优雅拆解允许在实现和 Web 内容中卸载和清理任务 (例如,unload 事件处理脚本)。即时 teardown 仅会在实现过程中运行最少的清理任务,而不允许 来运行事件处理脚本

  • 如果 timeout 为零,系统会启动立即拆解。频道将以 ZX_OK。这相当于调用方关闭了 Frame 通道。

  • 如果 timeout 为非零值,系统会启动优雅拆解。频道将以 如果 Frame 在指定的 timeout 内以 ZX_ERR_TIMED_OUT 关闭,则为 ZX_OK 否则。

  • 如果未指定 timeout,则采用合理的实现专用超时。

Close() 的后续调用会覆盖之前指定的任何 Close() 超时设置。

添加时间:10

请求

名称类型
payload FrameCloseRequest

ConfigureInputTypes

启用或停用指定 types 的用户输入处理。 allow 指定是启用还是停用指定的 types。 默认情况下,所有输入类型都处于启用状态。

请求

名称类型
types InputTypes
allow AllowInputState

CreateView

使用指定的 view_token 创建新视图。调用方应经过 将令牌传递给 fuchsia.ui.gfx/ViewHolderArgs,以将新视图附加到视图树。

如需了解其他服务,请参阅 CreateContextParams.service_directory 说明 使用此方法时必须存在的 ID。

已弃用:13

请求

名称类型
view_token fuchsia.ui.views/ViewToken

CreateView2

使用在 args 下定义的指定 view_creation_token 创建一个新的 Flatland 视图。 调用方应将令牌的另一端传递给 fuchsia.ui.composition/Flatland.CreateViewport 将新的 Flatland 视图附加到 图表。

请求

名称类型
args CreateView2Args

CreateViewWithViewRef

使用指定的 view_token 创建新视图。调用方应经过 将令牌传递给 fuchsia.ui.gfx/ViewHolderArgs,以将新视图附加到视图树。 您可以先克隆 view_ref,然后再将其传递给此方法,这样客户端可以 跟踪视图。

view_ref_control 不得设置 ZX_RIGHT_DUPLICATE,否则视图创建将失败 且view_token将会关闭。

如需了解其他服务,请参阅 CreateContextParams.service_directory 说明 使用此方法时必须存在的 ID。

已弃用:13

请求

名称类型
view_token fuchsia.ui.views/ViewToken
view_ref_control fuchsia.ui.views/ViewRefControl
view_ref fuchsia.ui.views/ViewRef

DisableHeadlessRendering

停止无头渲染帧。

只能用于使用 ContextFeatureFlags.HEADLESS 创建的上下文。

请求

<空>

EnableHeadlessRendering

启用帧的无头渲染。

当内容依赖于正常触发的布局和/或动画事件时,使用此选项。 只能用于使用 ContextFeatureFlags.HEADLESS 创建的上下文。

请求

<空>

ExecuteJavaScript

如果 Frame 的网址包含源,则在 Frame 中执行 UTF-8 编码的 scriptorigins 中的条目匹配。

必须至少指定一个 origins 条目。如果以下对象中指定了通配符 "*"origins,则系统将无条件评估脚本。

以 JSON 编码的字符串形式返回执行 script 的结果。

请注意,脚本与文档共享相同的执行上下文, 这意味着文档可以修改 以任意或不可预测的方式运行脚本。

如果发生错误,FrameError 将设置为以下值之一:

  • BUFFER_NOT_UTF8script 未采用 UTF-8 编码。
  • INVALID_ORIGINFrame 的当前网址与 originsorigins 是空矢量。

请求

名称类型
origins vector<string>
script fuchsia.mem/Buffer

响应

名称类型
payload Frame_ExecuteJavaScript_Result

ExecuteJavaScriptNoResult

Frame.ExecuteJavaScript 的变体,用于执行提供的脚本而不返回 结果。

请求

名称类型
origins vector<string>
script fuchsia.mem/Buffer

响应

名称类型
payload Frame_ExecuteJavaScriptNoResult_Result

ForceContentDimensions

替换针对网络内容报告的维度。向 Web 内容会根据视图像素大小的变化而调整, 而不是改变向内容报告的尺寸。使用 null web_dips 调用 移除之前所有强制实施的内容尺寸

已弃用:13

请求

名称类型
web_dips fuchsia.ui.gfx/vec2?

GetMediaPlayer

返回 fuchsia.media.sessions2/Player 接口,媒体(即 视频/音频)播放时可能会被观察到和/或控制。仅一个 对于每个 Framefuchsia.media.sessions2/Player 一次可能处于活动状态。

请求

名称类型
player server_end<fuchsia.media.sessions2/Player>

GetNavigationController

返回一个界面,通过该界面可将 Frame 导航到所需网址。 等

请求

名称类型
controller server_end<NavigationController>

GetPrivateMemorySize

返回框架的主线程使用的私有(非共享)物理内存量, 文档。返回的大小可能无法反映嵌入式 iframe 的内存用量。

请求

<空>

响应

名称类型
size_bytes uint64

PostMessage

向框架的 onMessage 处理程序发布消息。

target_origin 用于将消息传送至指定的源。如果target_origin "*",则无论消息的来源为何,系统都会将其发送到文档。 请参阅 HTML 规范 第 9.4.3 节,详细了解如何应用目标来源政策。

如果发生错误,FrameError 将设为以下值之一:

  • INTERNAL_ERROR:WebEngine 未能创建消息管道。
  • BUFFER_NOT_UTF8messagedata 属性中的脚本未采用 UTF-8 编码。
  • INVALID_ORIGINorigins 是一个空矢量。
  • NO_DATA_IN_MESSAGEmessage 中缺少 data 属性。

请求

名称类型
target_origin Url
message WebMessage

响应

名称类型
payload Frame_PostMessage_Result

RemoveBeforeLoadJavaScript

移除之前添加的 JavaScript 代码段(通过 id 标识)。如果存在以下情况,则为空操作: 不是由 id 标识的 JavaScript 代码段。

请求

名称类型
id uint64

ResetContentAreaSettings

将框架的 ContentAreaSettings 重置为默认值。

请求

<空>

SetBlockMediaLoading

设置是否阻止框架中的所有 HTMLMediaElements 获取和加载媒体 资源。

例如,可用于防止在不可见的帧中加载媒体。

媒体加载被阻止时,autoplay 设为 true 的元素将不会开始播放 。在加载完成之前,调用 play() 返回的 promise 将保持未解析状态 便可解除屏蔽。

当媒体加载被取消阻止时,元素将开始提取、资源、加载 适当地播放

已开始为当前来源提取或加载媒体资源的任何元素 在媒体加载被阻止之前, 适当的选择。这包括对 play() 的调用,即使是在媒体加载被阻止后也是如此。

请求

名称类型
blocked bool

SetConsoleLogSink

指定将 console 日志输出发送到哪里。默认情况下,日志输出将被路由到 通过 fuchsia.web/Context 的服务目录获取的 fuchsia.logger/LogSink

请求

名称类型
sink fuchsia.logger/LogSink?

SetContentAreaSettings

设置各种设置,说明应如何在框架中运行 Web 内容。可通过任何 包括在网址加载之后每次调用只会更改指定的字段 覆盖任何之前的值。

如果 ContentAreaSettings 中有任何值,此方法将失败并显示 ZX_ERR_NOT_SUPPORTED。 不支持

请求

名称类型
settings ContentAreaSettings

SetJavaScriptLogLevel

如果设置为 ConsoleLogLevel.NONE 以外的值,则允许 Web 内容记录消息 为此 Frame 配置的 fuchsia.logger/LogSink 中,通过 console 对象(例如,使用 debug()log()info()warn()error())。 默认值为 ConsoleLogLevel.NONE

由于系统日志可能会保留,因此建议使用 ConsoleLogLevel.NONE 无痕模式和其他无痕浏览模式。

日志行会写入已配置的 fuchsia.logger/LogsSink fuchsia.web/Frame 采用的严重级别对应的情况如下:

请求

名称类型
level ConsoleLogLevel

SetMediaSettings

为帧设置 fuchsia.media/FrameMediaSettings。指定的参数为 会应用于在处理此消息后开始的音频流。应调用 然后再将框架转到内容中,以确保应用到 所有媒体流。由于请求流水线的原因,因此需要在调用 Frame.GetNavigationController()NavigationController.LoadUrl()

请求

名称类型
settings FrameMediaSettings

SetNavigationEventListener

设置用于处理页面导航事件的监听器。

  • listener:要使用的观察器。如果为 null,则取消注册任何现有监听器。

请求

名称类型
listener NavigationEventListener?

SetNavigationEventListener2

设置用于处理页面导航事件的监听器。监听器将收到 当前导航状态。此后,每当状态发生变化时,它都会收到通知。

  • listener:要使用的观察器。如果为 null,则取消注册任何现有监听器。
  • flags:应为监听器启用的可选功能的标志。

请求

名称类型
listener NavigationEventListener?
flags NavigationEventListenerFlags

SetNavigationPolicyProvider

Frame 设置导航政策提供程序。设置完毕后,Frame会向 处理导航时调用 NavigationPolicyProvider.EvaluateRequestedNavigation 请求。params 定义何时发送消息。将 EvaluateRequestedNavigation 消息,Frame 会屏蔽相应的导航 直至收到响应。

应在 GetNavigationController 之前调用,以确保将其应用于所有 包括第一个 NavigationController.LoadURL 请求的导航。

请求

名称类型
params NavigationPolicyProviderParams
provider NavigationPolicyProvider

SetPermissionState

设置指定的 permissionweb_origin 的权限状态。默认情况下 权限被拒绝。

请求

名称类型
permission PermissionDescriptor
web_origin Url
state PermissionState

SetPopupFrameCreationListener

设置用于处理由 Web 内容打开的弹出框架的监听器。如果没有监听器 则会阻止所有新的弹出式帧。

  • listener:要使用的监听器。如果为 null,则取消注册任何现有监听器。

请求

名称类型
listener PopupFrameCreationListener?

SetUrlRequestRewriteRules

用于提供一组 UrlRequestRewriteRule,以应用于每个后续网址请求。

  • rules 可累计,并按顺序应用。
  • rules 仅应用于重定向链中的第一个网址请求。
  • rules”在应用之前需要先经过验证。如果 rules 无效,则使用 FrameERR_INVALID_ARGS”将会结束营业。
  • Frame.SetUrlRequestRewriteRules 在其确认之前不得再次调用 回调已完成。如果发生这种情况,系统将关闭 Frame,并显示 ERR_BAD_STATE

请求

名称类型
rules vector<UrlRequestRewriteRule>[4096]

响应

<空>

FrameHost

fuchsia.web/context.fidl 中定义

Context 客户端用于将托管功能委托给选定的对等方。

CreateFrameWithParams

行为与 Context.CreateFrameWithParams 相同。

请求

名称类型
params CreateFrameParams
frame server_end<Frame>

MessagePort

fuchsia.web/frame.fidl 中定义

表示 HTML5 MessageChannel 的一端。可用于向以下对象发送和交换消息: 框架的脚本上下文中对等的 MessagePort。当数据线的任一端 MessagePort 通道被销毁

PostMessage

向对等方发送一条 WebMessage。这些查询会按顺序处理,一个 。调用方无需等待完成回调,然后再调用 MessagePort.PostMessage

如果发生错误,FrameError 将设为以下值之一:

  • BUFFER_NOT_UTF8messagedata 属性中的脚本未采用 UTF-8 编码。
  • NO_DATA_IN_MESSAGEmessage 中缺少 data 属性。

请求

名称类型
message WebMessage

响应

名称类型
payload MessagePort_PostMessage_Result

ReceiveMessage

从通道异步读取下一条消息。客户端应调用 回调。对未接收的消息进行缓冲 受其可用资源的约束。

请求

<空>

响应

名称类型
message WebMessage

fuchsia.web/navigation.fidl 中定义

提供用于控制和查询 Frame 导航状态的方法。

指示 Frame 导航到其历史记录中的上一页(如果有)。

<空>

指示 Frame 导航到其历史记录中的下一页(如果有)。

<空>

指示 Frame 导航到 url

  • url:要导航到的地址。
  • params:影响资源加载方式的其他参数(例如 Cookie、HTTP 标头等)

如果发生错误,NavigationControllerError 将设为以下值之一:

  • INVALID_URLurl 参数无效。
  • INVALID_HEADERLoadUrlParams.headers 中至少有一个标头无效。
名称类型
url Url
params LoadUrlParams
名称类型
payload NavigationController_LoadUrl_Result

指示 Frame 重新加载当前页面。

名称类型
type ReloadType

指示 Frame 在导航正在进行时停止当前导航。

<空>

fuchsia.web/navigation.fidl 中定义

由嵌入器提供的接口,用于接收有关 Frame

Frame.SetNavigationEventListener 之后以及每次用户可见时立即调用 导航状态已更改。在第一次调用中,change 包含当前导航 状态(在第一个导航请求之前为空)。在后续每次通话中,change 将 为自上次更新后在任意时间发生更改的所有字段设置值 通知。也就是说,某些字段的值可能与之前相同 例如,这些值在更改为其他值后再返回。如果字段是 如果未设置,则自上次通知以来,其值在任何时候都不会更改。

实现人员必须调用确认回调才能接收新的导航事件。

名称类型
change NavigationState

<空>

fuchsia.web/navigation.fidl 中定义

Frame 处理某个阶段中的导航请求时调用 NavigationPolicyProviderParams 中指定的方法。导航会暂停,直到获得结果 。返回的 NavigationDecision 定义了导航应如何进行。

名称类型
requested_navigation RequestedNavigation
名称类型
decision NavigationDecision

PopupFrameCreationListener

fuchsia.web/frame.fidl 中定义

OnPopupFrameCreated

Frame 创建新的弹出式窗口 frame 时调用。弹出式框架的相关信息 及其创建方式,通过 info 提供。之后才显示其他弹出式框架, 系统将调用确认回调函数

请求

名称类型
frame Frame
info PopupFrameCreationInfo

响应

<空>

结构体

Context_GetRemoteDebuggingPort_Response

fuchsia.web/context.fidl 中定义

字段类型说明默认
port uint16 无默认设置

Frame_AddBeforeLoadJavaScript_Response

fuchsia.web/frame.fidl 中定义

<空>

Frame_ExecuteJavaScriptNoResult_Response

fuchsia.web/frame.fidl 中定义

<空>

Frame_ExecuteJavaScript_Response 资源

fuchsia.web/frame.fidl 中定义

字段类型说明默认
result fuchsia.mem/Buffer 无默认设置

Frame_PostMessage_Response

fuchsia.web/frame.fidl 中定义

<空>

MessagePort_PostMessage_Response

fuchsia.web/frame.fidl 中定义

<空>

fuchsia.web/navigation.fidl 中定义

<空>

NoArgumentsAction

fuchsia.web/navigation.fidl 中定义

NavigationDecision 中用于不含任何参数的操作的空结构体。

<空>

精英

allowInputState 严格

类型:int32

fuchsia.web/frame.fidl 中定义

控制 Frame.ConfigureInputTypes() 应该允许还是拒绝处理 指定的 InputTypes

名称说明
1
2

AutoplayPolicy 严格

类型:int32

fuchsia.web/context.fidl 中定义

指定自动(非用户启动)播放视频和音频内容的政策。

名称说明
1

允许所有媒体自动播放。

2

允许在用户激活文档后自动播放文档。这可能是由于 用户操作或 LoadUrlParams.was_user_activated

ConsoleLogLevel strict

类型:int32

fuchsia.web/frame.fidl 中定义

名称说明
100

无日志记录。

-1

输出 console.debug() 及更高级别的消息。

0

输出 console.log()console.info() 及更高级别的消息。

1

输出来自 console.warn()console.error() 的消息。

2

输出来自 console.error() 的消息。

ContextError 严格

类型:int32

fuchsia.web/context.fidl 中定义

名称说明
1

未打开远程调试服务。

FrameError 严格

类型:int32

fuchsia.web/frame.fidl 中定义

表示 Frame 方法的返回状态。

名称说明
1

发生内部错误。

2

提供的缓冲区未采用 UTF-8 编码。

3

框架的网址与调用方提供的任何源都不匹配。

4

WebMessage 缺少必需的 data 属性。

LoadUrlReason 严格

类型:uint32

fuchsia.web/navigation.fidl 中定义

描述 NavigationController.LoadUrl 请求的来源。

名称说明
1

导航是由用户提供的网址启动的。

类型:int32

fuchsia.web/navigation.fidl 中定义

表示 NavigationController 方法的返回状态。

名称说明

网页类型严格

类型:uint32

fuchsia.web/navigation.fidl 中定义

描述 NavigationState 中的页面类型。

名称说明
0

常规网页。

1

错误页面。

PermissionState 严格

类型:uint8

fuchsia.web/frame.fidl 中定义

网络权限的状态。

名称说明
1

权限遭拒。

2

已授予权限。

PermissionType 严格

类型:uint16

fuchsia.web/frame.fidl 中定义

用于标识可授予网站源的一类权限。

名称说明
1

麦克风使用权限。

2

使用摄像头的权限。

3

拥有针对 EME 使用设备标识符的权限。

4

拥有使用永久性存储空间的权限。

重新加载类型 strict

类型:uint32

fuchsia.web/navigation.fidl 中定义

说明重新加载的类型。

名称说明
0

重新加载当前条目,绕过主资源的缓存。

1

重新加载当前条目,完全绕过缓存。

UrlRequestAction 严格

类型:int32

fuchsia.web/url_request_rewrite_rules.fidl 中定义

名称说明
1

允许系统处理请求。

2

屏蔽请求。

表格

ContentAreaSettings

fuchsia.web/frame.fidl 中定义

框架中 Web 内容的设置。由框架创建的弹出框架的 设置初始化为帧的当前设置。

Ordinal字段类型说明
hide_scrollbars bool

指定是否为框架隐藏滚动条。如果省略,则默认值为 false。

autoplay_policy AutoplayPolicy

指定帧的自动播放政策。如果省略,则默认政策为 REQUIRE_USER_ACTIVATION

theme fuchsia.settings/ThemeType

指定通过 prefers-color-scheme 媒体向 Web 内容报告的色彩主题 查询。 有效输入包括 LIGHTDARKDEFAULT。如果省略,则默认使用 LIGHT 主题。 指定 DEFAULT 意味着使用系统设置,并且要求 Context 具有 fuchsia.settings.Display 服务。如果该服务不可用,Frame 将与ZX_ERR_INVALID_ARGS断开连接。

page_scale float32

设置应用于在此呈现的 Web 内容应该应用的缩放比例(缩放级别) 帧。大于 1.0 的值会放大所有网页内容(包括文字和图片),而 值低于 1.0 会使其更小。换言之,大于 1.0 的值用于放大 和低于 1.0 的值将缩小。实际像素与 CSS 像素之间的总体比率为 此方法所设比例的乘积和风景提供的比例(请参见 fuchsia.ui.gfx.Metrics).该商品在 Web 内容中显示为 window.devicePixelRatio。如果省略,则默认值为 1.0。

此设置对屏幕上的视图大小和 该视图的渲染分辨率原生(非网络)界面元素,例如默认 滚动条和默认的鼠标光标不会缩放。在点击“请求”按钮后,用户可能会进一步缩放页面 已启用双指张合缩放功能(请参阅 InputTypes.GESTURE_PINCH)。

ContentDirectoryProvider 资源

fuchsia.web/context.fidl 中定义

定义从 fuchsia.io/Directory 托管资源的提供程序。内容可以GET 而不是枚举目录。可通过以下服务访问资源: 其网址:fuchsia-dir://<provider-name>/<path/to/resource>

默认情况下,文件的 MIME 类型由“嗅探”元素的内容 文件。系统不会声明任何内容编码,浏览器会将其解读为 "text/plain"

您可以选择通过元数据文件来明确指定内容类型和编码元数据, (位于文件旁边)元数据以 JSON 文件表示,并以文件命名 它们使用 "._metadata" 后缀进行描述。

例如,文件 "index.html" 包含一个名为 "index.html._metadata",内容如下:

{
  "charset": "utf-8",
  "mime": "text/html"
}

Ordinal字段类型说明
name string[255]

提供商的名称。不得为空,并且只能由字母数字、英文句点和 短划线。

directory fuchsia.io/Directory

此目录包含此提供商提供的文件。

fuchsia.web/cookie.fidl 中定义

Ordinal字段类型说明
id CookieId

包含用于标识 Cookie 的字段的表格。

value string

Cookie 值。 RFC6265 未指定 Cookie 大小的上限,但建议 至少支持 4096 个字节。

CookieId

fuchsia.web/cookie.fidl 中定义

Ordinal字段类型说明
name CookieName

RFC2616“令牌”由网站选择来标识 Cookie。

domain string[255]

RFC1034“子域名”该 Cookie 的范围 例如“example.com”允许从所有 *.example.com 子网域进行访问。

path string[65536]

网址“path”该 Cookie 范围的前缀。 例如“/”允许从所有路径访问。

CreateContextParams 资源

fuchsia.web/context.fidl 中定义

用于指定新 Context 的配置的参数。

Ordinal字段类型说明
service_directory fuchsia.io/Directory

供上下文使用的服务目录。

服务目录中必须包含以下服务:

建议提供以下服务以允许 CPU 调度 配置文件,以调整线程的性能,尤其是对于媒体渲染。

要在风景视图中呈现 Web 内容,必须提供以下服务 Frame.CreateViewFrame.CreateViewWithViewRefFrame.CreateView2]:

必须提供以下服务才能收集诊断跟踪数据。

data_directory fuchsia.io/Directory

指向将包含 Context 持久性数据的目录的句柄。如果将其保留 如果未设置,则创建的 Context 将是无状态的,且其所有数据一经设置便会被舍弃 Context 销毁。

如果设置了此字段,则 data_directory 不得与任何其他 Context 共享。

user_agent_product string[128]

可选字符串,用于描述要附加到用户代理字符串的嵌入商品。 有关 HTTP 用户代理标头。 要求同时指定 user_agent_version

user_agent_version string[128]

要附加到用户代理字符串的嵌入产品的可选版本。

要求同时指定 user_agent_product

remote_debugging_port uint16

允许在启用远程调试时使用开发者工具协议创建框架。如果 port 为 0,则将使用一个临时端口,该端口可通过 Context.GetRemoteDebuggingPort API。

由于远程调试使用 TCP,因此设置遥控器是无效的 调试端口,而不必同时设置 ContextFeatureFlags.NETWORK 上下文。

content_directories vector<ContentDirectoryProvider>[100]

内容将由 fuchsia-dir:// 网址传送的提供商的列表。

features ContextFeatureFlags

应为此上下文启用的可选功能。有些功能可能还需要 service_directory 的附加服务。

playready_key_system string[128]

使用指定字符串作为关键系统为上下文启用 PlayReady CDM 字符串。该字符串应该是反向域名, EME API

unsafely_treat_insecure_origins_as_secure vector<string>[100]

将指定的不安全来源视为安全来源。如需了解安全上下文的定义,请参阅 安全上下文来源可信度

示例值:{"http://a.com", "http://b.com"}

cors_exempt_headers vector<vector<uint8>>

指定跨源资源共享的一组标头名称 (CORS) 检查。

cdm_data_directory fuchsia.io/Directory

指定用于持久内容许可相关数据的存储(例如, 预配数据、永久性会话数据)。默认情况下,这些数据会放置在 data_directory(如果已指定)。

如果 data_directorycdm_data_directory 均未指定,则内容许可 不会提供需要永久存储的功能(例如永久许可会话) 适用于 Context

请注意,并非所有内容许可系统都支持永久会话, 是否提供永久性存储。

cdm_data_quota_bytes uint64

指定 cdm_data_directory 内容的目标大小上限(以字节为单位)。如果金额 的持久 CDM 数据超过此阈值,则 Context 将尝试完全清除 一些数据以满足指定的配额。

data_quota_bytes uint64

指定 data_directory 内容的目标大小上限(以字节为单位)。 Context 将尝试将浏览状态(例如 Cookie、LocalStorage)限制为 不能超过指定的大小。

CreateFrameParams 资源

fuchsia.web/context.fidl 中定义

用于指定新 Frame 配置的参数。

Ordinal字段类型说明
enable_remote_debugging bool

设置为 true 可启用远程调试。关闭 Frame 并附上 ERR_INVALID_ARGS(如果未在以下位置设置 remote_debugging_portCreateContextParams

debug_name string

设置为为框架命名,以便在调试上下文(例如系统日志)中区分框架 输出。例如,在记录 Web 内容的消息时,系统可能会为其添加该名称 写入系统日志记录器该名称不会影响用户或网络可见的行为。 框架创建的弹出式框架的名称会派生自父级框架的名称。

explicit_sites_filter_error_page fuchsia.mem/Data

启用自动拦截,将用户转到包含露骨内容的网站,并指定错误页面 以 HTML 形式加载的内容,在过滤器取消导航时在框架中加载。 适用于 Frame 中所有帧中的导航。 取消主文档的导航时,Frame 的 NavigationState.PageTypeERROR。 如果设置为空缓冲区,则会显示默认错误消息。 如果已设置该属性且不支持此类过滤,则 Frame 将断开与 ZX_ERR_NOT_SUPPORTED

CreateView2Args 资源

fuchsia.web/frame.fidl 中定义

Frame.CreateView2() 的参数(参见上文)。

Ordinal字段类型说明
view_creation_token fuchsia.ui.views/ViewCreationToken

非可选。提供此令牌是为了将客户端的 Flatland 视图附加到父级的 视口。

网站图标资源

fuchsia.web/navigation.fidl 中定义

用于表示页面的网站图标。空表格(所有字段均未设置)用于表示 该网页不含网站图标

Ordinal字段类型说明
data fuchsia.mem/Buffer

编码为具有预乘 alpha 通道的 RGBA 位图图片内容。数据 密集的,因此步长始终为 4 * width,总大小为 4 * width * height

width uint32

图片的宽度。

height uint32

图片的高度。

FrameCloseRequest

fuchsia.web/frame.fidl 中定义

Ordinal字段类型说明
timeout zx/Duration

可选。

FrameMediaSettings

fuchsia.web/frame.fidl 中定义

Ordinal字段类型说明
renderer_usage fuchsia.media/AudioRenderUsage

要为每个 fuchsia.media/AudioRenderer 设置的 fuchsia.media/AudioRenderUsage Frame 创建的实例。如果未设置,则对于 WebRTC,用法为 COMMUNICATION 数据流,所有其他数据流 MEDIA

audio_consumer_session_id uint64

设置后,即可允许使用 fuchsia.media/AudioConsumer 进行音频播放。在该部分中, 在这种情况下,指定的值会传递给 fuchsia.media/SessionAudioConsumerFactory

LoadUrlParams 资源

fuchsia.web/navigation.fidl 中定义

用于修改 NavigationController.LoadUrl 行为的其他参数。

Ordinal字段类型说明
type LoadUrlReason

向浏览器界面提供有关如何触发 NavigationController.LoadUrl 的提示。

referrer_url Url

链接到所请求资源的网址。

was_user_activated bool

若要将用户激活状态传播到帧,应设置为 true。用户激活暗示 用户正在与网页框架互动它支持一些 其他代码。例如,仅当此标志设置为 true 时,自动播放功能才能正常运行。

headers vector<fuchsia.net.http/Header>

自定义 HTTP 标头。RFC7540 没有对 标头大小。

fuchsia.web/navigation.fidl 中定义

用于指定应将哪些导航事件委托给 NavigationPolicyProvider

Ordinal字段类型说明

fuchsia.web/navigation.fidl 中定义

包含有关 Frame 导航状态的信息。

Ordinal字段类型说明

PermissionDescriptor

fuchsia.web/frame.fidl 中定义

描述网络权限。将来可能会通过类型专用字段对其进行扩展。

Ordinal字段类型说明
type PermissionType

PopupFrameCreationInfo 资源

fuchsia.web/frame.fidl 中定义

指定新创建的弹出式框架的相关附加信息。

Ordinal字段类型说明
initial_url Url

弹出式框架最初导航到的网址。

initiated_by_user bool

设置弹出式框架是否是为了响应用户的界面交互(例如, 链接)。

RequestedNavigation

fuchsia.web/navigation.fidl 中定义

Ordinal字段类型说明
id NavigationId

导航的唯一 ID。

phase NavigationPhase

当前导航阶段。只能设置 1 位。

is_main_frame bool

导航是在主框架中还是在子框架中发生的。

is_same_document bool

是否在不更改文档的情况下进行导航。

5

is_http_post bool

导航是否为 POST 请求。

url Url

导航的当前目标网址。在以后的相同导航中,此设置可能会发生变化 遇到了服务器重定向

has_gesture bool

导航是否由用户手势启动。

was_server_redirect bool

导航是否遇到服务器重定向。

UrlRequestRewriteAddHeaders

fuchsia.web/url_request_rewrite_rules.fidl 中定义

向网址请求添加 headers。如果标头已经存在于原始网址请求中, 它将被覆盖

Ordinal字段类型说明
headers vector<fuchsia.net.http/Header>[4096]

UrlRequestRewriteAppendToQuery

fuchsia.web/url_request_rewrite_rules.fidl 中定义

query 附加到该网址的查询中。如果网址请求已有查询,则 query 将为 附加到其前面,后跟 &。否则,该网址的查询将设置为 query

Ordinal字段类型说明
query Url

UrlRequestRewriteRemoveHeader

fuchsia.web/url_request_rewrite_rules.fidl 中定义

如果该网址的查询中包含 query_pattern,则从标头列表中移除 header_name。如果 query_pattern 未设置,会无条件从标头列表中移除 header_name

  • 必须设置 header_name
  • header_name 必须是有效的 HTTP 标头名称,每个 RFC 7230 第 3.2 节

Ordinal字段类型说明
query_pattern Url
header_name fuchsia.net.http/HeaderName
添加时间:12

UrlRequestRewriteReplaceUrl

fuchsia.web/url_request_rewrite_rules.fidl 中定义

如果网址请求中的网址以 url_ends_with 结尾,则将该网址重写为 new_url

Ordinal字段类型说明
url_ends_with Url
new_url Url

UrlRequestRewriteRule

fuchsia.web/url_request_rewrite_rules.fidl 中定义

Ordinal字段类型说明
hosts_filter vector<string>[4096]

要应用规则的一组主机。如果未设置,该规则将应用于每个请求 独立于主机

schemes_filter vector<string>[4096]

要应用规则的一组方案。如果未设置,该规则将应用于每个请求 与架构无关

rewrites vector<UrlRequestRewrite>[4096]

要应用的网址请求重写。

action UrlRequestAction

指定对匹配过滤条件的请求执行的操作。 默认情况下,系统允许请求。

UrlRequestRewriteSubstituteQueryPattern

fuchsia.web/url_request_rewrite_rules.fidl 中定义

如果在该网址的查询中找到 pattern,请将其替换为 substitution

  • 必须设置 patternsubstitution
  • substitution”必须是有效的 网址查询字符串。

Ordinal字段类型说明
pattern Url
substitution Url

WebMessage 资源

fuchsia.web/frame.fidl 中定义

Ordinal字段类型说明
data fuchsia.mem/Buffer

消息载荷,编码为 UTF-8 字符串。这是必需属性。

incoming_transfer vector<IncomingTransferable>

从 FIDL 客户端传输到 MessagePort 的对象的可选列表。

outgoing_transfer vector<OutgoingTransferable>

MessagePort 传输到 FIDL 客户端的可选对象列表。

联合体

Context_GetRemoteDebuggingPort_Result strict

fuchsia.web/context.fidl 中定义

Ordinal变体类型说明
response Context_GetRemoteDebuggingPort_Response
err ContextError

Frame_AddBeforeLoadJavaScript_Result strict

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
response Frame_AddBeforeLoadJavaScript_Response
err FrameError

Frame_ExecuteJavaScriptNoResult_Result 严格

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
response Frame_ExecuteJavaScriptNoResult_Response
err FrameError

Frame_ExecuteJavaScript_Result 严格资源

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
response Frame_ExecuteJavaScript_Response
err FrameError

Frame_PostMessage_Result strict

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
response Frame_PostMessage_Response
err FrameError

可传入的灵活 资源

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
message_port MessagePort

MessagePort_PostMessage_Result 严格

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
response MessagePort_PostMessage_Response
err FrameError

fuchsia.web/navigation.fidl 中定义

Ordinal变体类型说明

fuchsia.web/navigation.fidl 中定义

为响应导航请求而应执行的导航操作。退货自 NavigationPolicyProvider.EvaluateRequestedNavigation

Ordinal变体类型说明

外发的灵活 资源

fuchsia.web/frame.fidl 中定义

Ordinal变体类型说明
message_port server_end<MessagePort>

UrlRequestRewrite 柔性环境

fuchsia.web/url_request_rewrite_rules.fidl 中定义

Ordinal变体类型说明
add_headers UrlRequestRewriteAddHeaders

向网址请求添加一组标头。

remove_header UrlRequestRewriteRemoveHeader

根据网址查询中是否存在某种格式来移除标头。

substitute_query_pattern UrlRequestRewriteSubstituteQueryPattern

用于替换网址查询中的格式。

replace_url UrlRequestRewriteReplaceUrl

如果原始网址以格式结尾,则替换网址。

append_to_query UrlRequestRewriteAppendToQuery

附加到网址的查询中。

ContextFeatureFlags strict

类型:uint64

fuchsia.web/context.fidl 中定义

支持增强上下文行为的功能标志。部分功能需要额外服务才能使用 放在上下文初始化期间提供的服务目录中。请参阅 CreateContextParams.service_directory

名称说明
1

启用网络访问权限。需要以下服务:

2

启用音频输入和输出。需要以下服务:

4

启用 Web 内容的 GPU 加速渲染。需要以下服务:

8

启用硬件视频解码。 此外,还必须启用 ContextFeatureFlags.VULKAN。 需要以下服务:

16

停用无法在硬件中解码的视频编解码器。 软件解码器将仅用作硬件解码器的后备,例如, 资源不足 需要 ContextFeatureFlags.HARDWARE_VIDEO_DECODER

32

为 EME API 启用 Widevine CDM 模块。 此外,还必须启用 ContextFeatureFlags.VULKAN。 需要 fuchsia.media.drm/Widevine 服务。要求 cdm_data_directory 必须为 在 CreateContextParams 中指定。

64

允许嵌入器渲染 Web 内容,而不显示图形输出或风景。 与 ContextFeatureFlags.VULKAN 不兼容。

128

将遥测数据报告给 fuchsia.legacymetrics/MetricsRecorder

256

启用键盘按键的输入事件。 需要 fuchsia.ui.input3/键盘,以便获取事件。

512

启用屏幕虚拟键盘。该实现将管理 键盘,以响应 Web 内容中的输入/焦点事件。 需要 fuchsia.input.virtualkeyboard/ControllerCreator 服务以及 ContextFeatureFlags.KEYBOARD

1024

禁止通过脚本(如 JavaScript)和其他 技术(例如 WebAssembly)。这通常应该会导致脚本被执行 这也会造成性能损失。而依赖于 Google Analytics 的 动态代码生成功能在可行或不可用的情况下,可能以受限形式提供 是否会导致它们无法使用(如 WebAssembly 很可能出现这种情况)。 如果设置了此选项,则不需要 fuchsia.kernel/VmexResource

添加时间:10

InputType strict

类型:uint64

fuchsia.web/frame.fidl 中定义

标识可由 View 处理的输入事件类型。

名称说明
1

键盘事件。

2

任何按钮的鼠标按钮事件。

4

鼠标滚轮事件。

8

鼠标移动事件。

16

用一根手指点按一次。

32

双指张合(用于缩放)。

64

拖动手指(用于滚动)。

9223372036854775808

匹配所有输入类型。

类型:uint64

fuchsia.web/frame.fidl 中定义

客户端可以在连接 NavigationEventListener 时设置,以指示对 可选功能

名称说明

类型:uint32

fuchsia.web/navigation.fidl 中定义

标识导航阶段。

名称说明

常量

名称类型说明
MAX_HEADERS_COUNT 4096 int32
MAX_HOST_LENGTH 255 int32
MAX_RULE_COUNT 4096 int32
MAX_SCHEME_AND_HOST_LENGTH 513 int32
MAX_URL_LENGTH 65536 int32
MAX_URL_SCHEME_NAME_LENGTH 255 int32

ALIASES

名称说明
CookieName string[fidl/MAX]
网址 string[MAX_URL_LENGTH]
UrlHostName string[MAX_HOST_LENGTH]
UrlSchemeAndHostName string[MAX_SCHEME_AND_HOST_LENGTH]
UrlSchemeName string[MAX_URL_SCHEME_NAME_LENGTH]