-
-
Notifications
You must be signed in to change notification settings - Fork 20
Focus 1: Browser Interoperability #31
Copy link
Copy link
Open
Labels
p1high priorityhigh priority
Description
Focus 1: Browser Interoperability
Ensuring seamless interoperability with all major browsers is critical for real-world deployments. While the core protocol implementation is complete, comprehensive browser testing and compatibility verification is ongoing.
Target Browsers
| Browser | Platform | Status | Priority |
|---|---|---|---|
| Chrome/Chromium | Windows, macOS, Linux | 🔄 In Progress | High |
| Firefox | Windows, macOS, Linux | 🔄 In Progress | High |
| Safari | macOS, iOS | 📋 Planned | High |
| Edge | Windows | 📋 Planned | Medium |
| Mobile Chrome | Android | 📋 Planned | Medium |
| Mobile Safari | iOS | 📋 Planned | Medium |
Interoperability Test Scenarios
Data Channels:
- Reliable ordered channels
- Unreliable unordered channels
- Multiple concurrent channels
- Large message fragmentation
- Binary and text messages
Media:
- Audio-only calls (Opus codec)
- Video-only streams (VP8, VP9, H.264)
- Audio + Video combined
- Simulcast with layer switching
- Screen sharing
ICE & Connectivity:
- Direct host-to-host connection
- STUN-assisted connectivity
- TURN relay fallback
- Trickle ICE candidate exchange
- ICE restart mid-session
- mDNS candidate handling
SDP Negotiation:
- Offer/Answer exchange
- Renegotiation (add/remove tracks)
- Codec negotiation
- Extension negotiation
- Rejected media sections
Browser-Specific Quirks
Each browser has its own WebRTC implementation quirks that need to be handled:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Browser Compatibility Matrix │
├─────────────────────────────────────────────────────────────────────────────┤
│ Issue │ Chrome │ Firefox │ Safari │ Edge │
├─────────────────────────────────┼────────┼─────────┼────────┼───────────────┤
│ SDP format variations │ ✓ │ ✓ │ ⚠ │ ✓ │
│ ICE candidate formatting │ ✓ │ ✓ │ ⚠ │ ✓ │
│ DTLS role handling │ ✓ │ ✓ │ ⚠ │ ✓ │
│ Data channel negotiation │ ✓ │ ✓ │ ✓ │ ✓ │
│ Simulcast configuration │ ✓ │ ⚠ │ ⚠ │ ✓ │
│ TWCC support │ ✓ │ ✓ │ ⚠ │ ✓ │
└─────────────────────────────────┴────────┴─────────┴────────┴───────────────┘
✓ = Works as expected ⚠ = Requires special handling ✗ = Known issues
Automated Browser Testing
Planned infrastructure:
- Selenium/Playwright tests — Automated browser control for E2E testing
- WebDriver BiDi — Modern browser automation protocol
- CI integration — Run browser tests on every PR
- Cross-platform matrix — Test on Windows, macOS, Linux
# Example CI configuration (planned)
browser-interop:
strategy:
matrix:
browser: [chrome, firefox, safari, edge]
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- run: cargo build --release
- run: ./run-browser-tests.sh ${{ matrix.browser }}Known Issues to Address
- Safari SDP parsing edge cases
- Firefox simulcast layer negotiation
- Mobile browser power management
- Browser-specific codec preferences
- ICE candidate timing differences
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
p1high priorityhigh priority