Bug 1429163 - Policy: Disable Pocket. r=nateweiner
MozReview-Commit-ID: CwMw43DDssM
--- a/browser/components/enterprisepolicies/Policies.jsm
+++ b/browser/components/enterprisepolicies/Policies.jsm
@@ -106,16 +106,24 @@ this.Policies = {
"DisableMasterPassword": {
onBeforeUIStartup(manager, param) {
if (param == true) {
manager.disallowFeature("masterPassword");
}
}
},
+ "DisablePocket": {
+ onBeforeAddons(manager, param) {
+ if (param == true) {
+ setAndLockPref("extensions.pocket.enabled", false);
+ }
+ }
+ },
+
"dont_check_default_browser": {
onBeforeUIStartup(manager, param) {
setAndLockPref("browser.shell.checkDefaultBrowser", false);
}
},
"flash_plugin": {
onBeforeUIStartup(manager, param) {
--- a/browser/components/enterprisepolicies/schemas/policies-schema.json
+++ b/browser/components/enterprisepolicies/schemas/policies-schema.json
@@ -61,16 +61,24 @@
"DisableMasterPassword": {
"description": "Removes access to setting a master password.",
"first_available": "60.0",
"type": "boolean",
"enum": [true]
},
+ "DisablePocket": {
+ "description": "Prevents usage of the \"Pocket\" feature.",
+ "first_available": "60.0",
+
+ "type": "boolean",
+ "enum": [true]
+ },
+
"dont_check_default_browser": {
"description": "Don't check for the default browser on startup.",
"first_available": "60.0",
"type": "boolean",
"enum": [true]
},
--- a/browser/components/enterprisepolicies/tests/browser/browser.ini
+++ b/browser/components/enterprisepolicies/tests/browser/browser.ini
@@ -13,11 +13,12 @@ support-files =
[browser_policies_validate_and_parse_API.js]
[browser_policy_block_set_desktop_background.js]
[browser_policy_default_browser_check.js]
[browser_policy_disable_fxscreenshots.js]
[browser_policy_disable_masterpassword.js]
[browser_policy_display_bookmarks.js]
[browser_policy_disable_formhistory.js]
[browser_policy_display_menu.js]
+[browser_policy_disable_pocket.js]
[browser_policy_disable_shield.js]
[browser_policy_remember_passwords.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_disable_pocket.js
@@ -0,0 +1,36 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const PREF_POCKET = "extensions.pocket.enabled";
+
+async function checkPocket(shouldBeEnabled) {
+ return BrowserTestUtils.waitForCondition(() => {
+ return !!PageActions.actionForID("pocket") == shouldBeEnabled;
+ }, "Expecting Pocket to be " + shouldBeEnabled);
+}
+
+add_task(async function test_disable_firefox_screenshots() {
+ await BrowserTestUtils.withNewTab("data:text/html,Test", async function() {
+
+ // Sanity check to make sure Pocket is enabled on tests
+ await checkPocket(true);
+
+ await setupPolicyEngineWithJson({
+ "policies": {
+ "DisablePocket": true
+ }
+ });
+
+ await checkPocket(false);
+
+ // Clear the change made by the engine to restore Pocket.
+ // This is needed in case this test runs twice in a row
+ // (such as in test-verify), in order for the first sanity check
+ // to pass again.
+ await setupPolicyEngineWithJson("");
+ Services.prefs.unlockPref(PREF_POCKET);
+ Services.prefs.getDefaultBranch("").setBoolPref(PREF_POCKET, true);
+ });
+});