Bug 1334411 - Remove the UI for indexedDB in Permissions section of PageInfo and the identity block. r?johannh
MozReview-Commit-ID: 4Q9H1Aq4O2B
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -791,18 +791,16 @@
<image id="tracking-protection-icon"/>
<box id="blocked-permissions-container" align="center">
<image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button"
tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
<image data-permission-id="desktop-notification" class="blocked-permission-icon desktop-notification-icon" role="button"
tooltiptext="&urlbar.webNotificationsBlocked.tooltip;"/>
<image data-permission-id="camera" class="blocked-permission-icon camera-icon" role="button"
tooltiptext="&urlbar.cameraBlocked.tooltip;"/>
- <image data-permission-id="indexedDB" class="blocked-permission-icon indexedDB-icon" role="button"
- tooltiptext="&urlbar.indexedDBBlocked.tooltip;"/>
<image data-permission-id="microphone" class="blocked-permission-icon microphone-icon" role="button"
tooltiptext="&urlbar.microphoneBlocked.tooltip;"/>
<image data-permission-id="screen" class="blocked-permission-icon screen-icon" role="button"
tooltiptext="&urlbar.screenBlocked.tooltip;"/>
<image data-permission-id="persistent-storage" class="blocked-permission-icon persistent-storage-icon" role="button"
tooltiptext="&urlbar.persistentStorageBlocked.tooltip;"/>
<image data-permission-id="popup" class="blocked-permission-icon popup-icon" role="button"
tooltiptext="&urlbar.popupBlocked.tooltip;"/>
--- a/browser/base/content/pageinfo/pageInfo.xul
+++ b/browser/base/content/pageinfo/pageInfo.xul
@@ -275,24 +275,16 @@
<vbox id="permPanel">
<hbox id="permHostBox">
<label value="&permissionsFor;" control="hostText" />
<textbox id="hostText" class="header" readonly="true"
crop="end" flex="1"/>
</hbox>
<vbox id="permList" flex="1">
- <hbox id="perm-indexedDB-extras">
- <spacer flex="1"/>
- <vbox id="permIndexedDBStatusBox" pack="center">
- <label id="indexedDBStatus" control="indexedDBClear" hidden="true"/>
- </vbox>
- <button id="indexedDBClear" label="&permClearStorage;" hidden="true"
- accesskey="&permClearStorage.accesskey;" onclick="onIndexedDBClear();"/>
- </hbox>
<vbox class="permission" id="perm-plugins-row">
<label class="permissionLabel" id="permPluginsLabel"
value="&permPlugins;" control="pluginsRadioGroup"/>
<hbox id="permPluginTemplate" role="group" aria-labelledby="permPluginsLabel" align="baseline">
<label class="permPluginTemplateLabel"/>
<spacer flex="1"/>
<radiogroup class="permPluginTemplateRadioGroup" orient="horizontal" command="cmd_pluginsToggle">
<radio class="permPluginTemplateRadioDefault" label="&permUseDefault;"/>
--- a/browser/base/content/pageinfo/permissions.js
+++ b/browser/base/content/pageinfo/permissions.js
@@ -2,18 +2,16 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* import-globals-from pageInfo.js */
Components.utils.import("resource:///modules/SitePermissions.jsm");
Components.utils.import("resource://gre/modules/BrowserUtils.jsm");
-const nsIQuotaManagerService = Components.interfaces.nsIQuotaManagerService;
-
var gPermURI;
var gPermPrincipal;
var gUsageRequest;
// Array of permissionIDs sorted alphabetically by label.
var gPermissions = SitePermissions.listPermissions().sort((a, b) => {
let firstLabel = SitePermissions.getPermissionLabel(a);
let secondLabel = SitePermissions.getPermissionLabel(b);
@@ -81,20 +79,16 @@ function initRow(aPartId) {
if (state != defaultState) {
checkbox.checked = false;
command.removeAttribute("disabled");
} else {
checkbox.checked = true;
command.setAttribute("disabled", "true");
}
setRadioState(aPartId, state);
-
- if (aPartId == "indexedDB") {
- initIndexedDBRow();
- }
}
function createRow(aPartId) {
let rowId = "perm-" + aPartId + "-row";
if (document.getElementById(rowId))
return;
let commandId = "cmd_" + aPartId + "Toggle";
@@ -175,78 +169,16 @@ function onRadioClick(aPartId) {
function setRadioState(aPartId, aValue) {
var radio = document.getElementById(aPartId + "#" + aValue);
if (radio) {
radio.radioGroup.selectedItem = radio;
}
}
-function initIndexedDBRow() {
- // IndexedDB information is not shown for pages with a null principal
- // such as sandboxed pages because these pages do not have access to indexedDB.
- if (gPermPrincipal.isNullPrincipal)
- return;
-
- let row = document.getElementById("perm-indexedDB-row");
- let extras = document.getElementById("perm-indexedDB-extras");
-
- row.appendChild(extras);
-
- var quotaManagerService =
- Components.classes["@mozilla.org/dom/quota-manager-service;1"]
- .getService(nsIQuotaManagerService);
- gUsageRequest =
- quotaManagerService.getUsageForPrincipal(gPermPrincipal,
- onIndexedDBUsageCallback);
-
- var status = document.getElementById("indexedDBStatus");
- var button = document.getElementById("indexedDBClear");
-
- status.value = "";
- status.setAttribute("hidden", "true");
- button.setAttribute("hidden", "true");
-}
-
-function onIndexedDBClear() {
- Components.classes["@mozilla.org/dom/quota-manager-service;1"]
- .getService(nsIQuotaManagerService)
- .clearStoragesForPrincipal(gPermPrincipal);
-
- Components.classes["@mozilla.org/serviceworkers/manager;1"]
- .getService(Components.interfaces.nsIServiceWorkerManager)
- .removeAndPropagate(gPermURI.host);
-
- SitePermissions.remove(gPermURI, "indexedDB");
- initIndexedDBRow();
-}
-
-function onIndexedDBUsageCallback(request) {
- let uri = request.principal.URI;
- if (!uri.equals(gPermURI)) {
- throw new Error("Callback received for bad URI: " + uri);
- }
-
- let usage = request.result.usage;
- if (usage) {
- if (!("DownloadUtils" in window)) {
- Components.utils.import("resource://gre/modules/DownloadUtils.jsm");
- }
-
- var status = document.getElementById("indexedDBStatus");
- var button = document.getElementById("indexedDBClear");
-
- status.value =
- gBundle.getFormattedString("indexedDBUsage",
- DownloadUtils.convertByteUnits(usage));
- status.removeAttribute("hidden");
- button.removeAttribute("hidden");
- }
-}
-
function fillInPluginPermissionTemplate(aPluginName, aPermissionString) {
let permPluginTemplate = document.getElementById("permPluginTemplate").cloneNode(true);
permPluginTemplate.setAttribute("permString", aPermissionString);
let attrs = [
[ ".permPluginTemplateLabel", "value", aPluginName ],
[ ".permPluginTemplateRadioGroup", "id", aPermissionString + "RadioGroup" ],
[ ".permPluginTemplateRadioDefault", "id", aPermissionString + "#0" ],
[ ".permPluginTemplateRadioAsk", "id", aPermissionString + "#3" ],
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -221,17 +221,16 @@ These should match what Safari and other
<!ENTITY urlbar.translateNotificationAnchor.tooltip "Translate this page">
<!ENTITY urlbar.translatedNotificationAnchor.tooltip "Manage page translation">
<!ENTITY urlbar.emeNotificationAnchor.tooltip "Manage use of DRM software">
<!ENTITY urlbar.cameraBlocked.tooltip "You have blocked your camera for this website.">
<!ENTITY urlbar.microphoneBlocked.tooltip "You have blocked your microphone for this website.">
<!ENTITY urlbar.screenBlocked.tooltip "You have blocked this website from sharing your screen.">
<!ENTITY urlbar.geolocationBlocked.tooltip "You have blocked location information for this website.">
-<!ENTITY urlbar.indexedDBBlocked.tooltip "You have blocked data storage for this website.">
<!ENTITY urlbar.webNotificationsBlocked.tooltip "You have blocked notifications for this website.">
<!ENTITY urlbar.persistentStorageBlocked.tooltip "You have blocked persistent storage for this website.">
<!ENTITY urlbar.popupBlocked.tooltip "You have blocked popups for this website.">
<!ENTITY urlbar.openHistoryPopup.tooltip "Show history">
<!ENTITY searchItem.title "Search">
--- a/browser/locales/en-US/chrome/browser/pageInfo.dtd
+++ b/browser/locales/en-US/chrome/browser/pageInfo.dtd
@@ -54,19 +54,16 @@
<!ENTITY permUseDefault "Use Default">
<!ENTITY permAskAlways "Always ask">
<!ENTITY permAllow "Allow">
<!ENTITY permAllowSession "Allow for Session">
<!ENTITY permBlock "Block">
<!ENTITY permissionsFor "Permissions for:">
<!ENTITY permPlugins "Activate Plugins">
-<!ENTITY permClearStorage "Clear Storage">
-<!ENTITY permClearStorage.accesskey "C">
-
<!ENTITY securityTab "Security">
<!ENTITY securityTab.accesskey "S">
<!ENTITY securityView.certView "View Certificate">
<!ENTITY securityView.accesskey "V">
<!ENTITY securityView.unknown "Unknown">
<!ENTITY securityView.identity.header "Website Identity">
--- a/browser/locales/en-US/chrome/browser/sitePermissions.properties
+++ b/browser/locales/en-US/chrome/browser/sitePermissions.properties
@@ -30,11 +30,10 @@ permission.cookie.label = Set Cookies
permission.desktop-notification2.label = Receive Notifications
permission.image.label = Load Images
permission.camera.label = Use the Camera
permission.microphone.label = Use the Microphone
permission.screen.label = Share the Screen
permission.install.label = Install Add-ons
permission.popup.label = Open Pop-up Windows
permission.geo.label = Access Your Location
-permission.indexedDB.label = Maintain Offline Storage
permission.focus-tab-by-prompt.label = Switch to this Tab
permission.persistent-storage.label = Store Data in Persistent Storage
--- a/browser/modules/SitePermissions.jsm
+++ b/browser/modules/SitePermissions.jsm
@@ -615,18 +615,16 @@ var gPermissionObject = {
},
states: [ SitePermissions.ALLOW, SitePermissions.BLOCK ],
},
"geo": {
exactHostMatch: true
},
- "indexedDB": {},
-
"focus-tab-by-prompt": {
exactHostMatch: true,
states: [ SitePermissions.UNKNOWN, SitePermissions.ALLOW ],
},
"persistent-storage": {
exactHostMatch: true
}
};
--- a/browser/modules/test/unit/test_SitePermissions.js
+++ b/browser/modules/test/unit/test_SitePermissions.js
@@ -5,17 +5,17 @@
Components.utils.import("resource:///modules/SitePermissions.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
const STORAGE_MANAGER_ENABLED = Services.prefs.getBoolPref("browser.storageManager.enabled");
add_task(async function testPermissionsListing() {
let expectedPermissions = ["camera", "cookie", "desktop-notification", "focus-tab-by-prompt",
- "geo", "image", "indexedDB", "install", "microphone", "popup", "screen"];
+ "geo", "image", "install", "microphone", "popup", "screen"];
if (STORAGE_MANAGER_ENABLED) {
// The persistent-storage permission is still only pref-on on Nightly
// so we add it only when it's pref-on.
// Should remove this checking and add it as default after it is fully pref-on.
expectedPermissions.push("persistent-storage");
}
Assert.deepEqual(SitePermissions.listPermissions().sort(), expectedPermissions.sort(),
"Correct list of all permissions");
@@ -91,17 +91,17 @@ add_task(async function testExactHostMat
let exactHostMatched = ["desktop-notification", "focus-tab-by-prompt", "camera",
"microphone", "screen", "geo"];
if (STORAGE_MANAGER_ENABLED) {
// The persistent-storage permission is still only pref-on on Nightly
// so we add it only when it's pref-on.
// Should remove this checking and add it as default after it is fully pref-on.
exactHostMatched.push("persistent-storage");
}
- let nonExactHostMatched = ["image", "cookie", "popup", "install", "indexedDB"];
+ let nonExactHostMatched = ["image", "cookie", "popup", "install"];
let permissions = SitePermissions.listPermissions();
for (let permission of permissions) {
SitePermissions.set(uri, permission, SitePermissions.ALLOW);
if (exactHostMatched.includes(permission)) {
// Check that the sub-origin does not inherit the permission from its parent.
Assert.equal(SitePermissions.get(subUri, permission).state, SitePermissions.UNKNOWN,
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -61,17 +61,16 @@
skin/classic/browser/notification-icons/camera-blocked.svg (../shared/notification-icons/camera-blocked.svg)
skin/classic/browser/notification-icons/camera.svg (../shared/notification-icons/camera.svg)
skin/classic/browser/notification-icons/canvas.svg (../shared/notification-icons/canvas.svg)
skin/classic/browser/notification-icons/default-info.svg (../shared/notification-icons/default-info.svg)
skin/classic/browser/notification-icons/desktop-notification-blocked.svg (../shared/notification-icons/desktop-notification-blocked.svg)
skin/classic/browser/notification-icons/desktop-notification.svg (../shared/notification-icons/desktop-notification.svg)
skin/classic/browser/notification-icons/focus-tab-by-prompt.svg (../shared/notification-icons/focus-tab-by-prompt.svg)
- skin/classic/browser/notification-icons/indexedDB-blocked.svg (../shared/notification-icons/indexedDB-blocked.svg)
skin/classic/browser/notification-icons/indexedDB.svg (../shared/notification-icons/indexedDB.svg)
skin/classic/browser/notification-icons/login-detailed.svg (../shared/notification-icons/login-detailed.svg)
skin/classic/browser/notification-icons/login.svg (../shared/notification-icons/login.svg)
skin/classic/browser/notification-icons/microphone-blocked.svg (../shared/notification-icons/microphone-blocked.svg)
skin/classic/browser/notification-icons/microphone-detailed.svg (../shared/notification-icons/microphone-detailed.svg)
skin/classic/browser/notification-icons/microphone.svg (../shared/notification-icons/microphone.svg)
skin/classic/browser/notification-icons/persistent-storage-blocked.svg (../shared/notification-icons/persistent-storage-blocked.svg)
skin/classic/browser/notification-icons/persistent-storage.svg (../shared/notification-icons/persistent-storage.svg)
--- a/browser/themes/shared/notification-icons.inc.css
+++ b/browser/themes/shared/notification-icons.inc.css
@@ -60,20 +60,16 @@
list-style-image: url(chrome://browser/skin/notification-icons/geo-detailed.svg);
}
.popup-notification-icon[popupid="indexedDB-permissions-prompt"],
.indexedDB-icon {
list-style-image: url(chrome://browser/skin/notification-icons/indexedDB.svg);
}
-.indexedDB-icon.blocked-permission-icon {
- list-style-image: url(chrome://browser/skin/notification-icons/indexedDB-blocked.svg);
-}
-
.login-icon {
list-style-image: url(chrome://browser/skin/notification-icons/login.svg);
}
.popup-notification-icon[popupid="password"] {
list-style-image: url(chrome://browser/skin/notification-icons/login-detailed.svg);
}
deleted file mode 100644
--- a/browser/themes/shared/notification-icons/indexedDB-blocked.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity">
- <path d="M10.293 11.293L9 12.586V10l-2 2v.586l-.293-.293-1.414 1.414 2 2a1 1 0 0 0 1.414 0l3-3a1 1 0 0 0-1.414-1.414zM13 8h-1a1 1 0 0 0 0 2h2a1 1 0 0 0 1-1V4l-2 2zm1.707-6.707A1.016 1.016 0 0 0 14 1H2a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h2a1 1 0 0 0 0-2H3V3h8.586L1.293 13.293a1 1 0 1 0 1.414 1.414l12-12a1 1 0 0 0 0-1.414z"/>
-</svg>