w3c / deviceorientation

W3C Device Orientation spec
https://www.w3.org/TR/orientation-event/
Other
49 stars 32 forks source link

automation: Adapt to Generic Sensor changes to stash provided readings #147

Open rakuco opened 3 months ago

rakuco commented 3 months ago

Closes: none (but related to w3c/sensors#487)

The following tasks have been completed:

Implementation commitment:


Just like with w3c/sensors#487, the idea is to make it possible for users to write, for example

await test_driver.create_virtual_sensor(...);
await test_driver.update_virtual_sensor(...);
window.addEventListener('deviceorientation', ...);

and receive the readings above even if the connection to the virtual sensor was made only after the addEventListener() call. Previously, users would need to carefully order the calls to addEventListener(), update_virtual_sensor() and possibly even need to add a dummy event listener first to get everything to work correctly.

Unfortunately, just as with w3c/sensor#487 this requires quite a few changes, even more so in this specification, which is quite vague when it comes to connecting to sensors and the lifetimes of such connections.

Some of that behavior is now specified for the virtual sensors case, so that each Document has a [[virtualSensorMapping]] that maps virtual sensor types to "orientation event platform sensor-likes", a concept borrowed from Generic Sensor's automation section.

Similarly to that section, the idea is that:

In the rest of the spec, we switch from attempting to derive a virtual sensor from the top-level traversable directly to trying to find a suitable platform sensor-like entry in [[virtualSensorMapping]] and checking its associated virtual sensor when one is set.

Related to: w3c/sensors#478.


Preview | Diff

rakuco commented 3 months ago

@reillyeon PTAL. The Generic Sensor side of this change looks OK to me, but, as usual, trying to apply the same ideas to this specification leads to a lot of hand-waving and hoping that things make sense.

reillyeon commented 3 months ago

Can you update the PR description to include the new pull request template and link to the Chromium issue where the behavior you are specing here was implemented and make sure there are WebKit and Gecko issues for implementing the sensor automation interface as well?

reillyeon commented 3 months ago

@rakuco have you had a chance to file issues with the other implementers of the DeviceOrientation Events API asking about implementing this automation interface?

rakuco commented 3 months ago

@rakuco have you had a chance to file issues with the other implementers of the DeviceOrientation Events API asking about implementing this automation interface?

Oops, thanks for the reminder. I'll get back to this issue this week.

rakuco commented 2 months ago

@reillyeon done. I've updated the PR message to include the contents of .github/PULL_REQUEST_TEMPLATE.md at the top and filed bugs for Gecko and WebKit (dunno if this is enough to tick the corresponding checkboxes).

Do note that this should be reviewed together with w3c/sensors#478.