diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /toolkit/components/nimbus | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/nimbus')
7 files changed, 114 insertions, 73 deletions
diff --git a/toolkit/components/nimbus/FeatureManifest.yaml b/toolkit/components/nimbus/FeatureManifest.yaml index c540e0e387..f03834c8d2 100644 --- a/toolkit/components/nimbus/FeatureManifest.yaml +++ b/toolkit/components/nimbus/FeatureManifest.yaml @@ -106,12 +106,6 @@ search: pref: browser.urlbar.richSuggestions.featureGate description: >- Feature gate that controls whether Rich Suggestions are enabled. - serpEventTelemetryEnabled: - type: boolean - setPref: - branch: default - pref: browser.search.serpEventTelemetry.enabled - description: Whether the Glean SERP event telemetry is enabled. serpEventTelemetryCategorizationEnabled: type: boolean setPref: @@ -627,6 +621,20 @@ windowsLaunchOnLogin: pref: browser.startup.windowsLaunchOnLogin.enabled description: Should users see the Windows launch on login checkbox. +firefoxBridge: + description: "Controls for Firefox Bridge extension and extension registration" + owner: install-update@mozilla.com + hasExposure: false + variables: + enabled: + type: boolean + setPref: + branch: default + pref: browser.firefoxbridge.enabled + description: >- + Should Firefox Bridge be registered within firefoxBridgeNativeMessaging + startup idle task for use with native messaging proxy. + windowsJumpList: description: "Controls for the Windows Jump List integration." owner: mconley@mozilla.com @@ -641,14 +649,15 @@ windowsJumpList: abouthomecache: description: "The startup about:home cache." - owner: omc@mozilla.com + owner: omc@mozilla.com, mconley@mozilla.com hasExposure: false - isEarlyStartup: true variables: enabled: type: boolean - fallbackPref: browser.startup.homepage.abouthome_cache.enabled description: Is the feature enabled? + setPref: + branch: user + pref: browser.startup.homepage.abouthome_cache.enabled newtab: description: "The about:newtab page" @@ -929,6 +938,11 @@ pocketNewtab: type: string fallbackPref: >- browser.newtabpage.activity-stream.discoverystream.region-spocs-config + regionWeatherConfig: + description: A comma-separated list of regions that get weather by default. + type: string + fallbackPref: >- + browser.newtabpage.activity-stream.discoverystream.region-weather-config topSitesMaxSponsored: # Defined under `pocketNewtab` as it needs to be used along with other variables type: int @@ -943,6 +957,12 @@ pocketNewtab: type: boolean fallbackPref: >- browser.topsites.contile.sov.enabled + pocketFeedParameters: + type: string + fallbackPref: >- + browser.newtabpage.activity-stream.discoverystream.pocket-feed-parameters + description: >- + Add parameters to Pocket feed URL. saveToPocket: description: The save to Pocket feature @@ -1131,6 +1151,18 @@ fullPageTranslationAutomaticPopup: branch: user pref: browser.translations.automaticallyPopup +selectTranslation: + description: This feature enables the option to translate selected text from the context menu. + owner: enordin@mozilla.com + hasExposure: false + variables: + boolean: + description: Set to true to enable the select-translations feature + type: boolean + setPref: + branch: user + pref: browser.translations.select.enable + pdfjs: description: The Firefox pdf reader. owner: pdfjs-team@mozilla.com @@ -1392,13 +1424,13 @@ gleanInternalSdk: description: "The Glean internal SDK feature intended only for internal Glean Team use" owner: glean-team@mozilla.com hasExposure: false - # Some variables are used through the C++ API and thus require pref-storage. - # We rely on those values at Glean.init time, which happens at startup. - isEarlyStartup: true variables: finalInactive: type: "boolean" description: "Enables FOG early shutdown pings when true" + setPref: + branch: user + pref: telemetry.glean.internal.finalInactive gleanMetricConfiguration: type: json description: | @@ -1409,33 +1441,9 @@ gleanInternalSdk: type: int description: >- Maximum number of pings that can be sent in a 60 second interval - -majorRelease2022: - description: Major Release 2022 - owner: firefoxview@mozilla.com - hasExposure: false - isEarlyStartup: true - variables: - feltPrivacyPBMDarkTheme: - type: boolean - fallbackPref: "browser.theme.dark-private-windows" - description: "Use dark theme variant for PBM windows. This is only supported if the theme sets darkTheme data." - feltPrivacyShowPreferencesSection: - type: boolean - fallbackPref: "browser.privacySegmentation.preferences.show" - description: "Controls visibility of the privacy segmentation preferences section." - feltPrivacyWindowSeparation: - type: boolean - fallbackPref: "browser.privateWindowSeparation.enabled" - description: "Whether or not private browsing windows use a separate icon in the Windows taskbar" - colorwayCloset: - type: boolean - fallbackPref: "browser.theme.colorway-closet" - description: "Whether or not to show the colorway closet modal" - onboarding: - type: boolean - fallbackPref: "browser.majorrelease.onboarding" - description: "Whether or not to use the MR2022 onboarding settings." + setPref: + branch: user + pref: telemetry.glean.internal.maxPingsPerMinute browserLowMemoryPrefs: description: Prefs which control the browser's behaviour under low memory. @@ -1694,26 +1702,20 @@ dapTelemetry: description: DAP Telemetry owner: simon@mozilla.com hasExposure: false - isEarlyStartup: true # Data is sent on startup with a trigger in BrowserGlue.sys.mjs variables: enabled: type: boolean - fallbackPref: toolkit.telemetry.dap_enabled description: Whether to automatically send DAP measurements. task1Enabled: type: boolean - fallbackPref: toolkit.telemetry.dap_task1_enabled description: Whether to send fake measurements for task 1. task1TaskId: type: string - fallbackPref: toolkit.telemetry.dap_task1_taskid description: The task ID to use for task 1 measurements. visitCountingEnabled: type: boolean - fallbackPref: toolkit.telemetry.dap_visit_counting_enabled description: Whether to count visits to the provided list of URLs. visitCountingExperimentList: - fallbackPref: toolkit.telemetry.dap_visit_counting_experiment_list type: json description: A list of experiments with URLs for which we want to count visits. @@ -2098,6 +2100,12 @@ gc: setPref: branch: user pref: "javascript.options.mem.gc_parallel_marking_threshold_mb" + gc_max_parallel_marking_threads: + description: The maximum number of threads to use for parallel marking, if enabled. + type: int + setPref: + branch: user + pref: "javascript.options.mem.gc_max_parallel_marking_threads" gc_per_zone: description: Whether per-zone GC is enabled. If not, all zones are collected every time. type: boolean @@ -2397,20 +2405,6 @@ backgroundUpdate: branch: user pref: app.update.background.allowUpdatesForUnelevatedInstallations -defaultAgent: - description: >- - Features that configure the Windows Default Browser Agent. - owner: install-update@mozilla.com - applications: - - firefox-desktop-background-task - hasExposure: false - variables: - cppFallback: - description: >- - Triggers the Default Agent to fall back to the C++ implementation of DoTask if true. - type: boolean - fallbackPref: "defaultAgent.cppFallback.enabled" - bookmarks: description: Prefs to control aspects of the bookmarks system. owner: omc@mozilla.com @@ -2706,6 +2700,10 @@ contentRelevancy: setPref: branch: user pref: toolkit.contentRelevancy.timerInterval + ingestEnabled: + description: Enable the ingestion through the Rust component + type: boolean + fallbackPref: toolkit.contentRelevancy.ingestEnabled tabPreview: description: Prefs to control Tab Previews @@ -2733,6 +2731,29 @@ backupService: description: >- When true, the profile backup service will be initialized soon after startup. + prefsUIEnabled: + type: boolean + setPref: + branch: default + pref: browser.backup.preferences.ui.enabled + description: >- + When true, the section in about:preferences to control the backup + feature is visible. + sqlitePagesPerStep: + description: >- + The number of database pages to backup per step when backing up an + SQLite database. + type: int + setPref: + branch: user + pref: browser.backup.sqlite.pages_per_step + sqliteStepDelayMs: + description: >- + The delay between SQLite database backup steps in milliseconds. + type: int + setPref: + branch: user + pref: browser.backup.sqlite.step_delay_ms pqcrypto: description: Prefs that control the use of post-quantum cryptography. diff --git a/toolkit/components/nimbus/generate/generate_feature_manifest.py b/toolkit/components/nimbus/generate/generate_feature_manifest.py index 55e681fdf8..fab73c4ce7 100644 --- a/toolkit/components/nimbus/generate/generate_feature_manifest.py +++ b/toolkit/components/nimbus/generate/generate_feature_manifest.py @@ -24,11 +24,7 @@ NIMBUS_FALLBACK_PREFS = ( # Do not add new feature IDs to this list! isEarlyStartup is being deprecated. # See https://bugzilla.mozilla.org/show_bug.cgi?id=1875331 for details. ALLOWED_ISEARLYSTARTUP_FEATURE_IDS = { - "abouthomecache", "aboutwelcome", - "dapTelemetry", - "gleanInternalSdk", - "majorRelease2022", "newtab", "pocketNewtab", "searchConfiguration", diff --git a/toolkit/components/nimbus/lib/ExperimentManager.sys.mjs b/toolkit/components/nimbus/lib/ExperimentManager.sys.mjs index 8bd847b067..78299da1b4 100644 --- a/toolkit/components/nimbus/lib/ExperimentManager.sys.mjs +++ b/toolkit/components/nimbus/lib/ExperimentManager.sys.mjs @@ -207,7 +207,7 @@ export class _ExperimentManager { lazy.NimbusFeatures.nimbusTelemetry.getVariable( "gleanMetricConfiguration" ) ?? {}; - Services.fog.setMetricsFeatureConfig(JSON.stringify(cfg)); + Services.fog.applyServerKnobsConfig(JSON.stringify(cfg)); }); } diff --git a/toolkit/components/nimbus/test/unit/head.js b/toolkit/components/nimbus/test/unit/head.js index e74212161c..e2e42ee4c9 100644 --- a/toolkit/components/nimbus/test/unit/head.js +++ b/toolkit/components/nimbus/test/unit/head.js @@ -63,10 +63,15 @@ async function assertEmptyStore(store, { cleanup = false } = {}) { "Store should have no active enrollments" ); + store + .getAll() + .filter(e => !e.active) + .forEach(e => store._deleteForTests(e.slug)); + Assert.deepEqual( store .getAll() - .filter(e => e.inactive) + .filter(e => !e.active) .map(e => e.slug), [], "Store should have no inactive enrollments" diff --git a/toolkit/components/nimbus/test/unit/test_ExperimentAPI_NimbusFeatures.js b/toolkit/components/nimbus/test/unit/test_ExperimentAPI_NimbusFeatures.js index 79304cd66e..9bbf26a6a0 100644 --- a/toolkit/components/nimbus/test/unit/test_ExperimentAPI_NimbusFeatures.js +++ b/toolkit/components/nimbus/test/unit/test_ExperimentAPI_NimbusFeatures.js @@ -92,8 +92,11 @@ add_task(async function readyCallAfterStore_with_remote_value() { await manager.store.addEnrollment(MATCHING_ROLLOUT); Assert.ok(!feature.getVariable("enabled"), "Loads value from store"); - manager.store._deleteForTests("aboutwelcome"); + + manager.unenroll(MATCHING_ROLLOUT.slug, "test-cleanup"); + sandbox.restore(); + await assertEmptyStore(manager.store); }); add_task(async function has_sync_value_before_ready() { @@ -121,7 +124,11 @@ add_task(async function has_sync_value_before_ready() { Assert.equal(feature.getVariable("remoteValue"), true, "Sync load from pref"); - manager.store._deleteForTests("aboutwelcome"); + Services.prefs.clearUserPref("nimbus.syncdefaultsstore.aboutwelcome"); + Services.prefs.clearUserPref( + "nimbus.syncdefaultsstore.aboutwelcome.remoteValue" + ); + await assertEmptyStore(manager.store); }); add_task(async function update_remote_defaults_onUpdate() { @@ -137,8 +144,10 @@ add_task(async function update_remote_defaults_onUpdate() { Assert.equal(stub.callCount, 1, "Called once for remote configs"); Assert.equal(stub.firstCall.args[1], "rollout-updated", "Correct reason"); - manager.store._deleteForTests("aboutwelcome"); + manager.unenroll(MATCHING_ROLLOUT.slug, "test-cleanup"); + sandbox.restore(); + await assertEmptyStore(manager.store); }); add_task(async function test_features_over_feature() { @@ -190,6 +199,9 @@ add_task(async function test_features_over_feature() { manager.store._deleteForTests("aboutwelcome"); manager.store._deleteForTests("matching-rollout"); + + await assertEmptyStore(manager.store); + sandbox.restore(); }); @@ -208,7 +220,8 @@ add_task(async function update_remote_defaults_readyPromise() { "Update called after enrollment processed." ); - manager.store._deleteForTests("aboutwelcome"); + manager.unenroll(MATCHING_ROLLOUT.slug, "test-cleanup"); + await assertEmptyStore(manager.store); sandbox.restore(); }); @@ -229,7 +242,8 @@ add_task(async function update_remote_defaults_enabled() { "Feature is disabled by remote configuration" ); - manager.store._deleteForTests("aboutwelcome"); + manager.unenroll(NON_MATCHING_ROLLOUT.slug, "test-cleanup"); + await assertEmptyStore(manager.store); sandbox.restore(); }); @@ -252,6 +266,7 @@ add_task(async function test_getVariable_no_mutation() { Assert.ok(feature.getVariable("mochitest"), "Got back the expected feature"); + await assertEmptyStore(manager.store); sandbox.restore(); }); @@ -284,4 +299,7 @@ add_task(async function remote_isEarlyStartup_config() { Services.prefs.clearUserPref( "nimbus.syncdefaultsstore.password-autocomplete" ); + + manager.unenroll(rollout.slug, "test-cleanup"); + await assertEmptyStore(manager.store); }); diff --git a/toolkit/components/nimbus/test/unit/test_ExperimentManager_enroll.js b/toolkit/components/nimbus/test/unit/test_ExperimentManager_enroll.js index 1a57b33d66..4bc67a5883 100644 --- a/toolkit/components/nimbus/test/unit/test_ExperimentManager_enroll.js +++ b/toolkit/components/nimbus/test/unit/test_ExperimentManager_enroll.js @@ -670,7 +670,6 @@ add_task(async function enroll_in_reference_aw_experiment() { Assert.ok(prefValue.length < 3498, "Make sure we don't bloat the prefs"); manager.unenroll(recipe.slug, "enroll_in_reference_aw_experiment:cleanup"); - manager.store._deleteForTests("aboutwelcome"); await assertEmptyStore(manager.store); }); @@ -756,6 +755,7 @@ add_task(async function test_rollout_unenroll_conflict() { ); Assert.ok(enrollStub.calledOnce, "Should call enroll as expected"); + manager.unenroll(rollout.slug, "test-cleanup"); await assertEmptyStore(manager.store); sandbox.restore(); @@ -838,7 +838,6 @@ add_task(async function test_forceEnroll() { for (const { slug } of expected) { manager.unenroll(`optin-${slug}`); - manager.store._deleteForTests(`optin-${slug}`); } } diff --git a/toolkit/components/nimbus/test/unit/test_ExperimentManager_unenroll.js b/toolkit/components/nimbus/test/unit/test_ExperimentManager_unenroll.js index a32de32cd6..2173e34b5a 100644 --- a/toolkit/components/nimbus/test/unit/test_ExperimentManager_unenroll.js +++ b/toolkit/components/nimbus/test/unit/test_ExperimentManager_unenroll.js @@ -513,7 +513,9 @@ add_task(async function test_check_unseen_enrollments_telemetry_events() { featureId: "nimbusTelemetry", value: { gleanMetricConfiguration: { - "nimbus_events.enrollment_status": true, + metrics_enabled: { + "nimbus_events.enrollment_status": true, + }, }, }, }, |