Fuchsia.web

新增:7

通訊協定

內容

fuchsia.web/context.fidl 中定義

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

CreateFrame

在這個情境下建立新的頁框。刪除情境會觸發 所有相關聯的頁框刪除。影格可轉移至其他影格 但無法跨多個元件共用

  • 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_OPENEDremote_debugging_port未在 CreateContextParams 或遠端偵錯服務無法啟動。

要求

<空白>

回應

名稱類型
payload Context_GetRemoteDebuggingPort_Result

ContextProvider

fuchsia.web/context.fidl 中定義

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

建立

建立新的瀏覽器 Context,其狀態完全獨立且彼此隔離 背景資訊(Contexts)。

  • params:用於建立「Context」的設定。
  • context:接收繫結 Context 的介面要求 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務

要求

名稱類型
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 的所有 Cookie (名為 name) 的 Cookie 是否有異動。

如果未設定 urlname,系統會觀測所有 Cookie。如果只設定 url 系統會觀察該網址的所有 Cookie如果同時設定兩者,表示只有同時符合兩者的 Cookie ] 欄位

changes 會對一連串 Cookie 變更進行疊代。新增或更新的項目會以 完整的 Cookie 刪除,而刪除則是以 Cookie 表示,未設定 value

要求

名稱類型
url Url
name CookieName
changes server_end<CookiesIterator>

CookiesIterator

fuchsia.web/cookie.fidl 中定義的

用於對一組 Cookie 或一連串變更 Cookie 進行疊代器。

GetNext

擷取下一批 Cookie 或變更 Cookie。 RFC6265 不會指定 Cookie 數量的上限 可能會儲存

要求

<空白>

回應

名稱類型
changed_cookies vector<Cookie>

偵錯

fuchsia.web/debug.fidl 中定義的

可在 Contexts 上啟用開發人員工具服務的偵錯服務。

EnableDevTools

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

由於開發人員工具偵錯是以 TCP 做為傳輸方式公開,因此 使用網路功能存取權建立的背景資訊會回報 以偵錯

要求

名稱類型
listener DevToolsListener

回應

<空白>

DevToolsListener

fuchsia.web/debug.fidl 中定義的

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

OnContextDevToolsAvailable

在新情境提供開發人員工具服務時呼叫。

  • listener:新 Context 的開發人員工具事件將在這個管道中執行 第一組。刪除 Context 時,這個管道會中斷連線。

要求

名稱類型
listener server_end<DevToolsPerContextListener>

DevToolsPerContextListener

fuchsia.web/debug.fidl 中定義的

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

OnHttpPortOpen

開發人員工具服務開始在 port 接受 TCP 連線時呼叫。port會 直到刪除「情境」為止。

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

要求

名稱類型
port uint16

頁框

定義於 fuchsia.web/frame.fidl

AddBeforeLoadJavaScript

頁框網址的每次載入網頁,執行 UTF-8 編碼的 scriptorigins 中反映出來源。指令碼會在執行前提早執行 特定部分

指令碼是以用戶端管理 ID id 識別。先前插入的所有指令碼 並會取代使用相同的 id

執行多個繫結的順序與 已新增繫結。如果加入的指令碼會破壞 YAML 檔案的現有指令碼 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 Peitaph 為玩家

以安全的方式拆除,在實作和網頁內容中卸載及清理工作 (例如:unload 事件處理常式),直到指定時間範圍為止。立即 拆解作業只會在實作中執行最低的清理工作,不允許網路 執行事件處理常式。

  • 如果 timeout 為零,則會啟動立即拆除作業。例如,點選這個管道 ZX_OK。這等同於關閉影格管道的呼叫端。

  • 如果 timeout 不是零,則會啟動安全拆除。例如,點選這個管道 如果頁框在指定的 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 的說明 。

已淘汰: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 建立的結構定義。

要求

<空白>

EnableHeadlessRendering

啟用無頭轉譯頁框。

當內容依版面配置和/或動畫事件正常觸發時,就可以使用此選項。 只能用於使用 ContextFeatureFlags.HEADLESS 建立的結構定義。

要求

<空白>

ExecuteJavaScript

如果頁框的網址有來源,這個程式碼就會在頁框中執行 UTF-8 編碼 scriptorigins 中的項目相符。

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

以 JSON 編碼字串的形式傳回 script 執行結果。

請注意,指令碼的執行內容會與文件共用 也就是檔案可能會修改 以任意或無法預測的方式,編寫指令碼

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

  • BUFFER_NOT_UTF8script 未採用 UTF-8 編碼。
  • INVALID_ORIGIN頁框目前的網址與 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

覆寫回報給網頁內容的維度。PixelRatio 回報給 系統會根據 [檢視] 應用程式的像素大小變化,調整網路內容的呈現方式 而不是變更回報給內容的大小傳回空值 web_dips,即可呼叫 移除任何先前的強制內容尺寸

