Gecko's implementation populates the MIDIAccess' ports asynchronously w.r.t requestMIDIAccess() call. It can therefore be that the promise returned from requestMIDIAccess is resolved, without ports being available. Later, onstatechanged is fired correctly, then the ports are added.
Reading the code, it seems like Chromium resolves the promise returned by requestMIDIAccess() after enumeration, is that right? It's probably something that we'd want clarified. It seems like a useful property.
Gecko's implementation populates the
MIDIAccess' ports asynchronously w.r.trequestMIDIAccess()call. It can therefore be that the promise returned fromrequestMIDIAccessis resolved, without ports being available. Later,onstatechangedis fired correctly, then the ports are added.Reading the code, it seems like Chromium resolves the promise returned by
requestMIDIAccess()after enumeration, is that right? It's probably something that we'd want clarified. It seems like a useful property.