- From: jan-ivar via GitHub <sysbot+gh@w3.org>
- Date: Fri, 29 May 2015 18:45:10 +0000
- To: public-media-capture-logs@w3.org
> Is the spec prescribing a specific order for the example above?
TL;DR; I certainly hope not. In my experience, the spec tends to use
MUST when giving guarantees.
In my view, a specification is a grand simplification of an actual
implementation.
For instance, I'm working on adding the deviceId constraint to
*getUserMedia* on Firefox right now, and here's what I'm looking at
having it do to accomplish what it needs to do:
* Just in case a deviceId constraint is used, first call (the
internal equivalent of) mediaDevices.enumerateDevices() to get all
persistent device ids anonymized for the current origin (essentially
one-way-hashes of raw device-ids with an origin-specific key).
* This is a cross-process call to the *chrome* process to access
the browser's profile-dir (we must be on chrome process's main thread
to access it), then over to a second thread there to do file io to
read the persistent origin-key list from disk, then message back an
existing or new key.
* Once back on the *content* process, dispatch over to the media
thread to read the raw device list, and back (because our crypto
library has trouble off-main-thread).
* Back on main thread, hash raw device-ids with the origin-key, to
produce an origin-relevant list.
* With origin-relevant list in hand, dispatch yet again to media
thread where constraints are applied.
* Then from there, notify the permission doorhanger code which is
written in JavaScript (main thread).
* Then if the end-user ever responds to any of the choices (or
persitent permissions have been granted), communicate back to media
thread which dispatches results back to main thread where promises are
resolved/rejected.
Any definition of "*Run the following steps asynchronously*" stricter
than "please do something equivalent to this sometime later" would
disallow much of this. So no, I would not assume much about timing
here.
--
GitHub Notif of comment by jan-ivar
See
https://github.com/w3c/mediacapture-main/issues/174#issuecomment-106901042
Received on Friday, 29 May 2015 18:45:11 UTC