Just to clarify, I've made the change in the deviceId verbiage in the spec, not pointerId :)
On Thursday, January 18, 2024 at 8:40:00 PM UTC-8 Sahir Vellani wrote: > I can't say what the reasoning is for that behavior in > PointerEvent.pointerId, as I was not involved. However, I will make a > change in the spec to only use the value of 1 for primary mouse device. > There may be a scenario where PointerEvent.deviceId is unsupported by the > UA (separate from an invalid id of -1); e.g, on platforms where the feature > is unimplemented. In that case, developers might have a check like > if(event.deviceId) {...}. If the deviceId is 0 for a valid reason, it will > fail that check. I see no harm in limiting the deviceId from primary mouse > to 1. It will avoid this interop issue and make the feature more friendly > to web developers. > > On Thursday, January 18, 2024 at 6:26:20 PM UTC-8 mike...@chromium.org > wrote: > >> Forgive my ignorance around this API generally, but is there any reason >> the spec can't require a single value? If not, why not? >> On 1/18/24 3:05 PM, 'Sahir Vellani' via blink-dev wrote: >> >> Appreciate the feedback! Yes the PR was reviewed by WG members for any >> major concerns; but I believe there will be more comprehensive feedback >> once the Level 3 spec lands. Regarding your concern, the language is based >> on that of PointerEvent.pointerId. The ultimate goal here is to >> differentiate between devices, and like pointerId, the way the ids are >> assigned has been left to the UA. I think web developers should be able to >> rely on PointerEvent.pointerType to confirm whether the pointer event comes >> from the primary mouse device. In Chromium, we transmit 1 for the mouse for >> PointerEvent.deviceId. >> >> On Wednesday, January 17, 2024 at 7:39:48 AM UTC-8 yoav...@chromium.org >> wrote: >> >>> On Wednesday, January 17, 2024 at 3:51:59 PM UTC+1 vmp...@google.com >>> wrote: >>> >>> On Thu, Jan 11, 2024 at 6:08 PM 'Sahir Vellani' via blink-dev < >>> blin...@chromium.org> wrote: >>> >>> Hi all, good news! >>> >>> Reviving this thread because we have accomplished: >>> 1. TAG Review Completion: Extending the PointerEvent with Unique >>> DeviceId Attribute · Issue #880 · w3ctag/design-reviews (github.com) >>> <https://github.com/w3ctag/design-reviews/issues/880> Resolution: >>> Satisfied >>> 2. WICG Repository for standardization discussions. Link to explainer in >>> WICG Repo: pointer-event-extensions/pointer-event-device-id-explainer.md >>> at main · WICG/pointer-event-extensions (github.com) >>> <https://github.com/WICG/pointer-event-extensions/blob/main/pointer-event-device-id-explainer.md> >>> 3. A PR against the PointerEvent spec with proposed changes: Add >>> deviceId to PointerEvent spec by sahirv · Pull Request #495 · >>> w3c/pointerevents (github.com) >>> <https://github.com/w3c/pointerevents/pull/495/files> We will be >>> waiting for Spec Level 3 to come out before this can be merged; but this >>> provides an official starting point for the standardized description of >>> this feature. Based on the feedback received, I don't anticipate any major >>> changes to the design. >>> >>> >>> Thanks for the PR! Was it reviewed by other WG members? >>> For example, "User agents MAY reserve a generic `deviceId` value of `0` >>> or `1` for events generated by the primary mouse device." seems risky from >>> an interop perspective. E.g. developers may rely on some UAs doing that and >>> fail when others don't. >>> >>> >>> For posterity, I was initially unsure why this wasn't an issue on the >>> w3c/pointerevents, but it does seem like the discussion happened there and >>> folks agreed to move this in WICG: https://github.com/w3c/ >>> pointerevents/issues/353 \o/ >>> >>> >>> Reviewers, can we please get another review for shipping this feature? >>> >>> On Wednesday, October 18, 2023 at 8:55:43 AM UTC-7 sligh...@chromium.org >>> wrote: >>> >>> I agree that this needs a spec PR and the explainer should at least >>> migrate to WICG before we agree to ship. Also, can you please link to the >>> TAG review? >>> >>> Best, >>> >>> Alex >>> >>> On Tuesday, October 17, 2023 at 4:16:41 AM UTC-7 Yoav Weiss wrote: >>> >>> On Tue, Oct 17, 2023 at 12:42 AM Mike Taylor <mike...@chromium.org> >>> wrote: >>> >>> LGTM1 >>> On 10/15/23 11:07 AM, 'Sahir Vellani' via blink-dev wrote: >>> >>> Thanks for the feedback, I wasn't aware they were mandatory. The steps >>> have been started, just awaiting feedback from Security and Privacy >>> reviewers. I've received LGTMs for all other areas. After our response to >>> WebKit's question, they did not have any further follow-up questions. So >>> I'm assuming all is well. >>> >>> On Wednesday, October 11, 2023 at 4:59:15 AM UTC-7 Daniel Bratell wrote: >>> >>> I see that various mandatory steps in chromestatus >>> (privacy,security,enterprise,debuggability,testing) seems to be >>> unstarted. It is possible they were made mandatory after you create the >>> entry, but it would be good if you could get them started now at least. >>> >>> Also, it's unfortunate that TAG and standards positions requests have >>> not resulted in anything, but that is hardly your fault. There were some >>> questions in the WebKit request. Is all that ok now? >>> >>> /Daniel >>> On 2023-10-06 20:10, 'Sahir Vellani' via blink-dev wrote: >>> >>> >>> >>> On Friday, October 6, 2023 at 9:03:35 AM UTC-7 mike...@chromium.org >>> wrote: >>> >>> >>> On 10/4/23 7:43 PM, 'Sahir Vellani' via blink-dev wrote: >>> >>> Contact emails >>> gerc...@microsoft.com, sahir....@microsoft.com >>> >>> Explainer >>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ >>> PointerEventDeviceId/explainer.md >>> >>> Specification >>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ >>> PointerEventDeviceId/explainer.md >>> >>> >>> Is there a more formal spec for this? >>> Any support outside of Microsoft that would enable y'all to move this to >>> the WICG? >>> >>> >>> >>> >>> 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://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EInput> >>> >>> TAG review >>> https://github.com/w3ctag/design-reviews/issues/880 >>> >>> TAG review status >>> Pending. TAG review has been pending for 2 months. >>> >>> Risks >>> >>> >>> Interoperability and Compatibility >>> >>> >>> *Gecko*: No signal (https://github.com/mozilla/ >>> standards-positions/issues/715) >>> >>> *WebKit*: No signal (https://github.com/WebKit/ >>> standards-positions/issues/102) >>> >>> *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 >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)? >>> No >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? >>> No. However, there are web tests in Chromium that test PointerEventInit >>> with this feature. >>> >>> Flag name on chrome://flags >>> PointerEventDeviceId >>> >>> Finch feature name >>> >>> >>> Non-finch justification >>> Edge origin trials successfully underway. >>> >>> Any Origin Trial feedback you can share? >>> >>> >>> Absolutely, the feature has been working well. Our partners (Microsoft >>> Whiteboard) have enabled the feature that is dependent on this API for >>> their general audience! We did not receive any constructive feedback. This >>> API is being used by them on Microsoft Surface Hub devices, which support >>> multi-pen inking. >>> >>> >>> Requires code in //chrome? >>> False >>> >>> Measurement >>> PointerEventDeviceId use counter implemented. >>> >>> Availability expectation >>> Initially available on Chromium browsers on Windows. >>> >>> Out of curiosity, are there limitations on other platforms that prevent >>> supporting this feature? >>> >>> >>> We haven't been able to get our hands on hardware that supports other >>> platforms in addition to multi pen inking in order to implement and >>> appropriately test this feature. We welcome any sponsors for implementing >>> and testing this, especially on Linux/Android. >>> >>> >>> Adoption expectation >>> Feature is used by specific partner(s) to provide functionality >>> immediately upon launch. >>> >>> Adoption plan >>> This feature has been through origin trials on Edge. It is being used by >>> partners that provide features on devices with multi pen support. >>> >>> Non-OSS dependencies >>> >>> *Does the feature depend on any code or APIs outside the Chromium open >>> source repository and its open-source dependencies to function?* >>> Operating system API's are used to obtain the device id, and are >>> necessary for this feature to function. Please see the security >>> questionnaire in the TAG review on security and privacy concerns related to >>> the use of these APIs. >>> >>> Estimated milestones >>> Shipping on desktop >>> 120 >>> >>> >>> 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).* >>> WICG Proposal: https://github.com/WICG/proposals/issues/101 No web >>> compat/interop risk. >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5114132234240000 >>> >>> Links to previous Intent discussions >>> Intent to prototype: https://groups.google.com/a/ >>> chromium.org/d/msgid/blink-dev/SA0PR00MB1033E5DE0BDE42239E647 >>> E9AFB189%40SA0PR00MB1033.namprd00.prod.outlook.com >>> >>> 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/PH0PR00MB1349B7917876E7AC505E7 >>> 90AFBCBA%40PH0PR00MB1349.namprd00.prod.outlook.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/PH0PR00MB1349B7917876E7AC505E790AFBCBA%40PH0PR00MB1349.namprd00.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+...@chromium.org. >>> >>> To view this discussion on the web visit https://groups.google.com/a/ >>> chromium.org/d/msgid/blink-dev/c8f16bc4-8d21-450b-9178- >>> 964cba818a68n%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c8f16bc4-8d21-450b-9178-964cba818a68n%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/8077a67d-4104-48c6-9f9b- >>> 09f9e6c8b022n%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8077a67d-4104-48c6-9f9b-09f9e6c8b022n%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/13bad65e-6276-4567-b6e3- >>> 0961e44bc6d1%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/13bad65e-6276-4567-b6e3-0961e44bc6d1%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/cbc6e96b-0165-4e28-8f16- >>> 786f0dea7ac8n%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cbc6e96b-0165-4e28-8f16-786f0dea7ac8n%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+...@chromium.org. >> >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6afb2718-89f6-47d5-9052-d5ab2a8f849dn%40chromium.org >> >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6afb2718-89f6-47d5-9052-d5ab2a8f849dn%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/ad471c41-673e-48f7-ac64-b00511b5d167n%40chromium.org.