Skip to content

Commit 589c57b

Browse files
authored
Merge branch 'main' into tos-targeting
2 parents 36d7d25 + 07d57e4 commit 589c57b

File tree

92 files changed

+21441
-688
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+21441
-688
lines changed

.circleci/config.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,10 @@ jobs:
403403
- run:
404404
name: Run Tests
405405
command: |
406-
curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4
406+
curl -sSL https://install.python-poetry.org | python3 - --version 2.1.1
407407
echo 'export PATH=/Users/distiller/.local/bin:$PATH' >> "$BASH_ENV"
408408
source $BASH_ENV
409+
EPOCH=$(date +"%s")
409410
cd firefox-ios/firefox-ios/firefox-ios-tests/Tests/ExperimentIntegrationTests
410411
git cherry-pick dfd0b8a556f5990d0b5d9351df8acf571895e6dc -X theirs || true
411412
export SIMULATOR_UDID=$(python get_specific_device_udid.py)
@@ -414,7 +415,7 @@ jobs:
414415
poetry add pydantic==2.10.3
415416
poetry install
416417
poetry run pytest --junitxml=/Users/distiller/project/workspace/test-results/experimenter_ios_integration_tests.xml -k test_ios_integration.py --feature ios_enrollment
417-
cp experimenter_ios_integration_tests.xml dashboard/test-results/$(CIRCLE_BUILD_NUM)__$(EPOCH_TIME)__$(CIRCLE_PROJECT_REPONAME)__$(CIRCLE_WORKFLOW_ID)__)ios__integration__results.xml
418+
cp /Users/distiller/project/workspace/test-results/experimenter_ios_integration_tests.xml /Users/distiller/project/dashboard/test-results/${CIRCLE_BUILD_NUM}__$(date +"%s")__${CIRCLE_PROJECT_REPONAME}__${CIRCLE_WORKFLOW_ID}__ios__integration__results.xml
418419
- run:
419420
name: Collect XCTest Results
420421
command: |

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,10 @@ kill: compose_stop compose_rm docker_prune ## Stop, remove, and prune container
163163
echo "All containers removed!"
164164

165165
lint: build_test ## Running linting on source code
166+
-docker rm experimenter_test;
166167
$(COMPOSE_TEST_RUN) experimenter sh -c '$(WAIT_FOR_DB) (${PARALLEL} "$(NIMBUS_SCHEMA_CHECK)" "$(PYTHON_CHECK_MIGRATIONS)" "$(CHECK_DOCS)" "$(RUFF_FORMAT_CHECK)" "$(RUFF_CHECK)" "$(DJLINT_CHECK)" "$(ESLINT_LEGACY)" "$(ESLINT_NIMBUS_UI)" "$(ESLINT_NIMBUS_UI_NEW)" "$(TYPECHECK_NIMBUS_UI)" "$(PYTHON_TYPECHECK)" "$(PYTHON_TEST)" "$(JS_TEST_LEGACY)" "$(JS_TEST_NIMBUS_UI)" "$(JS_TEST_REPORTING)") ${COLOR_CHECK}'
167168

168169
check: lint
169-
docker rm experimenter_test
170170

171171
check_and_report: lint
172172
docker cp experimenter_test:/experimenter/experimenter_coverage.json workspace/test-results
@@ -177,7 +177,6 @@ check_and_report: lint
177177
cp workspace/test-results/experimenter_tests.xml $(UNIT_JUNIT_XML)
178178
cp workspace/test-results/coverage_report/coverage-final.json $(UI_COVERAGE_JSON)
179179
cp workspace/test-results/junit.xml $(UI_JUNIT_XML)
180-
docker rm experimenter_test
181180

182181
test: build_test ## Run tests
183182
$(COMPOSE_TEST_RUN) experimenter sh -c '$(WAIT_FOR_DB) $(PYTHON_TEST)'
@@ -239,17 +238,20 @@ dependabot_approve:
239238
integration_shell:
240239
$(COMPOSE_INTEGRATION_RUN) firefox bash
241240

241+
integration_clean:
242+
-docker rm experimenter_integration
243+
242244
integration_sdk_shell: build_prod build_integration_test
243245
$(COMPOSE_INTEGRATION_RUN) rust-sdk bash
244246

245247
integration_vnc_shell: build_prod
246248
$(COMPOSE_INTEGRATION) up -d firefox
247249
docker exec -it $$(docker ps -qf "name=experimenter-firefox-1") bash
248250

249-
integration_test_legacy: build_prod
251+
integration_test_legacy: build_prod integration_clean
250252
MOZ_HEADLESS=1 $(COMPOSE_INTEGRATION_RUN) firefox sh -c "./experimenter/tests/experimenter_legacy_tests.sh"
251253

252-
integration_test_nimbus_desktop: build_prod
254+
integration_test_nimbus_desktop: build_prod integration_clean
253255
MOZ_HEADLESS=1 $(COMPOSE_INTEGRATION_RUN) firefox sh -c "FIREFOX_CHANNEL=$(FIREFOX_CHANNEL) PYTEST_SENTRY_DSN=$(PYTEST_SENTRY_DSN) PYTEST_SENTRY_ALWAYS_REPORT=$(PYTEST_SENTRY_ALWAYS_REPORT) CIRCLECI=$(CIRCLECI) ./experimenter/tests/nimbus_integration_tests.sh"
254256

