LGTM3. Thanks for the work y'all have done with the security and privacy
teams to get this in the right place. I believe permissions folks want to
follow up about the shape of the final implementation from a UX
perspective, so please ensure that you chat with +Illia Klimov
<el...@google.com> and/or +Balazs Engedy <eng...@google.com> before
flipping the flags, but I think you're good to go from a web platform
perspective.

Thanks!

-mike


On Wed, Feb 23, 2022 at 2:07 PM Yoav Weiss <yoavwe...@chromium.org> wrote:

> LGTM2
>
> This seems like an important use-case to tackle!
>
> On Tue, Feb 22, 2022 at 9:37 PM 'Ajay Rahatekar' via blink-dev <
> blink-dev@chromium.org> wrote:
>
>> Hello Blink APi owners,
>>
>> Please let us know if you need more details. The team is targeting
>> shipping the API in M100 and would be very appreciative of early
>> feedback/approval to meet the milestone timeline requirements.
>>
>> Thanks in advance.
>>
>> Ajay
>>
>> On Friday, February 18, 2022 at 7:28:50 AM UTC-8 mike...@chromium.org
>> wrote:
>>
>>> Hi Michael,
>>>
>>> I think you and team have done a great job incorporating TAG and API
>>> ergonomics feedback (hi Jake!) as well as privacy concerns. Nice work.
>>>
>>> LGTM1.
>>>
>>> On 2/14/22 8:28 PM, Michael Wasserman wrote:
>>>
>>> Contact emails
>>>
>>> m...@chromium.org
>>>
>>>
>>> Explainer
>>>
>>> https://github.com/webscreens/window-placement
>>>
>>>
> Great explainer! Thanks for that!!
>
>>
>>> Specification
>>>
>>> https://webscreens.github.io/window-placement/
>>>
>>> Design docs  https://web.dev/multi-screen-window-placement/
>>> Summary
>>>
>>> Adds new screen information APIs and makes incremental improvements to
>>> existing window placement APIs, allowing web applications to offer
>>> compelling multi-screen experiences.
>>>
>>> The existing singular window.screen offers a limited view of available
>>> screen space, and window placement functions generally clamp bounds to the
>>> current screen. This feature unlocks modern multi-screen workspaces for web
>>> applications.
>>>
>>> Blink component
>>>
>>> UI>Browser>WebAppInstalls>Desktop
>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:UI%3EBrowser%3EWebAppInstalls%3EDesktop>
>>>
>>> Search tags
>>>
>>> window placement
>>> <https://chromestatus.com/features#tags:window%20placement>, screen
>>> enumeration
>>> <https://chromestatus.com/features#tags:screen%20enumeration>, window
>>> <https://chromestatus.com/features#tags:window>, open
>>> <https://chromestatus.com/features#tags:open>, moveTo
>>> <https://chromestatus.com/features#tags:moveTo>, moveBy
>>> <https://chromestatus.com/features#tags:moveBy>, requestFullscreen
>>> <https://chromestatus.com/features#tags:requestFullscreen>, screen
>>> <https://chromestatus.com/features#tags:screen>, display
>>> <https://chromestatus.com/features#tags:display>, monitor
>>> <https://chromestatus.com/features#tags:monitor>, multi-screen
>>> <https://chromestatus.com/features#tags:multi-screen>, multi-display
>>> <https://chromestatus.com/features#tags:multi-display>, multi-monitor
>>> <https://chromestatus.com/features#tags:multi-monitor>, cross-screen
>>> <https://chromestatus.com/features#tags:cross-screen>, cross-display
>>> <https://chromestatus.com/features#tags:cross-display>, cross-monitor
>>> <https://chromestatus.com/features#tags:cross-monitor>
>>>
>>> TAG review
>>>
>>> https://github.com/w3ctag/design-reviews/issues/413
>>> https://github.com/w3ctag/design-reviews/issues/522
>>> https://github.com/w3ctag/design-reviews/issues/602
>>>
>>> TAG review status
>>>
>>> Issues addressed
>>>
>>> Risks
>>> Interoperability and Compatibility
>>>
>>> Feature detection of new screen information APIs and Permission API
>>> integration allows sites to handle different levels of feature support. The
>>> Screen IDL interface duplicates EventTarget members for RuntimeEnabled
>>> experimentation without changing the stable JS API; this will be rectified
>>> after launch approval.
>>>
>>> Existing window placement APIs generally use compatible multi-screen
>>> coordinates, but implementations often restrict bounds to the current
>>> screen. We expect low levels of risk in supporting permitted cross-screen
>>> placement requests, and falling back on legacy same-screen behavior
>>> otherwise.
>>>
>>> A detailed assessment of API design risks, including Wayland
>>> compatibility, multiple virtual workspaces/desktops, and more, can be found
>>> at: <
>>> https://docs.google.com/document/d/19u5fRKs8iWlpecKBSlfQ6JKrcP4emwK0M_6TNhfz0gs
>>> >
>>>
>>> API surface changes made during the second origin trial are limited to
>>> some minor renames, the removal of two unimplemented screen properties, and
>>> support for permission policy. An exploratory permission-gated capability
>>> to swap the screen of fullscreen windows without a user gesture was
>>> reverted to enhance usable security. See <
>>> https://github.com/webscreens/window-placement/blob/main/CHANGES.md>
>>>
>>> The spec is being incubated in the W3C Second Screen CG <
>>> https://webscreens.github.io/cg-charter> and is pending adoption by the
>>> W3C Second Screen WG <https://w3c.github.io/secondscreen-charter>
>>>
>>> Gecko: No signal (
>>> https://github.com/mozilla/standards-positions/issues/542) We requested
>>> a position and are waiting for feedback. Firefox supports cross-screen
>>> window.open/move*() requests. This work partly pursues compatibility
>>> with that behavior.
>>>
>>> WebKit: No signal (
>>> https://lists.webkit.org/pipermail/webkit-dev/2021-June/031903.html) We
>>> requested a position and are waiting for feedback.
>>>
>>> Web developers: Positive (
>>> https://github.com/webscreens/window-placement/issues/67)
>>>
>>> - Discourse: <
>>> https://discourse.wicg.io/t/proposal-supporting-window-placement-on-multi-screen-devices
>>> >
>>>
>>> - Twitter: <
>>> https://twitter.com/search?q=url%3Amulti-screen-window-placement&src=typed_query&f=live
>>> >
>>>
>>> - Announcement: <
>>> https://twitter.com/ChromiumDev/status/1305406689466814464>
>>>
>>> - HackerNews (was front page): <
>>> https://news.ycombinator.com/item?id=24489234>
>>>
>>> (I was intrigued to see Positive feedback coming from HackerNews, but we
>>> should probably consider that to be Negative.)
>>>
>>> - Citrix: <
>>> https://github.com/webscreens/window-placement/issues/67#issuecomment-945859384
>>> >
>>>
>>> - This work is also of interest to Google Slides
>>>
>>> Ergonomics
>>>
>>> The minor improvements to window.open/move*() API behaviors have no
>>> effect on their poor ergonomics (synchronous, features string shape, etc.).
>>> This API does not preclude future work from improving the ergonomics of
>>> those existing APIs. Extending the requestFullscreen dictionary with an
>>> optional screen should pose no ergonomic risks. The new multi-screen
>>> information APIs incorporated OT feedback to improve naming, object
>>> comparison, and event handling ergonomics.
>>>
>>> Activation
>>>
>>> This feature incrementally extends existing screen information and
>>> window placement interfaces with basic multi-screen support. This
>>> immediately enables new compelling experiences through progressive
>>> enhancement of existing applications.
>>>
>>> Security
>>>
>>> Security and Privacy risks are explored in the specification
>>> repository’s W3C Questionnaire <
>>> https://github.com/webscreens/window-placement/blob/main/security_and_privacy.md>,
>>> and in the respective sections of the draft specification <
>>> https://webscreens.github.io/window-placement/#security> and <
>>> https://webscreens.github.io/window-placement/#privacy>. That analysis
>>> and review uncovered minimal risks.
>>>
>>> Privacy concerns center around fingerprinting screen information, while
>>> security risks center around deceptive, surreptitious, or annoying window
>>> placements, such as clickjacking. Gating new functionality with a
>>> permission helps mitigate these concerns, and may aid or inspire similar
>>> protections for legacy API behavior with similar abuse vectors. The overall
>>> added risks are low and further mitigated by limiting to secure contexts,
>>> supporting a permissions policy, being selective about display information
>>> to expose, and continuing to prevent off-screen window placement.
>>>
>>> Origin trial feedback
>>>
>>>    -
>>>
>>>    First origin trial: Developer feedback
>>>    
>>> <https://docs.google.com/spreadsheets/d/1S66d7izby2_QNu1FqLY_tEpQA9xkAsruvam7nbsq2TI/edit?resourcekey=0-kfJ0PdgNU5wgmjGWJc8AGg#gid=727492058>
>>>    (Google-internal doc) was generally straightforward: the API is useful, 
>>> and
>>>    it would be difficult or impossible to accomplish anything similar 
>>> without
>>>    it. The most common request was that it be made broadly available as soon
>>>    as possible. There were two feature requests; and while neither is 
>>> provided
>>>    with this initial launch, the API shape does not preclude adding support:
>>>    -
>>>
>>>       to hide the location bar on popup windows
>>>       -
>>>
>>>       for getScreens() to return information about mirrored displays
>>>
>>>
>>>    -
>>>
>>>    Feedback on Github: After the OT, @jakearchibald, @kenchris, and
>>>    others gave feedback on the API shape <
>>>    https://github.com/webscreens/window-placement/issues/30>. Changes
>>>    were made accordingly <
>>>    https://github.com/webscreens/window-placement/blob/main/CHANGES.md>.
>>>
>>>
>>>    -
>>>
>>>    Second origin trial: Once again, developer feedback
>>>    
>>> <https://docs.google.com/spreadsheets/d/1S66d7izby2_QNu1FqLY_tEpQA9xkAsruvam7nbsq2TI/edit?resourcekey=0-kfJ0PdgNU5wgmjGWJc8AGg#gid=1625618615>
>>>    (Google-internal doc) was broadly positive. One feature was requested 
>>> three
>>>    times: the ability to open a new window and immediately make it
>>>    fullscreen. This feature is on our roadmap. Demand for this API is
>>>    high, and we want to give developers the chance to start using it as soon
>>>    as possible. Thus it makes sense to launch an MVP, then add additional
>>>    features like this one.
>>>
>>>
>>> Debuggability
>>>
>>> New and existing screen and window APIs are readily debuggable using the
>>> developer tools console.
>>>
>>> Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>> ?
>>>
>>> WPTs cover the presence of new JS APIs and some basic API functionality:
>>> <https://wpt.fyi/results/screen-details>, <
>>> https://wpt.live/window-placement>, and <
>>> https://wpt.fyi/results/fullscreen/api/element-request-fullscreen-options.tentative.html>.
>>> We aim to extend test coverage and support for multi-screen mocking <
>>> https://crbug.com/1252062> and cross-screen window placement tests <
>>> https://crbug.com/1022988> soon.
>>>
>>> Flag name
>>>
>>> chrome://flags#enable-experimental-web-platform-features enables the
>>> WindowPlacement RuntimeEnabled feature flag (
>>> --enable-blink-features=WindowPlacement)
>>>
>>> Requires code in //chrome?
>>>
>>> Not really - Some relevant test, permission, and pre-existing windowing
>>> code lives in //chrome.
>>>
>>> Tracking bug
>>>
>>> https://bugs.chromium.org/p/chromium/issues/detail?id=897300
>>>
>>> Launch bug
>>>
>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1255960
>>>
>>> Measurement
>>>
>>>
>>> https://chromestatus.com/metrics/feature/popularity#V8Window_GetScreenDetails_Method
>>>
>>> Sample links
>>>
>>> https://michaelwasserman.github.io/window-placement-demo/
>>>
>>> https://web.dev/multi-screen-window-placement/#demo
>>>
>>> Estimated milestones
>>>
>>> OriginTrial desktop last
>>>
>>> 96
>>>
>>> OriginTrial desktop first
>>>
>>> 93
>>>
>>> DevTrial on desktop
>>>
>>> 93
>>>
>>> Link to entry on the Chrome Platform Status
>>>
>>> https://chromestatus.com/feature/5252960583942144
>>>
>>> Links to previous Intent discussions
>>>
>>> Intent to Prototype: <
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/X6rEbWvU7cI>
>>>
>>> Intent to Experiment: (OT1) <
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/C6xw8i1ZIdE>
>>>
>>> Intent to Experiment: (OT2) <
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/jznxQK1U8ZQ>
>>>
>>>
>>> This intent message was generated by Chrome Platform Status
>>> <https://chromestatus.com/>.
>>>
>>> --
>>>
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to blink-dev+...@chromium.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpUThcD2OSgoebUZuXSevjwBGV0r8Kw3SDrCXGjtB6kx-w%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpUThcD2OSgoebUZuXSevjwBGV0r8Kw3SDrCXGjtB6kx-w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c9f9bfc3-863c-487b-9cfb-b7fd3b0aa6ecn%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c9f9bfc3-863c-487b-9cfb-b7fd3b0aa6ecn%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWYap_kr1OYWoLVm81Mxf2nDYOux6dKd3_5RqVTuMfnMQ%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWYap_kr1OYWoLVm81Mxf2nDYOux6dKd3_5RqVTuMfnMQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DcdK-GiY70a43X_ptChHFfrJ8xWHSpywsDPtjaZxHdthg%40mail.gmail.com.

Reply via email to