On Mon, Dec 12, 2022 at 1:07 PM 'Ben Mathwig' via blink-dev < blink-dev@chromium.org> wrote:
> > --- > *Sahir & Ben: wondering why a new deviceId field seems more logical now > against the original proposal of repurposing the pointerId field? Is it > because of the compat concern you raised in w3c/pointerevents/issues/353 > <https://github.com/w3c/pointerevents/issues/353#issuecomment-1346776842>?* > --- > > The primary reason is the deterministic nature of deviceId compared to > pointerId. The scenario would be: (a) If the device supports getting a > unique hardware identifier, we randomly generate an integer and persist > that integer for the document lifespan. (b) If the device does not support > getting a unique hardware identifier, does pointerId fall back to its > original behavior? In the spec, we decided between null, undefined, and > integer as the deterministic values of deviceId. > > We *could* use pointerId instead, but we'd have to align on the solution > for (b) > I guess we should take this to a GitHub repo somewhere, but I can't help but interject: sounds like a pretty good use case for InputDeviceCapabilities <https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities> to me (i.e. 'hasDeterministicPointerId') ☺. Perhaps along with a boolean on the event for the limitation case discussed in the explainer. On Monday, December 12, 2022 at 8:08:11 AM UTC-8 Mustaq Ahmed wrote: > >> Supporting consistent IDs for supported pens sounds great. >> >> Sahir & Ben: wondering why a new deviceId field seems more logical now >> against the original proposal of repurposing the pointerId field? Is it >> because of the compat concern you raised in w3c/pointerevents/issues/353 >> <https://github.com/w3c/pointerevents/issues/353#issuecomment-1346776842> >> ? >> >> >> On Thu, Dec 8, 2022 at 5:16 PM Rick Byers <rby...@chromium.org> wrote: >> >>> On Thu, Dec 8, 2022 at 1:17 PM Sahir Vellani <sahir....@microsoft.com> >>> wrote: >>> >>>> Thank you for all the feedback! >>>> >>>> >>>> >>>> Rick, yes that’s correct. The ID will be refreshed on reload and >>>> iframes will have a different ID to their parent/each other. Also, we can >>>> definitely explore integration with web driver and adding a WPT test. >>>> >>> >>> Perfect. I'm not a privacy reviewer, but that makes a lot of sense to >>> me. >>> >>> Ben, any thoughts on the PEWG path Rick mentions below? >>>> >>> >>> Sounds <https://github.com/w3c/pointerevents/issues/353> like the >>> current editor / WG chair prefers a WICG spec until L3 gets finalized >>> anyway. But knowing it's just a process thing and can trivially be moved >>> into the PE spec once L3 reaches REC seems good enough to me. >>> >>> Sahir >>>> >>>> >>>> >>>> *From:* Rick Byers <rby...@chromium.org> >>>> *Sent:* Tuesday, December 6, 2022 12:34 PM >>>> *To:* Sahir Vellani <sahir....@microsoft.com>; Mustaq Ahmed < >>>> mus...@chromium.org>; Robert Flack <fla...@chromium.org> >>>> *Cc:* blin...@chromium.org; Ben Mathwig <benjamin...@microsoft.com> >>>> *Subject:* [EXTERNAL] Re: [blink-dev] Intent to Prototype: >>>> PointerEvent.deviceId for Mult-Pen Inking >>>> >>>> >>>> >>>> You don't often get email from rby...@chromium.org. Learn why this is >>>> important <https://aka.ms/LearnAboutSenderIdentification> >>>> >>>> Cool, looks like a nice little addition to me. +Mustaq Ahmed and +Robert >>>> Flack from the Chrome interactions team who are likely code reviewers. >>>> >>>> >>>> >>>> The only real potential debate I see is around the details of the >>>> privacy protections. If I understand correctly "per document instance" >>>> means that the IDs will even be different across iframes in the same tab, >>>> and also when a page is reloaded. Is that right? If so, I can't see how it >>>> would be an issue. >>>> >>>> >>>> >>>> On Mon, Dec 5, 2022 at 12:49 PM 'Sahir Vellani' via blink-dev < >>>> blin...@chromium.org> wrote: >>>> >>>> Contact emails >>>> >>>> bema...@microsoft.com, sahir....@microsoft.com >>>> >>>> Explainer >>>> >>>> >>>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PointerEventDeviceId/explainer.md >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2FPointerEventDeviceId%2Fexplainer.md&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=G%2Be9w01lXS3f5pbAJTk57Q%2BAuMz4aDPZUwIQKjwQbOc%3D&reserved=0> >>>> >>>> Specification >>>> >>>> >>>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PointerEventDeviceId/explainer.md >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2FPointerEventDeviceId%2Fexplainer.md&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=G%2Be9w01lXS3f5pbAJTk57Q%2BAuMz4aDPZUwIQKjwQbOc%3D&reserved=0> >>>> >>>> >>>> >>>> FWIW with my former PointerEvents spec editor hat on, I pinged this >>>> issue >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fw3c%2Fpointerevents%2Fissues%2F353&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=shwJW5sh9Z7noHd%2BxTIscswn0dmrQ8ovNHvBohtVM3M%3D&reserved=0> >>>> on the PointerEvents spec. We've had 'extensions' to the PointerEvents spec >>>> in the past, so the PEWG may be amenable to something simple and pragmatic >>>> that'll naturally make it into the next official PE spec rather than >>>> starting with WICG. But with my Blink API owner hat on, either path is >>>> fine. >>>> >>>> >>>> >>>> Summary >>>> >>>> As devices with advanced pen input capabilities are becoming >>>> increasingly prevalent, it is important that the web platform continues to >>>> evolve to fully support these advanced features in order to unlock rich >>>> experiences for both end users and developers. One such advancement is the >>>> ability for a device's digitizer to recognize more than one pen device >>>> interacting with it simultaneously. This feature is an extension to the >>>> PointerEvent interface to include a new attribute, deviceId, that >>>> represents a session-persistent, document isolated, unique identifier that >>>> a developer can reliably use to identify individual pens interacting with >>>> the page. >>>> >>>> >>>> >>>> Blink component >>>> >>>> Blink>Input >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink%253EInput&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=KOnl6tr0L%2BBsJDBmleREcYjsWL5KJGQRf8yBWAWEtz0%3D&reserved=0> >>>> >>>> Motivation >>>> >>>> Currently, developers have no way to distinguish between two individual >>>> pens on an ink-enabled digitizer. The existing PointerEvent.id attribute is >>>> implemented in different ways and does not always persist for each ink >>>> stroke or interaction with the screen. Developers can use this change to >>>> have a secure and reliable way to identify individual pen (pointers) >>>> interacting with the screen in order to set specific colors or pen shapes >>>> for each device interacting with the digitizer. >>>> >>>> >>>> >>>> Initial public proposal >>>> >>>> >>>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PointerEventDeviceId/explainer.md >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2FPointerEventDeviceId%2Fexplainer.md&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=G%2Be9w01lXS3f5pbAJTk57Q%2BAuMz4aDPZUwIQKjwQbOc%3D&reserved=0> >>>> >>>> TAG review >>>> >>>> >>>> >>>> TAG review status >>>> >>>> Pending >>>> >>>> Risks >>>> >>>> Fingerprinting risks, which will be mitigated by randomizing the ID >>>> each renderer session. >>>> >>>> Interoperability and Compatibility >>>> >>>> >>>> >>>> *Gecko*: Request for Position: Extending the PointerEvent with Unique >>>> DeviceId Attribute · Issue #715 · mozilla/standards-positions · GitHub >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmozilla%2Fstandards-positions%2Fissues%2F715&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tSQAhmHBFJzejfxrGlZvMxC13LNtvhlYBQCp0%2FGffC0%3D&reserved=0> >>>> >>>> *WebKit*: Request for Position: Extending the PointerEvent with Unique >>>> DeviceId Attribute · Issue #102 · WebKit/standards-positions · GitHub >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWebKit%2Fstandards-positions%2Fissues%2F102&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2FizM7QU4r4xhCg2hmy8KCnKLB92KSqBh2hdMSGxEHb4%3D&reserved=0> >>>> >>>> *Web developers*: No signals >>>> >>>> *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?* >>>> >>>> None >>>> >>>> Debuggability >>>> >>>> deviceId will be available via DevTools for front-end debugging. >>>> >>>> Is this feature fully tested by web-platform-tests >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmain%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=7WmFy2DcTeNmg0ZsyOAnYDgDwXH0lQh0uxwApWGtPX8%3D&reserved=0> >>>> ? >>>> >>>> No >>>> >>>> >>>> >>>> We've got automation plumbing for the rest of PointerEvents I believe. >>>> Any reason not to add plumbing through WebDriver for this too and an >>>> automated WPT test? I suppose the value is pretty low, but IMHO would be >>>> nice if it's not too much more expensive than the alternative chromium-only >>>> tests. >>>> >>>> >>>> >>>> Flag name >>>> >>>> PointerEventDeviceId >>>> >>>> Requires code in //chrome? >>>> >>>> False >>>> >>>> Estimated milestones >>>> >>>> No milestones specified >>>> >>>> >>>> >>>> Link to entry on the Chrome Platform Status >>>> >>>> https://chromestatus.com/feature/5114132234240000 >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5114132234240000&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tDayY%2FyoZL4k%2Bq3WUeeKhAAHUM9AOBrEatMlXXpXKHE%3D&reserved=0> >>>> >>>> This intent message was generated by Chrome Platform Status >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2F&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556723904504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=nPWfOUyhwzxBKl%2FUOasrtn%2B3PZSJBd0x%2F2QOLe0b1W8%3D&reserved=0> >>>> . >>>> >>>> >>>> >>>> -- >>>> 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/SA0PR00MB1033E5DE0BDE42239E647E9AFB189%40SA0PR00MB1033.namprd00.prod.outlook.com >>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FSA0PR00MB1033E5DE0BDE42239E647E9AFB189%2540SA0PR00MB1033.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7CSahir.Vellani%40microsoft.com%7C46111826fa2b47ee46a508dad7c94550%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638059556724060722%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=O5hLFpJJNCBM9H1VaonKLfZ0P%2FSAjFix22LEZ%2BnoImk%3D&reserved=0> >>>> . >>>> >>>> -- > 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/870380fe-ab9a-4925-8db1-261efa233295n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/870380fe-ab9a-4925-8db1-261efa233295n%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/CAFUtAY9cm%2BaAWc3%2Ba2b62YSQWPM8%2B4tMf6d52V51mzJKc8b2dA%40mail.gmail.com.