Fuchsia.web

新增日期:7

通訊協定

內容

定義於 fuchsia.web/context.fidl

管理與一組「頁框」相關聯的瀏覽狀態,例如 LocalStorage、Cookie 等。

CreateFrame

在這個 Context 下建立新的影格。刪除「Context」會觸發刪除其所有相關頁框Frame 可以轉移到其他元件,但無法跨多個元件共用。

  • frame:將繫結至已建立的影格的介面要求。

要求

名稱類型
frame server_end<Frame>

CreateFrameWithParams

Context.CreateFrame 類似,包含額外的參數。

  • params:用來建立影格的設定。如果資料表不可裁剪,則此方法會失敗並顯示 ZX_ERR_INVALID_ARGS
  • frame:將繫結至已建立的影格的介面要求。

要求

名稱類型
params CreateFrameParams
frame server_end<Frame>

GetCookieManager

用於觀察這個結構定義下代管網站的 Cookie。

要求

名稱類型
manager server_end<CookieManager>

GetRemoteDebuggingPort

等待一或多個影格有偵錯功能,並傳回開發人員工具通訊埠編號。多次呼叫可能會排入佇列,接收通訊埠號碼。

如果發生錯誤,ContextError 會設為這個值:

  • REMOTE_DEBUGGING_PORT_NOT_OPENED:未在 CreateContextParams 中設定 remote_debugging_port,或無法啟動遠端偵錯服務。

要求

<EMPTY>

回應

名稱類型
payload Context_GetRemoteDebuggingPort_Result

ContextProvider

定義於 fuchsia.web/context.fidl

可讓您建立情境資源的頂層服務介面。

建立

建立新的瀏覽器 Context,其狀態完全獨立,並且與其他 Context(Contexts) 隔離。

  • params:用來建立 Context 的設定。
  • context:接收繫結的 Context 服務的介面要求。

要求

名稱類型
params CreateContextParams
context server_end<Context>

CookieManager

定義於 fuchsia.web/cookie.fidl

提供監控及存取瀏覽器 Cookie 狀態的方法。

GetCookieList

傳回 Cookie 清單,可選擇只傳回符合 url 的項目,並視需要傳回 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 不會指定可儲存 Cookie 的數量上限。

要求

<EMPTY>

回應

名稱類型
changed_cookies vector<Cookie>

偵錯

定義於 fuchsia.web/debug.fidl

這項偵錯服務可讓您在 Contexts 上啟用開發人員工具服務。

EnableDevTools

在每次後續建立 Context 時啟用開發人員工具服務,並將後續的 DevTools 事件傳送至提供的 listener。回呼會指出 WebEngine 的可進行偵錯狀態。系統會將事件傳送至所有以這個方法註冊的 listener

由於開發人員工具偵錯是透過 TCP 做為傳輸傳輸,因此只有具備網路功能存取權的 Context 才會將其回報為可供偵錯。

要求

名稱類型
listener DevToolsListener

回應

<EMPTY>

DevToolsListener

定義於 fuchsia.web/debug.fidl

用於觀察開發人員工具服務可用性事件的介面。

OnContextDevToolsAvailable

當開發人員工具服務針對新的 Context 時呼叫。

  • listener:用來傳送新 Context 開發人員工具事件的管道。背景資訊一經刪除,這個管道就會中斷連線。

要求

名稱類型
listener server_end<DevToolsPerContextListener>

DevToolsPerContextListener

定義於 fuchsia.web/debug.fidl

偵錯元件提供的介面,可觀察開發人員工具服務開啟事件。

OnHttpPortOpen

當開發人員工具服務開始在 port 上接受 TCP 連線時,會呼叫此方法。port 會保持開啟,直到情境刪除為止。

  • port:服務使用的通訊埠。

要求

名稱類型
port uint16

頁框

定義於 fuchsia.web/frame.fidl

AddBeforeLoadJavaScript

針對頁框的網址來源在 origins 中的後續載入網頁,在每次載入網頁時執行 UTF-8 編碼的 script。指令碼會在執行文件的指令碼之前提早執行。

指令碼是由用戶端管理的 ID 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

關閉

