Bug 1345079 - Allowing screensharing with no screen selected should not block the camera. r=johannh
MozReview-Commit-ID: JKYaDGyL5t
--- a/browser/modules/webrtcUI.jsm
+++ b/browser/modules/webrtcUI.jsm
@@ -722,18 +722,18 @@ function prompt(aBrowser, aRequest) {
this.mainAction.callback = function(aState) {
let remember = aState && aState.checkboxChecked;
let allowedDevices = [];
let perms = Services.perms;
if (videoDevices.length) {
let listId = "webRTC-select" + (sharingScreen ? "Window" : "Camera") + "-menulist";
let videoDeviceIndex = doc.getElementById(listId).value;
- let allowCamera = videoDeviceIndex != "-1";
- if (allowCamera) {
+ let allowVideoDevice = videoDeviceIndex != "-1";
+ if (allowVideoDevice) {
allowedDevices.push(videoDeviceIndex);
// Session permission will be removed after use
// (it's really one-shot, not for the entire session)
perms.add(uri, "MediaManagerVideo", perms.ALLOW_ACTION,
perms.EXPIRE_SESSION);
if (!webrtcUI.activePerms.has(aBrowser.outerWindowID)) {
webrtcUI.activePerms.set(aBrowser.outerWindowID, new Set());
}
@@ -742,19 +742,16 @@ function prompt(aBrowser, aRequest) {
if (device.deviceIndex == videoDeviceIndex) {
webrtcUI.activePerms.get(aBrowser.outerWindowID)
.add(aRequest.windowID + device.mediaSource + device.id);
break;
}
}
if (remember)
SitePermissions.set(uri, "camera", SitePermissions.ALLOW);
- } else {
- let scope = remember ? SitePermissions.SCOPE_PERSISTENT : SitePermissions.SCOPE_TEMPORARY;
- SitePermissions.set(uri, "camera", SitePermissions.BLOCK, scope, aBrowser);
}
}
if (audioDevices.length) {
if (!sharingAudio) {
let audioDeviceIndex = doc.getElementById("webRTC-selectMicrophone-menulist").value;
let allowMic = audioDeviceIndex != "-1";
if (allowMic) {
allowedDevices.push(audioDeviceIndex);
@@ -766,19 +763,16 @@ function prompt(aBrowser, aRequest) {
if (device.deviceIndex == audioDeviceIndex) {
webrtcUI.activePerms.get(aBrowser.outerWindowID)
.add(aRequest.windowID + device.mediaSource + device.id);
break;
}
}
if (remember)
SitePermissions.set(uri, "microphone", SitePermissions.ALLOW);
- } else {
- let scope = remember ? SitePermissions.SCOPE_PERSISTENT : SitePermissions.SCOPE_TEMPORARY;
- SitePermissions.set(uri, "microphone", SitePermissions.BLOCK, scope, aBrowser);
}
} else {
// Only one device possible for audio capture.
allowedDevices.push(0);
}
}
if (!allowedDevices.length) {