Skip to content

Release v0.33.0: Update to Firefox 149#1152

Merged
vringar merged 7 commits intomasterfrom
release/v0.33.0
Mar 28, 2026
Merged

Release v0.33.0: Update to Firefox 149#1152
vringar merged 7 commits intomasterfrom
release/v0.33.0

Conversation

@vringar
Copy link
Copy Markdown
Contributor

@vringar vringar commented Mar 26, 2026

Summary

  • Bump Firefox to 149.0 (FIREFOX_149_0_RELEASE, b20f603334b8)
  • Add scripts/firefox_version.py: standalone module/CLI to check and auto-update the pinned Firefox tag
  • Rewrite scripts/update.shscripts/update.py: Python rewrite that also rebuilds the extension after npm updates and calls firefox_version.update_if_needed()

Open steps before merging

  • Run ./scripts/install-firefox.sh to install Firefox 149 locally
  • Run the full test suite (pytest) and confirm no regressions
  • CI passes

Post-merge

  • Tag v0.33.0
  • Create GitHub release from tag

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.18%. Comparing base (7dfab38) to head (3e465f3).
⚠️ Report is 7 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1152      +/-   ##
==========================================
+ Coverage   56.83%   62.18%   +5.35%     
==========================================
  Files          40       40              
  Lines        3908     3898      -10     
==========================================
+ Hits         2221     2424     +203     
+ Misses       1687     1474     -213     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…orker test

- Bump Firefox tag to FIREFOX_149_0_RELEASE in install-firefox.sh
- Extract firefox_version.py: standalone module + CLI for detecting and
  updating the Firefox release tag from hg.mozilla.org
- Rewrite update.sh as update.py using firefox_version.py
- Fix test_service_worker_requests flakiness for Firefox 149:
  - Rewrite service_worker.js to fetch during activate (skipWaiting +
    event.waitUntil) instead of on message, eliminating the statechange
    race condition
  - Simplify http_service_worker_page.html accordingly
  - Add sleep_after=5 to visit() call to ensure flush before browser close
… worker test

- Use IMAGE_URL string directly in fetch() instead of a pre-constructed
  Request object (a consumed Request cannot be reused on a second activation)
- Add comment explaining why sleep_after=5 is the right mechanism: the storage
  controller drains all pending tasks on shutdown, so any request captured
  before manager.close() will land; the sleep is a timing buffer for the
  webRequest pipeline, not an arbitrary wait
@vringar vringar marked this pull request as ready for review March 27, 2026 21:32
Copilot AI review requested due to automatic review settings March 27, 2026 21:32
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Release-focused update that bumps the project’s pinned Firefox build to 149 and modernizes the dependency update workflow, plus adjusts service-worker-based HTTP instrumentation tests for the new browser behavior.

Changes:

  • Bump pinned Firefox tag to FIREFOX_149_0_RELEASE and document the release in the changelog.
  • Replace scripts/update.sh with scripts/update.py, and add scripts/firefox_version.py to check/auto-update the pinned Firefox tag.
  • Make the service worker test page/worker fetch during activation and add a post-visit delay to improve request-capture reliability.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/test_pages/shared/service_worker.js Move request trigger to SW lifecycle (install/activate) and use waitUntil for the fetch.
test/test_pages/http_service_worker_page.html Simplify page to just register SW (no message-based trigger).
test/test_http_instrumentation.py Add sleep after visit to ensure SW request is captured before shutdown.
scripts/update.sh Remove old bash-based dependency update script.
scripts/update.py New Python update workflow: repin, npm updates, rebuild extension, and check Firefox version.
scripts/install-firefox.sh Update pinned Firefox revision hash/tag comment to Firefox 149.
scripts/firefox_version.py New helper/CLI to check for latest Firefox release tag and update install-firefox.sh.
CHANGELOG.md Add v0.33.0 entry for the Firefox 149 bump.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

vringar added 4 commits March 27, 2026 21:37
…t resolution

Rewrites update.py with npm_bump_and_resolve():
- Restores package.json from git for a clean baseline each run
- Uses npm-check-updates to bump all deps to absolute latest
- Iteratively resolves peer dep conflicts by patching package.json directly:
  - Tight peer constraints (no ||): apply the range verbatim
  - "Could not resolve" direct deps: downgrade by one major (^N → ^N-1)
  - Broad || ranges skipped — they include the latest major and cause loops
- Fixes build-extension.sh invocation to run from ROOT (not scripts/)

Result: @eslint/js and eslint held at ^9 (eslint-plugin-mozilla blocks v10),
typescript held at >=4.8.4 <6.0.0 (typescript-eslint blocks v6),
all other deps bumped to latest.
- service_worker.js: wrap skipWaiting() in event.waitUntil() so the
  install event cannot complete before skipWaiting resolves
- firefox_version.py: use re.subn() and raise if no TAG line matched,
  preventing silent no-op updates if install-firefox.sh format changes
- docs/Release-Checklist.md: replace manual Firefox-tag step and stale
  update.sh reference with the new update.py / firefox_version.py workflow
@vringar vringar added this pull request to the merge queue Mar 28, 2026
Merged via the queue into master with commit 58218c7 Mar 28, 2026
14 checks passed
@vringar vringar deleted the release/v0.33.0 branch March 28, 2026 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants