Skip to content

Commit 2b94769

Browse files
committed
Add "emulation.setScreenAreaOverride" command.
1 parent 5ce7a32 commit 2b94769

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

index.bs

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ spec: CSSOM-VIEW; urlPrefix: https://drafts.csswg.org/cssom-view/
285285
text: visual viewport page left; url: #dom-visualviewport-pageleft
286286
text: visual viewport page top; url: #dom-visualviewport-pagetop
287287
text: visual viewport; url: #visual-viewport
288+
text: web-exposed available screen area; url: #web-exposed-available-screen-area
288289
text: web-exposed screen area; url: #web-exposed-screen-area
289290
spec: DOM; urlPrefix: https://dom.spec.whatwg.org/
290291
type: dfn
@@ -3210,6 +3211,15 @@ A [=remote end=] has a <dfn>viewport overrides map</dfn> which is a weak map bet
32103211
A [=remote end=] has a <dfn>locale overrides map</dfn> which is a weak map between
32113212
[=navigables=] or [=user contexts=] and string.
32123213

3214+
A <dfn>screen area</dfn> is a [=struct=] with an [=struct/item=] named
3215+
<dfn attribute for="screen area">height</dfn> which is an integer,
3216+
a [=struct/item=] named <dfn attribute for="screen area">width</dfn> which is an integer,
3217+
a [=struct/item=] named <dfn attribute for="screen area">x</dfn> which is an integer,
3218+
a [=struct/item=] named <dfn attribute for="screen area">y</dfn> which is an integer.
3219+
3220+
A [=remote end=] has a <dfn>screen area overrides map</dfn> which is a weak map between
3221+
[=navigables=] or [=user contexts=] and [=screen area=].
3222+
32133223
A [=remote end=] has a <dfn>timezone overrides map</dfn> which is a weak map between
32143224
[=navigables=] or [=user contexts=] and string.
32153225

@@ -6445,6 +6455,116 @@ The [=remote end steps=] with |command parameters| and |session| are:
64456455

64466456
</div>
64476457

6458+
#### The emulation.setScreenAreaOverride Command #### {#command-emulation-setScreenAreaOverride}
6459+
6460+
The <dfn export for=commands>emulation.setScreenAreaOverride</dfn> command
6461+
emulates [=web-exposed screen area=] and [=web-exposed available screen area=] of the given top-level traversables or user contexts.
6462+
6463+
<dl>
6464+
<dt>Command Type</dt>
6465+
<dd>
6466+
<pre class="cddl" data-cddl-module="remote-cddl">
6467+
emulation.SetScreenAreaOverride = (
6468+
method: "emulation.setScreenAreaOverride",
6469+
params: emulation.SetScreenAreaOverrideParameters
6470+
)
6471+
6472+
emulation.ScreenArea = {
6473+
width: js-uint,
6474+
height: js-uint
6475+
}
6476+
6477+
emulation.SetScreenAreaOverrideParameters = {
6478+
screenArea: emulation.ScreenArea / null,
6479+
? contexts: [+browsingContext.BrowsingContext],
6480+
? userContexts: [+browser.UserContext],
6481+
}
6482+
</pre>
6483+
</dd>
6484+
<dt>Return Type</dt>
6485+
<dd>
6486+
<pre class="cddl" data-cddl-module="local-cddl">
6487+
emulation.SetScreenAreaOverrideResult = EmptyResult
6488+
</pre>
6489+
</dd>
6490+
</dl>
6491+
6492+
<div algorithm>
6493+
6494+
The <dfn export>WebDriver BiDi emulated screen area</dfn> steps given a given [=/navigable=] |navigable|:
6495+
6496+
1. Let |top-level traversable| be |navigable|’s [=navigable/top-level traversable=].
6497+
6498+
1. Let |user context| be |top-level traversable|'s [=associated user context=].
6499+
6500+
1. If [=screen area overrides map=] [=map/contains=] |top-level traversable|, return
6501+
[=screen area overrides map=][|top-level traversable|].
6502+
6503+
1. If [=screen area overrides map=] [=map/contains=] |user context|, return
6504+
[=screen area overrides map=][|user context|].
6505+
6506+
1. Return null
6507+
6508+
</div>
6509+
6510+
<div algorithm="remote end steps for emulation.setScreenAreaOverride">
6511+
6512+
The [=remote end steps=] with |command parameters| are:
6513+
6514+
1. If |command parameters| [=map/contains=] "<code>userContexts</code>"
6515+
and |command parameters| [=map/contains=] "<code>contexts</code>",
6516+
return [=error=] with [=error code=] [=invalid argument=].
6517+
6518+
1. If |command parameters| doesn't [=map/contain=] "<code>userContexts</code>"
6519+
and |command parameters| doesn't [=map/contain=] "<code>contexts</code>",
6520+
return [=error=] with [=error code=] [=invalid argument=].
6521+
6522+
1. Let |emulated screen area| be |command parameters|["<code>screenArea</code>"].
6523+
6524+
1. If |emulated screen area| is not null:
6525+
6526+
1. [=map/Set=] |emulated screen area|["<code>x</code>"] to 0.
6527+
6528+
1. [=map/Set=] |emulated screen area|["<code>y</code>"] to 0.
6529+
6530+
1. Let |navigables| be a [=/set=].
6531+
6532+
1. If the <code>contexts</code> field of |command parameters| is present:
6533+
6534+
1. Let |navigables| be the result of [=trying=] to
6535+
[=get valid top-level traversables by ids=] with
6536+
|command parameters|["<code>contexts</code>"].
6537+
6538+
1. Otherwise:
6539+
6540+
1. Assert the <code>userContexts</code> field of |command parameters| is present.
6541+
6542+
1. Let |user contexts| be the result of [=trying=] to [=get valid user contexts=]
6543+
with |command parameters|["<code>userContexts</code>"].
6544+
6545+
1. For each |user context| of |user contexts|:
6546+
6547+
1. If |emulated screen area| is null, [=map/remove=] |user context| from
6548+
[=screen area overrides map=].
6549+
6550+
1. Otherwise, [=map/set=] [=screen area overrides map=][|user context|] to |emulated screen area|.
6551+
6552+
1. [=list/For each=] |top-level traversable| of the list of all
6553+
[=/top-level traversables=] whose [=associated user context=] is
6554+
|user context|:
6555+
6556+
1. [=list/Append=] |top-level traversable| to |navigables|.
6557+
6558+
1. For each |navigable| of |navigables|:
6559+
6560+
1. If |emulated screen area| is null, [=map/remove=] |navigable| from [=screen area overrides map=].
6561+
6562+
1. Otherwise, [=map/set=] [=screen area overrides map=][|navigable|] to |emulated screen area|.
6563+
6564+
1. Return [=success=] with data null.
6565+
6566+
</div>
6567+
64486568
#### The emulation.setScreenOrientationOverride Command #### {#command-emulation-setScreenOrientationOverride}
64496569

64506570
The <dfn export for=commands>emulation.setScreenOrientationOverride</dfn> command

0 commit comments

Comments
 (0)