已淘汰:13

要求

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

GetMediaPlayer

傳回透過媒體使用的 fuchsia.media.sessions2/Player 介面 (即 影片/音訊) 影格中的播放情形和/或控製播放。僅限 1 個 fuchsia.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_UTF8message data 屬性中的指令碼不是以 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 擷取和載入媒體 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點

可用於防止在看不見的影格中載入媒體。

當媒體載入作業遭到封鎖時,autoplay 設為 true 的元素不會啟動 播放。在載入作業之前,呼叫 play() 傳回的承諾會保持未解決狀態 以藉由呼叫此方法來解除封鎖。

解除封鎖媒體載入後,元素就會開始擷取、資源、載入和 還是在適當時機遊玩

已開始擷取或載入目前來源媒體資源的所有元素 在系統封鎖媒體之前,會繼續擷取、載入及開始播放 或適當。這包括在媒體載入遭封鎖後對 play() 的呼叫。

要求

名稱類型
blocked bool

SetConsoleLogSink

指定要將 console 記錄輸出發送到何處。根據預設,記錄輸出內容會轉送至 透過 fuchsia.web/Context 服務目錄取得的 fuchsia.logger/LogSink

要求

名稱類型
sink fuchsia.logger/LogSink?

SetContentAreaSettings

進行各種設定,決定網頁內容在頁框中的執行方式。可在任何位置呼叫 ,包括載入網址後。每次呼叫只會變更指定欄位 覆寫任何之前的值

如果 ContentAreaSettings 中的任何值,此方法就會失敗,並顯示 ZX_ERR_NOT_SUPPORTED

要求

名稱類型
settings ContentAreaSettings

SetJavaScriptLogLevel

如果設為 ConsoleLogLevel.NONE 以外的值,可允許網路內容記錄訊息 透過fuchsia.loggerLogSink 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:要使用的觀察器。如果為空值,則取消註冊任何現有的事件監聽器。

要求

名稱類型
listener NavigationEventListener?

SetNavigationEventListener2

設定用於處理網頁導覽事件的事件監聽器。事件監聽器會收到 當下的導航狀態。之後,只要狀態變更,就會收到通知。

  • listener:要使用的觀察器。如果為空值,則取消註冊任何現有的事件監聽器。
  • 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

設定監聽器以處理網頁內容開啟的彈出式視窗。如果沒有監聽器, 則系統會封鎖任何新的彈出式頁框。

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

要求

名稱類型
listener PopupFrameCreationListener?

SetUrlRequestRewriteRules

提供一組 UrlRequestRewriteRule,適用於所有後續的網址要求。

  • rules 會累計並套用順序。
  • rules 只會套用至重新導向鏈結中的第一個網址要求。
  • rules」會先通過驗證,再套用。如果 rules 無效,影格 即將與「ERR_INVALID_ARGS」關閉。
  • 必須等到確認完成,才能再次呼叫 Frame.SetUrlRequestRewriteRules 回呼已處理。發生這種情況時,Frame (頁框) 會關閉, ERR_BAD_STATE

要求

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

回應

<空白>

FrameHost

fuchsia.web/context.fidl 中定義

情境用戶端會使用這項屬性,將影格託管功能委派給指定的同業。

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_UTF8message data 屬性中的指令碼不是以 UTF-8 編碼。
  • NO_DATA_IN_MESSAGEmessage 中缺少 data 屬性。

要求

名稱類型
message WebMessage

回應

名稱類型
payload MessagePort_PostMessage_Result

ReceiveMessage

以非同步方式讀取管道的下一則訊息。用戶端應叫用 回呼。未接收的訊息會經過緩衝處理 ,且受限於該可用資源。

要求

<空白>

回應

名稱類型
message WebMessage

定義於 fuchsia.web/navigation.fidl

提供控制及查詢頁框導覽狀態的方法。

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

<空白>

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

<空白>

指示頁框前往 url

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

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

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

通知頁框重新載入目前的網頁。

名稱類型
type ReloadType

在導覽進行時,指示頁框停止目前的導覽。

<空白>

定義於 fuchsia.web/navigation.fidl

嵌入程式提供的介面,用於接收語音中的導覽事件通知 頁框

Frame.SetNavigationEventListener 以及每次使用者可見時立即呼叫 導覽狀態已變更。在第一個呼叫中,change 包含目前的導覽 狀態 (在第一個導覽要求前方為空白)。在所有後續呼叫中,change 會 完整保留這些值的所有欄位值 通知。這表示部分欄位的值可能會與先前的值相同 比如說,先設定成其他值再傳回。如果欄位是 ,則此值在上次通知後並未變更。

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

名稱類型
change NavigationState

<空白>

