Browser Compatibility
lib-jitsi-meet uses theBrowserCapabilities class for browser detection and feature support checking, along with webrtc-adapter for polyfills.
BrowserCapabilities Class
ExtendsBrowserDetection from @jitsi/js-utils with lib-jitsi-meet-specific capabilities.
modules/browser/BrowserCapabilities.ts:1, 22
Minimum Browser Versions
modules/browser/BrowserCapabilities.ts:4-7
Version Detection
Safari Versionmodules/browser/BrowserCapabilities.ts:41-47
iOS Version
modules/browser/BrowserCapabilities.ts:28-34
Browser Support Checks
Overall Support
modules/browser/BrowserCapabilities.ts:101-116
Platform-Specific Support
Androidmodules/browser/BrowserCapabilities.ts:123-125
iOS
modules/browser/BrowserCapabilities.ts:10-11, 132-140
Mobile Detection
modules/browser/BrowserCapabilities.ts:83-85, 65-67, 74-76
Trusted Web App Detection
modules/browser/BrowserCapabilities.ts:92-94
Codec Support
setCodecPreferences API
modules/browser/BrowserCapabilities.ts:178-189
Codec Selection API
modules/browser/BrowserCapabilities.ts:199-201
VP9 Support
modules/browser/BrowserCapabilities.ts:276-281
SVC Support
modules/browser/BrowserCapabilities.ts:288-290
Simulcast
SDP Munging for Simulcast
modules/browser/BrowserCapabilities.ts:297-299
RIDs for Simulcast
modules/browser/BrowserCapabilities.ts:307-309
Scalability Mode API
modules/browser/BrowserCapabilities.ts:255-257
E2EE Support
Insertable Streams
modules/browser/BrowserCapabilities.ts:340-357
Encoded Transform
modules/browser/BrowserCapabilities.ts:331-333
Audio RED Format
modules/browser/BrowserCapabilities.ts:364-367
Statistics Support
Bandwidth Statistics
modules/browser/BrowserCapabilities.ts:167-171
RTT Statistics
modules/browser/BrowserCapabilities.ts:236-246
Receiver Stats
modules/browser/BrowserCapabilities.ts:226-229
Track-Based Stats
modules/browser/BrowserCapabilities.ts:265-267
Media Capabilities
getDisplayMedia Support
modules/browser/BrowserCapabilities.ts:316-320
Device Change Events
modules/browser/BrowserCapabilities.ts:216-219
Video Mute Strategy
modules/browser/BrowserCapabilities.ts:56-58
Video Mute Events
modules/browser/BrowserCapabilities.ts:158-160
Browser-Specific Features
User Interaction for Unmute
modules/browser/BrowserCapabilities.ts:148-150
RTX Support
modules/browser/BrowserCapabilities.ts:383-387
Dependency Descriptor Headers
modules/browser/BrowserCapabilities.ts:208-210
Voice Activity Detection
modules/browser/BrowserCapabilities.ts:374-376
webrtc-adapter Integration
lib-jitsi-meet uses webrtc-adapter for WebRTC API polyfills:- Unified WebRTC API across browsers
- getUserMedia polyfill
- RTCPeerConnection shims
- Browser compatibility fixes
modules/RTC/RTCUtils.js:3, CLAUDE.md:53
Usage Pattern
Common Compatibility Checks
Before Using APIs
Platform Detection
Best Practices
-
Always check feature support: Don’t assume APIs exist
-
Use platform detection for optimization: Different defaults for mobile
-
Handle browser bugs: Apply workarounds where necessary
-
Graceful degradation: Provide fallbacks for unsupported features
-
Check minimum versions: Block unsupported browsers early
Next Steps
- WebRTC Internals - Browser-specific WebRTC handling
- Codec Selection - Codec support by browser
- Network Optimization - Connection handling