LGTM3 On Tue, Oct 15, 2024 at 9:14 PM Alexis Menard <alexis.men...@intel.com> wrote:
> @Yoav Weiss (@Shopify) <yoavwe...@chromium.org> does my answer covers > your concerns? > > On Wed, Oct 9, 2024 at 11:09 PM Domenic Denicola <dome...@chromium.org> > wrote: > >> Thanks for resolving this! LGTM2. >> >> On Thu, Oct 10, 2024 at 3:43 AM Diego González <die...@gmail.com> wrote: >> >>> 💖 >>> >>> On Wednesday 9 October 2024 at 17:13:19 UTC+1 Alexis Menard wrote: >>> >>>> We did resolve this in the spec, my bad. As the FYI the W3C Device and >>>> Sensors WG has decided to move this API to CR. >>>> >>>> On Tue, Oct 8, 2024 at 9:28 PM Domenic Denicola <dom...@chromium.org> >>>> wrote: >>>> >>>>> To be clear, I'm OK if the relevant standards body (i.e. the W3C >>>>> Devices and Sensors WG) has decided that this does not require a >>>>> permissions policy. But I would like it to be resolved one way or another >>>>> before we approve this for shipping. Right now it is listed as an open >>>>> issue in the spec, and it's one that will be hard to change after >>>>> shipping, so per the "Anticipated spec changes" of our I2S template, I'd >>>>> like to get that resolved. >>>>> >>>>> On Wed, Oct 9, 2024 at 3:14 AM Alex Russell <sligh...@chromium.org> >>>>> wrote: >>>>> >>>>>> It's unclear to me that this should have a permission. >>>>>> >>>>>> LGTM1 >>>>>> >>>>>> On Mon, Oct 7, 2024, 7:19 AM Alexis Menard <alexis...@intel.com> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Oct 7, 2024 at 9:31 AM Ian Clelland <icle...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Oct 7, 2024 at 7:36 AM Alexis Menard <alexis...@intel.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Thanks for your approval. >>>>>>>>> >>>>>>>>> I can confirm that the API is exposed to iframe through JS and CSS. >>>>>>>>> >>>>>>>>> Concerning your suggestion I agree that we could put this behind a >>>>>>>>> permission policy but unfortunately if the intent is to limit >>>>>>>>> potential >>>>>>>>> ephemeral fingerprinting then it will not help at all. In Chromium >>>>>>>>> it's >>>>>>>>> easy to gate the JS API behind a permission policy but there is no >>>>>>>>> prior >>>>>>>>> art of a CSS API being gated behind a permission policy (I may be >>>>>>>>> wrong). >>>>>>>>> So the iframe CSS code will still be parsed which would not impede >>>>>>>>> accessing the posture. Finally one can just use JavaScript to query >>>>>>>>> the >>>>>>>>> posture using `matchMedia` so in order for this whole permission to >>>>>>>>> truly >>>>>>>>> block we would need to patch the CSS engine deep down. >>>>>>>>> >>>>>>>> >>>>>>>> We've never shipped any CSS gating based on permissions policy, but >>>>>>>> we have experimented with it; in particular, we've released >>>>>>>> experimental >>>>>>>> policies to restrict the use of animations on properties which affect >>>>>>>> layout, and to restrict the values which can be used for the >>>>>>>> font-display >>>>>>>> property. These have since been removed from the code, as we're not >>>>>>>> pursuing those anymore, but the idea of controlling the CSS engine with >>>>>>>> permissions policy has been tried. >>>>>>>> >>>>>>>> I'm not sure if the fact that this API is exposed through media >>>>>>>> queries makes this more complex, but from a spec perspective, as long >>>>>>>> as >>>>>>>> you can describe the behaviour in terms of what the current document is >>>>>>>> "allowed to use", then you should be able to express the right >>>>>>>> constraints >>>>>>>> to use permissions policy. >>>>>>>> >>>>>>> >>>>>>> Interesting. I'll try to dig the CL just out of curiosity. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Ian >>>>>>>> >>>>>>>> >>>>>>>>> I had this discussion with the PING and they agreed that we don't >>>>>>>>> have any mechanism in place even CSS to support such a thing. There >>>>>>>>> is a >>>>>>>>> discussion which started few weeks ago between the PING and CSS WG. I >>>>>>>>> believe that in the future this use case could come up for some other >>>>>>>>> APIs >>>>>>>>> especially when things are exposed through env variables. So unless >>>>>>>>> there >>>>>>>>> is some idea of a spec or update to permission policy spec I'm not >>>>>>>>> sure if >>>>>>>>> we should start modifying the CSS engine deeply. >>>>>>>>> >>>>>>>>> Coming back to this API, to be honest I think the fingerprinting >>>>>>>>> is very low risk, ephemeral and is going to be less and less relevant >>>>>>>>> as >>>>>>>>> more and more users are using foldables especially in the folded >>>>>>>>> posture >>>>>>>>> (remember that any other device including desktop returns the >>>>>>>>> continuous >>>>>>>>> posture). >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Mon, Oct 7, 2024, 12:24 AM Domenic Denicola < >>>>>>>>> dom...@chromium.org> wrote: >>>>>>>>> >>>>>>>>>> This looks like a really solid spec that has benefited from years >>>>>>>>>> of iteration and had good TAG review discussion. The fact that you >>>>>>>>>> specified and are working on WebDriver hooks to emulate posture >>>>>>>>>> changes >>>>>>>>>> during testing, and added DevTools integration, are more great signs >>>>>>>>>> of >>>>>>>>>> maturity. I'm excited to approve this. >>>>>>>>>> >>>>>>>>>> The only blocker is that >>>>>>>>>> https://github.com/w3c/device-posture/issues/111 remains open >>>>>>>>>> and changing that after shipping would be a significant change. It >>>>>>>>>> sounds >>>>>>>>>> like your current plan is to expose this information across iframes. >>>>>>>>>> Can >>>>>>>>>> you confirm? If so, are you ready to close that issue and lock in the >>>>>>>>>> current state? >>>>>>>>>> >>>>>>>>>> A more conservative plan would be to not expose the information >>>>>>>>>> across cross-origin iframes. You could then loosen that in the >>>>>>>>>> future, >>>>>>>>>> probably by introducing a permissions policy: either with a default >>>>>>>>>> allowlist of '*' to get the current behavior (but allow top frames to >>>>>>>>>> restrict), or a default allowlist of 'self' to keep the restriction >>>>>>>>>> by >>>>>>>>>> default (but allow top frames to share). Absent strong use cases for >>>>>>>>>> sharing cross-origin by default, that would be my suggestion. >>>>>>>>>> >>>>>>>>>> On Thu, Oct 3, 2024 at 11:42 PM Alexis Menard < >>>>>>>>>> alexis...@intel.com> wrote: >>>>>>>>>> >>>>>>>>>>> Contact emails alexis...@intel.com >>>>>>>>>>> >>>>>>>>>>> Explainer https://github.com/w3c/device-posture >>>>>>>>>>> https://www.w3.org/TR/device-posture/#introduction >>>>>>>>>>> >>>>>>>>>>> Specification https://www.w3.org/TR/device-posture >>>>>>>>>>> >>>>>>>>>>> Summary >>>>>>>>>>> >>>>>>>>>>> This API helps developers to detect the current posture of a >>>>>>>>>>> foldable device. The device posture is the physical position in >>>>>>>>>>> which a >>>>>>>>>>> device holds which may be derived from sensors in addition to the >>>>>>>>>>> angle. >>>>>>>>>>> From enhancing the usability of a website by avoiding the area of a >>>>>>>>>>> fold, >>>>>>>>>>> to enabling innovative use cases for the web, knowing the posture >>>>>>>>>>> of a >>>>>>>>>>> device can help developers tailor their content to different >>>>>>>>>>> devices. >>>>>>>>>>> Content can be consumed and browsed even when the device is not >>>>>>>>>>> flat, in >>>>>>>>>>> which case the developer might want to provide a different layout >>>>>>>>>>> for it >>>>>>>>>>> depending on the posture state in which the device is being used. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Blink component Blink>FoldableAPIs >>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EFoldableAPIs> >>>>>>>>>>> >>>>>>>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/575 >>>>>>>>>>> >>>>>>>>>>> TAG review status Issues addressed >>>>>>>>>>> >>>>>>>>>>> Risks >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Interoperability and Compatibility >>>>>>>>>>> >>>>>>>>>>> None >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Gecko*: No signal ( >>>>>>>>>>> https://github.com/mozilla/standards-positions/issues/882) >>>>>>>>>>> >>>>>>>>>>> *WebKit*: No signal ( >>>>>>>>>>> https://github.com/WebKit/standards-positions/issues/328) >>>>>>>>>>> >>>>>>>>>>> *Web developers*: >>>>>>>>>>> >>>>>>>>>>> https://github.com/w3c/device-posture/issues/111#issuecomment-2363251667 >>>>>>>>>>> >>>>>>>>>>> *Other signals*: >>>>>>>>>>> >>>>>>>>>>> WebView application risks >>>>>>>>>>> >>>>>>>>>>> Does this intent deprecate or change behavior of existing APIs, >>>>>>>>>>> such that it has potentially high risk for Android WebView-based >>>>>>>>>>> applications? >>>>>>>>>>> >>>>>>>>>>> Feature is disabled on WebView for now. See >>>>>>>>>>> https://issues.chromium.org/issues/335314107 for more details. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Debuggability >>>>>>>>>>> >>>>>>>>>>> Besides the usual DevTools debugging of the CSS and JavaScript >>>>>>>>>>> API, a specific device has been added into the Device Emulation >>>>>>>>>>> mode. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Will this feature be supported on all six Blink platforms >>>>>>>>>>> (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? >>>>>>>>>>> Yes >>>>>>>>>>> >>>>>>>>>>> The API will work on all the platforms but only Android and >>>>>>>>>>> Windows will return posture information (other platforms do not >>>>>>>>>>> have this >>>>>>>>>>> category of devices) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>>>>>>>> ? Yes >>>>>>>>>>> >>>>>>>>>>> The tests aren't complete yet because we need integration with >>>>>>>>>>> WebDriver to emulate posture changes. It's being worked on. >>>>>>>>>>> https://github.com/web-platform-tests/wpt/tree/master/device-posture >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Flag name on chrome://flags device-posture >>>>>>>>>>> >>>>>>>>>>> Finch feature name kDevicePosture >>>>>>>>>>> >>>>>>>>>>> Requires code in //chrome? False >>>>>>>>>>> >>>>>>>>>>> Tracking bug >>>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1066842 >>>>>>>>>>> >>>>>>>>>>> Sample links >>>>>>>>>>> https://github.com/foldable-devices >>>>>>>>>>> >>>>>>>>>>> Estimated milestones >>>>>>>>>>> Shipping on desktop 131 >>>>>>>>>>> Origin trial desktop first 125 >>>>>>>>>>> Origin trial desktop last 128 >>>>>>>>>>> DevTrial on desktop 95 >>>>>>>>>>> Shipping on Android 131 >>>>>>>>>>> Origin trial Android first 125 >>>>>>>>>>> Origin trial Android last 128 >>>>>>>>>>> DevTrial on Android 123 >>>>>>>>>>> >>>>>>>>>>> Anticipated spec changes >>>>>>>>>>> >>>>>>>>>>> Open questions about a feature may be a source of future web >>>>>>>>>>> compat or interop issues. Please list open issues (e.g. links to >>>>>>>>>>> known >>>>>>>>>>> github issues in the project for the feature specification) whose >>>>>>>>>>> resolution may introduce web compat/interop risk (e.g., changing to >>>>>>>>>>> naming >>>>>>>>>>> or structure of the API in a non-backward-compatible way). >>>>>>>>>>> None >>>>>>>>>>> >>>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>>> https://chromestatus.com/feature/5185813744975872?gate=6219681092599808 >>>>>>>>>>> >>>>>>>>>>> Links to previous Intent discussions Intent to Prototype: >>>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/prHGPxF62i4 >>>>>>>>>>> Intent to Experiment: >>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8c244153-79c4-483e-8449-4aca14b35636%40chromium.org >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 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/540e383c-1e1c-4918-9f10-c3fb2dd9bc19%40intel.com >>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/540e383c-1e1c-4918-9f10-c3fb2dd9bc19%40intel.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+...@chromium.org. >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_U0%3DqYJnDGBM8Zm-yLh7XNT1tA1uKt1a6VzuDBHBdDYA%40mail.gmail.com >>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_U0%3DqYJnDGBM8Zm-yLh7XNT1tA1uKt1a6VzuDBHBdDYA%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+...@chromium.org. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOaK9AntwL_dhXaSvEHVAfoisf4fexB_tNTidO9BjqiWUxM2vQ%40mail.gmail.com >>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOaK9AntwL_dhXaSvEHVAfoisf4fexB_tNTidO9BjqiWUxM2vQ%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+...@chromium.org. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK_TSXKv4q4Zj%2B-iDr%3DEbdENuZbdpFqxaaNrqXn6ZgdYX%2BGEXw%40mail.gmail.com >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK_TSXKv4q4Zj%2B-iDr%3DEbdENuZbdpFqxaaNrqXn6ZgdYX%2BGEXw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Alexis Menard >>>>>>> Software Engineer @ Intel >>>>>>> >>>>>>> -- >>>>>>> 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/CAOaK9Am-Bas35FSfRbiFBcihOtrHYMMi6J_z7qfyjcMa8VQAqg%40mail.gmail.com >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOaK9Am-Bas35FSfRbiFBcihOtrHYMMi6J_z7qfyjcMa8VQAqg%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+...@chromium.org. >>>>> >>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra-%2BuPc%3DMCHjad6sMrvp_yn27zVK4DfQJb-9tCv7CXuGfQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra-%2BuPc%3DMCHjad6sMrvp_yn27zVK4DfQJb-9tCv7CXuGfQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> >>>> >>>> -- >>>> Alexis Menard >>>> Software Engineer @ Intel >>>> >>> -- >> 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/CAM0wra9O6NvXoTOG0PzKitFxMgPz%3D32JYEZcSvX7hF%3DXnzs_sw%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra9O6NvXoTOG0PzKitFxMgPz%3D32JYEZcSvX7hF%3DXnzs_sw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Alexis Menard > Software Engineer @ Intel > -- 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/CAOmohSLicaXZKyZmgmOo4qEO4UWNSN%2BXdYPYLX%3DigbgjwT1J%3Dw%40mail.gmail.com.