-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modify MIDIOptions to be able to specify software synths to be included #150
Comments
I dont think that crashing virtual synths are just a security problem. |
notator: |
toyoshim: |
Can you file a separate bug? Recovering scheme and this proposal should not affect each other, and could be an independent topic. The best design to save the browser from software synths' crashes is that browser launches an isolated service process to host software synths, and just communicates with it to control synths. Under this design, if the service process crashes, the browser could restart it. But if the software synth can cause system crashes, ...no way to recover from it. I'm not sure if it is really possible. The problem is a software synth isn't a slave technically on Windows, but it's a part of an application, or I can even say it's a master because it's working as like a part of the operating system. Since the Chrome applies multi-process architecture, this design could be a choice if it worth taking. But for now, I could not find enough reason to take the design. Also, in person, I'm negative to introduce operating system dependent features, and I'd pay much attention to web technology based virtual synth discussed at #45 . |
My distrust of general, open web site access to MIDI ports is not limited to just sysex and soft synths. I would prefer a page/site authorize mechanism for the whole MIDI subsystem. When I do authorize a page, I would certainly want access to the soft synth. |
Current spec already says: So, another browser may prompt always, and even Chrome may do in the future. Anyway, if MIDIOptions can contain more information, browsers and users can take a smart choice. |
By the way, if we prompt for all cases, it means that Web MIDI is not available over HTTP any more since Chrome does not allow permission against non-secure sites for new APIs. Is it ok? |
It may be worthwhile to mention this in the spec, but I think it's okay. On Tue, Jul 14, 2015 at 10:11 PM, Takashi Toyoshima <
|
uhm, only enable WebMIDI for https? I don't think that's a good idea (not yet). |
Well, any permission-requiring API is going to need TLS.
|
I've been thinking some more about this, and have come to the conclusion that browsers can (should, and probably will) ignore software synths altogether. Especially those built in to operating systems. This idea ought to help keep the both the Web MIDI API, and the code browsers use to implement it, simple. Consider the following scenario: It would, of course, be best if the device implemented the WebMIDIAPI MIDIOutput interface, so that I can use soft- and hardware synths interchangeably. If such a Javascript device existed, I would not have to go through the browser's implementation of the WebMIDIAPI at all, and my visitors wouldn't need to install any plugins. There are examples of Web Audio synths out there already, but I need one with a simple MIDI API, that is able to load and play custom sounds. I don't want its interface to be a complicated GUI. I have a more detailed proposal to make about setting up an open-source project which would support the delivery of concrete Web MIDI Synths, but that's off topic for this forum. I think, after getting some feedback here, that should be done at [email protected]. Would the security issue that lead to Chrome banning the Microsoft GS Wavetable Synth affect such Synths as well? I imagine not, since they would, after all, just be ordinary Web Audio applications. All the best, This posting is also an answer to threads #45, #124 and #151. |
I have developed sort of a wrapper which behave like MIDI devices. This element is a bridge between the web applications, which is using Web MIDI API, and Web Audio Synthesiser with Web MIDI Link[1]. By the way, the code to use this web application is bellow: I hope this element is one of the solution for the virtual MIDI device issue, because it is easy to implement and easy to use any Web Audio Synthesiser with tiny integration. At default, the element is using GMPlayer[2], which is developed by g200kg[3]. [1] http://www.g200kg.com/en/docs/webmidilink/ By the way, I have also developed virtual MIDI input device. |
Let me revisit this topic. OS providing software synth was one topic, but I'd count in BLE MIDI device here. So, my opinion is to change the MIDIOptions to something like this; Can we have a time to discuss this in f2f meeting at the coming TPAC? |
SGTM (to discuss at TPAC). On Tue, Oct 20, 2015 at 11:30 PM, Takashi Toyoshima <
|
Incidentally: I support a "software" type, I would rather not separate BLE devices (although I realize this will cause prompting for all midi services then.) |
WG resolution: support software option, don't support BLE. Can revisit later if necessary. |
Now, sysex is the only flag that MIDIOptions contain.
But not only sysex, but native software virtual synths have security risks even on normal messages. So, we should introduce a permission to use native software virtual synths, and if it isn't requested, we should hide software synths against the returning MIDIAccess.
Here is why virtual synths have risks even on normal messages:
Especially on Windows, user land drivers run in the same process with the browser for virtual synths, and it might crash the browser in various ways. Since sound synthesis from MIDI events are complicated, they may have crash bugs that could be security vulnerabilities.
The text was updated successfully, but these errors were encountered: