From ccf464b85ed487841ab118b9654e9126136e1c5b Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Tue, 29 Oct 2024 20:07:10 +0100 Subject: [PATCH] rename --- index.bs | 59 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/index.bs b/index.bs index fa963cb3..e5112ced 100644 --- a/index.bs +++ b/index.bs @@ -7797,11 +7797,12 @@ before any author-defined script have run. TODO: Extend this to scripts in other kinds of realms. A [=BiDi session=] has a preload script map which is a [=/map=] in -which the keys are [[!RFC9562|UUID]]s, and the values are [=structs=] with an item named function declaration, which is a string, -arguments, contexts, which is a list or null, -an item named sandbox, which is a string or null, -and an item named applyToOpeningContexts, which is a boolean. +which the keys are [[!RFC9562|UUID]]s, and the values are [=structs=] with +an [=struct/item=] named function declaration, which is a string, +an [=struct/item=] named arguments, which is a list, +an [=struct/item=] named contexts, which is a list or null, +an [=struct/item=] named sandbox, which is a string or null, +and an [=struct/item=] named user contexts, which is a [=/set=], initially empty. Note: If executing a [=preload script=] fails, either due to a syntax error, or a runtime exception, an [[ECMAScript]] exception is reported in the realm in @@ -7815,26 +7816,24 @@ To run WebDriver BiDi preload scripts given |environment setti 1. Let |navigable| be |document|'s [=/navigable=]. +1. Let |user context| be |navigable|'s [=associated user context=]. + +1. Let |user context id| be |user context|'s [=user context id=]. + 1. For each |session| in [=active BiDi sessions=]: 1. For each |preload script| in |session|'s [=preload script map=]'s [=values=]: - 1. If |preload script|'s contexts is not null: - - 1. Let |is script run allowed| be false. - - 1. While |navigable| is not null: - - 1. Let |navigable id| be |navigable|’s [=navigable/top-level traversable=]'s id. + 1. If |preload script|'s user contexts [=set/size=] is not zero: - 1. If |preload script|'s contexts [=list/contains=] |navigable id|, - set |is script run allowed| to true and break. + 1. If |preload script|'s user contexts does not [=list/contain=] |user context id|, + [=continue=]. - 1. If |preload script|'s applyToOpeningContexts is true, - set |navigable| to |navigable|'s [=original opener=]. Otherwise, break. + 1. If |preload script|'s contexts is not null: - 1. If |is script run allowed| is false, continue; + 1. If |preload script|'s contexts does not [=list/contain=] |user context id|, + [=continue=]. 1. If |preload script|'s sandbox is not null, let |realm| be [=get or create a sandbox realm=] with |preload script|'s sandbox and @@ -9765,7 +9764,8 @@ script=]. functionDeclaration: text, ? arguments: [*script.ChannelValue], ? contexts: [+browsingContext.BrowsingContext], - ? applyToOpeningContexts: bool .default false, + ? userContexts: [+browser.UserContext], + ? inherit: bool .default false, ? sandbox: text } @@ -9789,6 +9789,15 @@ The [=remote end steps=] given |session| and |command parameters| are: 1. Let |arguments| be the arguments field of |command parameters| if present, or an empty [=/list=] otherwise. +1. Let |user contexts| be [=set/create=] with |command parameters|[userContexts] + if |command parameters| [=map/contains=] [userContexts] and an empty [=/set=] otherwise. + +1. For |user context id| of |user contexts|: + + 1. Set |user context| to [=get user context=] with |user context id|. + + 1. If |user context| is null, return [=error=] with [=error code=] [=no such user context=]. + 1. Let |navigables| be null. 1. If the contexts field of |command parameters| is present: @@ -9806,18 +9815,16 @@ The [=remote end steps=] given |session| and |command parameters| are: 1. Let |sandbox| be the value of the "sandbox" field in |command parameters|, if present, or null otherwise. -1. Let |applyToOpeningContexts| be true if |command parameters|["applyToOpeningContexts"] - is true, and false otherwise. - 1. Let |script| be the string representation of a [[!RFC9562|UUID]]. 1. Let |preload script map| be |session|'s [=preload script map=]. -1. Set |preload script map|[|script|] to a struct with function - declaration |function declaration|, arguments - |arguments|, contexts - |navigables|, sandbox |sandbox|, and - applyToOpeningContexts |applyToOpeningContexts|. +1. Set |preload script map|[|script|] to a struct with + function declaration |function declaration|, + arguments |arguments|, + contexts |navigables|, + sandbox |sandbox|, and + user contexts |user contexts|. 1. Return a new [=/map=] matching the script.AddPreloadScriptResult with the script field set to |script|.