ata); function setCanvasPermission(aPerm, aPersistent) { Services.perms.addFromPrincipal( principal, "canvas", aPerm, aPersistent ? Ci.nsIPermissionManager.EXPIRE_NEVER : Ci.nsIPermissionManager.EXPIRE_SESSION ); } let mainAction = { label: gNavigatorBundle.getString("canvas.allow2"), accessKey: gNavigatorBundle.getString("canvas.allow2.accesskey"), callback(state) { setCanvasPermission( Ci.nsIPermissionManager.ALLOW_ACTION, state && state.checkboxChecked ); }, }; let secondaryActions = [ { label: gNavigatorBundle.getString("canvas.block"), accessKey: gNavigatorBundle.getString("canvas.block.accesskey"), callback(state) { setCanvasPermission( Ci.nsIPermissionManager.DENY_ACTION, state && state.checkboxChecked ); }, }, ]; let checkbox = { // In PB mode, we don't want the "always remember" checkbox show: !PrivateBrowsingUtils.isWindowPrivate(window), }; if (checkbox.show) { checkbox.checked = true; checkbox.label = gBrowserBundle.GetStringFromName("canvas.remember2"); } let options = { checkbox, name: principal.host, learnMoreURL: Services.urlFormatter.formatURLPref("app.support.baseURL") + "fingerprint-permission", dismissed: aTopic == this._permissionsPromptHideDoorHanger, eventCallback(e) { if (e == "showing") { this.browser.ownerDocument.getElementById( "canvas-permissions-prompt-warning" ).textContent = gBrowserBundle.GetStringFromName( "canvas.siteprompt2.warning" ); } }, }; window.PopupNotifications.show( browser, this._permissionsPrompt, message, this._notificationIcon, mainAction, secondaryActions, options ); }, }; PK