Bug 816900 - 1. Use |expandedPermNames[idx]| instead |msg.type + "-" + msg.access|. 2. Add |write, create| permissions in test_sim_contacts.js. r=gwagner

This commit is contained in:
Benjamin Chen 2013-01-09 13:25:34 +08:00
parent bc89f01591
commit c30123d87e
2 changed files with 17 additions and 9 deletions

View File

@ -4,6 +4,13 @@
MARIONETTE_TIMEOUT = 30000;
SpecialPowers.addPermission("contacts-read", true, document);
// TODO: see bug 804623, We are preventing "read" operations
// even if just "write" has been set to DENY_ACTION.
// Bug 816900: Because PermissionPromptHelper.jsm will expand the
// contacts-read to contacts-read, contacts-write, contacts-create,
// we add the other two permissions here.
SpecialPowers.addPermission("contacts-write", true, document);
SpecialPowers.addPermission("contacts-create", true, document);
let mozContacts = window.navigator.mozContacts;
ok(mozContacts);
@ -53,6 +60,8 @@ function runNextTest() {
function cleanUp() {
SpecialPowers.removePermission("contacts-read", document);
SpecialPowers.removePermission("contacts-write", document);
SpecialPowers.removePermission("contacts-create", document);
finish();
}

View File

@ -45,9 +45,9 @@ XPCOMUtils.defineLazyServiceGetter(this, "permissionPromptService",
"@mozilla.org/permission-prompt-service;1",
"nsIPermissionPromptService");
var permissionManager = Cc["@mozilla.org/permissionmanager;1"].getService(Ci.nsIPermissionManager);
var secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci.nsIScriptSecurityManager);
var appsService = Cc["@mozilla.org/AppsService;1"].getService(Ci.nsIAppsService);
let permissionManager = Cc["@mozilla.org/permissionmanager;1"].getService(Ci.nsIPermissionManager);
let secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci.nsIScriptSecurityManager);
let appsService = Cc["@mozilla.org/AppsService;1"].getService(Ci.nsIAppsService);
this.PermissionPromptHelper = {
init: function init() {
@ -64,15 +64,14 @@ this.PermissionPromptHelper = {
access = "readwrite"; // XXXddahl: Not sure if this should be set to READWRITE
}
// Expand permission names.
var expandedPermNames = expandPermissions(msg.type, access);
let expandedPermNames = expandPermissions(msg.type, access);
let installedPermValues = [];
let principal;
let uri = Services.io.newURI(msg.origin, null, null);
let principal =
secMan.getAppCodebasePrincipal(uri, msg.appID, msg.browserFlag);
for (let idx in expandedPermNames) {
let uri = Services.io.newURI(msg.origin, null, null);
principal =
secMan.getAppCodebasePrincipal(uri, msg.appID, msg.browserFlag);
let access = msg.access ? msg.type + "-" + msg.access : msg.type;
let access = msg.access ? expandedPermNames[idx] : msg.type;
let permValue =
permissionManager.testExactPermissionFromPrincipal(principal, access);
installedPermValues.push(permValue);