SmartestHome/hosts/thin-client/configs/firefox/user.js

51 lines
2.7 KiB
JavaScript

// Prefs for the thin client's Firefox profiles. Installed by
// build-thin-client-iso.sh into both /home/<KIOSK_USERNAME>/.mozilla/firefox/digest
// (the --kiosk digest canvas) and .../web (the browsable window with minimal chrome).
//
// user.js rather than prefs.js: user.js is re-applied to prefs.js on every startup, so
// nothing a stray click changes at runtime survives a restart. That matters on a kiosk
// nobody logs into to fix things.
//
// Anything expressible as enterprise policy lives in policies.json instead — policy is
// enforced and shows up in about:policies, whereas a pref is merely a default. The
// prefs here are the ones with no policy equivalent.
// The only reason userChrome.css is read at all. Without this the stylesheet in
// chrome/ is silently ignored and the window comes up with full default chrome.
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
// First-run / post-update interstitials. An unattended screen has nobody to close them.
user_pref("browser.startup.homepage_override.mstone", "ignore");
user_pref("browser.aboutwelcome.enabled", false);
user_pref("browser.messaging-system.whatsNewPanel.enabled", false);
user_pref("trailhead.firstrun.didSeeAboutWelcome", true);
user_pref("datareporting.policy.firstRunURL", "");
user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
// Session restore prompts after a power cut would leave the room's display stuck on a
// "restore your session?" page instead of the digest.
user_pref("browser.sessionstore.resume_from_crash", false);
user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.tabs.warnOnCloseOtherTabs", false);
user_pref("browser.warnOnQuit", false);
// No permission doorhangers on a display nobody is standing at. Autoplay is allowed
// because the digest canvas and embedded video are the point of the machine.
user_pref("permissions.default.desktop-notification", 2);
user_pref("permissions.default.geo", 2);
user_pref("media.autoplay.default", 0);
user_pref("media.autoplay.blocking_policy", 0);
// Wayland-native rather than Xwayland, matching MOZ_ENABLE_WAYLAND in kiosk-session.
// VA-API is left at its default: no thin-client hardware has been chosen yet
// (project-plan §4 #7), so forcing hardware decode here could just as easily produce a
// black video surface as a working one.
user_pref("gfx.webrender.all", true);
// The address bar in the minimal-chrome window is for typing a URL, not for a dropdown
// of suggestions covering the page.
user_pref("browser.urlbar.suggest.topsites", false);
user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);