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

Add an outline for initiating multi-screen experiences #101

Merged
merged 3 commits into from
Jun 8, 2022

Conversation

michaelwasserman
Copy link
Member

@michaelwasserman michaelwasserman commented May 25, 2022

Hey @reillyeon, please take a look, thanks.
This attempts to outline the spec changes pertinent to EXPLAINER_initiating_multi_screen_experiences.md.


Preview | Diff

@michaelwasserman
Copy link
Member Author

@mustaqahmed, you might also be interested to comment on this intial PR draft.

index.bs Outdated Show resolved Hide resolved
Copy link
Contributor

@tomayac tomayac left a comment

Choose a reason for hiding this comment

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

Just spotted a typo, the rest LGTM.

@michaelwasserman
Copy link
Member Author

Friendly ping, @reillyeon; your review would be much appreciated; thanks!

Copy link
Member

@reillyeon reillyeon left a comment

Choose a reason for hiding this comment

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

The specification changes look good but please update the links in a follow-up.

Comment on lines +527 to +531
Instances of {{Window}} are created with an [internal slot](https://tc39.github.io/ecma262/#sec-object-internal-methods-and-internal-slots) named <dfn attribute for="Window">\[[targetScreenFullscreen]]</dfn>, which has a data model equivalent to [last-activation-timestamp](https://html.spec.whatwg.org/multipage/interaction.html#last-activation-timestamp). It corresponds to a {{DOMHighResTimeStamp}} value except for two cases: positive infinity indicates that the {{Window}} has never been activated, while negative infinity indicates that a [user activation-gated API](https://html.spec.whatwg.org/multipage/interaction.html#user-activation-gated-apis) has [consumed](https://html.spec.whatwg.org/multipage/interaction.html#consume-user-activation) the last user activation of the {{Window}}. The initial value is positive infinity.

The {{Window/open()|Window.open()}} method steps, and the steps of methods invoked therein, are updated to optionally:
1. Waive the [=/transient activation=] state requirement when the [current high resolution time](https://w3c.github.io/hr-time/#dfn-current-high-resolution-time) of the [=/relevant global object=] is greater than or equal to [=/this=].{{Window/[[targetScreenFullscreen]]}}, and less than [=/this=].{{Window/[[targetScreenFullscreen]]}} plus the [=/transient activation duration=].
1. Set [=/this=].{{Window/[[targetScreenFullscreen]]}} to negative infinity immediately after following the steps to [consume user activation](https://html.spec.whatwg.org/multipage/interaction.html#consume-user-activation).
Copy link
Member

Choose a reason for hiding this comment

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

As a follow-up, these references to the HTML and high resolution timer specifications should be using Bikeshed's references database rather than being raw links.

Copy link
Member Author

Choose a reason for hiding this comment

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

I will follow up to refine those links, thank you.

@michaelwasserman michaelwasserman merged commit 4c5b043 into main Jun 8, 2022
@michaelwasserman michaelwasserman deleted the initiating_multiscreen_experiences branch June 8, 2022 15:41
github-actions bot added a commit that referenced this pull request Jun 8, 2022
SHA: 4c5b043
Reason: push, by @michaelwasserman

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@michaelwasserman
Copy link
Member Author

I merged the PR with this more detailed description:

Add an outline for initiating multi-screen experiences. Provide a use case, example usage, and definitions supporting one proposed incremental approach, corresponding with the Fullscreen Companion Window feature.

That feature allows sites with the window-placement permission to open a single popup window when a fullscreen request is granted that targets a specific screen of a multi-screen device.

bradtriebwasser pushed a commit to bradtriebwasser/window-placement that referenced this pull request Oct 19, 2022
Add an outline for initiating multi-screen experiences. Provide a use case, example usage, and definitions supporting one proposed incremental approach, corresponding with the [Fullscreen Companion Window](https://chromestatus.com/feature/5173162437246976) feature.

That feature allows sites with the window-placement permission to open a single popup window when a fullscreen request is granted that targets a specific screen of a multi-screen device.
bradtriebwasser pushed a commit to bradtriebwasser/window-placement that referenced this pull request Oct 19, 2022
Add an outline for initiating multi-screen experiences. Provide a use case, example usage, and definitions supporting one proposed incremental approach, corresponding with the [Fullscreen Companion Window](https://chromestatus.com/feature/5173162437246976) feature.

That feature allows sites with the window-placement permission to open a single popup window when a fullscreen request is granted that targets a specific screen of a multi-screen device.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants