From 6752701c60a2dfdf1fa185bad61691a4afceae6f Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Tue, 8 Aug 2023 14:30:40 +0100 Subject: [PATCH 1/2] Extend to run fixBrowserCompatibilityIssuesInCSS over styles in inline style sheets --- .changeset/curvy-apples-lay.md | 6 ++++++ packages/rrweb-snapshot/src/snapshot.ts | 12 +----------- 2 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 .changeset/curvy-apples-lay.md diff --git a/.changeset/curvy-apples-lay.md b/.changeset/curvy-apples-lay.md new file mode 100644 index 0000000000..692d114f02 --- /dev/null +++ b/.changeset/curvy-apples-lay.md @@ -0,0 +1,6 @@ +--- +"rrweb-snapshot": patch +"rrweb": patch +--- + +Extend to run fixBrowserCompatibilityIssuesInCSS over inline stylesheets diff --git a/packages/rrweb-snapshot/src/snapshot.ts b/packages/rrweb-snapshot/src/snapshot.ts index bb18542d26..6acb1c250a 100644 --- a/packages/rrweb-snapshot/src/snapshot.ts +++ b/packages/rrweb-snapshot/src/snapshot.ts @@ -51,16 +51,6 @@ function getValidTagName(element: HTMLElement): Lowercase { return processedTagName; } -function stringifyStyleSheet(sheet: CSSStyleSheet): string { - return sheet.cssRules - ? Array.from(sheet.cssRules) - .map((rule) => - rule.cssText ? validateStringifiedCssRule(rule.cssText) : '', - ) - .join('') - : ''; -} - function extractOrigin(url: string): string { let origin = ''; if (url.indexOf('//') > -1) { @@ -564,7 +554,7 @@ function serializeTextNode( // to _only_ include the current rule(s) added by the text node. // So we'll be conservative and keep textContent as-is. } else if ((n.parentNode as HTMLStyleElement).sheet?.cssRules) { - textContent = stringifyStyleSheet( + textContent = getCssRulesString( (n.parentNode as HTMLStyleElement).sheet!, ); } From 8e8ed05e1b89021bbf70084c4664e3ef5f35be0d Mon Sep 17 00:00:00 2001 From: eoghanmurray Date: Tue, 8 Aug 2023 13:38:14 +0000 Subject: [PATCH 2/2] Apply formatting changes --- .changeset/curvy-apples-lay.md | 4 ++-- yarn.lock | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.changeset/curvy-apples-lay.md b/.changeset/curvy-apples-lay.md index 692d114f02..9072a2ad25 100644 --- a/.changeset/curvy-apples-lay.md +++ b/.changeset/curvy-apples-lay.md @@ -1,6 +1,6 @@ --- -"rrweb-snapshot": patch -"rrweb": patch +'rrweb-snapshot': patch +'rrweb': patch --- Extend to run fixBrowserCompatibilityIssuesInCSS over inline stylesheets diff --git a/yarn.lock b/yarn.lock index f579e11c04..c26d4e9233 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5503,10 +5503,15 @@ csso@^4.0.2: dependencies: css-tree "^1.1.2" -cssom@^0.4.4, cssom@^0.5.0, "cssom@https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz": +cssom@^0.4.4, "cssom@https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz": version "0.6.0" resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"