Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Editorial: formalize screenshot waiting algorithm #538

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
32 changes: 23 additions & 9 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ spec: HTML; urlPrefix: https://html.spec.whatwg.org/multipage/
text: prompt to unload; url: browsing-the-web.html#prompt-to-unload-a-document
text: report an error; url: webappapis.html#report-the-error
text: remove a browsing context; url: browsers.html#bcg-remove
text: run the animation frame callbacks; url: imagebitmap-and-animations.html#run-the-animation-frame-callbacks
text: requestAnimationFrame; url: imagebitmap-and-animations.html#dom-animationframeprovider-requestanimationframe
text: same origin domain; url: browsers.html#same-origin-domain
text: session history; url: history.html#session-history
text: set up a window environment settings object; url: window-object.html#set-up-a-window-environment-settings-object
Expand Down Expand Up @@ -2369,6 +2369,24 @@ To <dfn>render viewport to a canvas</dfn> given |viewport| and |rect|:

</div>

<div algorithm>
To <dfn>await the next animation frame</dfn> given |window|:

1. Let |render id| be the string representation of a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's do opaque implementation-specific string. That way implementations aren't bound by UUID.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I note in passing that render id isn't observable either way, so making it a UUID in the spec or not doesn't actually constrain implementations.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As long as it doesn't matter either way, I'm happy to take @jrandolf's suggestion since that seems less distracting (though I used HTML's wording: "new unique opaque string").

[[!RFC4122|UUID]] based on truly random, or pseudo-random numbers.

1. Let |steps| be the following steps:

1. [=Resume=] with "<code>animation frame</code>", |render id|, and ().

1. Let |callback| be [=CreateBuiltinFunction=](|steps|, 0, "", « »).

1. [=Call=]([=requestAnimationFrame=], |window|, «|callback|»).

1. [=Await=] with «"<code>animation frame</code>"», and |render id|.

</div>

The [=remote end steps=] with <var ignore>session</var> and |command parameters| are:

1. Let |context id| be |command parameters|["<code>context</code>"].
Expand All @@ -2383,11 +2401,9 @@ The [=remote end steps=] with <var ignore>session</var> and |command parameters|

1. Let |viewport| be |document|'s [=visual viewport=].

1. Immediately after the next invocation of the [=run the animation frame
callbacks=] algorithm for |document|:
1. Let |window| be |context|'s [=active window=].

Issue: This ought to be integrated into the update rendering algorithm
in some more explicit way.
1. [=Await the next animation frame=] with |window|.

1. Let |viewport rect| be a {{DOMRectReadOnly}} with [=x coordinate=] 0, [=y
coordinate=] 0, [=width dimension=] |viewport| width, and [=height
Expand Down Expand Up @@ -2875,11 +2891,9 @@ Note: The minimum page size is 1 point, which is (2.54 / 72) cm as per

1. Let |document| be |context|'s [=active document=].

1. Immediately after the next invocation of the [=run the animation frame
callbacks=] algorithm for |document|:
1. Let |window| be |context|'s [=active window=].

Issue: This ought to be integrated into the update rendering algorithm
in some more explicit way.
1. [=Await the next animation frame=] with |window|.

1. Let |pdf data| be the result taking UA-specific steps to generate a
paginated representation of |document|, with the CSS [=media type=] set to
Expand Down