Yanzhen Yu
f312ecbadc
add the inline stylesheet option when recording
2026-04-01 12:00:00 +08:00
Yanzhen Yu
503987c583
fix #62 accept RegExp type block class config
2026-04-01 12:00:00 +08:00
Yanzhen Yu
4f58cad48d
resume with time offset when after wait stylesheet load
2026-04-01 12:00:00 +08:00
Yanzhen Yu
32c33f3ce8
move browser related APIs into runtime
2026-04-01 12:00:00 +08:00
Yanzhen Yu
d1b32e6e9d
impl #23 add custom privacy selectors
2026-04-01 12:00:00 +08:00
Yanzhen Yu
da54061b53
check attribute is null instead of any falsy value
2026-04-01 12:00:00 +08:00
Yanzhen Yu
931f71e738
update mutation observer handler
...
1. deep delete from adds set when node was dropped
2. remove node from dropped set when node was added again
2026-04-01 12:00:00 +08:00
Yanzhen Yu
12fc5de3a7
check whether the removed node's ancestors has been removed
2026-04-01 12:00:00 +08:00
Yanzhen Yu
153035f4b0
turn some warning message into debug message
2026-04-01 12:00:00 +08:00
yz-yu
4a2c733583
improve mouse record and replay ( #49 )
...
Increase the throttle value of collecting mouse move and add a
transition time to the replayer's mouse. This may decrease the
size of mouse move data and make the replay movement more smooth.
Another change is to move and hover when click event is replayed.
This is to improve the replay of some programmatic click, such as
E2E tests.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e2bc867b2e
move all events to an enum and update guide
2026-04-01 12:00:00 +08:00
Yanzhen Yu
34571ad708
resolve #47 update dependency
2026-04-01 12:00:00 +08:00
Yanzhen Yu
384227d0df
resolve #48 check focus and blur before call since the target can be HTMLDocument in firefox
2026-04-01 12:00:00 +08:00
yz-yu
ca61d6b19e
fix remove node observer and check on the result of getNode ( #43 )
...
* check removed node and its parent before collect
* add more more checks on the result of getNode
2026-04-01 12:00:00 +08:00
yz-yu
081781d1ca
add checkout config to recorder ( #36 )
...
* add checkout config to recorder
* add test cases for checkout feature and extract assertSnapshot method
2026-04-01 12:00:00 +08:00
Yanzhen Yu
d72a15fd1b
expose iframe as public property
2026-04-01 12:00:00 +08:00
Yanzhen Yu
21465e785f
resolve #13 add warning messages when target is not found
2026-04-01 12:00:00 +08:00
Yanzhen Yu
21ba657653
resolve #28 , init replayer config in the constructor
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e4cb91e1e6
fix block strategy
...
If an element was blocked, its child nodes should also be blocked.
The interactions and mutations on the element and its child nodes
also need to be blocked.
2026-04-01 12:00:00 +08:00
Daniël van de Giessen
8ee8bc24d5
Corrected value for scrollTo behaviour parameter ( #18 )
2026-04-01 12:00:00 +08:00
Yanzhen Yu
203122630c
fix skip event logic when finding next active event
2026-04-01 12:00:00 +08:00
Yanzhen Yu
07cf74ca78
restore speed when finished
2026-04-01 12:00:00 +08:00
Yanzhen Yu
c99cea605c
update rrweb-snapshot minor version and set max skip speed
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e8fea1f93b
export timer to public API
2026-04-01 12:00:00 +08:00
Yanzhen Yu
68abd28c0a
emit speed with skip event
2026-04-01 12:00:00 +08:00
Yanzhen Yu
73983e7e78
add skipInactive option
...
Skip inactive time is an important and useful feature. We consider
user interaction events as active, and check next user interaction
event after apply incremental snapshot.
If next user interaction event has a time gap larger than the
threshold, we will set a dynamic speed value which will skip the
inactive time interval in about 5 seconds.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
b093fa6015
fix some safari's scroll related issue
2026-04-01 12:00:00 +08:00
Yanzhen Yu
5794aa9481
update rrweb-snapshot
2026-04-01 12:00:00 +08:00
Yanzhen Yu
60dcaadd63
safely scroll element since its last event may fired after being removed
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e5acc268fe
fix resolve missing node when target has both previous and next missing node
2026-04-01 12:00:00 +08:00
Yanzhen Yu
56aca3c2b7
check is dropped and is removed by ancestors instead of only check parent
2026-04-01 12:00:00 +08:00
Yanzhen Yu
9d7a75de7d
Add missingNodeRetryMap
...
Use a global missing node retry map to handle missing node that
has not been resolved in the same round.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e5928fc311
fix resume to move baseline time by time offset
2026-04-01 12:00:00 +08:00
Yanzhen Yu
6f06b5e1e7
only add click animation when cast is not sync
2026-04-01 12:00:00 +08:00
Yanzhen Yu
a3757fc8cf
fix timer requestAnimationFrame call may not stop after clear
...
Before this patch, the checker in the timer will stop only when
actions array is empty.
When we call play more than once, it will clear the timer first,
then push filtered new actions and start the timer again. If
all of this happened in a frame, the checker which should be
cleared may found actions array is not empty and keep check.
So this patch we use timer.raf to hold raf's handle and cancel
it when clear was called.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
97f1c30a37
add some unit tests to replayer
2026-04-01 12:00:00 +08:00
Yanzhen Yu
5f28a8d534
prevent scroll when dispatch focus
2026-04-01 12:00:00 +08:00
Yanzhen Yu
b2806d6f81
emit pause and resume events
2026-04-01 12:00:00 +08:00
Yanzhen Yu
f4596f5cea
fix mouse move time offset may be mutated multiple times
2026-04-01 12:00:00 +08:00
Yanzhen Yu
86beabd2bb
resolve #1 add ignore and block strategy for privacy purpose
2026-04-01 12:00:00 +08:00
Yanzhen Yu
09f30d2a81
return stopper function as the result of record
2026-04-01 12:00:00 +08:00
Yanzhen Yu
efa7a8fa1b
new sandbox strategy
...
In this commit we switched the sandbox strategy to use iframe's
sandbox attribute. Indeed we do not need delegate event anymore,
but need to add some styles into the iframe.
The details were documented in the sandbox part of internal design.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
0995b7a6d3
basic impl of wait for stylesheet loaded
2026-04-01 12:00:00 +08:00
Yanzhen Yu
9a7f98402c
check interaction target before apply
2026-04-01 12:00:00 +08:00
Yanzhen Yu
9ed7e09213
check parentNode when calling insertBefore
...
When add new nodes, we may use insertBefore API to insert node before
its next sibling. But the sibling may not in the DOM tree at that
moment if it was in the missing node map.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
20f27a3822
improve prevent default event when replay
2026-04-01 12:00:00 +08:00
Yanzhen Yu
4e636e1b6e
fix timer clear method with do not reassign actions pointer
2026-04-01 12:00:00 +08:00
edwardwu
05530551df
resolve #4 Improve timer's performance by storing all callbacks in an array ( #5 )
2026-04-01 12:00:00 +08:00
Yanzhen Yu
b6d8a7dc95
extract css by rollup plugin
2026-04-01 12:00:00 +08:00
Yanzhen Yu
fdcf1d0bb2
update dependencies
...
In this commit, we updated rrweb-snapshot to 0.6.0 which including
a breaking change in data structure.
2026-04-01 12:00:00 +08:00