I'm sending this Intent after PSA: WebDriver changes now go through the API 
owners intent 
process<https://groups.google.com/a/chromium.org/g/blink-dev/c/evhwqSOr9NA/m/Z1SCVY8jAAAJ>.
 This change does not expose new user-facing API or change existing user-facing 
behavior. It does add new CDP and ChromeDriver endpoints that are used in WPT.

The contents of some fields here were based on PSA: Adding WebDriver commands 
for interacting with FedCM 
dialogs<https://groups.google.com/a/chromium.org/g/blink-dev/c/rsBIIyLnLeA/m/U2qVbOBEAAAJ>.


Contact emails
raphael.kubo.da.co...@intel.com<mailto:raphael.kubo.da.co...@intel.com>, 
juha.j.vai...@intel.com<mailto:juha.j.vai...@intel.com>

Specification
https://github.com/w3c/sensors/pull/470

Design doc
https://docs.google.com/document/d/1JS2Wnyc9GiS_u1Ry3w4KsCyd51g8fm4RDEUcanZgzbM/edit?usp=sharing

Summary

This exposes WebDriver commands for creating, removing, querying and setting 
readings for so-called virtual sensors: sensors that do not depend on 
underlying hardware or operating system support and can be used for testing.

Blink component
Blink>Sensor<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ESensor>

Motivation

The Generic Sensor API specification has had an Automation section since 2018. 
It defined several WebDriver extension commands for 
adding/removing/querying/updating what it called "mock sensors". The idea was 
the same: allow testing sensor APIs without depending on the availability of 
said sensors.


For a number of reasons (including some implementation-specific assumptions 
baked into the text), the previous version was never implemented, so testing 
the Generic Sensor APIs in WPT relied on Mojo interfaces being implemented as 
JS mocks, which made it pretty hard for other engines to run the same tests in 
case they wanted to implement this API.


We've rewritten the relevant section in the spec (including calling "mock 
sensors" "virtual sensors" now following WebAuthn's terminology), implemented 
the new version and converted the existing web tests to make use of them.

TAG review
None

TAG review status
Not applicable

Risks


Interoperability and Compatibility

This feature implements WebDriver extension commands in ChromeDriver that are 
used in web-platform-tests and can also be used by ChromeDriver users. This 
feature is therefore not web-exposed, but it does intend to help increase 
adoption of the spec by making it possible for any implementation to run the 
existing web tests without having to use JS mocks that are heavily Mojo-based 
although not dependent on Mojo.


Gecko: No signal Gecko does not implement the Generic Sensor APIs.

WebKit: No signal WebKit does not implement the Generic Sensor APIs.

Web developers: No signals

Other signals: This allows closing 
https://github.com/web-platform-tests/wpt/issues/9686

Ergonomics

n/a


Activation

The new WebDriver extension commands are exposed in ChromeDriver's Python 
library. Future work includes exposing them to Selenium, Playwright and/or 
Puppeteer.


Furthermore, while not precisely an activation risk, as explained in the design 
doc using these features together with the existing DeviceOrientation CDP 
domain (optionally with DevTools frontend implementation) can lead to some 
confusion due to the way the Device Orientation spec is implemented in Chromium 
(it is based on the Generic Sensor code under the hood). If the 
DeviceOrientation.setDeviceOrientationOverride() CDP command is called, some 
virtual sensor types will not have an effect in Blink; conversely, if some 
virtual sensor types are created without the aforementioned CDP command being 
invoked, they can be used to control the Device Orientation/Motion 
implementation in Blink.

Security

n/a, this is exposed through WebDriver. There have been changes to the Generic 
Sensor code in //content and //services, described in the design doc and under 
review by reillyg@.


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

This is a debugging feature. It exposes new ChromeDriver and CDP endpoints, but 
the DevTools frontend has not been touched.


Is this feature fully tested by 
web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
Yes

Requires code in //chrome?
True: //chrome/test/chromedriver

Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1278377

Estimated milestones

Shipping on desktop     118
Shipping on Android     118


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5173284500406272

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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DS0PR11MB73342BF79AC2F73824270FFCFE14A%40DS0PR11MB7334.namprd11.prod.outlook.com.

Reply via email to