Bug 1276132 - Don't show EME 'enable' UI for non-visible keysystems. r=gijs
This means we'll only show the EME UI for keysystems that are explicitly turned
on in the build config, or those that are enabled after the build via prefs.
MozReview-Commit-ID: 7VTp1BJSZFy
--- a/browser/base/content/browser-media.js
+++ b/browser/base/content/browser-media.js
@@ -26,33 +26,47 @@ var gEMEHandler = {
} else if (keySystem == "com.widevine.alpha" &&
Services.prefs.getPrefType("media.gmp-widevinecdm.enabled") &&
!Services.prefs.getBoolPref("media.gmp-widevinecdm.enabled")) {
Services.prefs.setBoolPref("media.gmp-widevinecdm.enabled", true);
}
}
browser.reload();
},
+ isKeySystemVisible: function(keySystem) {
+ if (!keySystem) {
+ return false;
+ }
+ if (keySystem.startsWith("com.adobe") &&
+ Services.prefs.getPrefType("media.gmp-eme-adobe.visible")) {
+ return Services.prefs.getBoolPref("media.gmp-eme-adobe.visible");
+ }
+ if (keySystem == "com.widevine.alpha" &&
+ Services.prefs.getPrefType("media.gmp-widevinecdm.visible")) {
+ return Services.prefs.getBoolPref("media.gmp-widevinecdm.visible");
+ }
+ return true;
+ },
getLearnMoreLink: function(msgId) {
let text = gNavigatorBundle.getString("emeNotifications." + msgId + ".learnMoreLabel");
let baseURL = Services.urlFormatter.formatURLPref("app.support.baseURL");
return "<label class='text-link' href='" + baseURL + "drm-content'>" +
text + "</label>";
},
receiveMessage: function({target: browser, data: data}) {
let parsedData;
try {
parsedData = JSON.parse(data);
} catch (ex) {
Cu.reportError("Malformed EME video message with data: " + data);
return;
}
let {status: status, keySystem: keySystem} = parsedData;
- // Don't need to show if disabled
- if (!this.uiEnabled) {
+ // Don't need to show if disabled or keysystem not visible.
+ if (!this.uiEnabled || !this.isKeySystemVisible(keySystem)) {
return;
}
let notificationId;
let buttonCallback;
let params = [];
switch (status) {
case "available":