透過影格動畫,要求優雅或立即拆解影格內容和完成通知。

安全清除功能可讓實作和網路內容中的卸載工作 (例如unload 事件處理常式),直到指定的時間範圍內為止。立即刪除只會在實作時執行最少的清理工作,不允許網頁內容執行事件處理常式。

  • 如果 timeout 為 0,系統會立即拆除。頻道將使用 ZX_OK 關閉。這相當於關閉頁框管道的呼叫端。

  • 如果 timeout 不是零,系統會啟動優雅拆解。如果影格在指定的 timeout 內關閉,管道就會以 ZX_OK 關閉,反之則設為 ZX_ERR_TIMED_OUT

  • 如未指定 timeout,系統會套用合理的實作專用逾時時間。

後續呼叫 Close() 將會覆寫先前指定的 Close() 逾時。

新增日期:10 位

要求

名稱類型
payload FrameCloseRequest

ConfigureInputTypes

啟用或停用使用者輸入內容的指定 types 處理功能。allow 會指定要啟用或停用指定的 types。所有輸入類型皆預設為啟用。

要求

名稱類型
types InputTypes
allow AllowInputState

CreateView

使用指定的 view_token 建立新的檢視畫面。呼叫端應將權杖的另一端傳送至 fuchsia.ui.gfx/ViewHolderArgs,將新檢視區塊附加至檢視區塊樹狀結構。

如要進一步瞭解使用這個方法時必須一併存在的其他服務,請參閱 CreateContextParams.service_directory 的說明。

已淘汰: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 的說明。

已淘汰:13

要求

名稱類型
view_token fuchsia.ui.views/ViewToken
view_ref_control fuchsia.ui.views/ViewRefControl
view_ref fuchsia.ui.views/ViewRef

DisableHeadlessRendering

停止無頭轉譯頁框。

只能用於以 ContextFeatureFlags.HEADLESS 建立的內容。

要求

<EMPTY>

EnableHeadlessRendering

啟用頁框的無頭轉譯功能。

當內容根據正常觸發的版面配置和/或動畫事件觸發時,系統會使用此策略。只能用於以 ContextFeatureFlags.HEADLESS 建立的內容。

要求

<EMPTY>

ExecuteJavaScript

如果Frame 的網址來源與 origins 中的項目相符,則在頁框中執行 UTF-8 編碼的 script

至少須指定一個 origins 項目。如果在 origins 中指定萬用字元 "*",系統會無條件評估指令碼。

傳回執行 script 的結果,為 JSON 編碼字串。

請注意,指令碼的執行環境與文件相同,這代表文件可能會以任意或無法預測的方式修改指令碼設定的變數、類別或物件。

如果發生錯誤,FrameError 會設為下列其中一個值:

  • BUFFER_NOT_UTF8script 並非採用 UTF-8 編碼。
  • INVALID_ORIGIN「Frame」目前的網址與 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

覆寫回報至網頁內容的維度。報表為網路內容回報的 devicePixelRatio 會隨著檢視畫面的像素大小變動而調整,而不是變更回報至內容的大小。呼叫 null web_dips,即可移除任何先前的強制內容維度。

已淘汰:13

要求

名稱類型
web_dips fuchsia.ui.gfx/vec2?

GetMediaPlayer

傳回 fuchsia.media.sessions2/Player 介面,該介面可透過這個介面觀察影格中的媒體 (例如影片/音訊) 播放,並/或進行控制。每個「影格」一次只能啟用一個 fuchsia.media.sessions2/Player

要求

名稱類型
player server_end<fuchsia.media.sessions2/Player>

GetNavigationController

傳回可導覽至指定網址、重新載入 Frame 的介面。

要求

名稱類型
controller server_end<NavigationController>

GetPrivateMemorySize

傳回影格的主要文件使用的私人 (非共用) 實體記憶體量。傳回的大小可能不會反映出嵌入 iframe 的記憶體用量。

要求

<EMPTY>

回應

名稱類型
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 重設為預設值。

要求

<EMPTY>

SetBlockMediaLoading

設定是否要禁止影格中的所有 HTMLMediaElements 擷取及載入媒體資源。