255257
integration_test_nimbus_sdk: build_integration_test build_prod
@@ -258,12 +260,11 @@ integration_test_nimbus_sdk: build_integration_test build_prod
258260
integration_test_nimbus_fenix:
259261
poetry -C experimenter/tests/integration/ -vvv install --no-root
260262
poetry -C experimenter/tests/integration/ -vvv run pytest --html=workspace/test-results/report.htm --self-contained-html --reruns-delay 30 --driver Firefox experimenter/tests/integration/nimbus/android --junitxml=workspace/test-results/experimenter_fenix_integration_tests.xml -vvv
261-
cp experimenter_fenix_integration_tests.xml $(TEST_RESULTS_DIR)/$(TEST_FILE_PREFIX)fenix__integration__results.xml
263+
cp workspace/test-results/experimenter_fenix_integration_tests.xml $(TEST_RESULTS_DIR)/$(TEST_FILE_PREFIX)fenix__integration__results.xml
262264

263265
make integration_test_and_report:
264266
docker cp experimenter_integration:/code/experimenter/tests/integration/test-reports/experimenter_integration_tests.xml workspace/test-results
265267
cp workspace/test-results/experimenter_integration_tests.xml $(INTEGRATION_JUNIT_XML)
266-
docker rm experimenter_integration
267268

268269
# cirrus
269270
CIRRUS_ENABLE = export CIRRUS=1 &&
@@ -299,15 +300,14 @@ cirrus_test: cirrus_build_test
299300
cirrus_check: cirrus_lint
300301
docker rm experimenter_test
301302

302-
cirrus_lint: cirrus_build_test
303+
cirrus_lint: cirrus_build_test integration_clean
303304
$(CIRRUS_ENABLE) $(COMPOSE_TEST_RUN) cirrus sh -c "$(CIRRUS_RUFF_CHECK) && $(CIRRUS_BLACK_CHECK) && $(CIRRUS_PYTHON_TYPECHECK) && $(CIRRUS_PYTEST) && $(CIRRUS_GENERATE_DOCS) --check"
304305

305306
cirrus_check_and_report: cirrus_lint
306307
docker cp experimenter_test:/cirrus/cirrus_pytest.xml workspace/test-results
307308
docker cp experimenter_test:/cirrus/cirrus_coverage.json workspace/test-results
308309
cp workspace/test-results/cirrus_pytest.xml $(CIRRUS_JUNIT_XML)
309310
cp workspace/test-results/cirrus_coverage.json $(CIRRUS_COVERAGE_JSON)
310-
docker rm experimenter_test
311311

312312
cirrus_code_format: cirrus_build
313313
$(CIRRUS_ENABLE) $(COMPOSE_RUN) cirrus sh -c '$(CIRRUS_RUFF_FIX) && $(CIRRUS_BLACK_FIX)'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
APPLICATION_SERVICES_BUILD_ID=140.20250502050320
1+
APPLICATION_SERVICES_BUILD_ID=140.20250523140405

cirrus/server/poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cirrus/server/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ python-decouple = "^3.8"
2121
glean-sdk = "^53.2.0"
2222
pytest-mock = "^3.14.0"
2323
mozilla-nimbus-shared = "^2.5.2"
24-
sentry-sdk = "^2.27.0"
24+
sentry-sdk = "^2.29.1"
2525

2626
[tool.pyright]
2727
typeCheckingMode = "strict"

experimenter/experimenter/experiments/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,7 @@ def parse(version_str):
601601
FIREFOX_138_B3 = "138.0b3"
602602
FIREFOX_138_1_0 = "138.1.0"
603603
FIREFOX_138_2_0 = "138.2.0"
604+
FIREFOX_138_0_3 = "138.0.3"
604605
FIREFOX_139 = "139.!"
605606
FIREFOX_140 = "140.!"
606607

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Generated by Django 5.2.1 on 2025-05-13 15:15
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("experiments", "0282_nimbusversionedschema_has_remote_schema"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="nimbusexperiment",
14+
name="excluded_experiments",
15+
field=models.ManyToManyField(
16+
blank=True,
17+
related_name="excluded_by",
18+
through="experiments.NimbusExperimentBranchThroughExcluded",
19+
through_fields=("parent_experiment", "child_experiment"),
20+
to="experiments.nimbusexperiment",
21+
verbose_name="Excluded Experiments",
22+
),
23+
),
24+
migrations.AlterField(
25+
model_name="nimbusexperiment",
26+
name="required_experiments",
27+
field=models.ManyToManyField(
28+
blank=True,
29+
related_name="required_by",
30+
through="experiments.NimbusExperimentBranchThroughRequired",
31+
through_fields=("parent_experiment", "child_experiment"),
32+
to="experiments.nimbusexperiment",
33+
verbose_name="Required Experiments",
34+
),
35+
),
36+
]
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
beta: da58b5e4f6ef5832bc8d5eca08b00ca01a410e70
2-
master: 476b430f3e7a0941f1c002f4774de61c78a80a03
3-
release: 0047599b6a6a2af6ac0361c4e47e2b2998295cb9
1+
beta: 7cb196f9239afbe50f50d188e7d459282213a18f
2+
master: 6a72a6d20eeb1b20b93862a79166938d6ce794a0
3+
release: 0889458d6f50fc3cacb7c67ea881ffe24ca6710d

