Comment 6 for bug 1410996

Revision history for this message
Olivier Tilloy (osomon) wrote : Re: Add WebView.mediaAccessPermissionRequested API

I just did a quick test by modifying the webview implementation in the browser to always accept media access permission requests:

    WebView {
        onMediaAccessPermissionRequested: request.allow()
    }

And this is enough to make audio recording just work (successfully tested with https://voice-memos.appspot.com/).
Video doesn’t seem to work though, it will probably require more work.

The first time the browser requests access to the microphone, I get a trust prompt saying: "Chrome input wants to record audio.".
This decision is remembered, but when I go to system-settings>security>access>mic, there is an empty entry for the browser (chrome input). The contents of /home/phablet/.local/share/PulseAudio/trust.db is as follows:

    sqlite> select * from requests;
    Id|ApplicationId|Feature|Timestamp|Answer
    1|Chrome input|0|1439981817195438084|1

This is not very user friendly, I guess system settings try to match the application ID ("Chrome input") with an existing confined app, and failing to do that it displays an empty entry. I wonder if we could add an API to oxide to allow the embedder to override the application ID that is passed to the query.