定義於 fuchsia.web/navigation.fidl

頁框在其中一個階段處理導覽要求時,會呼叫這個方法 NavigationPolicyProviderParams 中指定的。導航功能已暫停,直到結果產生為止 。傳回的 NavigationDecision 會定義導覽流程。

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

PopupFrameCreationListener

定義於 fuchsia.web/frame.fidl

OnPopupFrameCreated

頁框建立新的彈出式視窗 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 中會使用空白結構體,用於沒有任何引數的動作。

<空白>

ENUMS

allowInputState 嚴格

類型:int32

定義於 fuchsia.web/frame.fidl

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

名稱說明
1
2

AutoplayPolicy 嚴格

類型: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 嚴格

類型:int32

fuchsia.web/context.fidl 中定義

名稱說明
1

未開啟遠端偵錯服務。

FrameError 嚴格

類型:int32

定義於 fuchsia.web/frame.fidl

代表框架方法的傳回狀態。

名稱說明
1

發生內部錯誤。

2

提供的緩衝區未採用 UTF-8 編碼。

3

Frame 的網址與呼叫端提供的任何來源都不相符。

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 嚴格

類型:uint32

定義於 fuchsia.web/navigation.fidl

說明重新載入的類型。

名稱說明
0

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

1

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

UrlRequestAction 嚴格

類型:int32

fuchsia.web/url_request_rewrite_rules.fidl 中定義的

名稱說明
1

允許系統處理您的要求。

2

封鎖要求。

資料表

ContentAreaSettings

定義於 fuchsia.web/frame.fidl

頁框中網頁內容的設定。頁框製作的彈出式頁框,都會有 完成頁框目前的設定。

Ordinal欄位類型說明
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 像素的整體比率 使用這個方法設定體重計的體重計,以及 Sky 提供的縮放比例 (請參閱 fuchsia.ui.gfx.Metrics).產品在網路上的瀏覽權限 window.devicePixelRatio。省略時,預設值為 1.0。

這項設定不會影響畫面的大小 畫面算繪的解析度。原生 (非網頁) UI 元素,例如預設 捲軸和預設滑鼠遊標,因此不會縮放。使用者 已啟用雙指撥動縮放功能 (請參閱 InputTypes.GESTURE_PINCH)。

Content DirectoryProvider 資源

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 大小上限,但建議使用 至少支援 4,096 個位元組

CookieId

fuchsia.web/cookie.fidl 中定義的

Ordinal欄位類型說明
name CookieName

RFC2616「權杖」以識別該 Cookie。

domain string[255]

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

path string[65536]

網址「path」前置字元。 例如:「/」允許從所有路徑存取

CreateContextParams 資源

fuchsia.web/context.fidl 中定義

指定新情境設定的參數。

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

要由結構定義使用的 Service 目錄。

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

建議具有下列服務,以允許 CPU 排程 設定檔,以便調整其效能,特別是在媒體顯示方面。

必須具有下列服務,才能在「景觀」檢視畫面中顯示網路內容 使用 Frame.CreateViewFrame.CreateViewWithViewRefFrame.CreateView2]:

必須提供下列服務才能收集診斷追蹤資料。

data_directory fuchsia.io/Directory

用來處理包含 Context 永久資料的目錄。留空時 未設定,建立的 Context 將無狀態,並在發生時捨棄其中所有資料 情境刪除。

如果設定了 data_directory,則不得與任何其他情境共用。

user_agent_product string[128]

選填的字串,說明要附加至 User-Agent 字串的嵌入產品。 請參閱 HTTP 使用者代理程式標頭。 也需要指定 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]

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

