-
Notifications
You must be signed in to change notification settings - Fork 2
Description
The main reason why reading a ZIM archive with libzim fails with the current build in older browsers is that somewhere in the build chain one or more of the binaries has been compiled with pthreads (Atomics). As we will never write or modify data (the main reason for atomic operations), it should be possible to do without them at least for a specific JavaScript (ASM) build targeting older browsers (#17).
@mgautierfr Is this something you're aware of in the libzim build chain? Any clue as to where pthreads are being required?
In JavaScript, the pthreads translate into JavaScript Atomic operations, which are not available in a wide range of potential targets. E.g., although Atomics are supported in latest Chromium and Firefox (desktop), they fail on: Safari (both on Mac OS and on iOS, as well as any other browser on iOS), on EdgeHTML (used still in UWP app webview), on ESR versions of Firefox, and on Internet Explorer (despite the fact that we can compile to ASM, which would be supported by IE11 were it not for the Atomics requirement). Any Android browser other than those based directly on Chromium also fail.