New issue
Advanced search Search tips

Issue 912501 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Web MIDI: sysex kills renderer if the first MIDIAccess does not request, but the second does, and send sysex

Project Member Reported by toyoshim@chromium.org, Dec 6

Issue description

Repro step:
1. requestMIDIAccess()
2. requestMIDIAccess({'sysex': true}) after 1 was resolved
3. send sysex over the second MIDIAccess instance

Browser detects sysex of 3. as wrong requests, and kills the renderer.

This is because the current implementation shares the same session within the renderer process, and its permission is bound to the first request.

If the first request obtains the permission, Blink side client rejects/drops unauthorized MIDI messages per MIDIAccess basis correctly. But if the first request does not, permission for the shared session is not upgraded correctly.
 
fyi, reload after the first crash would work, because the renderer already gets authorized by the second request, and the MIDIHost will be initialized with the registered sysex permission. But, once the renderer process is changed, it will be killed again.

This issue seems to exist from the beginning, and wasn't a recent regression.

Sign in to add a comment