Bug 1457948 - Migrate in-content/privacy.js to Fluent. r=flod,jaws

MozReview-Commit-ID: 7K7Wgm5ahTL

--HG--
extra : rebase_source : 2824d6207614b4425c67507b0ae57f78feeaa837
This commit is contained in:
Zibi Braniecki 2018-04-30 10:29:18 -07:00
Родитель 88a253048a
Коммит e0a4c31651
8 изменённых файлов: 266 добавлений и 135 удалений

Просмотреть файл

@ -386,52 +386,9 @@ var gPrivacyPane = {
this._initA11yState();
let signonBundle = document.getElementById("signonBundle");
let pkiBundle = document.getElementById("pkiBundle");
appendSearchKeywords("passwordExceptions", [
bundlePrefs.getString("savedLoginsExceptions_title"),
bundlePrefs.getString("savedLoginsExceptions_desc3"),
]);
appendSearchKeywords("showPasswords", [
signonBundle.getString("loginsDescriptionAll2"),
]);
appendSearchKeywords("cookieExceptions", [
bundlePrefs.getString("cookiepermissionstext1"),
]);
appendSearchKeywords("trackingProtectionExceptions", [
bundlePrefs.getString("trackingprotectionpermissionstitle"),
bundlePrefs.getString("trackingprotectionpermissionstext2"),
]);
appendSearchKeywords("popupPolicyButton", [
bundlePrefs.getString("popuppermissionstitle2"),
bundlePrefs.getString("popuppermissionstext"),
]);
appendSearchKeywords("notificationSettingsButton", [
bundlePrefs.getString("notificationspermissionstitle2"),
bundlePrefs.getString("notificationspermissionstext6"),
bundlePrefs.getString("notificationspermissionsdisablelabel"),
bundlePrefs.getString("notificationspermissionsdisabledescription"),
]);
appendSearchKeywords("locationSettingsButton", [
bundlePrefs.getString("locationpermissionstitle"),
bundlePrefs.getString("locationpermissionstext2"),
bundlePrefs.getString("locationpermissionsdisablelabel"),
bundlePrefs.getString("locationpermissionsdisabledescription"),
]);
appendSearchKeywords("cameraSettingsButton", [
bundlePrefs.getString("camerapermissionstitle"),
bundlePrefs.getString("camerapermissionstext2"),
bundlePrefs.getString("camerapermissionsdisablelabel"),
bundlePrefs.getString("camerapermissionsdisabledescription"),
]);
appendSearchKeywords("microphoneSettingsButton", [
bundlePrefs.getString("microphonepermissionstitle"),
bundlePrefs.getString("microphonepermissionstext2"),
bundlePrefs.getString("microphonepermissionsdisablelabel"),
bundlePrefs.getString("microphonepermissionsdisabledescription"),
]);
appendSearchKeywords("addonExceptions", [
bundlePrefs.getString("addons_permissions_title2"),
bundlePrefs.getString("addonspermissionstext"),
]);
appendSearchKeywords("viewSecurityDevicesButton", [
pkiBundle.getString("enable_fips"),
]);
@ -774,12 +731,9 @@ var gPrivacyPane = {
* Displays fine-grained, per-site preferences for tracking protection.
*/
showTrackingProtectionExceptions() {
let bundlePreferences = document.getElementById("bundlePreferences");
let params = {
permissionType: "trackingprotection",
hideStatusColumn: true,
windowTitle: bundlePreferences.getString("trackingprotectionpermissionstitle"),
introText: bundlePreferences.getString("trackingprotectionpermissionstext2"),
};
gSubDialog.open("chrome://browser/content/preferences/permissions.xul",
null, params);
@ -908,15 +862,12 @@ var gPrivacyPane = {
* Displays fine-grained, per-site preferences for cookies.
*/
showCookieExceptions() {
var bundlePreferences = document.getElementById("bundlePreferences");
var params = {
blockVisible: true,
sessionVisible: true,
allowVisible: true,
prefilledHost: "",
permissionType: "cookie",
windowTitle: bundlePreferences.getString("cookiepermissionstitle1"),
introText: bundlePreferences.getString("cookiepermissionstext1")
};
gSubDialog.open("chrome://browser/content/preferences/permissions.xul",
null, params);
@ -960,12 +911,7 @@ var gPrivacyPane = {
* preferences can be set.
*/
showLocationExceptions() {
let bundlePreferences = document.getElementById("bundlePreferences");
let params = { permissionType: "geo" };
params.windowTitle = bundlePreferences.getString("locationpermissionstitle");
params.introText = bundlePreferences.getString("locationpermissionstext2");
params.disablePermissionsLabel = bundlePreferences.getString("locationpermissionsdisablelabel");
params.disablePermissionsDescription = bundlePreferences.getString("locationpermissionsdisabledescription");
gSubDialog.open("chrome://browser/content/preferences/sitePermissions.xul",
"resizable=yes", params);
@ -978,12 +924,7 @@ var gPrivacyPane = {
* preferences can be set.
*/
showCameraExceptions() {
let bundlePreferences = document.getElementById("bundlePreferences");
let params = { permissionType: "camera" };
params.windowTitle = bundlePreferences.getString("camerapermissionstitle");
params.introText = bundlePreferences.getString("camerapermissionstext2");
params.disablePermissionsLabel = bundlePreferences.getString("camerapermissionsdisablelabel");
params.disablePermissionsDescription = bundlePreferences.getString("camerapermissionsdisabledescription");
gSubDialog.open("chrome://browser/content/preferences/sitePermissions.xul",
"resizable=yes", params);
@ -996,12 +937,7 @@ var gPrivacyPane = {
* preferences can be set.
*/
showMicrophoneExceptions() {
let bundlePreferences = document.getElementById("bundlePreferences");
let params = { permissionType: "microphone" };
params.windowTitle = bundlePreferences.getString("microphonepermissionstitle");
params.introText = bundlePreferences.getString("microphonepermissionstext2");
params.disablePermissionsLabel = bundlePreferences.getString("microphonepermissionsdisablelabel");
params.disablePermissionsDescription = bundlePreferences.getString("microphonepermissionsdisabledescription");
gSubDialog.open("chrome://browser/content/preferences/sitePermissions.xul",
"resizable=yes", params);
@ -1014,12 +950,7 @@ var gPrivacyPane = {
* preferences can be set.
*/
showNotificationExceptions() {
let bundlePreferences = document.getElementById("bundlePreferences");
let params = { permissionType: "desktop-notification" };
params.windowTitle = bundlePreferences.getString("notificationspermissionstitle2");
params.introText = bundlePreferences.getString("notificationspermissionstext6");
params.disablePermissionsLabel = bundlePreferences.getString("notificationspermissionsdisablelabel");
params.disablePermissionsDescription = bundlePreferences.getString("notificationspermissionsdisabledescription");
gSubDialog.open("chrome://browser/content/preferences/sitePermissions.xul",
"resizable=yes", params);
@ -1038,13 +969,10 @@ var gPrivacyPane = {
* can be set.
*/
showPopupExceptions() {
var bundlePreferences = document.getElementById("bundlePreferences");
var params = {
blockVisible: false, sessionVisible: false, allowVisible: true,
prefilledHost: "", permissionType: "popup"
};
params.windowTitle = bundlePreferences.getString("popuppermissionstitle2");
params.introText = bundlePreferences.getString("popuppermissionstext");
gSubDialog.open("chrome://browser/content/preferences/permissions.xul",
"resizable=yes", params);
@ -1079,7 +1007,6 @@ var gPrivacyPane = {
* where passwords are never saved.
*/
showPasswordExceptions() {
var bundlePrefs = document.getElementById("bundlePreferences");
var params = {
blockVisible: true,
sessionVisible: false,
@ -1087,8 +1014,6 @@ var gPrivacyPane = {
hideStatusColumn: true,
prefilledHost: "",
permissionType: "login-saving",
windowTitle: bundlePrefs.getString("savedLoginsExceptions_title"),
introText: bundlePrefs.getString("savedLoginsExceptions_desc3")
};
gSubDialog.open("chrome://browser/content/preferences/permissions.xul",
@ -1312,13 +1237,7 @@ var gPrivacyPane = {
* Displays the exceptions lists for add-on installation warnings.
*/
showAddonExceptions() {
var bundlePrefs = document.getElementById("bundlePreferences");
var params = this._addonParams;
if (!params.windowTitle || !params.introText) {
params.windowTitle = bundlePrefs.getString("addons_permissions_title2");
params.introText = bundlePrefs.getString("addonspermissionstext");
}
gSubDialog.open("chrome://browser/content/preferences/permissions.xul",
null, params);

Просмотреть файл

@ -33,7 +33,11 @@
class="accessory-button"
data-l10n-id="forms-exceptions"
preference="pref.privacy.disable_button.view_passwords_exceptions"
search-l10n-ids="permissions-address"/>
search-l10n-ids="
permissions-address,
permissions-exceptions-saved-logins-window.title,
permissions-exceptions-saved-logins-desc,
"/>
</hbox>
</hbox>
<hbox id="showPasswordBox" pack="end">
@ -250,7 +254,8 @@
permissions-remove.label,
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label
permissions-button-ok.label,
permissions-exceptions-cookie-desc,
" />
</hbox>
</vbox>
@ -339,7 +344,9 @@
permissions-remove.label,
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label
permissions-button-ok.label,
permissions-exceptions-tracking-protection-window.title,
permissions-exceptions-tracking-protection-desc,
"/>
</hbox>
<!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
@ -397,6 +404,10 @@
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label,
permissions-site-location-window.title,
permissions-site-location-desc,
permissions-site-location-disable-label,
permissions-site-location-disable-desc,
" />
</hbox>
</row>
@ -416,6 +427,10 @@
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label,
permissions-site-camera-window.title,
permissions-site-camera-desc,
permissions-site-camera-disable-label,
permissions-site-camera-disable-desc,
" />
</hbox>
</row>
@ -435,6 +450,10 @@
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label,
permissions-site-microphone-window.title,
permissions-site-microphone-desc,
permissions-site-microphone-disable-label,
permissions-site-microphone-disable-desc,
" />
</hbox>
</row>
@ -459,6 +478,10 @@
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label,
permissions-site-notification-window.title,
permissions-site-notification-desc,
permissions-site-notification-disable-label,
permissions-site-notification-disable-desc,
" />
</hbox>
</row>
@ -485,7 +508,9 @@
search-l10n-ids="
permissions-address,
permissions-button-cancel.label,
permissions-button-ok.label
permissions-button-ok.label,
permissions-exceptions-popup-window.title,
permissions-exceptions-popup-desc,
" />
</hbox>
</hbox>
@ -508,6 +533,8 @@
permissions-remove-all.label,
permissions-button-cancel.label,
permissions-button-ok.label,
permissions-exceptions-addons-window.title,
permissions-exceptions-addons-desc,
" />
</hbox>
</hbox>

Просмотреть файл

@ -13,6 +13,29 @@ const nsICookiePermission = Ci.nsICookiePermission;
const NOTIFICATION_FLUSH_PERMISSIONS = "flush-pending-permissions";
const permissionExceptionsL10n = {
"trackingprotection": {
window: "permissions-exceptions-tracking-protection-window",
description: "permissions-exceptions-tracking-protection-desc",
},
"cookie": {
window: "permissions-exceptions-cookie-window",
description: "permissions-exceptions-cookie-desc",
},
"popup": {
window: "permissions-exceptions-popup-window",
description: "permissions-exceptions-popup-desc",
},
"login-saving": {
window: "permissions-exceptions-saved-logins-window",
description: "permissions-exceptions-saved-logins-desc",
},
"install": {
window: "permissions-exceptions-addons-window",
description: "permissions-exceptions-addons-desc",
},
};
function Permission(principal, type, capability) {
this.principal = principal;
this.origin = principal.origin;
@ -104,9 +127,12 @@ var gPermissionManager = {
principal.origin;
}
} catch (ex) {
var message = this._bundle.getString("invalidURI");
var title = this._bundle.getString("invalidURITitle");
Services.prompt.alert(window, title, message);
document.l10n.formatValues([
["permissions-invalid-uri-title"],
["permissions-invalid-uri-label"]
]).then(([message, title]) => {
Services.prompt.alert(window, title, message);
});
return;
}
@ -204,10 +230,10 @@ var gPermissionManager = {
onLoad() {
this._bundle = document.getElementById("bundlePreferences");
var params = window.arguments[0];
this.init(params);
document.mozSubdialogReady = this.init(params);
},
init(aParams) {
async init(aParams) {
if (this._type) {
// reusing an open dialog, clear the old observer
this.uninit();
@ -216,10 +242,16 @@ var gPermissionManager = {
this._type = aParams.permissionType;
this._manageCapability = aParams.manageCapability;
const l10n = permissionExceptionsL10n[this._type];
let permissionsText = document.getElementById("permissionsText");
permissionsText.textContent = aParams.introText;
document.l10n.setAttributes(permissionsText, l10n.description);
document.title = aParams.windowTitle;
document.l10n.setAttributes(document.documentElement, l10n.window);
await document.l10n.translateElements([
document.documentElement,
permissionsText,
]);
document.getElementById("btnBlock").hidden = !aParams.blockVisible;
document.getElementById("btnSession").hidden = !aParams.sessionVisible;

Просмотреть файл

@ -6,6 +6,33 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
ChromeUtils.import("resource:///modules/SitePermissions.jsm");
const sitePermissionsL10n = {
"desktop-notification": {
window: "permissions-site-notification-window",
description: "permissions-site-notification-desc",
disableLabel: "permissions-site-notification-disable-label",
disableDescription: "permissions-site-notification-disable-desc",
},
"geo": {
window: "permissions-site-location-window",
description: "permissions-site-location-desc",
disableLabel: "permissions-site-location-disable-label",
disableDescription: "permissions-site-location-disable-desc",
},
"camera": {
window: "permissions-site-camera-window",
description: "permissions-site-camera-desc",
disableLabel: "permissions-site-camera-disable-label",
disableDescription: "permissions-site-camera-disable-desc",
},
"microphone": {
window: "permissions-site-microphone-window",
description: "permissions-site-microphone-desc",
disableLabel: "permissions-site-microphone-disable-label",
disableDescription: "permissions-site-microphone-disable-desc",
},
};
function Permission(principal, type, capability, capabilityString) {
this.principal = principal;
this.origin = principal.origin;
@ -33,16 +60,15 @@ var gSitePermissionsManager = {
onLoad() {
let params = window.arguments[0];
this.init(params);
document.mozSubdialogReady = this.init(params);
},
init(params) {
async init(params) {
if (!this._isObserving) {
Services.obs.addObserver(this, "perm-changed");
this._isObserving = true;
}
this._bundle = document.getElementById("bundlePreferences");
this._type = params.permissionType;
this._list = document.getElementById("permissionsBox");
this._removeButton = document.getElementById("removePermission");
@ -50,16 +76,21 @@ var gSitePermissionsManager = {
this._searchBox = document.getElementById("searchBox");
this._checkbox = document.getElementById("permissionsDisableCheckbox");
let permissionsText = document.getElementById("permissionsText");
permissionsText.textContent = params.introText;
this._checkbox.setAttribute("label", params.disablePermissionsLabel);
let permissionsDisableDescription = document.getElementById("permissionsDisableDescription");
permissionsDisableDescription.appendChild(document.createTextNode(params.disablePermissionsDescription));
let permissionsText = document.getElementById("permissionsText");
document.title = params.windowTitle;
const l10n = sitePermissionsL10n[this._type];
document.l10n.setAttributes(permissionsText, l10n.description);
document.l10n.setAttributes(this._checkbox, l10n.disableLabel);
document.l10n.setAttributes(permissionsDisableDescription, l10n.disableDescription);
document.l10n.setAttributes(document.documentElement, l10n.window);
await document.l10n.translateElements([
permissionsText,
this._checkbox,
permissionsDisableDescription,
document.documentElement,
]);
// Initialize the checkbox state.
this._defaultPermissionStatePrefName = "permissions.default." + this._type;

Просмотреть файл

@ -12,7 +12,7 @@
windowtype="Browser:SitePermissions"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
data-l10n-id="permissions-window"
data-l10n-attrs="style"
data-l10n-attrs="title, style"
onload="gSitePermissionsManager.onLoad();"
onunload="gSitePermissionsManager.uninit();"
persist="screenX screenY width height"

Просмотреть файл

@ -48,3 +48,84 @@ permissions-button-ok =
permissions-searchbox =
.placeholder = Search Website
## Invalid Hostname Dialog
permissions-invalid-uri-title = Invalid Hostname Entered
permissions-invalid-uri-label = Please enter a valid hostname
## Exceptions - Tracking Protection
permissions-exceptions-tracking-protection-window =
.title = Exceptions - Tracking Protection
.style = { permissions-window.style }
permissions-exceptions-tracking-protection-desc = You have disabled Tracking Protection on these websites.
## Exceptions - Cookies
permissions-exceptions-cookie-window =
.title = Exceptions - Cookies and Site Data
.style = { permissions-window.style }
permissions-exceptions-cookie-desc = You can specify which websites are always or never allowed to use cookies and site data. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow.
## Exceptions - Pop-ups
permissions-exceptions-popup-window =
.title = Allowed Websites - Pop-ups
.style = { permissions-window.style }
permissions-exceptions-popup-desc = You can specify which websites are allowed to open pop-up windows. Type the exact address of the site you want to allow and then click Allow.
## Exceptions - Saved Logins
permissions-exceptions-saved-logins-window =
.title = Exceptions - Saved Logins
.style = { permissions-window.style }
permissions-exceptions-saved-logins-desc = Logins for the following websites will not be saved
## Exceptions - Add-ons
permissions-exceptions-addons-window =
.title = Allowed Websites - Add-ons Installation
.style = { permissions-window.style }
permissions-exceptions-addons-desc = You can specify which websites are allowed to install add-ons. Type the exact address of the site you want to allow and then click Allow.
## Site Permissions - Notifications
permissions-site-notification-window =
.title = Settings - Notification Permissions
.style = { permissions-window.style }
permissions-site-notification-desc = The following websites have requested to send you notifications. You can specify which websites are allowed to send you notifications. You can also block new requests asking to allow notifications.
permissions-site-notification-disable-label =
.label = Block new requests asking to allow notifications
permissions-site-notification-disable-desc = This will prevent any websites not listed above from requesting permission to send notifications. Blocking notifications may break some website features.
## Site Permissions - Location
permissions-site-location-window =
.title = Settings - Location Permissions
.style = { permissions-window.style }
permissions-site-location-desc = The following websites have requested to access your location. You can specify which websites are allowed to access your location. You can also block new requests asking to access your location.
permissions-site-location-disable-label =
.label = Block new requests asking to access your location
permissions-site-location-disable-desc = This will prevent any websites not listed above from requesting permission to access your location. Blocking access to your location may break some website features.
## Site Permissions - Camera
permissions-site-camera-window =
.title = Settings - Camera Permissions
.style = { permissions-window.style }
permissions-site-camera-desc = The following websites have requested to access your camera. You can specify which websites are allowed to access your camera. You can also block new requests asking to access your camera.
permissions-site-camera-disable-label =
.label = Block new requests asking to access your camera
permissions-site-camera-disable-desc = This will prevent any websites not listed above from requesting permission to access your camera. Blocking access to your camera may break some website features.
## Site Permissions - Microphone
permissions-site-microphone-window =
.title = Settings - Microphone Permissions
.style = { permissions-window.style }
permissions-site-microphone-desc = The following websites have requested to access your microphone. You can specify which websites are allowed to access your microphone. You can also block new requests asking to access your microphone.
permissions-site-microphone-disable-label =
.label = Block new requests asking to access your microphone
permissions-site-microphone-disable-desc = This will prevent any websites not listed above from requesting permission to access your microphone. Blocking access to your microphone may break some website features.

Просмотреть файл

@ -18,37 +18,6 @@ veryLargeMinimumFontTitle=Large minimum font size
veryLargeMinimumFontWarning=You have selected a very large minimum font size (more than 24 pixels). This may make it difficult or impossible to use some important configuration pages like this one.
acceptVeryLargeMinimumFont=Keep my changes anyway
#### Permissions Manager
trackingprotectionpermissionstext2=You have disabled Tracking Protection on these websites.
trackingprotectionpermissionstitle=Exceptions - Tracking Protection
cookiepermissionstext1=You can specify which websites are always or never allowed to use cookies and site data. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow.
cookiepermissionstitle1=Exceptions - Cookies and Site Data
addonspermissionstext=You can specify which websites are allowed to install add-ons. Type the exact address of the site you want to allow and then click Allow.
addons_permissions_title2=Allowed Websites - Add-ons Installation
popuppermissionstext=You can specify which websites are allowed to open pop-up windows. Type the exact address of the site you want to allow and then click Allow.
popuppermissionstitle2=Allowed Websites - Pop-ups
notificationspermissionstext6=The following websites have requested to send you notifications. You can specify which websites are allowed to send you notifications. You can also block new requests asking to allow notifications.
notificationspermissionstitle2=Settings - Notification Permissions
notificationspermissionsdisablelabel=Block new requests asking to allow notifications
notificationspermissionsdisabledescription=This will prevent any websites not listed above from requesting permission to send notifications. Blocking notifications may break some website features.
locationpermissionstext2=The following websites have requested to access your location. You can specify which websites are allowed to access your location. You can also block new requests asking to access your location.
locationpermissionstitle=Settings - Location Permissions
locationpermissionsdisablelabel=Block new requests asking to access your location
locationpermissionsdisabledescription=This will prevent any websites not listed above from requesting permission to access your location. Blocking access to your location may break some website features.
camerapermissionstext2=The following websites have requested to access your camera. You can specify which websites are allowed to access your camera. You can also block new requests asking to access your camera.
camerapermissionstitle=Settings - Camera Permissions
camerapermissionsdisablelabel=Block new requests asking to access your camera
camerapermissionsdisabledescription=This will prevent any websites not listed above from requesting permission to access your camera. Blocking access to your camera may break some website features.
microphonepermissionstext2=The following websites have requested to access your microphone. You can specify which websites are allowed to access your microphone. You can also block new requests asking to access your microphone.
microphonepermissionstitle=Settings - Microphone Permissions
microphonepermissionsdisablelabel=Block new requests asking to access your microphone
microphonepermissionsdisabledescription=This will prevent any websites not listed above from requesting permission to access your microphone. Blocking access to your microphone may break some website features.
invalidURI=Please enter a valid hostname
invalidURITitle=Invalid Hostname Entered
savedLoginsExceptions_title=Exceptions - Saved Logins
savedLoginsExceptions_desc3=Logins for the following websites will not be saved
#### Block List Manager
# LOCALIZATION NOTE (mozNameTemplate): This template constructs the name of the

Просмотреть файл

@ -0,0 +1,72 @@
# coding=utf8
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
from __future__ import absolute_import
import fluent.syntax.ast as FTL
from fluent.migrate.helpers import transforms_from
# from fluent.migrate.helpers import MESSAGE_REFERENCE, EXTERNAL_ARGUMENT, transforms_from
# from fluent.migrate import COPY, CONCAT, REPLACE
def migrate(ctx):
"""Bug 1457948 - Migrate in-content/privacy.js to Fluent, part {index}."""
ctx.add_transforms(
'browser/browser/preferences/permissions.ftl',
'browser/browser/preferences/permissions.ftl',
transforms_from(
"""
permissions-invalid-uri-title = { COPY("browser/chrome/browser/preferences/preferences.properties", "invalidURITitle") }
permissions-invalid-uri-label = { COPY("browser/chrome/browser/preferences/preferences.properties", "invalidURI") }
permissions-exceptions-tracking-protection-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "trackingprotectionpermissionstitle") }
.style = { permissions-window.style }
permissions-exceptions-tracking-protection-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "trackingprotectionpermissionstext2") }
permissions-exceptions-cookie-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "cookiepermissionstitle1") }
.style = { permissions-window.style }
permissions-exceptions-cookie-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "cookiepermissionstext1") }
permissions-exceptions-popup-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "popuppermissionstitle2") }
.style = { permissions-window.style }
permissions-exceptions-popup-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "popuppermissionstext") }
permissions-exceptions-saved-logins-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "savedLoginsExceptions_title") }
.style = { permissions-window.style }
permissions-exceptions-saved-logins-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "savedLoginsExceptions_desc3") }
permissions-exceptions-addons-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "addons_permissions_title2") }
.style = { permissions-window.style }
permissions-exceptions-addons-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "addonspermissionstext") }
permissions-site-notification-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "notificationspermissionstitle2") }
.style = { permissions-window.style }
permissions-site-notification-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "notificationspermissionstext6") }
permissions-site-notification-disable-label =
.label = { COPY("browser/chrome/browser/preferences/preferences.properties", "notificationspermissionsdisablelabel") }
permissions-site-notification-disable-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "notificationspermissionsdisabledescription") }
permissions-site-location-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "locationpermissionstitle") }
.style = { permissions-window.style }
permissions-site-location-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "locationpermissionstext2") }
permissions-site-location-disable-label =
.label = { COPY("browser/chrome/browser/preferences/preferences.properties", "locationpermissionsdisablelabel") }
permissions-site-location-disable-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "locationpermissionsdisabledescription") }
permissions-site-camera-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "camerapermissionstitle") }
.style = { permissions-window.style }
permissions-site-camera-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "camerapermissionstext2") }
permissions-site-camera-disable-label =
.label = { COPY("browser/chrome/browser/preferences/preferences.properties", "camerapermissionsdisablelabel") }
permissions-site-camera-disable-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "camerapermissionsdisabledescription") }
permissions-site-microphone-window =
.title = { COPY("browser/chrome/browser/preferences/preferences.properties", "microphonepermissionstitle") }
.style = { permissions-window.style }
permissions-site-microphone-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "microphonepermissionstext2") }
permissions-site-microphone-disable-label =
.label = { COPY("browser/chrome/browser/preferences/preferences.properties", "microphonepermissionsdisablelabel") }
permissions-site-microphone-disable-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "microphonepermissionsdisabledescription") }
""")
)