舉例來說,可用來防止在未顯示的畫面中載入媒體。

媒體載入遭到封鎖時,autoplay 設為 true 的元素不會開始播放。呼叫 play() 傳回的承諾會保持未解決,直到該方法的呼叫以免載入作業解除為止。

解除封鎖媒體載入後,元素就會開始擷取、資源、載入及正常播放。

凡是在媒體載入遭到封鎖前已開始擷取或載入目前來源媒體資源的元素,都會視需要繼續擷取、載入及開始播放。這也包括在媒體載入功能遭到封鎖後對 play() 的呼叫。

要求

名稱類型
blocked bool

SetConsoleLogSink

指定要將 console 記錄輸出傳送至哪個位置。根據預設,記錄檔輸出內容會轉送至透過 fuchsia.web/Context 的服務目錄取得的 fuchsia.logger/LogSink

要求

名稱類型
sink fuchsia.logger/LogSink?

SetContentAreaSettings

設定網頁內容在頁框中執行的方式。可能會在任何時間呼叫,包括網址載入後。每次呼叫都會變更指定欄位,覆寫任何先前的值。

如果 Frame 不支援 ContentAreaSettings 中的任何值,此方法將會失敗並傳回 ZX_ERR_NOT_SUPPORTED

要求

名稱類型
settings ContentAreaSettings

SetJavaScriptLogLevel

如果設為 ConsoleLogLevel.NONE 以外的值,則網頁內容可透過 console 物件 (例如使用 debug()log()info()info()warn()error()) 將訊息記錄到為此 Frame 設定的 fuchsia.logger/LogSinkwarn()error()。1} 預設值為 1.ConsoleLogLevel.NONE

由於系統記錄可能會保留,建議您在無痕模式和其他私密瀏覽模式下使用 ConsoleLogLevel.NONE

記錄行會寫入為此 fuchsia.web/Frame 設定的 fuchsia.logger/LogsSink,並將嚴重性對應如下:

要求

名稱類型
level ConsoleLogLevel

SetMediaSettings

為頁框設定 fuchsia.media/FrameMediaSettings。指定的參數會套用至處理完這則訊息後開始的音訊串流。必須在將影格導覽至內容之前呼叫,以確保設定套用至所有媒體串流。由於要求管道,請在呼叫 Frame.GetNavigationController()NavigationController.LoadUrl() 之前進行此操作。

要求

名稱類型
settings FrameMediaSettings

SetNavigationEventListener

設定處理頁面導覽事件的事件監聽器。

  • listener:要使用的觀察器。取消註冊任何現有的事件監聽器 (如果為空值)。

要求

名稱類型
listener NavigationEventListener?

SetNavigationEventListener2

設定處理頁面導覽事件的事件監聽器。事件監聽器會立即接收目前的導航狀態。之後,只要狀態變更,系統就會通知。

  • listener:要使用的觀察器。取消註冊任何現有的事件監聽器 (如果為空值)。
  • flags:應為事件監聽器啟用的選用功能旗標。

要求

名稱類型
listener NavigationEventListener?
flags NavigationEventListenerFlags

SetNavigationPolicyProvider

設定「Frame」的導覽政策提供者。設定完成後,Frame 會在處理導航要求時傳送 NavigationPolicyProvider.EvaluateRequestedNavigationparams 會定義訊息傳送的時機。傳送 EvaluateRequestedNavigation 訊息後,Frame 會封鎖對應的導覽,直到收到回應為止。

應在 GetNavigationController 之前呼叫,以確保其套用至所有導覽 (包括第一個 NavigationController.LoadURL 要求)。

要求

名稱類型
params NavigationPolicyProviderParams
provider NavigationPolicyProvider

SetPermissionState

設定指定 permissionweb_origin 的權限狀態。根據預設,系統會拒絕所有權限。

要求

名稱類型
permission PermissionDescriptor
web_origin Url
state PermissionState

SetPopupFrameCreationListener

設定事件監聽器,處理由網頁內容開啟的彈出式視窗。如未偵測到監聽器,就無法封鎖任何新的彈出式頁框。

  • listener:要使用的事件監聽器。取消註冊任何現有的事件監聽器 (如果為空值)。

