- #1593
5a78938
Thanks @daibhin! -NodeType
enum was moved from rrweb-snapshot to @rrweb/types The following types where moved from rrweb-snapshot to @rrweb/types:documentNode
,documentTypeNode
,legacyAttributes
,textNode
,cdataNode
,commentNode
,elementNode
,serializedNode
,serializedNodeWithId
,serializedElementNodeWithId
,serializedTextNodeWithId
,IMirror
,INode
,mediaAttributes
,attributes
andDataURLOptions
-
#1331
02cc62d
Thanks @billyvg! - fix dimensions for blocked element not being applied -
#1535
04ee6ed
Thanks @eoghanmurray! - Slight simplification to how we replace :hover after #1458 -
#1437
5fbb904
Thanks @eoghanmurray! - Edge case: Provide support for mutations on a <style> element which (unusually) has multiple text nodes
- #1503
335639a
Thanks @Juice10! - Record dialog's modal status for replay in rrweb. (Currently triggeringdialog.showModal()
is not supported in rrweb-snapshot's rebuild)
-
#1417
40bbc25
Thanks @YunFeng0817! - fix: duplicate textContent for style elements cause incremental style mutations to be invalid -
#1533
d350da8
Thanks @jeffdnguyen! - Fixurl()
rewrite for nested stylesheets by rewriting during stringification instead of after -
#1509
be6bf52
Thanks @Juice10! - Reverse monkey patch built in methods to support LWC (and other frameworks like angular which monkey patch built in methods).
-
#1386
a2c8a1a
Thanks @ababik! - Fix that the optionalmaskInputFn
was being accidentally ignored during the creation of the full snapshot -
#1512
d08624c
Thanks @eoghanmurray! - optimisation: skip mask check on leaf elements
- #1497
2606a2a
Thanks @Juice10! - Distributed files have new filenames, paths and extensions. Important: If you reference distributed files or types directly, you might have to update your paths/filenames. E.g. you import fromrrweb/typings/...
orrrdom/es
. However you runimport rrweb from 'rrweb'
you won't notice a difference with this change. If you include rrweb files directly in a script tag, you might have to update that path to include a the.umd.cjs
files instead. All.js
files now use ES modules which can be used in modern browsers, node.js and bundlers that support ES modules. All npm packages now also ship.cjs
and.umd.cjs
files. The.umd.cjs
files are CommonJS modules that bundle all files together to make it easy to ship one file to browser environments (similar to the previous.js
files). The.cjs
files are CommonJS modules that can be used in older Node.js environments. Types should be better defined inpackage.json
and if you need specific types they might be exported from new packages (for examplePlayerMachineState
andSpeedMachineState
are now exported from@rrweb/replay
). Check thepackage.json
'smain
andexports
field for the available files.
-
#1468
4014305
Thanks @eoghanmurray! - inlineImages: during snapshot avoid adding an event listener for inlining of same-origin images (async listener mutates the snapshot which can be problematic) -
#1493
82f6fec
Thanks @eoghanmurray! - Replay: Replace negative lookbehind in regexes from css parser as it causes issues with Safari 16 -
#1482
f3cf092
Thanks @AlfieJones! - (whenrecordCanvas: true
): ensure we use doc.createElement instead of document.createElement to allow use in non-browser e.g. jsdom environments -
#760
e08706a
Thanks @eoghanmurray! - Add slimDOM option to block animation on <title> tag; enabled when the 'all' value is used for slimDOM
-
#1464
03b5216
Thanks @colingm! - better support for coexistence with older libraries (e.g. MooTools & Prototype.js) which modify the in-builtArray.from
function -
#1481
46f1b25
Thanks @eoghanmurray! - Fix and test for bug #1457 which was affecting replay of complex tailwind css -
#1476
cbbd1e5
Thanks @eoghanmurray! - Fixup for multiple background-clip replacement -
#1387
5e7943d
Thanks @H4ad! - Avoid recreating the same element every time, instead, we cache and we just update the element.Before: 779k ops/s After: 860k ops/s
Benchmark: https://jsbench.me/ktlqztuf95/1
-
#1440
c0f83af
Thanks @daibhin! - better nested css selector splitting when commas or brackets happen to be in quoted text -
#1467
e96f668
Thanks @eoghanmurray! - Bugfix after #1434 perf improvements: fix that blob urls persist on the shared anchor element and can't be later modified
- #1432
123a81e
Thanks @Juice10! - Video and Audio elements now also captureplaybackRate
,muted
,loop
,volume
.
- #1310
7c0dc9d
Thanks @benjackwhite! - Extends maskTextFn to pass the HTMLElement to the deciding function
-
#1272
58c9104
Thanks @eoghanmurray! - Perf: Avoid creation of intermediary array when iterating over style rules -
#1351
a2be77b
Thanks @eoghanmurray! - Don't double-record the values of <textarea>s when they already have some content prefilled #1301 -
#1431
a7c33f2
Thanks @eoghanmurray! - Ensure :hover works on replayer, even if a rule is behind a media query Respect the intent behind max-device-width and min-device-width media queries so that their effects are apparent in the replayer context -
#1155
8aea5b0
Thanks @YunFeng0817! - Feat: Add 'isCustom' flag to serialized elements.This flag is used to indicate whether the element is a custom element or not. This is useful for replaying the :defined pseudo-class of custom elements.
-
#1374
314a8dd
Thanks @andrewpomeroy! - Capture stylesheets designated asrel="preload"
-
#1349
07ac5c9
Thanks @eoghanmurray! - Snapshot performance when masking text: Avoid the repeated calls toclosest
when recursing through the DOM
-
#1279
11f6567
Thanks @eoghanmurray! - Extend to run fixBrowserCompatibilityIssuesInCSS over inline stylesheets -
#1287
efdc167
Thanks @Juice10! - Upgrade all projects to typescript 4.9.5 -
#1287
efdc167
Thanks @Juice10! - Add workaround for Chrome/Edge CSS@import
escaping bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1472259
- #1188
bc84246
Thanks @benjackwhite! - feat: Extends maskInputFn to pass the HTMLElement to the deciding function
- #1148
d0fdc0f
Thanks @YunFeng0817! - Improve: Add try catch to snapshot.ts 's masking text function. Fixes #1118.
-
#1133
c28ef5f
Thanks @eoghanmurray! - Fix: CSS transitions are incorrectly being applied upon rebuild in Firefox. Presumably FF doesn't finished parsing the styles in time, and applies e.g. a default margin:0 to elements which have a non-zero margin set in CSS, along with a transition on them.Related bug report to Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1816672
-
#1130
f6f07e9
Thanks @Equlnox! - Fix: Make relative path detection in stylesheet URLs to detect more types of URL protocols when inlining stylesheets. -
#1157
8e47ca1
Thanks @mydea! - fix: Explicitly handlenull
attribute values
-
#1095
1385f7a
Thanks @YunFeng0817! - Fix duplicated shadow doms -
#1126
227d43a
Thanks @YunFeng0817! - Refactor all suffix of bundled scripts with commonjs module from 'js' to cjs #1087.