From d9222075daaed08884491b0563fc899ee0ced731 Mon Sep 17 00:00:00 2001
From: Niklas von Hertzen
Date: Wed, 29 Dec 2021 21:02:16 +0800
Subject: [PATCH 01/15] ci: add ios 15.0 testing (#2780)
---
.github/workflows/ci.yml | 4 ++++
karma.conf.js | 8 +++++++-
www/.gitignore | 2 ++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 86aa839..dac4e3e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -113,6 +113,10 @@ jobs:
name: iOS Simulator Safari 14
targetBrowser: Safari_IOS_14
xcode: /Applications/Xcode_12.4.app
+ - os: macos-11
+ name: iOS Simulator Safari 15.0
+ targetBrowser: Safari_IOS_15_0
+ xcode: /Applications/Xcode_13.0.app
- os: macos-11
name: iOS Simulator Safari 15
targetBrowser: Safari_IOS_15
diff --git a/karma.conf.js b/karma.conf.js
index f1fd674..526deac 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -42,9 +42,15 @@ module.exports = function(config) {
platform: 'iOS',
sdk: '14.4'
},
+ Safari_IOS_15_0: {
+ base: 'MobileSafari',
+ name: 'iPhone 13',
+ platform: 'iOS',
+ sdk: '15.0'
+ },
Safari_IOS_15: {
base: 'MobileSafari',
- name: 'iPhone 8',
+ name: 'iPhone 13',
platform: 'iOS',
sdk: '15.2'
},
diff --git a/www/.gitignore b/www/.gitignore
index e78c007..fe89f87 100644
--- a/www/.gitignore
+++ b/www/.gitignore
@@ -9,3 +9,5 @@ yarn-error.log
src/results.json
static/tests/preview.js
src/preview.js
+.docusaurus
+build/
From ba2b1cd8e9a9d7932675d7abffce1526a609e769 Mon Sep 17 00:00:00 2001
From: Niklas von Hertzen
Date: Wed, 29 Dec 2021 22:09:32 +0800
Subject: [PATCH 02/15] fix: ios 15 font rendering crash (#2645)
---
src/render/canvas/canvas-renderer.ts | 11 ++++++++++-
tests/reftests/text/lang/chinese.html | 9 +++++++++
tests/reftests/text/text.html | 2 +-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/render/canvas/canvas-renderer.ts b/src/render/canvas/canvas-renderer.ts
index 48e7315..077ddd0 100644
--- a/src/render/canvas/canvas-renderer.ts
+++ b/src/render/canvas/canvas-renderer.ts
@@ -162,7 +162,7 @@ export class CanvasRenderer extends Renderer {
const fontVariant = styles.fontVariant
.filter((variant) => variant === 'normal' || variant === 'small-caps')
.join('');
- const fontFamily = styles.fontFamily.join(', ');
+ const fontFamily = fixIOSSystemFonts(styles.fontFamily).join(', ');
const fontSize = isDimensionToken(styles.fontSize)
? `${styles.fontSize.number}${styles.fontSize.unit}`
: `${styles.fontSize.number}px`;
@@ -947,3 +947,12 @@ const canvasTextAlign = (textAlign: TEXT_ALIGN): CanvasTextAlign => {
return 'left';
}
};
+
+// see https://github.com/niklasvh/html2canvas/pull/2645
+const iOSBrokenFonts = ['-apple-system', 'system-ui'];
+
+const fixIOSSystemFonts = (fontFamilies: string[]): string[] => {
+ return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent)
+ ? fontFamilies.filter((fontFamily) => iOSBrokenFonts.indexOf(fontFamily) === -1)
+ : fontFamilies;
+};
diff --git a/tests/reftests/text/lang/chinese.html b/tests/reftests/text/lang/chinese.html
index da5c696..9aed4d2 100644
--- a/tests/reftests/text/lang/chinese.html
+++ b/tests/reftests/text/lang/chinese.html
@@ -11,6 +11,13 @@
float: left;
}
+ .apple-system {
+ font-family: -apple-system, Arial;
+ }
+
+ .system-ui {
+ font-family: system-ui, Arial;
+ }
@@ -32,5 +39,7 @@
〔13〕 法捷耶夫(一九○一——一九五六),苏联名作家。他所作的小说《毁灭》于一九二七年出版,内容是描写苏联国内战争时期由苏联远东滨海边区工人、农民和革命知识分子所组成的一支游击队同国内反革命白卫军以及日本武装干涉军进行斗争的故事。这部小说曾由鲁迅译为汉文。
〔14〕 见鲁迅《集外集·自嘲》(《鲁迅全集》第7卷,人民文学出版社1981年版,第147页)。
+ 中文
+ 中文