要求

名稱類型
listener PopupFrameCreationListener?

SetUrlRequestRewriteRules

提供要套用至每個後續網址要求的一組 UrlRequestRewriteRule

  • rules 會依序累積並套用。
  • rules 只會套用至重新導向鏈結中的第一個網址要求。
  • rules 會在套用前完成驗證。如果 rules 無效,Frame 會以 ERR_INVALID_ARGS 關閉。
  • 必須等到確認回呼處理完畢後,才能再次呼叫 Frame.SetUrlRequestRewriteRules。如果發生這種情況,Frame 會以 ERR_BAD_STATE 關閉。

要求

名稱類型
rules vector<UrlRequestRewriteRule>[4096]

回應

<EMPTY>

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

以非同步方式讀取來自管道的下一則訊息。用戶端應在準備好處理其他訊息時叫用回呼。未接收的訊息會在傳送者端進行緩衝處理,並受到可用資源的限制。

要求

<EMPTY>

回應

名稱類型
message WebMessage

定義於 fuchsia.web/navigation.fidl

提供控制和查詢影格導覽狀態的方法。

指示頁框前往記錄中的上一頁 (如果有的話)。

<EMPTY>

指示頁框前往記錄中的下一頁 (如果有的話)。

<EMPTY>

指示影格前往 url

  • url:要前往的地址。
  • params:會影響資源載入方式的其他參數,例如 Cookie、HTTP 標頭等

如果發生錯誤,系統會將 NavigationControllerError 設為下列其中一個值:

  • INVALID_URLurl 參數無效。
  • INVALID_HEADERLoadUrlParams.headers 中至少有一個標頭無效。
名稱類型
url Url
params LoadUrlParams
名稱類型
payload NavigationController_LoadUrl_Result

指示頁框重新載入目前網頁。

名稱類型
type ReloadType

如果導航進行中,Frame 就會停止目前的導航。

<EMPTY>

定義於 fuchsia.web/navigation.fidl

嵌入工具提供的介面,用於接收影格中的導覽事件通知。

Frame.SetNavigationEventListener 之後以及每次使用者可見的導覽狀態變更時立即呼叫。在第一次呼叫中,change 包含目前的導覽狀態 (在第一個導覽要求之前空白)。在每個呼叫中,change 都會針對自前通知後任何時間變更的欄位進行設定。這意味著某些欄位的值可能會與之前回報的值相同,例如,如果這些欄位變更為其他值,然後再返回。如未設定欄位,則自上次通知以來,此欄位的值隨時未變更。

實作器必須呼叫確認回呼,才能接收新的導覽事件。

名稱類型
change NavigationState

<EMPTY>

定義於 fuchsia.web/navigation.fidl

Frame 處理到 NavigationPolicyProviderParams 中指定的其中一個階段的導覽要求時呼叫。在收到結果之前,系統會暫停導覽。傳回的 NavigationDecision 會定義導覽動作的方式。

名稱類型
requested_navigation RequestedNavigation
名稱類型
decision NavigationDecision

PopupFrameCreationListener

定義於 fuchsia.web/frame.fidl

OnPopupFrameCreated

頁框建立新的彈出式視窗 frame 時,會呼叫此方法。彈出式視窗頁框及其建立方式的相關資訊可透過 info 提供。系統會在叫用確認回呼後傳送其他彈出式頁框。

要求

名稱類型
frame Frame
info PopupFrameCreationInfo

回應

<EMPTY>

結構化

Context_GetRemoteDebuggingPort_Response

定義於 fuchsia.web/context.fidl

欄位類型說明預設
port uint16 無預設

Frame_AddBeforeLoadJavaScript_Response

定義於 fuchsia.web/frame.fidl

<EMPTY>

Frame_ExecuteJavaScriptNoResult_Response

定義於 fuchsia.web/frame.fidl

<EMPTY>

Frame_ExecuteJavaScript_Response 資源

定義於 fuchsia.web/frame.fidl

欄位類型說明預設
result fuchsia.mem/Buffer 無預設

