Open brianpeiris opened 10 years ago
While we're at it, it would be helpful to have some kind of flag or property that tells us whether a given device is the fake device for debugging (i.e. what Chrome calls "Mockulus Rift") or is a real device.
It's actually unlikely that these will provide this info -- they may even get more opaque. Doing so would provide extra bits that sites can use to fingerprint users, but I'm still working through the details of what we can do about that. When do you need to account for optical warp factors yourself directly? Is knowing the recommended FOV values + resolutions not enough? (That is, why do you care if it's a DK1 or DK2 [or something else, e.g. Gear VR])
I care specifically to account for the resolution differences between DK1 and DK2. The text in HTML content (displayed via CSS 3D transforms) is too small in the DK1. Perhaps this is a bug in the CSS rendering/warp.
Ah yes, the CSS rendering needs a lot of work done to it :)
@vvuk, I'm all for minimizing fingerprinting, but I'm not hopeful. The Oculus config util asks for height, gender and IPD. Those are all useful pieces of information for a VR experience. Combined with all the other device specs you can gather, that could really narrow it down quite a bit.
Perhaps the extra information should be behind a permission prompt. So anybody would be able to query what kind of devices you have available with some basic capabilities - stereoscopic display, head tracking, misc controllers, etc. But if you want to actually use the head tracking and get all that other information, you have to ask for permission. That way there's some balance where a page that really uses VR can have enough info for fingerprinting, but any old banner ad or like button that runs in an iframe will only know whether or not I have an HMD at all. And as long as using VR requires full screen, you could even block the API entirely for cross-origin iframes that don't have the allowfullscreen attribute.
On the other hand, this approach could cause problems for the seamless linking between pages that we were discussing over in the webvr mailing list. Something to think about.
getVRDevices returns device information that is not very useful:
The Chromium implementation actually returns "Oculus Rift DK2" as the deviceName.
This information (e.g. DK1 vs DK2) is useful when we need to account for different resolutions and optical warp factors.
Although, ideally I suppose we'd be sniffing for capabilities instead of particular devices in accordance to the web's best practices. Right now my application is guessing whether the user is in a DK1 based solely on window resolution when in fullscreen.