Include Firefox in the WebSerial browser copy#17
Conversation
Current Firefox ships WebSerial and flashes fine (verified on real hardware), so the "needs Chrome or Edge" copy wrongly excluded it. Update the hero and the manual-fallback text to "Chrome, Edge, or Firefox". Copy only — the navigator.serial capability check already drives the actual behavior. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
WalkthroughBrowser support text in the device fallback instructions and hub hero paragraph now includes Firefox alongside Chrome and Edge. ChangesSupported-browser copy
Estimated code review effort: 1 (Trivial) | ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@js/views/device.js`:
- Around line 132-137: Update the navigator.serial fallback copy in the relevant
device view markup to identify Chrome and Edge as the only browsers supporting
direct USB flashing; mention Firefox only in the manual download/install path,
including the classic installer wording as appropriate.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d29cb3c6-3455-4b5c-b55e-d71a0d4e34e7
📒 Files selected for processing (2)
js/views/device.jsjs/views/hub.js
| <p>Installing from the browser needs Chrome, Edge, or Firefox. You can still install manually:</p> | ||
| <ul id="fallback-files"><li>Loading firmware file list…</li></ul> | ||
| <ul> | ||
| <li>Flash it with <a href="https://web.esphome.io">ESPHome Web</a> (open it in Chrome/Edge) or | ||
| <li>Flash it with <a href="https://web.esphome.io">ESPHome Web</a> (open it in Chrome, Edge, or Firefox) or | ||
| <code>esptool write-flash --port <port> 0x0 <file></code>.</li> | ||
| <li>Or use the <a href="${device.githubPagesInstaller}">classic installer page</a> in Chrome/Edge.</li> | ||
| <li>Or use the <a href="${device.githubPagesInstaller}">classic installer page</a> in Chrome, Edge, or Firefox.</li> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
git ls-files js/views/device.js
echo '---'
wc -l js/views/device.js
echo '---'
sed -n '110,160p' js/views/device.js
echo '--- search navigator.serial ---'
rg -n "navigator\.serial|Chrome, Edge, or Firefox|Firefox" js/views/device.js js -g'*.js' -g'*.md' -g'*.ts'Repository: ApolloAutomation/installer
Length of output: 3821
Update the fallback browser copy js/views/device.js:132-137 — In the navigator.serial fallback, don’t list Firefox as a direct USB-flashing browser. Keep Firefox tied to the manual download path; the USB install flow here is Chrome/Edge-only.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@js/views/device.js` around lines 132 - 137, Update the navigator.serial
fallback copy in the relevant device view markup to identify Chrome and Edge as
the only browsers supporting direct USB flashing; mention Firefox only in the
manual download/install path, including the classic installer wording as
appropriate.
What does this change?
Copy-only. The installer said flashing "needs Chrome or Edge," but current Firefox ships WebSerial and flashes fine (verified on real hardware), so that text wrongly excluded it. Updated the hero and the manual-fallback copy to "Chrome, Edge, or Firefox".
js/views/hub.jshero line, and thejs/views/device.jsmanual-fallback block (3 spots).navigator.serialcapability check already decides whether a browser gets the flash flow or the manual fallback. This only corrects the guidance text.Checklist
cd tests && npx playwright test) (19 passed, 1 intentional skip)cplist in.github/workflows/pages.yml(n/a: edits only)devices.jsonchanged:python scripts/validate_registry.pypasses (devices.json unchanged)🤖 Generated with Claude Code
Summary by CodeRabbit