範例值:{"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,則內容授權 系統不會保留永久儲存空間的功能 (例如永久授權工作階段) 可以使用 情境

請注意,不論 無論是否提供永久儲存空間

cdm_data_quota_bytes uint64

指定 cdm_data_directory 內容的目標大小上限 (以位元組為單位)。如果金額 的保留 CDM 資料超過這個門檻,則 Context 會嘗試清除 要求哪些資料符合指定配額

data_quota_bytes uint64

指定 data_directory 內容的目標大小上限 (以位元組為單位)。 Context 會嘗試將瀏覽狀態 (例如 Cookie、LocalStorage) 限制為 不得超過指定大小

CreateFrameParams 資源

fuchsia.web/context.fidl 中定義

指定新頁框設定的參數。

Ordinal欄位類型說明
enable_remote_debugging bool

設為 true 即可啟用遠端偵錯。Frame 這個頁框會關閉, 如果未設定 remote_debugging_port,則為ERR_INVALID_ARGS CreateContextParams

debug_name string

設定 為影格命名,以幫助在偵錯環境中 (例如系統記錄) 中區別 輸出內容例如,在系統記錄網路內容中的訊息時,可能會加入這個名稱 新增到系統記錄器。這個名稱不會影響使用者或瀏覽網頁的行為。 由 Frame 建立的彈出式視窗頁框會使用父項頁框的名稱。

explicit_sites_filter_error_page fuchsia.mem/Data

啟用自動封鎖瀏覽煽情露骨內容網站,並指定錯誤頁面 內容。 適用於「頁框」中所有頁框的導覽動作。 取消主要文件的導覽後,Frame 的 NavigationState.PageTypeERROR。 如果設定為空的緩衝區,系統會顯示預設的錯誤訊息。 如果已設定且不支援此篩選功能,Frame 會與 ZX_ERR_NOT_SUPPORTED

CreateView2Args 資源

定義於 fuchsia.web/frame.fidl

Frame.CreateView2() 的 Args,請參閱上文。

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

非選用項目。系統提供這個權杖,是為了將客戶的 Flatland 資料檢視附加至父項的 檢視區域

網站小圖示資源

定義於 fuchsia.web/navigation.fidl

用於代表網頁的網站小圖示。空白資料表 (所有欄位都未設定) 可用來表示 確認該網頁沒有網站小圖示

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

編碼為 RGBA 點陣圖的圖片內容,並帶有預先乘法的 Alpha 管道。資料 高度已密集,因此步長永遠為 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 的用量為 COMMUNICATIONMEDIA (適用於其他所有串流)。

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

內含影格導覽狀態的相關資訊。

Ordinal欄位類型說明

PermissionDescriptor

定義於 fuchsia.web/frame.fidl

說明網路權限。我們日後可能會利用特定類型的欄位加以擴充。

Ordinal欄位類型說明
type PermissionType

PopupFrameCreationInfo 資源

定義於 fuchsia.web/frame.fidl

指定新建立彈出式視窗的其他資訊。

Ordinal欄位類型說明
initial_url Url

彈出式頁框最初瀏覽的網址。

initiated_by_user bool

設定是否為了回應使用者的 UI 互動而建立彈出式視窗 (例如 連結)。

RequestedNavigation

定義於 fuchsia.web/navigation.fidl

Ordinal欄位類型說明
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。如果原始網址要求中已有標頭, 但該值區將遭到覆寫

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

  • 必須設定「url_ends_with」和「new_url」。
  • url_ends_with」必須是有效值 「path-relative-URL」字串
  • 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

  • 必須設定「pattern」和「substitution」。
  • 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 嚴格

fuchsia.web/context.fidl 中定義

OrdinalVariant類型說明
response Context_GetRemoteDebuggingPort_Response
err ContextError

Frame_AddBeforeLoadJavaScript_Result 嚴格

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
response Frame_AddBeforeLoadJavaScript_Response
err FrameError

Frame_ExecuteJavaScriptNoResult_Result 的嚴格

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
response Frame_ExecuteJavaScriptNoResult_Response
err FrameError

Frame_ExecuteJavaScript_Result 嚴格 資源

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
response Frame_ExecuteJavaScript_Response
err FrameError

Frame_PostMessage_Result 嚴格

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
response Frame_PostMessage_Response
err FrameError

可轉移的彈性 資源

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
message_port MessagePort

MessagePort_PostMessage_Result 嚴格

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
response MessagePort_PostMessage_Response
err FrameError

定義於 fuchsia.web/navigation.fidl

OrdinalVariant類型說明

定義於 fuchsia.web/navigation.fidl

應回應導覽要求而應採取的導覽動作。退貨來源 NavigationPolicyProvider.EvaluateRequestedNavigation

OrdinalVariant類型說明

可轉移的彈性 資源

定義於 fuchsia.web/frame.fidl

OrdinalVariant類型說明
message_port server_end<MessagePort>

UrlRequestRewrite 彈性

fuchsia.web/url_request_rewrite_rules.fidl 中定義的

OrdinalVariant類型說明
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 服務。cdm_data_directory 必須是 在 CreateContextParams 中指定的。

64

允許嵌入器在不使用圖形輸出或風景的情況下轉譯網路內容。 與 ContextFeatureFlags.VULKAN 不相容。

128

將遙測資料回報給 fuchsia.legacymetrics/MetricsRecorder

256

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

512

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

1024

禁止透過指令碼 (例如 JavaScript) 和其他系統產生機器碼 (例如 WebAssembly)。這通常會導致指令碼執行 並造成效能損失其他仰賴 AI 技術的技術 即便情況允許或無法使用,也能以限定形式提供動態程式碼產生功能 則會造成無法使用 (如同 WebAssembly 的情況)。 如果已設定此選項,則不需要 fuchsia.kernel/VmexResource

新增:10

InputTypes strict

類型:uint64

定義於 fuchsia.web/frame.fidl

識別可由檢視畫面處理的輸入事件類型。

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