Frame_PostMessage_Response

定義於 fuchsia.web/frame.fidl

<EMPTY>

MessagePort_PostMessage_Response

定義於 fuchsia.web/frame.fidl

<EMPTY>

定義於 fuchsia.web/navigation.fidl

<EMPTY>

NoArgumentsAction

定義於 fuchsia.web/navigation.fidl

用於 NavigationDecision 的動作中的空白結構體。

<EMPTY>

ENUMS

allowInputState 嚴格

類型:int32

定義於 fuchsia.web/frame.fidl

控制 Frame.ConfigureInputTypes() 是否應允許或拒絕處理指定的 InputTypes

名稱說明
1
2

自動播放政策嚴格

類型:int32

定義於 fuchsia.web/context.fidl

指定自動 (非使用者啟動) 播放影片和音訊內容的政策。

名稱說明
1

所有媒體都可以自動播放。

2

允許在文件收到使用者啟用時自動播放。這可能是使用者動作或已設定的 LoadUrlParams.was_user_activated 的結果。

ConsoleLogLevel 嚴格

類型:int32

定義於 fuchsia.web/frame.fidl

名稱說明
100

沒有記錄功能。

-1

輸出來自 console.debug() 以上層級的訊息。

0

輸出來自 console.log()console.info() 及以上層級的訊息。

1

輸出來自 console.warn()console.error() 的訊息。

2

輸出來自 console.error() 的訊息。

ContextError strict

類型:int32

定義於 fuchsia.web/context.fidl

名稱說明
1

遠端偵錯服務未開啟。

FrameError strict

類型: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 方法的傳回狀態。

名稱說明

PageType 嚴格

類型: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 的裝置 ID。

4

具備使用永久儲存空間的權限。

ReloadType strict

類型:uint32

定義於 fuchsia.web/navigation.fidl

設定重新載入的類型。

名稱說明
0

重新載入目前項目,略過主要資源的快取。

1

重新載入目前的項目,完全略過快取。

UrlRequestAction 嚴格

類型:int32

定義於 fuchsia.web/url_request_rewrite_rules.fidl

名稱說明
1

請允許系統處理要求。

2

封鎖要求。

資料表

ContentAreaSettings

定義於 fuchsia.web/frame.fidl

頁框中的網頁內容設定。由頁框建立的彈出式頁框,其設定會初始化為頁框目前的設定。

序數欄位類型說明
hide_scrollbars bool

指定是否要隱藏頁框的捲軸。如果省略,則預設值為 false。

autoplay_policy AutoplayPolicy

指定頁框的自動播放政策。如果省略,預設政策為 REQUIRE_USER_ACTIVATION

theme fuchsia.settings/ThemeType

指定透過 prefers-color-scheme 媒體查詢回報給網路內容的色彩主題。有效輸入內容為 LIGHTDARKDEFAULT。如果省略,則預設為 LIGHT 主題。 指定 DEFAULT 表示使用系統設定,並要求 Context 具有 fuchsia.settings.Display 服務。如果無法使用服務,Frame 將與 ZX_ERR_INVALID_ARGS 中斷連線。

page_scale float32

設定要套用至這個頁框轉譯的網頁內容的縮放比例係數 (縮放等級)。如果值超過 1.0,所有網路內容 (包括文字和圖片) 都會放大,值低於 1.0 時則會縮小。換句話說,系統會使用高於 1.0 的值來放大地圖,而低於 1.0 的值會縮小。實體像素和 CSS 像素之間的整體比率,是使用這個方法和「風景」提供的縮放比例產品 (請參閱 fuchsia.ui.gfx.Metrics)。該產品會以 window.devicePixelRatio 的形式顯示在網路上。如果省略,預設值為 1.0。

這項設定不會影響螢幕上的檢視畫面大小和算繪的解析度。系統不會縮放原生 (非網頁) UI 元素,例如預設捲動列和預設滑鼠遊標。在啟用雙指撥動縮放的情況下,使用者可能會進一步縮放頁面 (請參閱 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"
}

序數欄位類型說明
name string[255]

提供者的名稱。不得為空白,只能由英數字元、半形句號和破折號組成。

