[build] Resolve Chrome milestone from Chrome-for-Testing channel version#17747
[build] Resolve Chrome milestone from Chrome-for-Testing channel version#17747titusfortner wants to merge 3 commits into
Conversation
PR Summary by QodoFix Chrome milestone resolution: conservative pinning, latest devtools
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
11 rules 1.
|
|
Code review by qodo was updated up to the latest commit 000e450 |
|
Code review by qodo was updated up to the latest commit 0cbabf1 |
There was a problem hiding this comment.
Pull request overview
Updates Selenium’s automation scripts to determine the current Chrome milestone via Chrome-for-Testing channel metadata (avoiding N-1 security respin edge cases) and improves robustness of some network fetches used by the CDP/devtools and pinned-browser update flows.
Changes:
- Switch milestone selection to Chrome-for-Testing “last known good” channel versions, then select the newest matching version-with-downloads entry.
- Add explicit non-200 handling for some download/fetch paths (e.g.,
.pdlfetches and SHA computation inputs). - Add a guard for missing
chromedriverdownloads in the selected Chrome-for-Testing entry.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| scripts/update_cdp.py | Resolves Chrome milestone/version from Chrome-for-Testing channel metadata; adds non-200 checks for protocol fetches. |
| scripts/pinned_browsers.py | Resolves Chrome/ChromeDriver pinned versions from Chrome-for-Testing channel metadata; adds non-200/availability guards. |
0cbabf1 to
0fa35a5
Compare
|
Code review by qodo was updated up to the latest commit 0fa35a5 |
|
Code review by qodo was updated up to the latest commit fab7a83 |
|
Code review by qodo was updated up to the latest commit ebd4d00 |
🔗 Related Issues
💥 What does this PR do?
The devtools and pinned-browser updaters resolved the Chrome milestone from the chromiumdash release-event feed, taking the lowest of the latest push per platform. When an N-1 security respin lands after milestone N starts shipping, that feed reports N-1, so both updaters silently stuck on the previous version (e.g. the
Update Devtoolsjob produced no changes while Chrome 150 was already stable).Both now resolve the milestone from Chrome-for-Testing's channel designation, which tracks the latest stable/beta milestone and is unaffected by respins.
🔧 Implementation Notes
The resolver is small and lives independently in each script. The two are likely to diverge over time (pinning may want to be conservative; devtools may want to lead via
--chrome_channel), so duplication is preferred over a shared module that would become a poor fit.Also hardens fetches to fail loudly on a non-200: previously a listed-but-404 download would pin a wrong sha256, and a missing protocol path would write a 404 body into a
.pdl.🤖 AI assistance
💡 Additional Considerations
pinned_browserswill roll Chrome/ChromeDriver to the new stable milestone on its next run (a real version bump, not just a code change). Follow-up worth considering:update_cdpcurrently can't distinguish "already current" from "failed to update" and prints a success message unconditionally.🔄 Types of changes