Commit Graph

993 Commits

Author SHA1 Message Date
Yanzhen Yu
40cf712cfd update typings 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6b81e939cb fix controller height compute 2026-04-01 12:00:00 +08:00
dependabot[bot]
e66b5d9af6 Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 12:00:00 +08:00
Eoghan Murray
28917d1c9a Preserve url quotes (#47)
* Preserve original quotes when rewriting CSS url() paths - important for inline SVG files which often have spaces

* Found an example in the wild with the 'charset=' part left off. This is supported by https://css-tricks.com/lodge/svg/09-svg-data-uris/ ... not sure why we aren't just testing for the 'data:' prefix here?

* Not sure why this is now coming back with a double quote after recent changes here; it's supposed to preserve the single quote from style.css??
2026-04-01 12:00:00 +08:00
Yanzhen Yu
70c8a6b9d1 Release 0.4.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
bdb269b138 fix #524 polyfill Node.prototype.contains 2026-04-01 12:00:00 +08:00
Eoghan Murray
71b6e683c0 Add a slimDOM option to strip out unnecessary parts of the DOM (#36)
* Add a `slimDOM` option to strip out unnecessary parts of the DOM in terms of replay

 - <script> tags in the <head> take up unnecessary storage space and are often injected semi randomly to become a source of unnecessary variation between recordings of the same thing
 - comment tags can be stripped out without affecting display
 - future: this option could also turn on more aggressive stripping, e.g. elements that are hidden by CSS (assuming we can handle them becoming visible after mutation events)

* Mark nodes ignored due to slimDOM option, so that they can also be ignored by the mutation observer in rrweb

* Introducing the `ignored` attribute violates the `serializedNodeWithId` type

* slimDOM: Strip out whitespace nodes from <head> element as they have no effect but take up space

 - these would otherwise have to be merged after <script> elements are removed; for statcounter usecase, removing
   <script> elements is no good if there is still a trace of their presence due to the white space (and hence a variant <head> node is still produced)
 - I explored a more radical stripping of all white space nodes, but there is a problem if parent node is <pre> or otherwise rendered with `white-space: pre` and similar.
   detecting applied styles with getComputedStyle would be very expensive (I haven't measured it though)

* Export IGNORED_NODE as a constant instead of relying on the hard-to-grok `-2`

* Remove <link rel=preload as=script> which are similarly as useless as <script> tags

* Make slimDOM configurable with the expecations that `slimDOMOptions: true` will only enable non-destructive options (so not all options may be turned on)

* Expand slimDOM to add options to remove more elements from the <head> that should not be necessary in the replayer context
2026-04-01 12:00:00 +08:00
Yanzhen Yu
795e6cd8dc Release 0.3.17 2026-04-01 12:00:00 +08:00
Lucky Feng
b30b37c889 fix: #542 wrong results of splitting log stacks (#547)
fix bug of stack parcer and increase compatibility for different browser vendors
2026-04-01 12:00:00 +08:00
Yanzhen Yu
d8ba0cc8e2 Release 0.8.2 2026-04-01 12:00:00 +08:00
Yanzhen Yu
5475163a31 update rrweb 2026-04-01 12:00:00 +08:00
Lucky Feng
424044ede3 fix: issue #548 (#550)
1. Do not use virtual parent optimization if the mutation targets have iframe elements as children. This will cause some performance regression but will be easy to add and ship.
2. If an iframe element has already been a child of a virtual parent, add the virtual parent back to the dom.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
79f1ba574a close #42 fallback to html when doctype is invalid 2026-04-01 12:00:00 +08:00
mpstv
092255be91 add skipInactive parameter (#9) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f0c2258371 check events cursor before comparing timestamp 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c43189d3fe Release 0.8.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a6d6d4b3cd Release 0.3.16 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e339ebb90b update typings file 2026-04-01 12:00:00 +08:00
Yanzhen Yu
287a6073c0 add an option to enable/disable take canvas snapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
79bb37616a Release 0.3.15 2026-04-01 12:00:00 +08:00
re-fort
b1b25447ff Add options to mask texts (#540)
* feat: add options to mask texts

* feat: add the default mask function

* refactor: rename options to identify the difference between  mask text and mask input

* test: add tests about masking

* doc: add options about masking

* chore: bump up rrweb-snapshot version
2026-04-01 12:00:00 +08:00
Yanzhen Yu
41868e2265 rename visit to visitSnapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6c258ee50c update rrweb 2026-04-01 12:00:00 +08:00
Yanzhen Yu
861fac54ea fix #535 add play-back event to reset mirror and replayer 2026-04-01 12:00:00 +08:00
Yanzhen Yu
52aac74fa2 add visit function for snapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
7210e5b9a1 Release 0.3.14 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fdfb160e76 call sort after unpack 2026-04-01 12:00:00 +08:00
Yanzhen Yu
29fcf03d4f provide a general visit function to modify rebuilt id node map 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fbc0a0335f Release 0.3.12 2026-04-01 12:00:00 +08:00
Eoghan Murray
cfe59cb4b4 Sort events upon creation, and keep ordered (#411)
* Sort events at start, as otherwise we risk misidentifying the last event

* Keep inserted events in the correct order, ensuring we don't misidentify the last event

 - e.g. network conditions mean that 'live' events come in non-sequentially
 - or so that adding custom events to an existing event works

* Ensure we maintain original ordering while inserting a new event which has an identical timestamp to an existing event. This came up with a series of mutations which had the same timestamp but needed to be applied in the correct order

* Fast track the common case of a new event being added which occurs after all prior events
2026-04-01 12:00:00 +08:00
Eoghan Murray
cd601571ea Expand what is considered to be a valid tag name to include underscores: (#41)
- was making this change for <wix-image> on Wix websites, but discovered after that this has already been done in e4593ff76d
 - have tested document.createElement('wix-image') and document.createElement('foo_bar'), but can't find a canonical source for what is allowed in tag names.
 - this restriction was originally introduced in #150 to prevent document.createElement('alt=""') i.e. a very malformed tag name
2026-04-01 12:00:00 +08:00
Yanzhen Yu
58239befc9 fix version number 2026-04-01 12:00:00 +08:00
Eoghan Murray
d4a5284bb1 Don't perform newly added actions if player is paused (#539) 2026-04-01 12:00:00 +08:00
Jason Barry
949c236e29 Fixes missing space when converting srcset to use absolute URLs (#40)
* Fixes missing space when converting srcset to use absolute URLs

* Fix integration snapshot
2026-04-01 12:00:00 +08:00
Yanzhen Yu
9a75e27d71 Release 0.3.12 2026-04-01 12:00:00 +08:00
Yanzhen Yu
0223ff1c08 fix first play check 2026-04-01 12:00:00 +08:00
吴泽康
1c43577807 Add nested scroll support (#31) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6a24ddc368 Release 0.3.13 2026-04-01 12:00:00 +08:00
Yanzhen Yu
66fc50b3d9 update storyteller link 2026-04-01 12:00:00 +08:00
Yanzhen Yu
ec7e944a3d add textarea and select to default options 2026-04-01 12:00:00 +08:00
Yanzhen Yu
9b451f06e1 Release 0.3.12 2026-04-01 12:00:00 +08:00
Yanzhen Yu
0ea615327c add storyteller link 2026-04-01 12:00:00 +08:00
Yanzhen Yu
77aa87fc49 Release 0.8.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
1f6b9ec1da update dependency 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f555baa4ac impl #530, observe drag event and replay as mousemove 2026-04-01 12:00:00 +08:00
Yanzhen Yu
8592fbd05b support mask select fields 2026-04-01 12:00:00 +08:00
肉肉肉肉
07264d8011 fix translate second to second problem: formatTime function in utils/index.ts (#6) 2026-04-01 12:00:00 +08:00
John Pham
a295f72ed0 Don't rebuildFullSnapshot if it's the first run (#532)
* Don't rebuildFullSnapshot if it's the first run

* Fix typo
2026-04-01 12:00:00 +08:00
Yanzhen Yu
80ef6a4007 Release 0.7.29 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e3698d14b1 Release 0.3.11 2026-04-01 12:00:00 +08:00