This change, shipping in Chrome 128, provides a secure and reliable way to identify individual pen (pointers) interacting with the screen to set specific colors or pen shapes for each device interacting with the digitizer. It extends the PointerEvent interface to include a new attribute, deviceProperties. This contains the attribute uniqueId, that represents a session-persistent, document isolated, unique identifier that you can reliably use to identify individual pens interacting with the page.
Also in Chrome 128, Promise.try makes it easier to handle errors with Promises. There’s a pattern where you have a function, f. This function may be async, and return a Promise, or it may not. To use Promise semantics to handle errors in both cases, you wrap the function in a Promise. This is usually achieved with new Promise(resolve => resolve(f())).
Promise.try is a more straightforward way to accomplish the same. It lets you start a Promise chain that catches all errors in .catch handlers instead of having to handle both synchronous and asynchronous exception flows.