Skip to content

Commit a0e032f

Browse files
committed
fix: fixed output white picture on iOS Safari for large image because of canvas max size
1 parent e3423c3 commit a0e032f

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

lib/config/max-canvas-size.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
1+
// see: https://github.com/jhildenbiddle/canvas-size#test-results
2+
// see: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
23
export default {
34
chrome: 16384,
4-
firefox: 22528,
5-
safari: 16384,
5+
firefox: 11180,
6+
'desktop safari': 16384,
67
'internet explorer': 8192,
8+
'mobile safari': 4096,
79
etc: 8192,
810
};

lib/utils.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,17 @@ export function loadImage(src) {
8787
*/
8888
export function getBrowserName() {
8989
let browserName = 'etc';
90-
if (navigator.userAgent.indexOf('Chrome') !== -1 || navigator.userAgent.indexOf('Chromium') !== -1) {
90+
const { userAgent } = navigator;
91+
if (/Chrom(e|ium)/i.test(userAgent)) {
9192
browserName = 'chrome';
92-
} if (navigator.userAgent.indexOf('Safari') !== -1) {
93-
browserName = 'safari';
94-
} else if (navigator.userAgent.indexOf('Firefox') !== -1) {
93+
} else if (/iP(ad|od|hone)/i.test(userAgent) && /WebKit/i.test(userAgent) && !(/(CriOS|FxiOS|OPiOS|mercury)/i.test(userAgent))) {
94+
// see: https://stackoverflow.com/a/35813965
95+
browserName = 'mobile safari';
96+
} else if (/Safari/i.test(userAgent)) {
97+
browserName = 'desktop safari';
98+
} else if (/Firefox/i.test(userAgent)) {
9599
browserName = 'firefox';
96-
} else if ((navigator.userAgent.indexOf('MSIE') !== -1) || (!!document.documentMode === true)) { // IF IE > 10
100+
} else if (/MSIE/i.test(userAgent) || (!!document.documentMode) === true) { // IF IE > 10
97101
browserName = 'internet explorer';
98102
}
99103
return browserName;

0 commit comments

Comments
 (0)