Skip to content

Commit a867a0e

Browse files
Add an optional topLevelOrigin parameter to the permissions.setPermission command (#468)
* Add embedding origin to set permission command * Change the key generation algorithm to use an origin and top level origin instead of an ESO * Use topLevelOrigin, add descriptor to key generation, and use the ESO origin link * Update index.html Co-authored-by: Chris Fredrickson <[email protected]> --------- Co-authored-by: Chris Fredrickson <[email protected]>
1 parent 4f2ccb0 commit a867a0e

File tree

1 file changed

+47
-17
lines changed

1 file changed

+47
-17
lines changed

index.html

Lines changed: 47 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -630,19 +630,19 @@ <h2>
630630
</dt>
631631
<dd>
632632
<p>
633-
Takes an [=environment settings object=], and returns a new [=permission key=]. If
634-
unspecified, this defaults to the [=default permission key generation algorithm=]. A
635-
feature that specifies a custom [=powerful feature/permission key generation
636-
algorithm=] MUST also specify a [=powerful feature/permission key comparison
637-
algorithm=].
633+
Takes an [=origin=] |origin| and an [=origin=] |top level origin|, and returns a new
634+
[=permission key=]. If unspecified, this defaults to the [=default permission key
635+
generation algorithm=]. A feature that specifies a custom [=powerful feature/permission
636+
key generation algorithm=] MUST also specify a [=powerful feature/permission key
637+
comparison algorithm=].
638638
</p>
639639
<div class="algorithm">
640640
<p>
641641
The <dfn class="export">default permission key generation algorithm</dfn>, given an
642-
[=environment settings object=] |settings|, runs the following steps:
642+
[=origin=] |origin| and an [=origin=] |top level origin|, runs the following steps:
643643
</p>
644644
<ol>
645-
<li>Return |settings|'s [=environment/top-level origin=].
645+
<li>Return |top level origin|.
646646
</li>
647647
</ol>
648648
</div>
@@ -805,7 +805,9 @@ <h3 id="reading-current-states">
805805
</ol>
806806
</li>
807807
<li>Let |key| be the result of [=powerful feature/permission key generation
808-
algorithm|generating a permission key=] for |descriptor| with |settings|.
808+
algorithm|generating a permission key=] for |descriptor| with |settings|'s
809+
[=environment settings object/origin=] and |settings|'s
810+
[=environment/top-level origin=].
809811
</li>
810812
<li>Let |entry| be the result of [=get a permission store entry|getting a permission
811813
store entry=] with |descriptor| and |key|.
@@ -855,8 +857,12 @@ <h3 id="requesting-more-permission">
855857
this framework.
856858
</p>
857859
</li>
860+
<li>Let |settings| be the [=current settings object=].
861+
</li>
858862
<li>Let |key| be the result of [=powerful feature/permission key generation
859-
algorithm|generating a permission key=] with the [=current settings object=].
863+
algorithm|generating a permission key=] for |descriptor| with |settings|'s
864+
[=environment settings object/origin=] and |settings|'s [=environment/top-level
865+
origin=].
860866
</li>
861867
<li>[=Queue a task=] on the [=current settings object=]'s [=environment settings
862868
object/responsible event loop=] to [=set a permission store entry=] with |descriptor|,
@@ -1235,19 +1241,35 @@ <h2 id="automation">
12351241
<p>
12361242
To <dfn data-for="WebDriver">set a permission</dfn> given a {{PermissionDescriptor}}
12371243
|descriptor:PermissionDescriptor|, a {{PermissionState}} |state:PermissionState|, an
1238-
optional |origin|, and an optional |user agent|:
1244+
optional [=permission key=] |key|, and an optional |user agent|:
12391245
</p>
12401246
<ol>
1241-
<li>Let |target origin| be [=current settings object=]'s [=environment settings
1242-
object/origin=] if |origin| is null, or |origin| otherwise.
1247+
<li>Let |target key| be the result of [=powerful feature/permission key generation
1248+
algorithm|generating a permission key=] for |descriptor| with [=current settings
1249+
object=]'s [=environment settings object/origin=] and [=current settings object=]'s
1250+
[=environment/top-level origin=] if |key| is null, or |key| otherwise.
1251+
</li>
1252+
<li>Let |settings list| be a <a>list</a> containing all [=environment settings objects=]
1253+
which belong to the |user agent| if provided, or all user agents otherwise.
1254+
</li>
1255+
<li>Let |targets| be an empty <a>list</a>.
1256+
</li>
1257+
<li>[=list/For each=] [=environment settings object=] |settings| in |settings list|:
1258+
<ol>
1259+
<li>Let |settings key| be be the result of [=powerful feature/permission key
1260+
generation algorithm|generating a permission key=] for |descriptor| with |settings|'s
1261+
[=environment settings object/origin=] and |settings|'s [=environment/top-level origin=].
1262+
</li>
1263+
<li>Let |matches| be the result of running the [=powerful feature/permission key
1264+
comparison algorithm=] for |descriptor|, given |settings key| and |key|.
1265+
</li>
1266+
<li>If |matches|, then [=list/append=] |settings| to |targets|.
1267+
</ol>
12431268
</li>
1244-
<li>Let |targets| be a <a>list</a> containing all [=environment settings objects=] whose
1245-
[=environment settings object/origin=] is [=same origin=] with |target origin|, and which
1246-
belong to the |user agent| if provided, or all user agents otherwise.
12471269
</li>
12481270
<li>Let |tasks| be an empty <a>list</a>.
12491271
</li>
1250-
<li>For each [=environment settings object=] |target| in |targets|:
1272+
<li>[=list/For each=] [=environment settings object=] |target| in |targets|:
12511273
<ol>
12521274
<li>[=Queue a task=] |task| on the [=permissions task source=] of |target|'s
12531275
[=relevant settings object=]'s [=environment settings object/global object=]'s
@@ -1437,6 +1459,7 @@ <h6 id="webdriver-bidi-command-permissions-setPermission">
14371459
descriptor: permissions.PermissionDescriptor,
14381460
state: permissions.PermissionState,
14391461
origin: text,
1462+
? topLevelOrigin: text,
14401463
? userContext: text,
14411464
}
14421465
</pre>
@@ -1476,10 +1499,17 @@ <h6 id="webdriver-bidi-command-permissions-setPermission">
14761499
</li>
14771500
<li>Let |origin| be the value of the `origin` field of |command parameters|.
14781501
</li>
1502+
<li>Let |top level origin| be the value of the `topLevelOrigin` field of
1503+
|command parameters|, if present, and |origin| otherwise.
1504+
</li>
1505+
<li>Let |key| be the result of [=powerful feature/permission key generation
1506+
algorithm|generating a permission key=] for |descriptor| with |origin| and
1507+
|top level origin|.
1508+
</li>
14791509
<li>Let |user agent| be the [=user agent=] that represents the [=user context=]
14801510
with the id |user context id|.
14811511
</li>
1482-
<li>[=Set a permission=] with |typedDescriptor|, |state|, |origin|, and |user
1512+
<li>[=Set a permission=] with |typedDescriptor|, |state|, |key|, and |user
14831513
agent|.
14841514
</li>
14851515
<li>Return [=success=] with data `null`.

0 commit comments

Comments
 (0)