test_simple_pref_policies.js (32673B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /* 7 * Use this file to add tests to policies that are 8 * simple pref flips. 9 * 10 * It's best to make a test to actually test the feature 11 * instead of the pref flip, but if that feature is well 12 * covered by tests, including that its pref actually works, 13 * it's OK to have the policy test here just to ensure 14 * that the right pref values are set. 15 */ 16 17 const POLICIES_TESTS = [ 18 /* 19 * Example: 20 * { 21 * // Policies to be set at once through the engine 22 * policies: { "DisableFoo": true, "ConfigureBar": 42 }, 23 * 24 * // Locked prefs to check 25 * lockedPrefs: { "feature.foo": false }, 26 * 27 * // Unlocked prefs to check 28 * unlockedPrefs: { "bar.baz": 42 } 29 * }, 30 */ 31 32 // POLICY: DisableSecurityBypass 33 { 34 policies: { 35 DisableSecurityBypass: { 36 InvalidCertificate: true, 37 SafeBrowsing: true, 38 }, 39 }, 40 lockedPrefs: { 41 "security.certerror.hideAddException": true, 42 "browser.safebrowsing.allowOverride": false, 43 }, 44 }, 45 46 // POLICY: DisableFormHistory 47 { 48 policies: { DisableFormHistory: true }, 49 lockedPrefs: { "browser.formfill.enable": false }, 50 }, 51 52 // POLICY: EnableTrackingProtection 53 { 54 policies: { 55 EnableTrackingProtection: { 56 Value: true, 57 }, 58 }, 59 unlockedPrefs: { 60 "privacy.trackingprotection.enabled": true, 61 "privacy.trackingprotection.pbmode.enabled": true, 62 }, 63 }, 64 { 65 policies: { 66 EnableTrackingProtection: { 67 Value: false, 68 Locked: true, 69 }, 70 }, 71 lockedPrefs: { 72 "privacy.trackingprotection.enabled": false, 73 "privacy.trackingprotection.pbmode.enabled": false, 74 }, 75 }, 76 77 { 78 policies: { 79 EnableTrackingProtection: { 80 Cryptomining: true, 81 Fingerprinting: true, 82 EmailTracking: true, 83 SuspectedFingerprinting: true, 84 BaselineExceptions: true, 85 ConvenienceExceptions: true, 86 Locked: true, 87 }, 88 }, 89 lockedPrefs: { 90 "privacy.trackingprotection.cryptomining.enabled": true, 91 "privacy.trackingprotection.fingerprinting.enabled": true, 92 "privacy.trackingprotection.emailtracking.enabled": true, 93 "privacy.trackingprotection.emailtracking.pbmode.enabled": true, 94 "privacy.fingerprintingProtection": true, 95 "privacy.fingerprintingProtection.pbmode": true, 96 "privacy.trackingprotection.allow_list.baseline.enabled": true, 97 "privacy.trackingprotection.allow_list.convenience.enabled": true, 98 }, 99 }, 100 101 // POLICY: GoToIntranetSiteForSingleWordEntryInAddressBar 102 { 103 policies: { 104 GoToIntranetSiteForSingleWordEntryInAddressBar: true, 105 }, 106 lockedPrefs: { 107 "browser.fixup.dns_first_for_single_words": true, 108 }, 109 }, 110 111 // POLICY: OverrideFirstRunPage 112 { 113 policies: { OverrideFirstRunPage: "https://www.example.com/" }, 114 lockedPrefs: { "startup.homepage_welcome_url": "https://www.example.com/" }, 115 }, 116 117 // POLICY: Authentication 118 { 119 policies: { 120 Authentication: { 121 SPNEGO: ["a.com", "b.com"], 122 Delegated: ["a.com", "b.com"], 123 NTLM: ["a.com", "b.com"], 124 AllowNonFQDN: { 125 SPNEGO: true, 126 NTLM: true, 127 }, 128 AllowProxies: { 129 SPNEGO: false, 130 NTLM: false, 131 }, 132 PrivateBrowsing: true, 133 }, 134 }, 135 lockedPrefs: { 136 "network.negotiate-auth.trusted-uris": "a.com, b.com", 137 "network.negotiate-auth.delegation-uris": "a.com, b.com", 138 "network.automatic-ntlm-auth.trusted-uris": "a.com, b.com", 139 "network.automatic-ntlm-auth.allow-non-fqdn": true, 140 "network.negotiate-auth.allow-non-fqdn": true, 141 "network.automatic-ntlm-auth.allow-proxies": false, 142 "network.negotiate-auth.allow-proxies": false, 143 "network.auth.private-browsing-sso": true, 144 }, 145 }, 146 147 // POLICY: Authentication (unlocked) 148 { 149 policies: { 150 Authentication: { 151 SPNEGO: ["a.com", "b.com"], 152 Delegated: ["a.com", "b.com"], 153 NTLM: ["a.com", "b.com"], 154 AllowNonFQDN: { 155 SPNEGO: true, 156 NTLM: true, 157 }, 158 AllowProxies: { 159 SPNEGO: false, 160 NTLM: false, 161 }, 162 PrivateBrowsing: true, 163 Locked: false, 164 }, 165 }, 166 unlockedPrefs: { 167 "network.negotiate-auth.trusted-uris": "a.com, b.com", 168 "network.negotiate-auth.delegation-uris": "a.com, b.com", 169 "network.automatic-ntlm-auth.trusted-uris": "a.com, b.com", 170 "network.automatic-ntlm-auth.allow-non-fqdn": true, 171 "network.negotiate-auth.allow-non-fqdn": true, 172 "network.automatic-ntlm-auth.allow-proxies": false, 173 "network.negotiate-auth.allow-proxies": false, 174 "network.auth.private-browsing-sso": true, 175 }, 176 }, 177 178 // POLICY: Certificates (false) 179 { 180 policies: { 181 Certificates: { 182 ImportEnterpriseRoots: false, 183 }, 184 }, 185 lockedPrefs: { 186 "security.enterprise_roots.enabled": false, 187 }, 188 }, 189 190 // POLICY: InstallAddons.Default (block addon installs) 191 { 192 policies: { 193 InstallAddonsPermission: { 194 Default: false, 195 }, 196 }, 197 lockedPrefs: { 198 "xpinstall.enabled": false, 199 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": false, 200 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": false, 201 }, 202 }, 203 204 // POLICY: SanitizeOnShutdown 205 { 206 policies: { 207 SanitizeOnShutdown: true, 208 }, 209 lockedPrefs: { 210 "privacy.sanitize.sanitizeOnShutdown": true, 211 "privacy.clearOnShutdown.cache": true, 212 "privacy.clearOnShutdown.cookies": true, 213 "privacy.clearOnShutdown.downloads": true, 214 "privacy.clearOnShutdown.formdata": true, 215 "privacy.clearOnShutdown.history": true, 216 "privacy.clearOnShutdown.sessions": true, 217 "privacy.clearOnShutdown.siteSettings": true, 218 "privacy.clearOnShutdown.offlineApps": true, 219 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": true, 220 "privacy.clearOnShutdown_v2.cookiesAndStorage": true, 221 "privacy.clearOnShutdown_v2.cache": true, 222 "privacy.clearOnShutdown_v2.siteSettings": true, 223 "privacy.clearOnShutdown_v2.formdata": true, 224 }, 225 }, 226 227 { 228 policies: { 229 SanitizeOnShutdown: false, 230 }, 231 lockedPrefs: { 232 "privacy.sanitize.sanitizeOnShutdown": false, 233 "privacy.clearOnShutdown.cache": false, 234 "privacy.clearOnShutdown.cookies": false, 235 "privacy.clearOnShutdown.downloads": false, 236 "privacy.clearOnShutdown.formdata": false, 237 "privacy.clearOnShutdown.history": false, 238 "privacy.clearOnShutdown.sessions": false, 239 "privacy.clearOnShutdown.siteSettings": false, 240 "privacy.clearOnShutdown.offlineApps": false, 241 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 242 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 243 "privacy.clearOnShutdown_v2.cache": false, 244 "privacy.clearOnShutdown_v2.siteSettings": false, 245 "privacy.clearOnShutdown_v2.formdata": false, 246 }, 247 }, 248 249 { 250 policies: { 251 SanitizeOnShutdown: { 252 Cache: true, 253 }, 254 }, 255 lockedPrefs: { 256 "privacy.sanitize.sanitizeOnShutdown": true, 257 "privacy.clearOnShutdown.cache": true, 258 "privacy.clearOnShutdown.cookies": false, 259 "privacy.clearOnShutdown.downloads": false, 260 "privacy.clearOnShutdown.formdata": false, 261 "privacy.clearOnShutdown.history": false, 262 "privacy.clearOnShutdown.sessions": false, 263 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 264 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 265 "privacy.clearOnShutdown_v2.cache": true, 266 "privacy.clearOnShutdown_v2.formdata": false, 267 }, 268 }, 269 270 { 271 policies: { 272 SanitizeOnShutdown: { 273 Cookies: true, 274 }, 275 }, 276 lockedPrefs: { 277 "privacy.sanitize.sanitizeOnShutdown": true, 278 "privacy.clearOnShutdown.cache": false, 279 "privacy.clearOnShutdown.cookies": true, 280 "privacy.clearOnShutdown.downloads": false, 281 "privacy.clearOnShutdown.formdata": false, 282 "privacy.clearOnShutdown.history": false, 283 "privacy.clearOnShutdown.sessions": false, 284 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 285 "privacy.clearOnShutdown_v2.cookiesAndStorage": true, 286 "privacy.clearOnShutdown_v2.cache": false, 287 "privacy.clearOnShutdown_v2.formdata": false, 288 }, 289 }, 290 291 { 292 policies: { 293 SanitizeOnShutdown: { 294 Downloads: true, 295 }, 296 }, 297 lockedPrefs: { 298 "privacy.sanitize.sanitizeOnShutdown": true, 299 "privacy.clearOnShutdown.cache": false, 300 "privacy.clearOnShutdown.cookies": false, 301 "privacy.clearOnShutdown.downloads": true, 302 "privacy.clearOnShutdown.formdata": false, 303 "privacy.clearOnShutdown.history": false, 304 "privacy.clearOnShutdown.sessions": false, 305 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 306 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 307 "privacy.clearOnShutdown_v2.cache": false, 308 "privacy.clearOnShutdown_v2.formdata": false, 309 }, 310 }, 311 312 { 313 policies: { 314 SanitizeOnShutdown: { 315 FormData: true, 316 }, 317 }, 318 lockedPrefs: { 319 "privacy.sanitize.sanitizeOnShutdown": true, 320 "privacy.clearOnShutdown.cache": false, 321 "privacy.clearOnShutdown.cookies": false, 322 "privacy.clearOnShutdown.downloads": false, 323 "privacy.clearOnShutdown.formdata": true, 324 "privacy.clearOnShutdown.history": false, 325 "privacy.clearOnShutdown.sessions": false, 326 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 327 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 328 "privacy.clearOnShutdown_v2.cache": false, 329 "privacy.clearOnShutdown_v2.formdata": true, 330 }, 331 }, 332 333 { 334 policies: { 335 SanitizeOnShutdown: { 336 History: true, 337 }, 338 }, 339 lockedPrefs: { 340 "privacy.sanitize.sanitizeOnShutdown": true, 341 "privacy.clearOnShutdown.cache": false, 342 "privacy.clearOnShutdown.cookies": false, 343 "privacy.clearOnShutdown.downloads": false, 344 "privacy.clearOnShutdown.formdata": false, 345 "privacy.clearOnShutdown.history": true, 346 "privacy.clearOnShutdown.sessions": false, 347 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": true, 348 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 349 "privacy.clearOnShutdown_v2.cache": false, 350 "privacy.clearOnShutdown_v2.formdata": false, 351 }, 352 }, 353 354 { 355 policies: { 356 SanitizeOnShutdown: { 357 Sessions: true, 358 }, 359 }, 360 lockedPrefs: { 361 "privacy.sanitize.sanitizeOnShutdown": true, 362 "privacy.clearOnShutdown.cache": false, 363 "privacy.clearOnShutdown.cookies": false, 364 "privacy.clearOnShutdown.downloads": false, 365 "privacy.clearOnShutdown.formdata": false, 366 "privacy.clearOnShutdown.history": false, 367 "privacy.clearOnShutdown.sessions": true, 368 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 369 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 370 "privacy.clearOnShutdown_v2.cache": false, 371 "privacy.clearOnShutdown_v2.formdata": false, 372 }, 373 }, 374 375 { 376 policies: { 377 SanitizeOnShutdown: { 378 SiteSettings: true, 379 }, 380 }, 381 lockedPrefs: { 382 "privacy.sanitize.sanitizeOnShutdown": true, 383 "privacy.clearOnShutdown.cache": false, 384 "privacy.clearOnShutdown.cookies": false, 385 "privacy.clearOnShutdown.downloads": false, 386 "privacy.clearOnShutdown.formdata": false, 387 "privacy.clearOnShutdown.history": false, 388 "privacy.clearOnShutdown.sessions": false, 389 "privacy.clearOnShutdown.siteSettings": true, 390 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 391 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 392 "privacy.clearOnShutdown_v2.cache": false, 393 "privacy.clearOnShutdown_v2.siteSettings": true, 394 "privacy.clearOnShutdown_v2.formdata": false, 395 }, 396 }, 397 398 { 399 policies: { 400 SanitizeOnShutdown: { 401 OfflineApps: true, 402 }, 403 }, 404 lockedPrefs: { 405 "privacy.sanitize.sanitizeOnShutdown": true, 406 "privacy.clearOnShutdown.cache": false, 407 "privacy.clearOnShutdown.cookies": false, 408 "privacy.clearOnShutdown.downloads": false, 409 "privacy.clearOnShutdown.formdata": false, 410 "privacy.clearOnShutdown.history": false, 411 "privacy.clearOnShutdown.sessions": false, 412 "privacy.clearOnShutdown.offlineApps": true, 413 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 414 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 415 "privacy.clearOnShutdown_v2.cache": false, 416 }, 417 }, 418 419 // POLICY: SanitizeOnShutdown using Locked 420 { 421 policies: { 422 SanitizeOnShutdown: { 423 Cache: true, 424 Locked: true, 425 }, 426 }, 427 lockedPrefs: { 428 "privacy.sanitize.sanitizeOnShutdown": true, 429 "privacy.clearOnShutdown.cache": true, 430 "privacy.clearOnShutdown_v2.cache": true, 431 }, 432 unlockedPrefs: { 433 "privacy.clearOnShutdown.cookies": false, 434 "privacy.clearOnShutdown.downloads": false, 435 "privacy.clearOnShutdown.formdata": false, 436 "privacy.clearOnShutdown.history": false, 437 "privacy.clearOnShutdown.sessions": false, 438 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 439 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 440 "privacy.clearOnShutdown_v2.formdata": false, 441 }, 442 }, 443 444 { 445 policies: { 446 SanitizeOnShutdown: { 447 Cache: true, 448 Cookies: false, 449 Locked: true, 450 }, 451 }, 452 lockedPrefs: { 453 "privacy.sanitize.sanitizeOnShutdown": true, 454 "privacy.clearOnShutdown.cache": true, 455 "privacy.clearOnShutdown.cookies": false, 456 "privacy.clearOnShutdown_v2.cache": true, 457 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 458 }, 459 unlockedPrefs: { 460 "privacy.clearOnShutdown.downloads": false, 461 "privacy.clearOnShutdown.formdata": false, 462 "privacy.clearOnShutdown.history": false, 463 "privacy.clearOnShutdown.sessions": false, 464 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 465 "privacy.clearOnShutdown_v2.formdata": false, 466 }, 467 }, 468 469 { 470 policies: { 471 SanitizeOnShutdown: { 472 Cache: true, 473 Locked: false, 474 }, 475 }, 476 unlockedPrefs: { 477 "privacy.sanitize.sanitizeOnShutdown": true, 478 "privacy.clearOnShutdown.cache": true, 479 "privacy.clearOnShutdown.cookies": false, 480 "privacy.clearOnShutdown.downloads": false, 481 "privacy.clearOnShutdown.formdata": false, 482 "privacy.clearOnShutdown.history": false, 483 "privacy.clearOnShutdown.sessions": false, 484 "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads": false, 485 "privacy.clearOnShutdown_v2.cookiesAndStorage": false, 486 "privacy.clearOnShutdown_v2.cache": true, 487 "privacy.clearOnShutdown_v2.formdata": false, 488 }, 489 }, 490 491 // POLICY: DNSOverHTTPS Unlocked 492 { 493 policies: { 494 DNSOverHTTPS: { 495 Enabled: false, 496 ProviderURL: "https://example.com/provider", 497 ExcludedDomains: ["example.com", "example.org"], 498 }, 499 }, 500 unlockedPrefs: { 501 "network.trr.mode": 5, 502 "network.trr.uri": "https://example.com/provider", 503 "network.trr.excluded-domains": "example.com,example.org", 504 }, 505 }, 506 507 // POLICY: DNSOverHTTPS Fallback off 508 { 509 policies: { 510 DNSOverHTTPS: { 511 Enabled: true, 512 Fallback: false, 513 }, 514 }, 515 unlockedPrefs: { 516 "network.trr.mode": 3, 517 }, 518 }, 519 520 // POLICY: DNSOverHTTPS Locked 521 { 522 policies: { 523 DNSOverHTTPS: { 524 Enabled: true, 525 ProviderURL: "https://example.com/provider", 526 ExcludedDomains: ["example.com", "example.org"], 527 Locked: true, 528 }, 529 }, 530 lockedPrefs: { 531 "network.trr.mode": 2, 532 "network.trr.uri": "https://example.com/provider", 533 "network.trr.excluded-domains": "example.com,example.org", 534 }, 535 }, 536 537 // POLICY: SSLVersionMin/SSLVersionMax (1) 538 { 539 policies: { 540 SSLVersionMin: "tls1", 541 SSLVersionMax: "tls1.1", 542 }, 543 lockedPrefs: { 544 "security.tls.version.min": 1, 545 "security.tls.version.max": 2, 546 }, 547 }, 548 549 // POLICY: SSLVersionMin/SSLVersionMax (2) 550 { 551 policies: { 552 SSLVersionMin: "tls1.2", 553 SSLVersionMax: "tls1.3", 554 }, 555 lockedPrefs: { 556 "security.tls.version.min": 3, 557 "security.tls.version.max": 4, 558 }, 559 }, 560 561 // POLICY: CaptivePortal 562 { 563 policies: { 564 CaptivePortal: false, 565 }, 566 lockedPrefs: { 567 "network.captive-portal-service.enabled": false, 568 }, 569 }, 570 571 // POLICY: NetworkPrediction 572 { 573 policies: { 574 NetworkPrediction: false, 575 }, 576 lockedPrefs: { 577 "network.dns.disablePrefetch": true, 578 "network.dns.disablePrefetchFromHTTPS": true, 579 }, 580 }, 581 582 // POLICY: ExtensionUpdate 583 { 584 policies: { 585 ExtensionUpdate: false, 586 }, 587 lockedPrefs: { 588 "extensions.update.enabled": false, 589 }, 590 }, 591 592 // POLICY: DisableShield 593 { 594 policies: { 595 DisableFirefoxStudies: true, 596 }, 597 lockedPrefs: { 598 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": false, 599 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": false, 600 }, 601 }, 602 603 // POLICY: NewTabPage 604 { 605 policies: { 606 NewTabPage: false, 607 }, 608 lockedPrefs: { 609 "browser.newtabpage.enabled": false, 610 }, 611 }, 612 613 // POLICY: SearchSuggestEnabled 614 { 615 policies: { 616 SearchSuggestEnabled: false, 617 }, 618 lockedPrefs: { 619 "browser.urlbar.suggest.searches": false, 620 "browser.search.suggest.enabled": false, 621 }, 622 }, 623 624 // POLICY: FirefoxHome 625 { 626 policies: { 627 FirefoxHome: { 628 Stories: false, 629 SponsoredStories: false, 630 Locked: true, 631 }, 632 }, 633 lockedPrefs: { 634 "browser.newtabpage.activity-stream.feeds.system.topstories": false, 635 "browser.newtabpage.activity-stream.feeds.section.topstories": false, 636 "browser.newtabpage.activity-stream.showSponsored": false, 637 }, 638 }, 639 640 // POLICY: OfferToSaveLoginsDefault 641 { 642 policies: { 643 OfferToSaveLoginsDefault: false, 644 }, 645 unlockedPrefs: { 646 "signon.rememberSignons": false, 647 }, 648 }, 649 650 // POLICY: RememberPasswords 651 { 652 policies: { OfferToSaveLogins: false }, 653 lockedPrefs: { "signon.rememberSignons": false }, 654 }, 655 { 656 policies: { OfferToSaveLogins: true }, 657 lockedPrefs: { "signon.rememberSignons": true }, 658 }, 659 660 // POLICY: UserMessaging 661 { 662 policies: { 663 UserMessaging: { 664 SkipOnboarding: true, 665 Locked: true, 666 }, 667 }, 668 lockedPrefs: { 669 "browser.aboutwelcome.enabled": false, 670 }, 671 }, 672 673 // POLICY: UserMessaging->SkipOnboarding false (bug 1697566) 674 { 675 policies: { 676 UserMessaging: { 677 SkipOnboarding: false, 678 Locked: false, 679 }, 680 }, 681 unlockedPrefs: { 682 "browser.aboutwelcome.enabled": true, 683 }, 684 }, 685 686 { 687 policies: { 688 UserMessaging: { 689 ExtensionRecommendations: false, 690 Locked: false, 691 }, 692 }, 693 unlockedPrefs: { 694 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": false, 695 }, 696 }, 697 698 { 699 policies: { 700 UserMessaging: { 701 FeatureRecommendations: false, 702 Locked: false, 703 }, 704 }, 705 unlockedPrefs: { 706 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": false, 707 }, 708 }, 709 710 // POLICY: Permissions->Autoplay 711 { 712 policies: { 713 Permissions: { 714 Autoplay: { 715 Default: "block-audio-video", 716 }, 717 }, 718 }, 719 unlockedPrefs: { 720 "media.autoplay.default": 5, 721 }, 722 }, 723 724 { 725 policies: { 726 Permissions: { 727 Autoplay: { 728 Default: "allow-audio-video", 729 Locked: true, 730 }, 731 }, 732 }, 733 lockedPrefs: { 734 "media.autoplay.default": 0, 735 }, 736 }, 737 738 { 739 policies: { 740 Permissions: { 741 Autoplay: { 742 Default: "block-audio", 743 Locked: false, 744 }, 745 }, 746 }, 747 unlockedPrefs: { 748 "media.autoplay.default": 1, 749 }, 750 }, 751 752 // POLICY: LegacySameSiteCookieBehaviorEnabled 753 754 { 755 policies: { 756 LegacySameSiteCookieBehaviorEnabled: true, 757 }, 758 unlockedPrefs: { 759 "network.cookie.sameSite.laxByDefault": false, 760 }, 761 }, 762 763 // POLICY: LegacySameSiteCookieBehaviorEnabledForDomainList 764 765 { 766 policies: { 767 LegacySameSiteCookieBehaviorEnabledForDomainList: [ 768 "example.com", 769 "example.org", 770 ], 771 }, 772 unlockedPrefs: { 773 "network.cookie.sameSite.laxByDefault.disabledHosts": 774 "example.com,example.org", 775 }, 776 }, 777 778 // POLICY: LocalNetworkAccess 779 { 780 policies: { 781 LocalNetworkAccess: { 782 Enabled: true, 783 }, 784 }, 785 unlockedPrefs: { 786 "network.lna.enabled": true, 787 }, 788 }, 789 { 790 policies: { 791 LocalNetworkAccess: { 792 Enabled: false, 793 Locked: true, 794 }, 795 }, 796 lockedPrefs: { 797 "network.lna.enabled": false, 798 }, 799 }, 800 801 // POLICY: EncryptedMediaExtensions 802 803 { 804 policies: { 805 EncryptedMediaExtensions: { 806 Enabled: false, 807 Locked: true, 808 }, 809 }, 810 lockedPrefs: { 811 "media.eme.enabled": false, 812 }, 813 }, 814 815 // POLICY: PDFjs 816 817 { 818 policies: { 819 PDFjs: { 820 Enabled: false, 821 }, 822 }, 823 lockedPrefs: { 824 "pdfjs.disabled": true, 825 }, 826 }, 827 828 { 829 policies: { 830 PDFjs: { 831 Enabled: true, 832 EnablePermissions: true, 833 }, 834 }, 835 lockedPrefs: { 836 "pdfjs.disabled": false, 837 "pdfjs.enablePermissions": true, 838 }, 839 }, 840 841 { 842 policies: { 843 PDFjs: { 844 Enabled: true, 845 EnablePermissions: false, 846 }, 847 }, 848 lockedPrefs: { 849 "pdfjs.disabled": false, 850 "pdfjs.enablePermissions": false, 851 }, 852 }, 853 854 // POLICY: PictureInPicture 855 856 { 857 policies: { 858 PictureInPicture: { 859 Enabled: false, 860 Locked: true, 861 }, 862 }, 863 lockedPrefs: { 864 "media.videocontrols.picture-in-picture.video-toggle.enabled": false, 865 }, 866 }, 867 868 // POLICY: DisabledCiphers 869 { 870 policies: { 871 DisabledCiphers: { 872 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: false, 873 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: false, 874 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: false, 875 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: false, 876 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: false, 877 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: false, 878 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: false, 879 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: false, 880 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: false, 881 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: false, 882 TLS_DHE_RSA_WITH_AES_128_CBC_SHA: false, 883 TLS_DHE_RSA_WITH_AES_256_CBC_SHA: false, 884 TLS_RSA_WITH_AES_128_GCM_SHA256: false, 885 TLS_RSA_WITH_AES_256_GCM_SHA384: false, 886 TLS_RSA_WITH_AES_128_CBC_SHA: false, 887 TLS_RSA_WITH_AES_256_CBC_SHA: false, 888 TLS_RSA_WITH_3DES_EDE_CBC_SHA: false, 889 TLS_CHACHA20_POLY1305_SHA256: false, 890 TLS_AES_128_GCM_SHA256: false, 891 TLS_AES_256_GCM_SHA384: false, 892 }, 893 }, 894 lockedPrefs: { 895 "security.ssl3.ecdhe_rsa_aes_128_gcm_sha256": true, 896 "security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256": true, 897 "security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256": true, 898 "security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256": true, 899 "security.ssl3.ecdhe_ecdsa_aes_256_gcm_sha384": true, 900 "security.ssl3.ecdhe_rsa_aes_256_gcm_sha384": true, 901 "security.ssl3.ecdhe_rsa_aes_128_sha": true, 902 "security.ssl3.ecdhe_ecdsa_aes_128_sha": true, 903 "security.ssl3.ecdhe_rsa_aes_256_sha": true, 904 "security.ssl3.ecdhe_ecdsa_aes_256_sha": true, 905 "security.ssl3.dhe_rsa_aes_128_sha": true, 906 "security.ssl3.dhe_rsa_aes_256_sha": true, 907 "security.ssl3.rsa_aes_128_gcm_sha256": true, 908 "security.ssl3.rsa_aes_256_gcm_sha384": true, 909 "security.ssl3.rsa_aes_128_sha": true, 910 "security.ssl3.rsa_aes_256_sha": true, 911 "security.ssl3.deprecated.rsa_des_ede3_sha": true, 912 "security.tls13.chacha20_poly1305_sha256": true, 913 "security.tls13.aes_128_gcm_sha256": true, 914 "security.tls13.aes_256_gcm_sha384": true, 915 }, 916 }, 917 918 { 919 policies: { 920 DisabledCiphers: { 921 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: true, 922 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: true, 923 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: true, 924 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: true, 925 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: true, 926 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: true, 927 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: true, 928 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: true, 929 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: true, 930 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: true, 931 TLS_DHE_RSA_WITH_AES_128_CBC_SHA: true, 932 TLS_DHE_RSA_WITH_AES_256_CBC_SHA: true, 933 TLS_RSA_WITH_AES_128_GCM_SHA256: true, 934 TLS_RSA_WITH_AES_256_GCM_SHA384: true, 935 TLS_RSA_WITH_AES_128_CBC_SHA: true, 936 TLS_RSA_WITH_AES_256_CBC_SHA: true, 937 TLS_RSA_WITH_3DES_EDE_CBC_SHA: true, 938 TLS_CHACHA20_POLY1305_SHA256: true, 939 TLS_AES_128_GCM_SHA256: true, 940 TLS_AES_256_GCM_SHA384: true, 941 }, 942 }, 943 lockedPrefs: { 944 "security.ssl3.ecdhe_rsa_aes_128_gcm_sha256": false, 945 "security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256": false, 946 "security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256": false, 947 "security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256": false, 948 "security.ssl3.ecdhe_ecdsa_aes_256_gcm_sha384": false, 949 "security.ssl3.ecdhe_rsa_aes_256_gcm_sha384": false, 950 "security.ssl3.ecdhe_rsa_aes_128_sha": false, 951 "security.ssl3.ecdhe_ecdsa_aes_128_sha": false, 952 "security.ssl3.ecdhe_rsa_aes_256_sha": false, 953 "security.ssl3.ecdhe_ecdsa_aes_256_sha": false, 954 "security.ssl3.dhe_rsa_aes_128_sha": false, 955 "security.ssl3.dhe_rsa_aes_256_sha": false, 956 "security.ssl3.rsa_aes_128_gcm_sha256": false, 957 "security.ssl3.rsa_aes_256_gcm_sha384": false, 958 "security.ssl3.rsa_aes_128_sha": false, 959 "security.ssl3.rsa_aes_256_sha": false, 960 "security.ssl3.deprecated.rsa_des_ede3_sha": false, 961 "security.tls13.chacha20_poly1305_sha256": false, 962 "security.tls13.aes_128_gcm_sha256": false, 963 "security.tls13.aes_256_gcm_sha384": false, 964 }, 965 }, 966 967 { 968 policies: { 969 WindowsSSO: true, 970 }, 971 lockedPrefs: { 972 "network.http.windows-sso.enabled": true, 973 }, 974 }, 975 976 { 977 policies: { 978 Cookies: { 979 Behavior: "accept", 980 BehaviorPrivateBrowsing: "reject-foreign", 981 Locked: true, 982 }, 983 }, 984 lockedPrefs: { 985 "network.cookie.cookieBehavior": 0, 986 "network.cookie.cookieBehavior.pbmode": 1, 987 }, 988 }, 989 990 { 991 policies: { 992 Cookies: { 993 Behavior: "reject-foreign", 994 BehaviorPrivateBrowsing: "reject", 995 Locked: true, 996 }, 997 }, 998 lockedPrefs: { 999 "network.cookie.cookieBehavior": 1, 1000 "network.cookie.cookieBehavior.pbmode": 2, 1001 }, 1002 }, 1003 1004 { 1005 policies: { 1006 Cookies: { 1007 Behavior: "reject", 1008 BehaviorPrivateBrowsing: "limit-foreign", 1009 Locked: true, 1010 }, 1011 }, 1012 lockedPrefs: { 1013 "network.cookie.cookieBehavior": 2, 1014 "network.cookie.cookieBehavior.pbmode": 3, 1015 }, 1016 }, 1017 1018 { 1019 policies: { 1020 Cookies: { 1021 Behavior: "limit-foreign", 1022 BehaviorPrivateBrowsing: "reject-tracker", 1023 Locked: true, 1024 }, 1025 }, 1026 lockedPrefs: { 1027 "network.cookie.cookieBehavior": 3, 1028 "network.cookie.cookieBehavior.pbmode": 4, 1029 }, 1030 }, 1031 1032 { 1033 policies: { 1034 Cookies: { 1035 Behavior: "reject-tracker", 1036 BehaviorPrivateBrowsing: "reject-tracker-and-partition-foreign", 1037 Locked: true, 1038 }, 1039 }, 1040 lockedPrefs: { 1041 "network.cookie.cookieBehavior": 4, 1042 "network.cookie.cookieBehavior.pbmode": 5, 1043 }, 1044 }, 1045 { 1046 policies: { 1047 Cookies: { 1048 Behavior: "reject-tracker-and-partition-foreign", 1049 BehaviorPrivateBrowsing: "accept", 1050 Locked: true, 1051 }, 1052 }, 1053 lockedPrefs: { 1054 "network.cookie.cookieBehavior": 5, 1055 "network.cookie.cookieBehavior.pbmode": 0, 1056 }, 1057 }, 1058 1059 { 1060 policies: { 1061 UseSystemPrintDialog: true, 1062 }, 1063 lockedPrefs: { 1064 "print.prefer_system_dialog": true, 1065 }, 1066 }, 1067 1068 // Bug 1820195 1069 { 1070 policies: { 1071 Preferences: { 1072 "pdfjs.cursorToolOnLoad": { 1073 Value: 1, 1074 Status: "default", 1075 }, 1076 "pdfjs.sidebarViewOnLoad": { 1077 Value: 0, 1078 Status: "default", 1079 }, 1080 }, 1081 }, 1082 unlockedPrefs: { 1083 "pdfjs.cursorToolOnLoad": 1, 1084 "pdfjs.sidebarViewOnLoad": 0, 1085 }, 1086 }, 1087 1088 // Bug 1772503 1089 { 1090 policies: { 1091 DisableFirefoxStudies: true, 1092 }, 1093 lockedPrefs: { 1094 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": false, 1095 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": false, 1096 }, 1097 }, 1098 { 1099 policies: { 1100 Preferences: { 1101 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": { 1102 Value: true, 1103 }, 1104 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": { 1105 Value: true, 1106 }, 1107 }, 1108 }, 1109 lockedPrefs: { 1110 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons": true, 1111 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features": true, 1112 }, 1113 }, 1114 1115 // POLICY: AutofillAddressEnabled, AutofillCreditCardEnabled 1116 1117 { 1118 policies: { 1119 AutofillAddressEnabled: false, 1120 AutofillCreditCardEnabled: false, 1121 }, 1122 lockedPrefs: { 1123 "extensions.formautofill.addresses.enabled": false, 1124 "extensions.formautofill.creditCards.enabled": false, 1125 }, 1126 }, 1127 1128 // POLICY: Proxy - locking if no values are set 1129 { 1130 policies: { 1131 Proxy: { 1132 Locked: true, 1133 }, 1134 }, 1135 lockedPrefs: { 1136 "network.proxy.type": 5, 1137 }, 1138 }, 1139 1140 // POLICY: DisableEncryptedClientHello 1141 { 1142 policies: { 1143 DisableEncryptedClientHello: true, 1144 }, 1145 lockedPrefs: { 1146 "network.dns.echconfig.enabled": false, 1147 "network.dns.http3_echconfig.enabled": false, 1148 }, 1149 }, 1150 1151 // POLICY: PostQuantumKeyAgreementEnabled 1152 { 1153 policies: { 1154 PostQuantumKeyAgreementEnabled: false, 1155 }, 1156 lockedPrefs: { 1157 "network.http.http3.enable_kyber": false, 1158 "security.tls.enable_kyber": false, 1159 }, 1160 }, 1161 1162 // POLICY: HttpsOnlyMode 1163 { 1164 policies: { 1165 HttpsOnlyMode: "enabled", 1166 }, 1167 unlockedPrefs: { 1168 "dom.security.https_only_mode": true, 1169 }, 1170 }, 1171 1172 { 1173 policies: { 1174 HttpsOnlyMode: "disallowed", 1175 }, 1176 lockedPrefs: { 1177 "dom.security.https_only_mode": false, 1178 }, 1179 }, 1180 1181 { 1182 policies: { 1183 HttpsOnlyMode: "force_enabled", 1184 }, 1185 lockedPrefs: { 1186 "dom.security.https_only_mode": true, 1187 }, 1188 }, 1189 1190 // POLICY: SkipTermsOfUse 1191 { 1192 policies: { 1193 SkipTermsOfUse: true, 1194 }, 1195 lockedPrefs: { 1196 "termsofuse.acceptedVersion": 999, 1197 // "termsofuse.acceptedVersion" is a string of 1198 // the timestamp at which the policy was set 1199 }, 1200 }, 1201 1202 // POLICY: VisualSearchEnabled 1203 { 1204 policies: { 1205 VisualSearchEnabled: false, 1206 }, 1207 lockedPrefs: { 1208 "browser.search.visualSearch.featureGate": false, 1209 }, 1210 }, 1211 1212 // Bug 1981587 1213 { 1214 policies: { 1215 Preferences: { 1216 "security.webauthn.always_allow_direct_attestation": { 1217 Value: true, 1218 Status: "locked", 1219 }, 1220 }, 1221 }, 1222 lockedPrefs: { 1223 "security.webauthn.always_allow_direct_attestation": true, 1224 }, 1225 }, 1226 1227 // GenerativeAI 1228 { 1229 policies: { 1230 GenerativeAI: { 1231 Enabled: false, 1232 Chatbot: true, 1233 Locked: true, 1234 }, 1235 }, 1236 lockedPrefs: { 1237 "browser.ml.chat.enabled": true, 1238 "browser.ml.chat.page": true, 1239 "browser.ml.linkPreview.optin": false, 1240 "browser.tabs.groups.smart.userEnabled": false, 1241 }, 1242 }, 1243 ]; 1244 1245 add_task(async function test_policy_simple_prefs() { 1246 for (let test of POLICIES_TESTS) { 1247 await setupPolicyEngineWithJson({ 1248 policies: test.policies, 1249 }); 1250 1251 info("Checking policy: " + Object.keys(test.policies)[0]); 1252 1253 for (let [prefName, prefValue] of Object.entries(test.lockedPrefs || {})) { 1254 checkLockedPref(prefName, prefValue); 1255 } 1256 1257 for (let [prefName, prefValue] of Object.entries( 1258 test.unlockedPrefs || {} 1259 )) { 1260 checkUnlockedPref(prefName, prefValue); 1261 } 1262 } 1263 });