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.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function?
Shipping on desktop
|
120
|
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).
Requires code in //chrome?
False
Measurement
PointerEventDeviceId use counter implemented.
Availability expectation
Initially available on Chromium browsers on Windows.
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).
Link to entry on the Chrome Platform Status
Links to previous Intent discussions
Intent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SA0PR00MB1033E5DE0BDE42239E647E9AFB189%40SA0PR00MB1033.namprd00.prod.outlook.com
This intent message was generated by Chrome Platform Status.
--
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/PH0PR00MB1349B7917876E7AC505E790AFBCBA%40PH0PR00MB1349.namprd00.prod.outlook.com.
Requires code in //chrome?
FalseMeasurement
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?
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
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.
LGTM1
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.
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 Explainer Specification
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.
Apologies, I missed that there wasn't yet a spec. I'll retract my
LGTM until then.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@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.
--
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+unsubscribe@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.
--
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/13bad65e-6276-4567-b6e3-0961e44bc6d1%40chromium.org.
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) Resolution: Satisfied2. 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)3. A PR against the PointerEvent spec with proposed changes: Add deviceId to PointerEvent spec by sahirv · Pull Request #495 · w3c/pointerevents (github.com) 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.
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.
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) Resolution: Satisfied2. 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)3. A PR against the PointerEvent spec with proposed changes: Add deviceId to PointerEvent spec by sahirv · Pull Request #495 · w3c/pointerevents (github.com) 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.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@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.
--
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+unsubscribe@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.
--
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+unsubscribe@chromium.org.
Forgive my ignorance around this API generally, but is there any
reason the spec can't require a single value? If not, why not?
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.
Hi all, any more questions or concerns?On Thursday, January 18, 2024 at 8:44:58 PM UTC-8 Sahir Vellani wrote: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.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8ac964b1-99a0-4c7d-b9eb-d02b26bdb306n%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh39TMzzU%2B8e%3DNPTLTGGKBBRg3FCdSK%2BQnkPv87pZ5RBnuGHw%40mail.gmail.com.
FWIW, in the PEWG call last week there was some question of how this relates to the pen customizations proposal. I suppose the general question is whether this should be an additional part of some hardware specific device customization in pointerEvent.penCustomizationsDetails. I think there is a risk of shipping this without consensus on the general shape, as it will make it harder to change if it's decided there's a better way to expose the information without breaking existing uses. We should probably take the API that has been incubated and bring it back for discussion in the working group.
This is a pretty niche and tiny addition which matters a lot to probably a couple websites in the world, and not at all to everyone else. It's a shame that it's taken over a year of discussion on what to ship. Worst case and we get this wrong and have something better in the future, I can't imagine it would be hard to change over and deprecate this. Sahir, do you agree? If so, I don't think it's a good use of resources to spend a lot more time debating this tiny addition, the stakes are IMHO not high here.However, I definitely think we want to give PEWG a fair chance to weigh in on the spec PR. The PR was just filed 2 weeks ago, so maybe another week delay to wait for feedback on it is reasonable? Rob, can you get this on the agenda for the next PEWG call and indicate that I think Chromium should just ship it as-is unless there's a concrete counter-proposal in the next couple weeks?
Thanks for the update Robert! That makes sense.What about deviceProperties? That would place the emphasis on the device generating the pointer event; with "properties" being generic enough to include different supported functions of the device. So we would have something like PointerEvent.deviceProperties.deviceId/PointerEvent.deviceProperties.preferredInkingColor etc.Would you be able to clarify the next steps once the structure name has been agreed upon? I believe we'll need to update the explainer, spec PR and change the chromium implementation. Anything else?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/42fff33f-62b2-4179-82aa-177fc758f52bn%40chromium.org.