Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
…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
a973beb to
29d5077
Compare
… 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
There was a problem hiding this comment.
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_RELEASEand document the release in the changelog. - Replace
scripts/update.shwithscripts/update.py, and addscripts/firefox_version.pyto 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.
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FIREFOX_149_0_RELEASE,b20f603334b8)scripts/firefox_version.py: standalone module/CLI to check and auto-update the pinned Firefox tagscripts/update.sh→scripts/update.py: Python rewrite that also rebuilds the extension after npm updates and callsfirefox_version.update_if_needed()Open steps before merging
./scripts/install-firefox.shto install Firefox 149 locallypytest) and confirm no regressionsPost-merge
v0.33.0