What is the problem?
On versions of Chrome between 90 and 97 (inclusive), the request to /checkuser/v0/useragent-clienthints/revision/ returns:
{"errorKey":"rest-missing-body-field","messageTranslation:{"en":"Mandatory field \"brands\" missing from request body"} ... }
(or alternatively ...\"fullVersionList\" missing...)
These versions of Chrome do support client hints, but are missing fields we mark as required. We could perhaps make those fields optional.
Versions 90-92 are missing the brands field.
Versions 93-97 are missing the fullVersionList field.
This also affects Edge and Opera (as they both are based on Chrome).
Steps to reproduce problem
- On a wiki with CheckUser installed and $wgCheckUserClientHintsEnabled = true (which is the default)
- Installing on docker
- Create one on https://patchdemo.wmflabs.org/ (You could try this exist one https://patchdemo.wmflabs.org/wikis/c7fc0fc3e1/wiki/Main_Page if it is still up)
- On any Chrome/Edge version 90-97 (or a version of Opera based on those versions of Chrome)
- Open devtools
- Make an edit (via Source Editor, Visual Editor or Discussion Tools)
- In devtools network tab, you should see a request to <server>/w/rest.php/checkuser/v0/useragent-clienthints/revision/<revid>
Expected behavior: Request returns 200
Observed behavior: Request returns 400
Environment
Browser: Tested on various versions of Chrome, Edge and Opera (on an emulated version of Windows 11).
Wiki(s): CheckUser 2.5 (93ada3d) 14:18, 25 July 2023.