Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
requestLongerTimeout(3);
add_setup(async function setupPrefs() {
await SpecialPowers.pushPrefEnv({
set: [
["browser.preferences.aiControls", true],
["browser.ai.control.default", "available"],
["browser.ai.control.translations", "default"],
["browser.ai.control.pdfjsAltText", "default"],
["browser.ai.control.smartTabGroups", "default"],
["browser.ai.control.linkPreviewKeyPoints", "default"],
["browser.ai.control.sidebarChatbot", "default"],
["browser.ai.control.smartWindow", "default"],
["browser.smartwindow.enabled", true],
],
});
});
describe("settings ai features", () => {
describe("managed by policy", () => {
async function runPolicyTest(doc, name, pref, settingId) {
try {
Services.prefs.lockPref(pref);
doc.ownerGlobal.Preferences.getSetting(settingId).emit("change");
await new Promise(r => doc.ownerGlobal.requestAnimationFrame(r));
const control = doc.getElementById(settingId);
Assert.ok(control, `${name} control exists`);
Assert.ok(
BrowserTestUtils.isVisible(control),
`${name} control is visible when locked`
);
Assert.ok(
control.disabled,
`${name} control is disabled when pref is locked`
);
} finally {
Services.prefs.unlockPref(pref);
}
}
it("disables based on enterprise policies", async () => {
await withPrefsPane("ai", async doc => {
await runPolicyTest(
doc,
"Smart Tab Groups",
"browser.tabs.groups.smart.userEnabled",
"aiControlSmartTabGroupsSelect"
);
await runPolicyTest(
doc,
"Link Preview",
"browser.ml.linkPreview.optin",
"aiControlLinkPreviewKeyPointsSelect"
);
await runPolicyTest(
doc,
"Sidebar Chatbot",
"browser.ml.chat.enabled",
"aiControlSidebarChatbotSelect"
);
await runPolicyTest(
doc,
"Translations",
"browser.translations.enable",
"aiControlTranslationsSelect"
);
// Smart Window enterprise policy
const smartWindowPref = "browser.smartwindow.enabled";
const defaultBranch = Services.prefs.getDefaultBranch(null);
const origDefault = defaultBranch.getBoolPref(smartWindowPref, false);
try {
defaultBranch.setBoolPref(smartWindowPref, true);
await runPolicyTest(
doc,
"SmartWindow",
"browser.smartwindow.enabled",
"aiControlSmartWindowSelect"
);
} finally {
defaultBranch.setBoolPref("browser.smartwindow.enabled", origDefault);
}
});
});
});
});