{"id":354,"date":"2018-05-09T11:59:12","date_gmt":"2018-05-09T11:59:12","guid":{"rendered":"https:\/\/blog.mozilla.org\/webrtc\/?p=354"},"modified":"2018-05-10T14:51:41","modified_gmt":"2018-05-10T14:51:41","slug":"better-privacy-on-camera-mute-in-firefox-60","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/","title":{"rendered":"Better privacy on camera mute in Firefox 60"},"content":{"rendered":"<p>On a web conference call, have you ever wondered if people can see you? Maybe you&#8217;ve tried to decipher the site&#8217;s video-mute button, often some red camera symbol with a slash through it\u2014<em>&#8220;Is it on or off? <\/em><em>Does red mean stop or live? <\/em><em>Is the slash telling me I&#8217;m muted now, or to click here to mute?&#8221;<\/em>\u2014All the while the camera light at the top of your laptop keeps glaring at you brightly.<\/p>\n<p>We have fixed this in Firefox 60.<\/p>\n<p>We can&#8217;t fix the websites, but in Firefox 60, whenever you video-mute, your laptop or USB camera hardware light will now extinguish. Whenever you unmute again, it will light back up. No more worrying if you&#8217;re live!<!--more--><\/p>\n<p>Try it out in <a href=\"https:\/\/firefox.com\/\">Firefox 60<\/a> below:<iframe loading=\"lazy\" src=\"https:\/\/jsfiddle.net\/jib1\/3ykab1e2\/39\/embedded\/result,js,html\/\" allow=\"camera; microphone\" width=\"100%\" height=\"310px\" frameborder=\"0\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe>Check your camera hardware light and browser indicators in the URL bar when you mute.<\/p>\n<p>This works for the microphone as well, but unless your camera is of the <a href=\"https:\/\/www.microsoft.com\/accessories\/en-us\/products\/webcams\/lifecam-hd-3000\/t3h-00011\">Microsoft LifeCam<\/a> series\u2014a rare breed whose hardware lights comes on when their mics are hot\u2014you probably won&#8217;t notice.<\/p>\n<p>This improves privacy by removing some paranoia over buggy or even malicious websites. After all, the buttons you push to mute and unmute are on the web page. This means the website is interpreting your button pushes and controlling your camera. You&#8217;re trusting the web site to do what you asked it to. With this change, you can verify it.<\/p>\n<p>No hardware light on your device? Despair not. Browsers replicate this light in their URL bar: a camera\/microphone indicator blinks red whenever the camera and\/or microphone are hot. Firefox 60&#8217;s indicator additionally turns gray on mute. Importantly, it does not go away, because the website still has permission to access your device(s), and can resume recording you at its discretion, at which point the indicator would begin to blink red again. When the indicator goes away completely, it cannot come back, and the website can no longer record you without asking for permission anew. Preserving this user guarantee was key.<\/p>\n<p>The camera light is not programmable, so you might notice a bit of delay on unmute. That&#8217;s because Firefox actually had to turn the camera off, and now has to open it again to unmute. Also, as a safety measure, Firefox will always keep the light on for a minimum of 3 seconds, even if you toggle the checkboxes really fast. If you&#8217;re not seeing the light go out, check if you have the camera open in other tabs or programs\u2014ultimately Firefox does not control the light, only its own access to the device. As always, you can click on the camera\/microphone indicator to revoke permission.<\/p>\n<p>This feature is desktop-only at the moment. The Android UX will require some more thought.<\/p>\n<h2>To web developers<\/h2>\n<p>This is a <a href=\"https:\/\/w3c.github.io\/mediacapture-main\/getusermedia.html#life-cycle-and-media-flow\">spec-supported<\/a> feature. To use it, use <code>track.enabled<\/code> to mute. See the JavaScript tab above for an example.<\/p>\n<p>This seems obvious perhaps, but there are <a href=\"https:\/\/blog.mozilla.org\/webrtc\/rtcrtptransceiver-explored\/\">various ways<\/a> to achieve mute in a peer connection call\u2014e.g. using <code>sender.replaceTrack<\/code> or altering <code>transceiver.direction<\/code>\u2014but none of them inform the browser you&#8217;re not using the camera and microphone any longer. Even if we could guess, we&#8217;re not allowed by the spec to do so. So if you&#8217;re using one of those techniques, remember to disable the tracks you&#8217;re not using as well, if you want the light to go out. Of course this only works if you&#8217;re muting the self-view as well. Devices may only be turned off when all tracks from them are disabled.<\/p>\n<p>Finally, a key motivation for this feature is that it&#8217;s compatible with Firefox&#8217;s permission model, which is to not persist permissions implicitly. This lets you implement full face-mute in your application without resorting to hacks that might create extra permission prompts for Firefox users on unmute.<\/p>\n","protected":false},"excerpt":{"rendered":"On a web conference call, have you ever wondered if people can see you? Maybe you&#8217;ve tried to decipher the site&#8217;s video-mute button, often some red camera symbol with a slash through it\u2014&#8220;Is it on or off? Does red mean stop or live? Is the slash telling me I&#8217;m muted now, or to click here [&hellip;]","protected":false},"author":1399,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"coauthors":[301098],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Better privacy on camera mute in Firefox 60 - Advancing WebRTC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Better privacy on camera mute in Firefox 60 - Advancing WebRTC\" \/>\n<meta property=\"og:description\" content=\"On a web conference call, have you ever wondered if people can see you? Maybe you&#8217;ve tried to decipher the site&#8217;s video-mute button, often some red camera symbol with a slash through it\u2014&#8220;Is it on or off? Does red mean stop or live? Is the slash telling me I&#8217;m muted now, or to click here [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/\" \/>\n<meta property=\"og:site_name\" content=\"Advancing WebRTC\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-09T11:59:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-05-10T14:51:41+00:00\" \/>\n<meta name=\"author\" content=\"Jan-Ivar Bruaroey\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jan-Ivar Bruaroey\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/\",\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/\",\"name\":\"Better privacy on camera mute in Firefox 60 - Advancing WebRTC\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#website\"},\"datePublished\":\"2018-05-09T11:59:12+00:00\",\"dateModified\":\"2018-05-10T14:51:41+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/f2eb9712b8d85b70aebe1faf24e731fd\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webrtc\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Better privacy on camera mute in Firefox 60\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/\",\"name\":\"Advancing WebRTC\",\"description\":\"Committed to moving Firefox and WebRTC forward\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/webrtc\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/f2eb9712b8d85b70aebe1faf24e731fd\",\"name\":\"Jan-Ivar Bruaroey\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/image\/5f3d49a61b032619d0d33c4cc7c7433f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/16d7e05dc9f8a855a02e0796b00aad3f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/16d7e05dc9f8a855a02e0796b00aad3f?s=96&d=mm&r=g\",\"caption\":\"Jan-Ivar Bruaroey\"},\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/author\/jbruaroeymozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Better privacy on camera mute in Firefox 60 - Advancing WebRTC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/","og_locale":"en_US","og_type":"article","og_title":"Better privacy on camera mute in Firefox 60 - Advancing WebRTC","og_description":"On a web conference call, have you ever wondered if people can see you? Maybe you&#8217;ve tried to decipher the site&#8217;s video-mute button, often some red camera symbol with a slash through it\u2014&#8220;Is it on or off? Does red mean stop or live? Is the slash telling me I&#8217;m muted now, or to click here [&hellip;]","og_url":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/","og_site_name":"Advancing WebRTC","article_published_time":"2018-05-09T11:59:12+00:00","article_modified_time":"2018-05-10T14:51:41+00:00","author":"Jan-Ivar Bruaroey","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jan-Ivar Bruaroey","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/","url":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/","name":"Better privacy on camera mute in Firefox 60 - Advancing WebRTC","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/#website"},"datePublished":"2018-05-09T11:59:12+00:00","dateModified":"2018-05-10T14:51:41+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/f2eb9712b8d85b70aebe1faf24e731fd"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webrtc\/better-privacy-on-camera-mute-in-firefox-60\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webrtc\/"},{"@type":"ListItem","position":2,"name":"Better privacy on camera mute in Firefox 60"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/webrtc\/#website","url":"https:\/\/blog.mozilla.org\/webrtc\/","name":"Advancing WebRTC","description":"Committed to moving Firefox and WebRTC forward","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/webrtc\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/f2eb9712b8d85b70aebe1faf24e731fd","name":"Jan-Ivar Bruaroey","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/image\/5f3d49a61b032619d0d33c4cc7c7433f","url":"https:\/\/secure.gravatar.com\/avatar\/16d7e05dc9f8a855a02e0796b00aad3f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/16d7e05dc9f8a855a02e0796b00aad3f?s=96&d=mm&r=g","caption":"Jan-Ivar Bruaroey"},"url":"https:\/\/blog.mozilla.org\/webrtc\/author\/jbruaroeymozilla-com\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts\/354"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/users\/1399"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/comments?post=354"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts\/354\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/media?parent=354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/categories?post=354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/tags?post=354"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/coauthors?post=354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}