From 3374cab2fdb393a286ffc93a531709bb0d3e9083 Mon Sep 17 00:00:00 2001 From: hvpavel Date: Tue, 5 Oct 2021 21:55:01 +0200 Subject: [PATCH] fix(rrweb-snapshot): don't exclude @import CSS rules from the output and use CSSRule.cssText instead when they throw an exception while accessing their CSSStyleSheet.cssRules property --- packages/rrweb-snapshot/src/snapshot.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/rrweb-snapshot/src/snapshot.ts b/packages/rrweb-snapshot/src/snapshot.ts index f2eccf5c4e..6f346e6e27 100644 --- a/packages/rrweb-snapshot/src/snapshot.ts +++ b/packages/rrweb-snapshot/src/snapshot.ts @@ -49,9 +49,13 @@ function getCssRulesString(s: CSSStyleSheet): string | null { } function getCssRuleString(rule: CSSRule): string { - return isCSSImportRule(rule) - ? getCssRulesString(rule.styleSheet) || '' - : rule.cssText; + let cssStringified = rule.cssText; + if (isCSSImportRule(rule)) { + try { + cssStringified = getCssRulesString(rule.styleSheet) || cssStringified; + } catch {} + } + return cssStringified; } function isCSSImportRule(rule: CSSRule): rule is CSSImportRule {