feat: add session.setPermissionCheckHandler (#13925)
* feat: add session.setPermissionCheckHandler to handle syncornous permission checks vs requests * spec: add tests for session.setPermissionCheckHandler * docs: add docs for session.setPermissionCheckHandler * feat: add mediaType to media permission checks * chore: cleanup check impl
This commit is contained in:
parent
afdb6c5f90
commit
68da311ed1
10 changed files with 142 additions and 1 deletions
|
@ -106,6 +106,10 @@ describe('chromium feature', () => {
|
|||
describe('navigator.mediaDevices', () => {
|
||||
if (isCI) return
|
||||
|
||||
afterEach(() => {
|
||||
remote.getGlobal('permissionChecks').allow()
|
||||
})
|
||||
|
||||
it('can return labels of enumerated devices', (done) => {
|
||||
navigator.mediaDevices.enumerateDevices().then((devices) => {
|
||||
const labels = devices.map((device) => device.label)
|
||||
|
@ -118,6 +122,19 @@ describe('chromium feature', () => {
|
|||
}).catch(done)
|
||||
})
|
||||
|
||||
it('does not return labels of enumerated devices when permission denied', (done) => {
|
||||
remote.getGlobal('permissionChecks').reject()
|
||||
navigator.mediaDevices.enumerateDevices().then((devices) => {
|
||||
const labels = devices.map((device) => device.label)
|
||||
const labelFound = labels.some((label) => !!label)
|
||||
if (labelFound) {
|
||||
done(new Error(`Device labels were found: ${JSON.stringify(labels)}`))
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
}).catch(done)
|
||||
})
|
||||
|
||||
it('can return new device id when cookie storage is cleared', (done) => {
|
||||
const options = {
|
||||
origin: null,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue