Bug 1469943 - Policy: Custom App Update URL r?felipe
MozReview-Commit-ID: 4OlL7cR5Qb3
--- a/browser/components/enterprisepolicies/Policies.jsm
+++ b/browser/components/enterprisepolicies/Policies.jsm
@@ -56,16 +56,22 @@ var EXPORTED_SYMBOLS = ["Policies"];
* It will be different for each policy. It could be a boolean,
* a string, an array or a complex object. All parameters have
* been validated according to the schema, and no unknown
* properties will be present on them.
*
* The callbacks will be bound to their parent policy object.
*/
var Policies = {
+ "AppUpdateURL": {
+ onBeforeAddons(manager, param) {
+ setDefaultPref("app.update.url", param.href);
+ }
+ },
+
"Authentication": {
onBeforeAddons(manager, param) {
if ("SPNEGO" in param) {
setAndLockPref("network.negotiate-auth.trusted-uris", param.SPNEGO.join(", "));
}
if ("Delegated" in param) {
setAndLockPref("network.negotiate-auth.delegation-uris", param.Delegated.join(", "));
}
--- a/browser/components/enterprisepolicies/schemas/policies-schema.json
+++ b/browser/components/enterprisepolicies/schemas/policies-schema.json
@@ -1,12 +1,18 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
+ "AppUpdateURL": {
+ "description": "Sets custom app update server URL.",
+ "machine_only": true,
+ "type": "URL"
+ },
+
"Authentication": {
"description": "Sites that support integrated authentication. See https://developer.mozilla.org/en-US/docs/Mozilla/Integrated_authentication",
"type": "object",
"properties": {
"SPNEGO" : {
"type": "array",
"items": {
--- a/browser/components/enterprisepolicies/tests/browser/browser.ini
+++ b/browser/components/enterprisepolicies/tests/browser/browser.ini
@@ -15,16 +15,17 @@ support-files =
[browser_policies_getActivePolicies.js]
[browser_policies_notice_in_aboutpreferences.js]
[browser_policies_popups_cookies_addons_flash.js]
[browser_policies_runOnce_helper.js]
[browser_policies_setAndLockPref_API.js]
[browser_policies_simple_pref_policies.js]
[browser_policies_sorted_alphabetically.js]
[browser_policy_app_update.js]
+[browser_policy_app_update_URL.js]
[browser_policy_block_about_addons.js]
[browser_policy_block_about_config.js]
[browser_policy_block_about_profiles.js]
[browser_policy_block_about_support.js]
[browser_policy_block_set_desktop_background.js]
[browser_policy_bookmarks.js]
[browser_policy_clear_blocked_cookies.js]
[browser_policy_cookie_settings.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_app_update_URL.js
@@ -0,0 +1,18 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function test_app_update_URL() {
+ await setupPolicyEngineWithJson({
+ "policies": {
+ "AppUpdateURL": "https://www.example.com/"
+ }
+ });
+
+ is(Services.policies.status, Ci.nsIEnterprisePolicies.ACTIVE, "Engine is active");
+
+ let expected = Services.prefs.getStringPref("app.update.url", undefined);
+
+ is("https://www.example.com/", expected, "Correct app update URL");
+});
\ No newline at end of file