experimenter/experimenter/features/manifests/fenix/beta.fml.yaml

Lines changed: 45 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,6 @@ about:
55
channels:
66
- beta
77
features:
8-
SetupChecklist:
9-
description: A feature on the home page that allows the user to track onboarding setup progress.
10-
variables:
11-
enabled:
12-
description: "If true, the setup checklist will be enabled."
13-
type: Boolean
14-
default: false
15-
setup-checklist-type:
16-
description: The collection used for the setup checklist.
17-
type: SetupChecklistType
18-
default: collection-1
198
alternative-app-launcher-icon:
209
description: A feature that changes the app launcher icon background color.
2110
variables:
@@ -71,6 +60,17 @@ features:
7160
feature-setting-detect-only: 0
7261
feature-setting-global-rules: 1
7362
feature-setting-global-rules-sub-frames: 1
63+
doh:
64+
description: Feature controlling DNS over HTTPS (DoH).
65+
variables:
66+
autoselect-enabled:
67+
description: "Controls the network.android_doh.autoselect_enabled pref and automatically chooses a DoH provider when Default Protection mode is selected.\n"
68+
type: Boolean
69+
default: false
70+
show-ui:
71+
description: "When `true`, include DoH settings in the settings UI.\n"
72+
type: Boolean
73+
default: false
7474
encourage-search-cfr:
7575
description: A feature that shows a CFR on first launch to encourage users to make a search
7676
variables:
@@ -154,6 +154,13 @@ features:
154154
description: "If true, the feature is active"
155155
type: Boolean
156156
default: false
157+
homepage-as-new-tab:
158+
description: Enables homepage as a a new tab.
159+
variables:
160+
enabled:
161+
description: "Whether or not to enable homepage as a new tab\n"
162+
type: Boolean
163+
default: false
157164
homepage-hide-frecent-top-sites:
158165
description: Hides frecent top sites on the homepage.
159166
variables:
@@ -214,7 +221,7 @@ features:
214221
ordering: 1
215222
prerequisites:
216223
- ALWAYS
217-
primary-button-label: onboarding_term_of_service_agree_and_continue_button_label
224+
primary-button-label: onboarding_term_of_service_agree_and_continue_button_label_2
218225
secondary-button-label: ""
219226
title: onboarding_welcome_to_firefox
220227
default-browser:
@@ -628,8 +635,8 @@ features:
628635
variables:
629636
postQuantumKeyExchangeEnabled:
630637
description: "Toggles the security.tls.enable_kyber and network.http.http3.enable_kyber preferences.\n"
631-
type: Boolean
632-
default: false
638+
type: Option<Boolean>
639+
default: ~
633640
print:
634641
description: A feature for printing from the share or browser menu.
635642
variables:
@@ -695,6 +702,17 @@ features:
695702
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
696703
type: Boolean
697704
default: true
705+
same-document-navigation-overrides-load-type:
706+
description: Control whether the same document navigation overrides the load type.
707+
variables:
708+
enabled:
709+
description: "Overrides the loadType when it is a same document navigation\n"
710+
type: Boolean
711+
default: true
712+
force-disable-uri:
713+
description: "Disable overriding the loadType during same document navigation on the domain specified by this URI.\n"
714+
type: String
715+
default: ""
698716
search-extra-params:
699717
description: A feature that provides additional args for search.
700718
variables:
@@ -747,13 +765,24 @@ features:
747765
description: "A template for the shared message, supporting three placeholders. A shared link, the brand name and a store download link."
748766
type: Text
749767
default: ""
768+
setup-checklist:
769+
description: A feature on the home page that allows the user to track onboarding setup progress.
770+
variables:
771+
enabled:
772+
description: "If true, the setup checklist will be enabled."
773+
type: Boolean
774+
default: false
775+
setup-checklist-type:
776+
description: The collection used for the setup checklist.
777+
type: SetupChecklistType
778+
default: collection-1
750779
ship:
751780
description: The feature that controls Session History in Parent (SHIP) in Gecko.
752781
variables:
753782
disabled:
754783
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
755784
type: Boolean
756-
default: true
785+
default: false
757786
splash-screen:
758787
description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run."
759788
variables:
@@ -775,7 +804,7 @@ features:
775804
enabled:
776805
description: "Suggest domains from the shipped domain list.\n"
777806
type: Boolean
778-
default: true
807+
default: false
779808
tab-strip:
780809
description: Enables tab strip.
781810
variables:

0 commit comments

Comments
 (0)