It's unclear to me that this should have a permission. LGTM1
On Mon, Oct 7, 2024, 7:19 AM Alexis Menard <alexis.men...@intel.com> wrote: > > > On Mon, Oct 7, 2024 at 9:31 AM Ian Clelland <iclell...@chromium.org> > wrote: > >> >> >> On Mon, Oct 7, 2024 at 7:36 AM Alexis Menard <alexis.men...@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 <dome...@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.men...@intel.com> >>>> wrote: >>>> >>>>> Contact emails alexis.men...@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+unsubscr...@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+unsubscr...@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+unsubscr...@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+unsubscr...@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+unsubscr...@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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA44PQgUHazeY_g09S_J1Sy%2BwiwD4pAJ-gW6HgazT0wyLR6ATQ%40mail.gmail.com.