From 1c73b97d508fd79e6c8eff0cc8a44bdc5084f4a7 Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Mon, 27 Sep 2021 15:02:17 -0300 Subject: [PATCH] FIX: Workaround Safari 15 createImageBitmap bug (#14448) --- .../discourse/app/lib/media-optimization-utils.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/app/lib/media-optimization-utils.js b/app/assets/javascripts/discourse/app/lib/media-optimization-utils.js index ad581f0133..cd73d05007 100644 --- a/app/assets/javascripts/discourse/app/lib/media-optimization-utils.js +++ b/app/assets/javascripts/discourse/app/lib/media-optimization-utils.js @@ -1,9 +1,11 @@ import { Promise } from "rsvp"; +import { isAppleDevice } from "discourse/lib/utilities"; // Chrome and Firefox use a native method to do Image -> Bitmap Array (it happens of the main thread!) -// Safari uses the `` element due to https://bugs.webkit.org/show_bug.cgi?id=182424 +// Safari < 15 uses the `` element due to https://bugs.webkit.org/show_bug.cgi?id=182424 +// Safari > 15 still uses `` due to their buggy createImageBitmap not handling EXIF rotation async function fileToDrawable(file) { - if ("createImageBitmap" in self) { + if ("createImageBitmap" in self && !isAppleDevice()) { return await createImageBitmap(file); } else { const url = URL.createObjectURL(file);