directory fuchsia.io/Directory

包含這個供應商所提供檔案的目錄。

定義於 fuchsia.web/cookie.fidl

序數欄位類型說明
id CookieId

含有 Cookie 識別欄位的表格。

value string

Cookie 值。 RFC6265 不會指定 Cookie 大小的上限,但建議至少支援 4096 個位元組。

CookieId

定義於 fuchsia.web/cookie.fidl

序數欄位類型說明
name CookieName

由網站選擇用於識別 Cookie 的 RFC2616「權杖」。

domain string[255]

適用這個 Cookie 範圍的 RFC1034「子網域」。例如「example.com」允許從所有 *.example.com 子網域存取。

path string[65536]

這個 Cookie 限定的網址「路徑」前置字串。例如,「/」允許從所有路徑存取。

CreateContextParams 資源

定義於 fuchsia.web/context.fidl

指定新 Context 設定的參數。

序數欄位類型說明
service_directory fuchsia.io/Directory

內容要使用的服務目錄。

下列服務必須存在於服務目錄中:

建議您採用下列服務,以便將 CPU 排程設定檔套用至執行緒,以微調效能,特別是用於媒體算繪。

必須具備下列服務,才能使用 Frame.CreateViewFrame.CreateViewWithViewRefFrame.CreateView2] 在景觀檢視畫面中轉譯網頁內容:

必須具備下列服務,才能收集診斷追蹤資料。

data_directory fuchsia.io/Directory

處理包含 Context 永久資料的目錄。如未設定,則已建立的 Context 會是無狀態,並且會在結構定義刪除時捨棄其所有資料。

設定後,data_directory 不得與任何其他背景資訊共用。

user_agent_product string[128]

選用字串,用於描述要附加到 User-Agent 字串的嵌入產品。請參閱 HTTP User-Agent 標頭規格。必須一併指定 user_agent_version

user_agent_version string[128]

選擇性版本,此嵌入產品要附加到 User-Agent 字串。

必須一併指定 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]

將指定不安全的來源視為安全來源。如需安全內容的定義,請參閱 Secure Contexts來源可信度

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

cors_exempt_headers vector<vector<uint8>>

指定一組不應強制執行跨源資源共享 (CORS) 檢查的標頭名稱。

cdm_data_directory fuchsia.io/Directory

指定要用來儲存永久內容授權相關資料 (例如佈建資料、永久工作階段資料) 的儲存空間。根據預設,這些資料會置於 data_directory 下 (如有指定)。

如未指定 data_directorycdm_data_directoryContext 將無法使用需要永久儲存空間 (例如永久授權工作階段) 的內容授權功能。

請注意,無論是否提供永久儲存空間,並非所有內容授權系統都支援永久工作階段。

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 設定的參數。

序數欄位類型說明
enable_remote_debugging bool

如要啟用遠端偵錯功能,請設為 true。如未在 CreateContextParams 中設定 remote_debugging_portFrame 就會使用 ERR_INVALID_ARGS 關閉。

debug_name string

設定為影格命名,以便在偵錯結構定義 (例如系統記錄輸出內容) 中加以區別。舉例來說,當網頁內容登入系統記錄器時,系統可能會將該名稱加入來自網頁內容的訊息。名稱不會影響使用者或網頁可見的行為。由頁框建立的彈出式視窗名稱取自上層頁框的名稱。

explicit_sites_filter_error_page fuchsia.mem/Data

啟用自動封鎖導向煽情露骨內容網站的功能,並指定篩選器取消瀏覽時,要在 HTML 中載入錯誤網頁內容。適用於影格中所有頁框的導覽。取消主要文件的導覽時,Frame 的 NavigationState.PageTypeERROR。 如果設為空白的緩衝區,系統會顯示預設的錯誤訊息。如果已設定且不支援此類篩選功能,Frame 將與 ZX_ERR_NOT_SUPPORTED 中斷連線。

CreateView2Args 資源

定義於 fuchsia.web/frame.fidl

Frame.CreateView2() 的 Args,請參閱上方說明。

序數欄位類型說明
view_creation_token fuchsia.ui.views/ViewCreationToken

