summaryrefslogtreecommitdiffstats
path: root/mobile/android/chrome/content/PermissionsHelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/chrome/content/PermissionsHelper.js')
-rw-r--r--mobile/android/chrome/content/PermissionsHelper.js188
1 files changed, 0 insertions, 188 deletions
diff --git a/mobile/android/chrome/content/PermissionsHelper.js b/mobile/android/chrome/content/PermissionsHelper.js
deleted file mode 100644
index ad1eb760a..000000000
--- a/mobile/android/chrome/content/PermissionsHelper.js
+++ /dev/null
@@ -1,188 +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/. */
-"use strict";
-
-var PermissionsHelper = {
- _permissonTypes: ["password", "geolocation", "popup", "indexedDB",
- "offline-app", "desktop-notification", "plugins", "native-intent",
- "flyweb-publish-server"],
- _permissionStrings: {
- "password": {
- label: "password.logins",
- allowed: "password.save",
- denied: "password.dontSave"
- },
- "geolocation": {
- label: "geolocation.location",
- allowed: "geolocation.allow",
- denied: "geolocation.dontAllow"
- },
- "flyweb-publish-server": {
- label: "flyWebPublishServer.publishServer",
- allowed: "flyWebPublishServer.allow",
- denied: "flyWebPublishServer.dontAllow"
- },
- "popup": {
- label: "blockPopups.label2",
- allowed: "popup.show",
- denied: "popup.dontShow"
- },
- "indexedDB": {
- label: "offlineApps.offlineData",
- allowed: "offlineApps.allow",
- denied: "offlineApps.dontAllow2"
- },
- "offline-app": {
- label: "offlineApps.offlineData",
- allowed: "offlineApps.allow",
- denied: "offlineApps.dontAllow2"
- },
- "desktop-notification": {
- label: "desktopNotification.notifications",
- allowed: "desktopNotification2.allow",
- denied: "desktopNotification2.dontAllow"
- },
- "plugins": {
- label: "clickToPlayPlugins.plugins",
- allowed: "clickToPlayPlugins.activate",
- denied: "clickToPlayPlugins.dontActivate"
- },
- "native-intent": {
- label: "helperapps.openWithList2",
- allowed: "helperapps.always",
- denied: "helperapps.never"
- }
- },
-
- observe: function observe(aSubject, aTopic, aData) {
- let uri = BrowserApp.selectedBrowser.currentURI;
- let check = false;
-
- switch (aTopic) {
- case "Permissions:Check":
- check = true;
- case "Permissions:Get":
- let permissions = [];
- for (let i = 0; i < this._permissonTypes.length; i++) {
- let type = this._permissonTypes[i];
- let value = this.getPermission(uri, type);
-
- // Only add the permission if it was set by the user
- if (value == Services.perms.UNKNOWN_ACTION)
- continue;
-
- if (check) {
- Messaging.sendRequest({
- type: "Permissions:CheckResult",
- hasPermissions: true
- });
- return;
- }
- // Get the strings that correspond to the permission type
- let typeStrings = this._permissionStrings[type];
- let label = Strings.browser.GetStringFromName(typeStrings["label"]);
-
- // Get the key to look up the appropriate string entity
- let valueKey = value == Services.perms.ALLOW_ACTION ?
- "allowed" : "denied";
- let valueString = Strings.browser.GetStringFromName(typeStrings[valueKey]);
-
- permissions.push({
- type: type,
- setting: label,
- value: valueString
- });
- }
-
- if (check) {
- Messaging.sendRequest({
- type: "Permissions:CheckResult",
- hasPermissions: false
- });
- return;
- }
-
- // Keep track of permissions, so we know which ones to clear
- this._currentPermissions = permissions;
-
- Messaging.sendRequest({
- type: "Permissions:Data",
- permissions: permissions
- });
- break;
-
- case "Permissions:Clear":
- // An array of the indices of the permissions we want to clear
- let permissionsToClear = JSON.parse(aData);
- let privacyContext = BrowserApp.selectedBrowser.docShell
- .QueryInterface(Ci.nsILoadContext);
-
- for (let i = 0; i < permissionsToClear.length; i++) {
- let indexToClear = permissionsToClear[i];
- let permissionType = this._currentPermissions[indexToClear]["type"];
- this.clearPermission(uri, permissionType, privacyContext);
- }
- break;
- }
- },
-
- /**
- * Gets the permission value stored for a specified permission type.
- *
- * @param aType
- * The permission type string stored in permission manager.
- * e.g. "geolocation", "indexedDB", "popup"
- *
- * @return A permission value defined in nsIPermissionManager.
- */
- getPermission: function getPermission(aURI, aType) {
- // Password saving isn't a nsIPermissionManager permission type, so handle
- // it seperately.
- if (aType == "password") {
- // By default, login saving is enabled, so if it is disabled, the
- // user selected the never remember option
- if (!Services.logins.getLoginSavingEnabled(aURI.prePath))
- return Services.perms.DENY_ACTION;
-
- // Check to see if the user ever actually saved a login
- if (Services.logins.countLogins(aURI.prePath, "", ""))
- return Services.perms.ALLOW_ACTION;
-
- return Services.perms.UNKNOWN_ACTION;
- }
-
- // Geolocation consumers use testExactPermission
- if (aType == "geolocation")
- return Services.perms.testExactPermission(aURI, aType);
-
- return Services.perms.testPermission(aURI, aType);
- },
-
- /**
- * Clears a user-set permission value for the site given a permission type.
- *
- * @param aType
- * The permission type string stored in permission manager.
- * e.g. "geolocation", "indexedDB", "popup"
- */
- clearPermission: function clearPermission(aURI, aType, aContext) {
- // Password saving isn't a nsIPermissionManager permission type, so handle
- // it seperately.
- if (aType == "password") {
- // Get rid of exisiting stored logings
- let logins = Services.logins.findLogins({}, aURI.prePath, "", "");
- for (let i = 0; i < logins.length; i++) {
- Services.logins.removeLogin(logins[i]);
- }
- // Re-set login saving to enabled
- Services.logins.setLoginSavingEnabled(aURI.prePath, true);
- } else {
- Services.perms.remove(aURI, aType);
- // Clear content prefs set in ContentPermissionPrompt.js
- Cc["@mozilla.org/content-pref/service;1"]
- .getService(Ci.nsIContentPrefService2)
- .removeByDomainAndName(aURI.spec, aType + ".request.remember", aContext);
- }
- }
-};