Commit Graph

30 Commits

Author SHA1 Message Date
Yanzhen Yu
29fcf03d4f provide a general visit function to modify rebuilt id node map 2026-04-01 12:00:00 +08:00
吴泽康
1c43577807 Add nested scroll support (#31) 2026-04-01 12:00:00 +08:00
Eoghan Murray
dc56ec274a Avoid more common causes of 'blocked script execution' console.error messages in Chrome which are not exceptions (but look like them): (#30)
'Blocked script execution in '<page>' because the document's frame is sandboxed and the 'allow-scripts' permission is not set'
2026-04-01 12:00:00 +08:00
Yanzhen Yu
35070d9dcc add media state check 2026-04-01 12:00:00 +08:00
Yanzhen Yu
927f754a9d format code 2026-04-01 12:00:00 +08:00
吴泽康
94d64e3424 Add canvas image content support (#20)
* Add canvas image content support

* use rr_dataURL as the key so we know its a rrweb-added attribute.

* fix canvas rr_dataURL rebuild
2026-04-01 12:00:00 +08:00
yz-yu
cbe23963a0 add the HACK_CSS flag to bypass css parsing (#16) 2026-04-01 12:00:00 +08:00
dphuang2
939eddcca5 Ignore broken CSS (#15)
Broken CSS inside a page will throw an error on our behalf. This should
be ignored because we are not in control of the CSS on the page we are
recording.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
fbfdafae34 remove child node before set default value 2026-04-01 12:00:00 +08:00
Yanzhen Yu
21e8affa2b Use css parser to add hover class name to selectors.
Previously we use a regexp to match all the CSS selectors and add
our hover class name to it, which has been proved not solid and
may be very slow in some situation.
Using a production ready css parser can handle this better and also
provide ability's to do more accurate things to the recorded
stylesheets.
2026-04-01 12:00:00 +08:00
Razvan Sandu
149c78802a Allow rendering image tags inside svgs during replay (#13) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
29f2e42978 iterate style element to get css rules string 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6259ae631d add camel case svg element tag names to tag map 2026-04-01 12:00:00 +08:00
Yanzhen Yu
55ce53ffa0 close before open to make sure document was closed 2026-04-01 12:00:00 +08:00
Yanzhen Yu
2d1d3596b8 handle block element 2026-04-01 12:00:00 +08:00
Yanzhen Yu
8b470ab6c8 remove _cssText attribute from style element 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c458db3d8e ignore iframe src attribute 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e9786e7596 check is svg when serialization 2026-04-01 12:00:00 +08:00
Yanzhen Yu
2065e00c5d Fix the regexp performance issue
Also move the addHoverClass implementation into the rebuild stage.
So if there is still some corner case we have not handled, it will
only affect the replayer part of rrweb.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
b964d18ef7 allow skip child when serialize node and rebuild node 2026-04-01 12:00:00 +08:00
Yanzhen Yu
9a4c21c30f refactor rebuild implementation which mount DOM onto the target document object 2026-04-01 12:00:00 +08:00
Yanzhen Yu
19eca4da6d use document object from params instead of the one in the current scope 2026-04-01 12:00:00 +08:00
Yanzhen Yu
875385552d impl the extra child data attribute to align id map 2026-04-01 12:00:00 +08:00
Yanzhen Yu
cb3efd427f add data attribute to element when rebuild 2026-04-01 12:00:00 +08:00
Yanzhen Yu
0434129b00 return id node map when rebuild 2026-04-01 12:00:00 +08:00
Yanzhen Yu
ac5293f162 add strict null check and fix codes 2026-04-01 12:00:00 +08:00
Yanzhen Yu
51737d9b53 try to inline linked stylesheet when in same origin 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e9cf631934 replace script tag with noscript and inline the states of form field components 2026-04-01 12:00:00 +08:00
Yanzhen Yu
ed2bc918e0 setup tests 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a71fb73aaf basic rebuild implementation 2026-04-01 12:00:00 +08:00