Release Vulpes OS 2.7-preview.22
This commit is contained in:
parent
200d1fb235
commit
a138f97877
294 changed files with 515786 additions and 187 deletions
23
services/media-permission.mjs
Normal file
23
services/media-permission.mjs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
// Use Gaia's permission panel so fullscreen hosts do not open a hidden desktop dialog.
|
||||
export function requestMediaPermission(win, request, clone = value => value) {
|
||||
return new Promise(resolve => {
|
||||
const finish = result => {
|
||||
win.removeEventListener('mozContentEvent', response);
|
||||
win.removeEventListener('pagehide', cancelled);
|
||||
resolve(result);
|
||||
};
|
||||
const response = event => {
|
||||
const detail = event.detail;
|
||||
if (detail?.id !== request.id || !['permission-allow', 'permission-deny'].includes(detail.type)) return;
|
||||
finish({allowed:detail.type === 'permission-allow', remember:detail.remember === true});
|
||||
};
|
||||
const cancelled = () => finish({allowed:false, remember:false});
|
||||
win.addEventListener('mozContentEvent', response);
|
||||
win.addEventListener('pagehide', cancelled, {once:true});
|
||||
win.dispatchEvent(new win.CustomEvent('mozChromeEvent', {detail:clone({
|
||||
type:'permission-prompt', id:request.id, origin:request.origin,
|
||||
manifestURL:request.manifestURL, isApp:true, isGranted:false, remember:false,
|
||||
permissions:{[request.kind === 'microphone' ? 'audio-capture' : 'video-capture']:[]},
|
||||
})}));
|
||||
});
|
||||
}
|
||||
Loading…
Reference in a new issue