非選用項目。提供這個權杖,可將用戶端的 Flatland 檢視畫面附加至父項的可視區域。

網站小圖示資源

定義於 fuchsia.web/navigation.fidl

用於代表頁面的網站小圖示。空白資料表 (所有欄位都未設定) 是用於表示頁面沒有網站小圖示。

序數欄位類型說明
data fuchsia.mem/Buffer

編碼為 RGBA 點陣圖的圖片內容,並採用預先乘法 Alpha 管道。資料已經過密集配置,因此步距一律為 4 * width,總大小為 4 * width * height

width uint32

圖片的寬度。

height uint32

圖片的高度。

FrameCloseRequest

定義於 fuchsia.web/frame.fidl

序數欄位類型說明
timeout zx/Duration

選用。

FrameMediaSettings

定義於 fuchsia.web/frame.fidl

序數欄位類型說明
renderer_usage fuchsia.media/AudioRenderUsage

系統會為 Frame 所建立的每個 fuchsia.media/AudioRenderer 執行個體設定 fuchsia.media/AudioRenderUsage。如未設定,WebRTC 串流的使用量為 COMMUNICATION,其他串流則使用 MEDIA

audio_consumer_session_id uint64

設定後,即可使用 fuchsia.media/AudioConsumer 播放音訊。在這種情況下,系統會將指定的值傳遞至 fuchsia.media/SessionAudioConsumerFactory

LoadUrlParams 資源

定義於 fuchsia.web/navigation.fidl

用於修改 NavigationController.LoadUrl 行為的其他參數。

序數欄位類型說明
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

序數欄位類型說明

定義於 fuchsia.web/navigation.fidl

包含Frame 的導覽狀態相關資訊。

序數欄位類型說明

PermissionDescriptor

定義於 fuchsia.web/frame.fidl

說明網路權限。日後,也可以擴充類型特定欄位。

序數欄位類型說明
type PermissionType

PopupFrameCreationInfo 資源

定義於 fuchsia.web/frame.fidl

指定新建彈出式頁框的其他相關資訊。

序數欄位類型說明
initial_url Url

彈出式視窗最初瀏覽的網址。

initiated_by_user bool

是否建立彈出式視窗頁框,以回應使用者的 UI 互動 (例如點選連結)。

RequestedNavigation

定義於 fuchsia.web/navigation.fidl

序數欄位類型說明
id NavigationId

導覽的專屬 ID。

phase NavigationPhase

目前的導航階段。只會設定一個位元。

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。如果原始網址要求中已有標頭,系統會覆寫該標頭。

序數欄位類型說明
headers vector<fuchsia.net.http/Header>[4096]

UrlRequestRewriteAppendToQuery

定義於 fuchsia.web/url_request_rewrite_rules.fidl

query 附加至網址查詢。如果網址要求已有查詢,則 query 會附加至該要求,前面加上 &。否則網址的查詢會設為 query

序數欄位類型說明
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 節規定。

序數欄位類型說明
query_pattern Url
header_name fuchsia.net.http/HeaderName
新增時間:12 張

UrlRequestRewriteReplaceUrl

定義於 fuchsia.web/url_request_rewrite_rules.fidl

如果網址要求中的網址結尾是 url_ends_with,請將網址改寫為 new_url

序數欄位類型說明
url_ends_with Url
new_url Url

UrlRequestRewriteRule

定義於 fuchsia.web/url_request_rewrite_rules.fidl

序數欄位類型說明
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 必須是有效的網址查詢字串

序數欄位類型說明
pattern Url
substitution Url

WebMessage 資源

定義於 fuchsia.web/frame.fidl

序數欄位類型說明
data fuchsia.mem/Buffer

訊息酬載,編碼為 UTF-8 字串。此為必要屬性。

incoming_transfer vector<IncomingTransferable>

從 FIDL 用戶端轉移到 MessagePort 的物件清單 (選用)。

outgoing_transfer vector<OutgoingTransferable>

MessagePort 轉移到 FIDL 用戶端的物件清單 (選用)。

聯合國

Context_GetRemoteDebuggingPort_Result 嚴格

