YUC. 😉 If a developer has used the environmental variables and the web app gets installed in browser that does not support it (then it is a parallel universe because Firefox nor Safari nor other desktop browser supports this *kidding*) then they can specify reasonable fallback values because they value progressive enhancement and responsive design. I will add a note about this to the spec, if you think it is necessary.
Lack of WCO support and lack of user opt in do not look the same. In a supported browser both the env variables and the JS object in navigator exist even if the feature is turned off. On Wednesday, 1 December 2021 at 11:11:03 UTC yoav...@chromium.org wrote: > On Tuesday, November 30, 2021 at 6:48:07 PM UTC+1 Diego González wrote: > >> Hola Yoav, >> >> I wanted to add that we implemented the concept of a display-override to >> control the fallback of display modes. For non supported browsers, >> developers can also specify the display-override and even if this is not >> supported it will default to the display value in the manifest file. >> >> >> >> On Monday, 29 November 2021 at 18:29:41 UTC Diego González wrote: >> >>> Hola Yoav, >>> >>> For non supported browsers there are 2 options: >>> >>> - env variables take the specified default value by developers (if >>> devs enable WCO). >>> >>> > So IIUC developers are supposed to use the env variables with reasonable > fallback values for non-supporting browsers? Is that advice > captured/documented somewhere? > >> >>> - The web app will open as it would in the browser, with a titlebar >>> if installed (if devs don't enable WCO). >>> >>> WCO is enabled by the end user. The user must enable the feature by >>> toggling the chevron on the controls overlay. This is remembered on >>> subsequent app launches. >>> >> > OK, so lack of WCO support by the browser and lack of user opt-in would > look the same from the developer's perspective? > > >> >>> --diego >>> >>> On Friday, 19 November 2021 at 06:05:44 UTC yoav...@chromium.org wrote: >>> >>>> This looks great! Thanks for following up on the spec work!! >>>> >>>> I had a couple more questions upthread: >>>> >>>> - What are developers expected to do in non-supporting browsers? >>>> - Would the user need to opt-in to having web app control over >>>> their title bar? >>>> >>>> >>>> On Fri, Nov 19, 2021 at 1:25 AM Diego González <die...@gmail.com> >>>> wrote: >>>> >>>>> the the new *new* spec update >>>>> https://wicg.github.io/window-controls-overlay/ >>>>> >>>>> On Wednesday, 17 November 2021 at 19:06:24 UTC Diego González wrote: >>>>> >>>>>> Hola, >>>>>> >>>>>> See the updated spec here: >>>>>> https://wicg.github.io/window-controls-overlay. >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> On Monday, 15 November 2021 at 17:00:34 UTC Ajay Rahatekar wrote: >>>>>> >>>>>>> cc: ajayra...@google.com >>>>>>> >>>>>>> On Monday, November 15, 2021 at 8:53:37 AM UTC-8 Diego González >>>>>>> wrote: >>>>>>> >>>>>>>> Hola Yoav, I am looking at making the amendments listed on the >>>>>>>> github issues. I will update soon with the changes. Thanks >>>>>>>> >>>>>>>> On Monday, 15 November 2021 at 08:44:41 UTC yoav...@chromium.org >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Thanks Diego! The updates are a great improvement, but I suspect >>>>>>>>> are not sufficient for an interoperable implementation. I left a >>>>>>>>> couple of >>>>>>>>> comments on the open issues. >>>>>>>>> >>>>>>>>> On Wed, Nov 10, 2021 at 5:11 PM Diego González <die...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hola Yoav, >>>>>>>>>> >>>>>>>>>> We've gone through several iterations of the WCO spec reviewed by >>>>>>>>>> Joshua Bell from Google, and while we are still making changes to >>>>>>>>>> it, we >>>>>>>>>> believe it is in a much better state and want to resubmit for >>>>>>>>>> consideration >>>>>>>>>> of the approvals needed for I2S. See the updated spec below: >>>>>>>>>> https://wicg.github.io/window-controls-overlay/ >>>>>>>>>> >>>>>>>>>> --Diego >>>>>>>>>> >>>>>>>>>> On Thursday, 21 October 2021 at 21:05:09 UTC+1 >>>>>>>>>> yoav...@chromium.org wrote: >>>>>>>>>> >>>>>>>>>>> On Thursday, October 21, 2021 at 9:31:23 AM UTC+2 Yoav Weiss >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> This is an exciting improvement to PWA parity with native apps! >>>>>>>>>>>> :) >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Oct 20, 2021 at 10:49 PM 'Diego Gonzalez' via blink-dev >>>>>>>>>>>> <blin...@chromium.org> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Contact emails >>>>>>>>>>>>> >>>>>>>>>>>>> amb...@microsoft.com, luig...@microsoft.com, >>>>>>>>>>>>> hat...@microsoft.com, c...@chromium.org >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Explainer >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> https://github.com/WICG/window-controls-overlay/blob/master/explainer.md >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Specification >>>>>>>>>>>>> >>>>>>>>>>>>> https://wicg.github.io/window-controls-overlay/ >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> The spec looks like it could use some work. Beyond the >>>>>>>>>>>> editorial, it doesn't seem like it defines the novel concepts that >>>>>>>>>>>> it >>>>>>>>>>>> introduces, nor the relevant processing models. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Let me expand on that a bit. The spec introduces a new concept >>>>>>>>>>> of a "window overlay" without really creating it as a concept. >>>>>>>>>>> What I expect an interoperable spec to define the concept with >>>>>>>>>>> as much detail as possible without getting OS- or >>>>>>>>>>> implementation-specific. >>>>>>>>>>> (Just to draw an example of what I have in mind, if I had to >>>>>>>>>>> make something up, I'd go with something like: "<dfn>Window >>>>>>>>>>> overlay</dfn> >>>>>>>>>>> is an interface element that the operating system uses consistently >>>>>>>>>>> across >>>>>>>>>>> applications to enable the user to perform certain action to >>>>>>>>>>> control the >>>>>>>>>>> application such as closing it, expanding it to full screen, etc. >>>>>>>>>>> This UI >>>>>>>>>>> element takes fixed dimensions....") >>>>>>>>>>> >>>>>>>>>>> Then, once you have that concept defined, you can start building >>>>>>>>>>> on it and define the processing of the different methods based on >>>>>>>>>>> that. >>>>>>>>>>> >>>>>>>>>>> I'll open issues with other suggestions. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Design docs >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> https://github.com/WICG/window-controls-overlay/blob/main/explainer.md >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Summary >>>>>>>>>>>>> >>>>>>>>>>>>> Window Controls Overlay allows a developer to create a custom >>>>>>>>>>>>> title bar UX by extending the installed app’s client area. The >>>>>>>>>>>>> client area >>>>>>>>>>>>> now covers the entire window except for the window controls >>>>>>>>>>>>> (close, >>>>>>>>>>>>> maximize/restore, minimize), which are overlaid in their >>>>>>>>>>>>> respective >>>>>>>>>>>>> position. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> The web app developer is responsible for drawing and >>>>>>>>>>>>> input-handling for the entire window except for the window >>>>>>>>>>>>> controls >>>>>>>>>>>>> overlay. This includes defining which area of the window is >>>>>>>>>>>>> draggable as well, with a prefixed and non-prefixed version of a >>>>>>>>>>>>> css >>>>>>>>>>>>> property supported, as implemented in: crrev.com/c/3094474. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Intended uses for the Window Controls Overlay are creating >>>>>>>>>>>>> seamless UX that can use the area that was reserved for the title >>>>>>>>>>>>> bar >>>>>>>>>>>>> before. Many modern applications include menus, search bars and >>>>>>>>>>>>> other >>>>>>>>>>>>> controls in the title bar, and this feature enables this on >>>>>>>>>>>>> installed web >>>>>>>>>>>>> apps. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Blink component >>>>>>>>>>>>> >>>>>>>>>>>>> UI>Browser>WebAppInstalls >>>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:UI%3EBrowser%3EWebAppInstalls> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Search tags >>>>>>>>>>>>> >>>>>>>>>>>>> PWA <https://chromestatus.com/features#tags:PWA>, web app >>>>>>>>>>>>> <https://chromestatus.com/features#tags:web%20app>, title bar >>>>>>>>>>>>> <https://chromestatus.com/features#tags:title%20bar>, titlebar >>>>>>>>>>>>> <https://chromestatus.com/features#tags:titlebar>, >>>>>>>>>>>>> customization >>>>>>>>>>>>> <https://chromestatus.com/features#tags:customization>, window >>>>>>>>>>>>> controls >>>>>>>>>>>>> <https://chromestatus.com/features#tags:window%20controls> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> TAG review >>>>>>>>>>>>> >>>>>>>>>>>>> https://github.com/w3ctag/design-reviews/issues/481 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> TAG review status >>>>>>>>>>>>> >>>>>>>>>>>>> Resolution: satisfied >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Risks >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Interoperability and Compatibility >>>>>>>>>>>>> >>>>>>>>>>>>> Given that Edge has interest in the feature, there would be at >>>>>>>>>>>>> least one other browser that implements it. The feature involves >>>>>>>>>>>>> additive >>>>>>>>>>>>> changes (new web app manifest entry, new JS API, new CSS env >>>>>>>>>>>>> variables) and >>>>>>>>>>>>> modifications (changes to frame, new use of >>>>>>>>>>>>> env(safe-area-inset-*), but no >>>>>>>>>>>>> removals, so the compatibility risk is minimal. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Gecko: defer >>>>>>>>>>>>> https://github.com/mozilla/standards-positions/issues/529 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> WebKit: No signal >>>>>>>>>>>>> https://lists.webkit.org/pipermail/webkit-dev/2021-May/031865.html >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Web developers: Positive >>>>>>>>>>>>> >>>>>>>>>>>>> https://twitter.com/firt/status/1385238446046859268?s=20 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> https://twitter.com/AnaestheticsApp/status/1408727417330573314?s=20 >>>>>>>>>>>>> >>>>>>>>>>>>> https://twitter.com/bashik7/status/1385821988208275457?s=20 >>>>>>>>>>>>> >>>>>>>>>>>>> https://twitter.com/abraham/status/1385201046767738880?s=20 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Ergonomics >>>>>>>>>>>>> >>>>>>>>>>>>> The changes associated with this feature will only be enabled >>>>>>>>>>>>> for PWAs that opt-in to it, so there are minimal risks posed to >>>>>>>>>>>>> the browser >>>>>>>>>>>>> as a whole. A PWA that opts-in to the feature should also have >>>>>>>>>>>>> minimal >>>>>>>>>>>>> ergonomics risk since the manifest already needs to be parsed on >>>>>>>>>>>>> startup to >>>>>>>>>>>>> determine the correct display mode in which the app should be >>>>>>>>>>>>> launched, so >>>>>>>>>>>>> adding one extra manifest check on startup should have minimal >>>>>>>>>>>>> impact. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Activation >>>>>>>>>>>>> >>>>>>>>>>>>> The activation risk is low since this feature includes all the >>>>>>>>>>>>> tools needed to create an app that uses the full extent of the >>>>>>>>>>>>> window: new >>>>>>>>>>>>> UA-provided window controls overlay, JS APIs to query the size of >>>>>>>>>>>>> the >>>>>>>>>>>>> overlay, and CSS environment variables to layout content around >>>>>>>>>>>>> the overlay. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> What do we expect developers to do as a fallback in >>>>>>>>>>>> non-supporting browsers? >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Security >>>>>>>>>>>>> >>>>>>>>>>>>> The major risk is that giving sites partial control over the >>>>>>>>>>>>> top of the app window allows developers to spoof content in what >>>>>>>>>>>>> was >>>>>>>>>>>>> previously a trusted, UA-controlled region. To minimize the risk >>>>>>>>>>>>> of >>>>>>>>>>>>> spoofing, the app will open by default in “standalone” mode with >>>>>>>>>>>>> a full >>>>>>>>>>>>> width title bar, and the user can toggle window controls overlay >>>>>>>>>>>>> on and off >>>>>>>>>>>>> via a button in the title bar/overlay. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> OK, so both the app *and* the user need to opt-in? >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Debuggability >>>>>>>>>>>>> >>>>>>>>>>>>> The feature itself can be easily debugged by installing the >>>>>>>>>>>>> PWA. Since it is a visual feature on the window itself, it is >>>>>>>>>>>>> easy to test. >>>>>>>>>>>>> Nonetheless, making sure parsing the “display-override” mode and >>>>>>>>>>>>> associated >>>>>>>>>>>>> values correctly is desired, which should be incorporated into >>>>>>>>>>>>> the >>>>>>>>>>>>> application tab of devtools, where all the other manifest >>>>>>>>>>>>> warnings are >>>>>>>>>>>>> displayed. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>>>>>>>>>> ? >>>>>>>>>>>>> >>>>>>>>>>>>> 3170531: dpwas: WPT Tests for window-controls-overlay | >>>>>>>>>>>>> https://chromium-review.googlesource.com/c/chromium/src/+/3170531 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Flag name >>>>>>>>>>>>> >>>>>>>>>>>>> #enable-desktop-pwas-window-controls-overlay >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Requires code in //chrome? >>>>>>>>>>>>> >>>>>>>>>>>>> False >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Tracking bug >>>>>>>>>>>>> >>>>>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=937121 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Launch bug >>>>>>>>>>>>> >>>>>>>>>>>>> https://crbug.com/1108107 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Sample links >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> https://amandabaker.github.io/pwa/explainer-example/index.html >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Estimated milestones >>>>>>>>>>>>> >>>>>>>>>>>>> OriginTrial desktop last >>>>>>>>>>>>> >>>>>>>>>>>>> 96 >>>>>>>>>>>>> >>>>>>>>>>>>> OriginTrial desktop first >>>>>>>>>>>>> >>>>>>>>>>>>> 93 >>>>>>>>>>>>> >>>>>>>>>>>>> Expected Release >>>>>>>>>>>>> >>>>>>>>>>>>> 97 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>>>>> >>>>>>>>>>>>> https://chromestatus.com/feature/5741247866077184 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Links to previous Intent discussions >>>>>>>>>>>>> >>>>>>>>>>>>> Intent to prototype: >>>>>>>>>>>>> https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/cper6nNLFRQ/hU91kfCWBQAJ >>>>>>>>>>>>> >>>>>>>>>>>>> Intent to Experiment: >>>>>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/HNHbpxvrECA/m/JJoXKQI3BAAJ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> This intent message was generated by Chrome Platform Status >>>>>>>>>>>>> <https://www.chromestatus.com/>. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Regards, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *Diego González-Zúñiga* >>>>>>>>>>>>> >>>>>>>>>>>>> PM, Microsoft Edge >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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/VI1PR83MB041666BD26451656C388347CCCBE9%40VI1PR83MB0416.EURPRD83.prod.outlook.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/VI1PR83MB041666BD26451656C388347CCCBE9%40VI1PR83MB0416.EURPRD83.prod.outlook.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/0dd2b7ba-8307-43dc-b0a4-32e775bed90dn%40chromium.org.