diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-06 12:30:20 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-06 12:30:20 +0100 |
commit | e25ad543952b5afc13181aaebef9c5951fc27be0 (patch) | |
tree | 456a1359b3e5f810319edd423dd5cc5a1e22ada5 /toolkit/components/webextensions/test/xpcshell/head_sync.js | |
parent | 74533a843277c3687c749989ed1522354d1054d2 (diff) | |
parent | 5dba1ebe8498286762873fff0016f35f3e14d2d5 (diff) | |
download | UXP-2019.03.08.tar UXP-2019.03.08.tar.gz UXP-2019.03.08.tar.lz UXP-2019.03.08.tar.xz UXP-2019.03.08.zip |
Merge branch 'master' into Basilisk-releasev2019.03.08
Diffstat (limited to 'toolkit/components/webextensions/test/xpcshell/head_sync.js')
-rw-r--r-- | toolkit/components/webextensions/test/xpcshell/head_sync.js | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/toolkit/components/webextensions/test/xpcshell/head_sync.js b/toolkit/components/webextensions/test/xpcshell/head_sync.js deleted file mode 100644 index 9b66b78e7..000000000 --- a/toolkit/components/webextensions/test/xpcshell/head_sync.js +++ /dev/null @@ -1,67 +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"; - -/* exported withSyncContext */ - -Components.utils.import("resource://gre/modules/Services.jsm", this); -Components.utils.import("resource://gre/modules/ExtensionCommon.jsm", this); - -var { - BaseContext, -} = ExtensionCommon; - -class Context extends BaseContext { - constructor(principal) { - super(); - Object.defineProperty(this, "principal", { - value: principal, - configurable: true, - }); - this.sandbox = Components.utils.Sandbox(principal, {wantXrays: false}); - this.extension = {id: "test@web.extension"}; - } - - get cloneScope() { - return this.sandbox; - } -} - -/** - * Call the given function with a newly-constructed context. - * Unload the context on the way out. - * - * @param {function} f the function to call - */ -function* withContext(f) { - const ssm = Services.scriptSecurityManager; - const PRINCIPAL1 = ssm.createCodebasePrincipalFromOrigin("http://www.example.org"); - const context = new Context(PRINCIPAL1); - try { - yield* f(context); - } finally { - yield context.unload(); - } -} - -/** - * Like withContext(), but also turn on the "storage.sync" pref for - * the duration of the function. - * Calls to this function can be replaced with calls to withContext - * once the pref becomes on by default. - * - * @param {function} f the function to call - */ -function* withSyncContext(f) { - const STORAGE_SYNC_PREF = "webextensions.storage.sync.enabled"; - let prefs = Services.prefs; - - try { - prefs.setBoolPref(STORAGE_SYNC_PREF, true); - yield* withContext(f); - } finally { - prefs.clearUserPref(STORAGE_SYNC_PREF); - } -} |