定義於 fuchsia.web/context.fidl

序數Variant類型說明
response Context_GetRemoteDebuggingPort_Response
err ContextError

Frame_AddBeforeLoadJavaScript_Result 嚴格

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
response Frame_AddBeforeLoadJavaScript_Response
err FrameError

Frame_ExecuteJavaScriptNoResult_Result 嚴格

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
response Frame_ExecuteJavaScriptNoResult_Response
err FrameError

Frame_ExecuteJavaScript_Result 嚴格 資源

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
response Frame_ExecuteJavaScript_Response
err FrameError

Frame_PostMessage_Result 嚴格

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
response Frame_PostMessage_Response
err FrameError

可轉移的彈性 資源

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
message_port MessagePort

MessagePort_PostMessage_Result 嚴格

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
response MessagePort_PostMessage_Response
err FrameError

定義於 fuchsia.web/navigation.fidl

序數Variant類型說明

定義於 fuchsia.web/navigation.fidl

應用於回應導航要求的導覽動作。從 NavigationPolicyProvider.EvaluateRequestedNavigation 傳回。

序數Variant類型說明

傳出可轉移的彈性 資源

定義於 fuchsia.web/frame.fidl

序數Variant類型說明
message_port server_end<MessagePort>

UrlRequestRewrite 彈性

定義於 fuchsia.web/url_request_rewrite_rules.fidl

序數Variant類型說明
add_headers UrlRequestRewriteAddHeaders

在網址要求中加入一組標頭。

remove_header UrlRequestRewriteRemoveHeader

根據網址查詢中出現模式的情況,移除標頭。

substitute_query_pattern UrlRequestRewriteSubstituteQueryPattern

在網址查詢中替換一個模式。

replace_url UrlRequestRewriteReplaceUrl

如果原始網址結尾為模式,則會替換網址。

append_to_query UrlRequestRewriteAppendToQuery

附加至網址查詢。

帳單

ContextFeatureFlags 嚴格

類型:uint64

定義於 fuchsia.web/context.fidl

允許擴增背景資訊行為的功能旗標。部分功能需要在結構定義初始化期間提供的服務目錄中額外執行。請參閱 CreateContextParams.service_directory

名稱說明
1

啟用網路存取權。需要以下服務:

2

啟用音訊輸入和輸出功能。需要以下服務:

4

啟用網頁內容的 GPU 加速轉譯功能。需要以下服務:

8

啟用硬體視訊解碼功能。您必須一併啟用 ContextFeatureFlags.VULKAN。需要以下服務:

16

停用無法在硬體中解碼的視訊轉碼器。軟體解碼器只能使用硬體解碼器的備用方案,例如可用資源不足時。需要 ContextFeatureFlags.HARDWARE_VIDEO_DECODER

32

為 EME API 啟用 Widevine CDM 模組。 您必須一併啟用 ContextFeatureFlags.VULKAN。必須搭配 fuchsia.media.drm/Widevine 服務。要求必須在 CreateContextParams 中指定 cdm_data_directory

64

允許嵌入程式在不產生圖形輸出或「圖像」的情況下轉譯網頁內容。與 ContextFeatureFlags.VULKAN 不相容。

128

fuchsia.legacymetrics/MetricsRecorder 回報遙測資料。

256

啟用鍵盤按鍵的輸入事件。必須使用 fuchsia.ui.input3/Keyboard,才能取得事件。

512

啟用螢幕虛擬鍵盤。實作程序會管理鍵盤狀態,以回應網頁內容中的輸入/焦點事件。需要 fuchsia.input.virtualkeyboard/ControllerCreator 服務和 ContextFeatureFlags.KEYBOARD

1024

停用指令碼 (例如 JavaScript) 和其他技術 (例如 WebAssembly) 動態產生機器碼的功能。這通常會導致解譯器執行指令碼,造成效能下降。其他需要產生動態程式碼的技術可能會在有限的情況下提供有限的格式,否則在解讀這將無法使用時 (因為 WebAssembly 可能的情況),則無法使用 fuchsia.kernel/VmexResource

新增日期:10 位

InputTypes 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

別名

名稱說明
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]