diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 4dd626ad22ab3..8d173b156a406 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -2874,7 +2874,12 @@ pref("browser.migrate.preferences-entrypoint.enabled", true); // "offered" - we have offered feature to user and they have not yet made a decision. // "enabled" - user opted in to the feature. // "disabled" - user opted out of the feature. +#ifdef MOZ_ENTERPRISE +// Firefox Relay is not supported in enterprise builds +pref("signon.firefoxRelay.feature", "unavailable"); +#else pref("signon.firefoxRelay.feature", "available"); +#endif pref("signon.management.page.breach-alerts.enabled", true); pref("signon.management.page.vulnerable-passwords.enabled", true); pref("signon.management.page.sort", "name"); diff --git a/toolkit/components/passwordmgr/test/browser/browser.toml b/toolkit/components/passwordmgr/test/browser/browser.toml index 11e090b83c49c..a4329460e7371 100644 --- a/toolkit/components/passwordmgr/test/browser/browser.toml +++ b/toolkit/components/passwordmgr/test/browser/browser.toml @@ -270,17 +270,25 @@ skip-if = [ "os == 'win' && os_version == '11.26200' && verify-standalone", ] +["browser_relay_disabled_enterprise.js"] +support-files = ["browser_relay_utils.js"] +run-if = ["enterprise"] + ["browser_relay_signup_flow.js"] support-files = ["browser_relay_utils.js"] +skip-if = ["enterprise"] ["browser_relay_signup_flow_showToAllBrowsers.js"] support-files = ["browser_relay_utils.js"] +skip-if = ["enterprise"] ["browser_relay_telemetry.js"] support-files = ["browser_relay_utils.js"] +skip-if = ["enterprise"] ["browser_relay_use.js"] support-files = ["browser_relay_utils.js"] +skip-if = ["enterprise"] ["browser_rust_mirror.js"] skip-if = [ diff --git a/toolkit/components/passwordmgr/test/browser/browser_relay_disabled_enterprise.js b/toolkit/components/passwordmgr/test/browser/browser_relay_disabled_enterprise.js new file mode 100644 index 0000000000000..4ad60dc1cf8c1 --- /dev/null +++ b/toolkit/components/passwordmgr/test/browser/browser_relay_disabled_enterprise.js @@ -0,0 +1,50 @@ +const TEST_URL_PATH = `https://example.org${DIRECTORY_PATH}form_basic_signup.html`; + +Services.scriptloader.loadSubScript( + "chrome://mochitests/content/browser/toolkit/components/passwordmgr/test/browser/browser_relay_utils.js", + this +); + +add_task(async function test_enterprise_relay_feature_default_disabled() { + Assert.equal( + Services.prefs + .getDefaultBranch("") + .getStringPref("signon.firefoxRelay.feature"), + "unavailable", + "signon.firefoxRelay.feature default should be 'unavailable' in enterprise builds" + ); +}); + +add_task(async function test_enterprise_relay_utils_reports_disabled() { + const { FirefoxRelayUtils } = ChromeUtils.importESModule( + "resource://gre/modules/FirefoxRelayUtils.sys.mjs" + ); + + Assert.ok( + !FirefoxRelayUtils.relayIsAvailableOrEnabled(), + "FirefoxRelayUtils.relayIsAvailableOrEnabled() should return false when feature is disabled" + ); +}); + +add_task( + async function test_enterprise_relay_autocomplete_not_shown_when_disabled() { + const rsSandbox = await stubRemoteSettingsAllowList(); + await BrowserTestUtils.withNewTab( + { + gBrowser, + url: TEST_URL_PATH, + }, + async function (browser) { + const popup = document.getElementById("PopupAutoComplete"); + await openACPopup(popup, browser, "#form-basic-username"); + + const relayItem = getRelayItemFromACPopup(popup); + Assert.ok( + !relayItem, + "Relay item SHOULD NOT be present in the autocomplete popup when the feature is disabled" + ); + } + ); + rsSandbox.restore(); + } +);