fix: Force loading the polyfills for setImmediate and clearImmediate (WEBAPP-5440) #4552
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ok, hold on to your socks, this is a tough one.
On the webapp side, we need (Dexie needs to be precise) both
setImmediate
andclearImmediate
.Dexies uses a polyfill to actually declare both of them if the browser doesn't have them.
So in the case of a browser
setImmediate
ANDclearImmediate
are not defined so Dexie's polyfill triggers and define bothIn the case of the desktop app, we actually set ONLY
setImmediate
in the preload script (see https://github.com/wireapp/wire-desktop/blob/796ab90f104861697d0cd662b63b6c5836242d68/electron/renderer/static/webview-preload.js#L195).Which means that when Dexie loads its polyfill,
setImmediate
is defined (but notclearImmediate
) so the polyfill doesn't do anything and we end up in the bug we current have on the login page.This fix, forces the webapp to load the polyfill for both
setImmediate
andclearImmediate
(so Dexie's polyfill won't be loaded).