forked from mirrors/gecko-dev
MozReview-Commit-ID: CxvHSp1NjFg --HG-- extra : rebase_source : 58e6f5b8020c01fad8da2b29e78a0c69bb78cb63
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
/* 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";
|
|
|
|
Cu.import("resource:///modules/SitePermissions.jsm", this);
|
|
|
|
const EXPIRE_TIME_MS = 100;
|
|
const TIMEOUT_MS = 500;
|
|
|
|
// This tests the time delay to expire temporary permission entries.
|
|
add_task(function* testTemporaryPermissionExpiry() {
|
|
SpecialPowers.pushPrefEnv({set: [
|
|
["privacy.temporary_permission_expire_time_ms", EXPIRE_TIME_MS],
|
|
]});
|
|
|
|
let uri = Services.io.newURI("https://example.com")
|
|
let id = "camera";
|
|
|
|
yield BrowserTestUtils.withNewTab(uri.spec, function*(browser) {
|
|
SitePermissions.set(uri, id, SitePermissions.BLOCK, SitePermissions.SCOPE_TEMPORARY, browser);
|
|
|
|
Assert.deepEqual(SitePermissions.get(uri, id, browser), {
|
|
state: SitePermissions.BLOCK,
|
|
scope: SitePermissions.SCOPE_TEMPORARY,
|
|
});
|
|
|
|
yield new Promise((c) => setTimeout(c, TIMEOUT_MS));
|
|
|
|
Assert.deepEqual(SitePermissions.get(uri, id, browser), {
|
|
state: SitePermissions.UNKNOWN,
|
|
scope: SitePermissions.SCOPE_PERSISTENT,
|
|
});
|
|
});
|
|
});
|