зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1335829
Add mozAddonManager.permissionPromptsEnabled r=qdot
MozReview-Commit-ID: FldFilY24kf --HG-- extra : rebase_source : 19a8996a443098fbe095cd14653d10dc80f30b68
This commit is contained in:
Родитель
95470fc250
Коммит
9e4e48131a
|
@ -77,6 +77,9 @@ interface AddonManager : EventTarget {
|
|||
*/
|
||||
Promise<AddonInstall> createInstall(optional addonInstallOptions options);
|
||||
|
||||
// Indicator to content whether permissions prompts are enabled
|
||||
readonly attribute boolean permissionPromptsEnabled;
|
||||
|
||||
/* Hooks for managing event listeners */
|
||||
[ChromeOnly]
|
||||
void eventListenerWasAdded(DOMString type);
|
||||
|
|
|
@ -10,6 +10,9 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
|||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/Task.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyPreferenceGetter(this, "WEBEXT_PERMISSION_PROMPTS",
|
||||
"extensions.webextPermissionPrompts", false);
|
||||
|
||||
const MSG_PROMISE_REQUEST = "WebAPIPromiseRequest";
|
||||
const MSG_PROMISE_RESULT = "WebAPIPromiseResult";
|
||||
const MSG_INSTALL_EVENT = "WebAPIInstallEvent";
|
||||
|
@ -239,6 +242,10 @@ class WebAPI extends APIObject {
|
|||
});
|
||||
}
|
||||
|
||||
get permissionPromptsEnabled() {
|
||||
return WEBEXT_PERMISSION_PROMPTS;
|
||||
}
|
||||
|
||||
eventListenerWasAdded(type) {
|
||||
if (this.listenerCount == 0) {
|
||||
this.broker.setAddonListener(data => {
|
||||
|
|
|
@ -104,3 +104,19 @@ add_task(testWithAPI(function*(browser) {
|
|||
compareObjects(w2, a2);
|
||||
compareObjects(w3, a3);
|
||||
}));
|
||||
|
||||
add_task(testWithAPI(function*(browser) {
|
||||
function* check(value, message) {
|
||||
let enabled = yield ContentTask.spawn(browser, null, function*() {
|
||||
return content.navigator.mozAddonManager.permissionPromptsEnabled;
|
||||
});
|
||||
is(enabled, value, message);
|
||||
}
|
||||
|
||||
const PERM = "extensions.webextPermissionPrompts";
|
||||
yield SpecialPowers.pushPrefEnv({clear: [[PERM]]});
|
||||
yield check(false, `mozAddonManager.permissionPromptsEnabled is false when ${PERM} is unset`);
|
||||
|
||||
yield SpecialPowers.pushPrefEnv({set: [[PERM, true]]});
|
||||
yield check(true, `mozAddonManager.permissionPromptsEnabled is true when ${PERM} is set`);
|
||||
}));
|
||||
|
|
Загрузка…
Ссылка в новой задаче