Bug 1284680 - add a temporary permission for chrome code in webrtcUI.jsm draft
authorJan-Ivar Bruaroey <jib@mozilla.com>
Thu, 29 Sep 2016 11:08:29 -0400
changeset 419078 f2e7ae88c00222ac9b50d2517ad1dcf6c7f9f557
parent 419077 416f689046f873e842466d6d6e00b22bc57d0418
child 419333 ef071d473404920b3518987024715f5774f1aae5
child 419379 10c740ddea36cb5cf0b2f19df44d1375b37fec0a
push id30836
push userjbruaroey@mozilla.com
push dateThu, 29 Sep 2016 17:05:59 +0000
bugs1284680
milestone52.0a1
Bug 1284680 - add a temporary permission for chrome code in webrtcUI.jsm MozReview-Commit-ID: 7TAW0xeEhZL
browser/modules/webrtcUI.jsm
--- a/browser/modules/webrtcUI.jsm
+++ b/browser/modules/webrtcUI.jsm
@@ -504,16 +504,22 @@ function prompt(aBrowser, aRequest) {
           let deviceId = event.target.deviceId;
           if (deviceId == undefined) {
             chromeDoc.getElementById("webRTC-preview").hidden = true;
             return;
           }
 
           let constraints = { video: { mediaSource: type, deviceId: {exact: deviceId } } };
           let chromeWin = chromeDoc.defaultView;
+
+          let perms = Services.perms;
+          let chromeUri = Services.io.newURI(chromeDoc.location.href, null, null);
+          perms.add(chromeUri, "MediaManagerVideo", perms.ALLOW_ACTION,
+                    perms.EXPIRE_SESSION);
+
           chromeWin.navigator.mediaDevices.getUserMedia(constraints).then(stream => {
             let video = chromeDoc.getElementById("webRTC-previewVideo");
             video.src = chromeWin.URL.createObjectURL(stream);
             chromeDoc.getElementById("webRTC-preview").hidden = false;
             video.onloadedmetadata = function(e) {
               video.play();
             };
           }).catch(err => dump('err = ' + err + '\n'));