This repo is a simple test case for anyone to use - as is - to check similar browser compatibility issues. Primarily tests cases for Webcam/Camera access via getUserMedia, HTTPS (as some browsers block camera access from unsecured sites), WebAssembly, ASM, and WebGL.
Live example here: https://marcusbelcher.github.io/wasm-asm-camera-webgl-test/index.html
This repo is also used within an Android test application here: https://awesomeopensource.com/project/marcusbelcher/android-getUserMedia-test
Build / Deploy
- Checkout this repo to the required host in a servable directory (e.g.
- Start your server (e.g.
httpd start, etc)
- Go to the required URL in the browser you would like to test (e.g.
- <= 10
- getUserMedia is not availible on iOS, thus all camera management must be done by the native iOS app.
- Safari passes all tests and shows a live camera feed.
- In-app webviews utilising SFSafariViewController, UIWebView, WKWebView do not currently support getUserMedia access
- Thus any in-app browser - currently at the time of writing - does not support camera access.
- To get around this you can:
- (Easy, poor UX) prompt the user to open the experience in Safari
- (Hard, good UX) Implement bespoke camera access in the native iOS app and send/inject the stream into the webpage via the necessary bridging code.
- 12 (~ Sept 2018)
- An educated 'gestimate' SFSafariViewController and WKWebView will get getUserMedia access in this update. UIWebView will not get getUserMedia.
- Chrome passes all tests and shows a live camera feed.
- Firefox passes all tests and shows a live camera feed.
- Edge passes all tests, receives a success message from getUserMedia however sometimes it does not show a live feed.
- Facebook in-app WebView shows a
NotAllowedError - Permission denied.
- Slacks in-app webview correctly runs the tests and shows a live camera feed (default app being Chrome, Samsung Internet). If Firefox/Edge are classed as the default app Slack opens the experience in the selected app vs running within its own web browser view.
- Custom app (https://awesomeopensource.com/project/marcusbelcher/android-getUserMedia-test)
- If permissions have been granted (Application settings) - all tests passed and live video should be seen
- If permissions have not been granted I encounter a
The difference in errors between this app and Facebook will be down to WebView impementation and Application permissions.