Browser Compatibility
This guide covers browser support, known compatibility issues, and workarounds.Supported Browsers
Desktop Browsers
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 80+ | Recommended |
| Firefox | 75+ | Full support |
| Safari | 13.1+ | See Safari notes below |
| Edge | 80+ | Chromium-based |
Mobile Browsers
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome (Android) | 80+ | Recommended |
| Safari (iOS) | 13.4+ | See Safari notes below |
| Samsung Internet | 12+ | Full support |
| Firefox (Android) | 75+ | Full support |
Not Supported
- Internet Explorer (all versions)
- Opera Mini
- UC Browser
- Older browser versions
Required Browser Features
The Fanfare SDK requires these browser features:| Feature | Usage | Fallback |
|---|---|---|
| Fetch API | API requests | Polyfill available |
| Promises | Async operations | Polyfill available |
| ES2020+ | Modern JavaScript | Transpilation |
| Web Storage | Session persistence | Graceful degradation |
| WebSocket | Real-time updates | Polling fallback |
Safari-Specific Issues
Intelligent Tracking Prevention (ITP)
Safari’s ITP can affect cookie and storage behavior. Symptoms:- Sessions not persisting
- Unexpected logouts
- Cross-site tracking issues
-
Use first-party cookies
-
Prompt for storage access
Private Browsing Mode
In Safari private browsing, localStorage and sessionStorage may be unavailable. Detection and handling:WebSocket Limitations
Safari has stricter WebSocket handling. Symptoms:- Connection drops after backgrounding
- Reconnection issues
Mobile-Specific Issues
Background Tab Throttling
Browsers throttle background tabs to save battery. Impact:- Timers may be delayed
- Real-time updates may pause
- Position updates may lag
iOS Safari Touch Handling
iOS Safari has unique touch event handling. 300ms tap delay workaround:Keyboard and Viewport
Mobile keyboard can cause layout issues. Solution:Feature Detection
Recommended Approach
Use feature detection rather than browser detection.Show Upgrade Message
Polyfills
Adding Polyfills
For older browsers, add polyfills:Conditional Loading
Load polyfills only when needed:Common Issues by Browser
Chrome
Issue: Extensions blocking requests Solution: Test in incognito mode or disable extensionsFirefox
Issue: Enhanced Tracking Protection Solution: Ensure your domain is not on tracking lists Issue: Container tabs isolation Solution: Sessions may not share between containers by designSafari
Issue: Aggressive caching Solution: Add cache-busting headersEdge (Legacy)
Issue: Not supported Solution: Redirect to modern Edge or ChromeTesting Across Browsers
Recommended Testing Matrix
| Priority | Browsers |
|---|---|
| Critical | Chrome (latest), Safari (latest), iOS Safari |
| High | Firefox (latest), Edge (latest), Chrome Android |
| Medium | Chrome (-1), Safari (-1), Samsung Internet |
Testing Tools
- BrowserStack: Cross-browser testing
- Sauce Labs: Automated browser testing
- Chrome DevTools: Device emulation
- Safari Technology Preview: Test upcoming Safari features
Mobile Testing
Performance Considerations
Browser-Specific Optimizations
Memory Management
Getting Help
If you encounter browser-specific issues:- Check browser console for errors
- Test in incognito/private mode to rule out extensions
- Note exact browser version when reporting issues
- Provide reproduction steps if possible
Contact Support
Report browser-specific issues to our support team