Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Safari failures on Desktop and Mobile #1908

Closed
bhouston opened this issue Apr 19, 2021 · 2 comments
Closed

Multiple Safari failures on Desktop and Mobile #1908

bhouston opened this issue Apr 19, 2021 · 2 comments
Assignees
Labels
legacy:hands Hand tracking/gestures/etc platform:javascript MediaPipe Javascript issues type:support General questions

Comments

@bhouston
Copy link

bhouston commented Apr 19, 2021

Having a lot of failures on Safari both on desktop and mobile. Is It supported? If it isn't supported, why not?

Failure 1:

On mobile the latest live demos (https://mediapipe.dev/demo/face_mesh, https://mediapipe.dev/demo/hands) fail with this in the console on iOS:

Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

Failure 2:

Chrome on iOS also fails to load. I suspect it is the same reason - because it is actually Safari Webview underneath.

Failure 3:

On desktop they fail with this command when all "experimental features" (which includes WebGPU and WebGL2) are disabled:

[Error] Unhandled Promise Rejection: TypeError: GLctx["texStorage2D"] is not a function. (In 'GLctx["texStorage2D"](x0,x1,x2,x3,x4)', 'GLctx["texStorage2D"]' is undefined)
	(anonymous function) (face_mesh_solution_wasm_bin.js:9:273218)
	promiseReactionJob

Failure 4:

If I enable WebGL2 on desktop Safari I get a black screen, but it doesn't appear to explicitly error out:

Screen Shot 2021-04-19 at 2 43 12 PM

The only thing I've got working so far is Chrome on MacOS.

Is it because Safari isn't part of the CI/CD tool chain? Was there a decision to not support Safari because it lacked WebGL2? Just wondering. It does mean that because of this gap, MediaPipe is not web-ready at this time. Safari accounts for 20% of all web browser traffic: https://gs.statcounter.com/browser-market-share

@bhouston
Copy link
Author

Interesting fact. I downloaded the Safari Technical Preview -- the latest -- and these examples now work.

@tyrmullen
Copy link
Collaborator

tyrmullen commented Apr 19, 2021

The Visualizer demos should generally run on a wider range of platforms than the latest code-pen demos, which are faster/fancier, but not yet as x-browser. There are two separate issues here to get the code-pens running on iOS: mobile support, and Safari support.

Mobile support is a little trickier for these, but Safari, as you have surmised, is just missing WebGL2, which is why the latest Safari Technology Preview works. We're working on supporting WebGL1 for these demos as well, but still have a few small issues to work out. My comment on #1427 has more specifics. Closing this issue as duplicate, to consolidate.

@sgowroji sgowroji self-assigned this Apr 29, 2021
@sgowroji sgowroji added platform:javascript MediaPipe Javascript issues legacy:hands Hand tracking/gestures/etc type:support General questions labels Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
legacy:hands Hand tracking/gestures/etc platform:javascript MediaPipe Javascript issues type:support General questions
Projects
None yet
Development

No branches or pull requests

3 participants