Asking on behalf of One Laptop per Child and Sugar Labs. Audio recording does not happen on https://scratch.mit.edu/ apparently because a UserMediaPermissionRequest does not occur. Steps to reproduce: * start Epiphany, open https://scratch.mit.edu/, click on Create, await loading, * click on Sound (purple circle), * click on Meow in play sound, and select Record ... Observed result: popup message dialog "Could not start recording". Expected result: as with Firefox and Safari, some sort of user media permission dialog, "Would Like to Access the Microphone", or "Will you allow scratch.mit.edu to use your microphone?", Tested on: * Fedora Rawhide 20190113, Epiphany 3.31.90 and WebKitGTK 2.23.3, * Ubuntu 18.04, Epiphany 3.28.1 and WebKitGTK 2.22.6. Also occurs on * http://webaudiodemos.appspot.com/AudioRecorder/index.html * Sugar Browse, which is also based on WebKitGTK.
Hi James, I don't think WebRTC/mediastream is enabled at runtime in Epiphany.
Well no surprise, since WebKitGTK releases do not support WebRTC. Is this page using WebRTC?
Thanks. I don't know enough about JavaScript ecosystem to answer, but both URLs given do call getUserMedia and the response in console is; TypeError: undefined is not an object (evaluating 'navigator.mediaDevices.getUserMedia') Are there any plans to support this? What's the nature of the non-support? So I can explain to others what is needed.
There is a libwebrtc/GStreamer backend implemented in WebKit trunk but it can't be enabled for WebKitGTK releases and used in GPL apps like Epiphany because libwebrtc depends on BoringSSL, licensed under BSD (with advertising clause), which, AFAIK (but IANAL) is considered incompatible with the GPL.
(In reply to Philippe Normand from comment #4) > licensed under BSD (with advertising clause) Sort of, OpenSSL license is similar to old BSD licenses and has an advertising clause. Details here: https://boringssl.googlesource.com/boringssl.git/+/3390fd88d716ea599d659c2b72b9a6cd4bb36442/LICENSE. Anyway, that's more or less right. FWIW: I'm going to try Real Soon Now to see if I can do a GDtlsConnection backend for libwebrtc. If it's not too hard, I might even be successful. We need it for Librem 5, so it's become rather urgent.
BTW WebKitUserMediaPermissionRequest has been public API since 2.8, so if it really requires WebRTC to work, then it's been broken since added? Do I misunderstand?
Well, it's not broken per-se imho, just useless if the mediastream websetting is toggled off at runtime.
*** Bug 197871 has been marked as a duplicate of this bug. ***
Not much we can do here. You would need to enable MEDIA_STREAM in your build but this is currently not supported in tarballs. We plan to ship a new WebRTC backend based on GstWebRTC but there is no ETA yet.