Commit Graph

1219 Commits

Author SHA1 Message Date
Yanzhen Yu
77dcfd8360 add select2.html snapshot test 2018-10-31 16:58:08 +08:00
Yanzhen Yu
8f22a1b92f implement pause which has a better performance than play at some time offset 2018-10-31 16:43:49 +08:00
Yanzhen Yu
b3c8e2a8d6 bump 0.4.3 2018-10-31 12:26:26 +08:00
Yanzhen Yu
cff1617959 fix mutation filter in recorder and change the order of apply mutations in replayer
This change include two critical fix for both recorder and replayer.

In the recorder, previously we filter text and attribute mutations by check its target id,
but this was a wrong approach because removed node also has id at the callback moment.
We corrected this by checking whether the mirror map still has the target id in its keys.

In the replayer side, the issue was we got exceptions when calling insertBefore which says
the ref node was not the child node of the caller node. This will happen when the previous
or next sibling has been removed in the same callback but the previousId or nextId was
recorded.
After apply remove node mutations before add node mutations, we can make sure the removed
siblings will not exist in the mirror map when apply add node mutations. When we get node
from mirror map with an removed id, we will get null and pass it to insertBefore which
is valid.
As a side note, this apply order is safe because we ensured all the remove node mutations
do not include removing newly added nodes in the same callback.
2018-10-31 12:06:41 +08:00
Yanzhen Yu
8acf670a99 add a has method to mirror for checking whether an id is in the map 2018-10-31 12:06:32 +08:00
Yanzhen Yu
0d2479f5f1 bundle player as an component 2018-10-23 19:00:21 +08:00
Yanzhen Yu
33b58c7717 add speed setter and option for display controller or not 2018-10-23 18:59:29 +08:00
Yanzhen Yu
7b9e57bd6c filter text and attributes mutations which target tot a removed node 2018-10-23 11:48:48 +08:00
Yanzhen Yu
68949a08c3 check added nodes from removed nodes and dropped nodes 2018-10-23 11:28:15 +08:00
Yanzhen Yu
d588f738b8 rewrite mutation observer handler with lazy child list calculation 2018-10-22 23:08:05 +08:00
Yanzhen Yu
689c788669 bump 0.5.3 2018-10-22 23:05:21 +08:00
Yanzhen Yu
2a50fff366 allow skip child when serialize node and rebuild node 2018-10-22 23:03:10 +08:00
Yanzhen Yu
e5dba6a986 remove local test code 2018-10-22 10:50:57 +08:00
Yanzhen Yu
a88a79d821 add meta event and fix childList observer, also update related replayer 2018-10-22 10:48:56 +08:00
Yanzhen Yu
5934cc71f2 bump 0.5.2 2018-10-22 10:36:40 +08:00
Yanzhen Yu
508bbdfc26 refactor rebuild implementation which mount DOM onto the target document object 2018-10-22 10:34:23 +08:00
Yanzhen Yu
202a674636 use document object from params instead of the one in the current scope 2018-10-21 22:36:07 +08:00
Yanzhen Yu
416c1eec9a fix style content url normalizer and add some tests 2018-10-18 19:42:01 +08:00
Yanzhen Yu
6c8cf5c379 implemented the play any offset feature 2018-10-18 16:24:01 +08:00
Yanzhen Yu
43b2290f5f export reset id function 2018-10-18 16:13:59 +08:00
Yanzhen Yu
0f7fa67871 impl controller play, pause and speed 2018-10-18 15:21:51 +08:00
Yanzhen Yu
e99bd3245f add player controller 2018-10-17 19:10:45 +08:00
Yanzhen Yu
8186f05e1c export more props of replayer to the UI 2018-10-17 17:47:38 +08:00
Yanzhen Yu
f97c829a7d attach the scaled iframe into player 2018-10-17 15:45:02 +08:00
Yanzhen Yu
904cc493db add eslint 2018-10-17 14:14:44 +08:00
Yanzhen Yu
2eed038e6b init repo 2018-10-17 12:06:18 +08:00
Yanzhen Yu
72beb51110 fix npm package files and bump version 2018-10-16 18:09:51 +08:00
Yanzhen Yu
fade2df5d4 bump 0.4.0 2018-10-16 18:04:54 +08:00
Yanzhen Yu
71932ee530 update README and add travis 2018-10-16 17:57:11 +08:00
Yanzhen Yu
d827fdc947 impl dynamic config and pause. Bump 0.3.0 2018-10-16 15:31:56 +08:00
Yanzhen Yu
49cd7b4db3 align id map by skip extra added nodes 2018-10-16 15:29:52 +08:00
Yanzhen Yu
e461136f71 impl the extra child data attribute to align id map 2018-10-16 15:18:07 +08:00
Yanzhen Yu
0eedab53eb bump 0.3.1 2018-10-16 12:12:31 +08:00
Yanzhen Yu
eef6a6e389 change relative path into absolute path 2018-10-16 12:11:00 +08:00
Yanzhen Yu
a98df40c93 update id map when DOM changed and handle element scroll event 2018-10-15 19:28:36 +08:00
Yanzhen Yu
3e5c0adcdc use jest-snapshot to apply the snapshot testing 2018-10-15 19:25:52 +08:00
Yanzhen Yu
ee06fbcda4 update rollup config so we can benefit from tree shaking 2018-10-15 18:29:44 +08:00
Yanzhen Yu
4ae4222bc3 add test infra and a basic record integration test 2018-10-15 17:21:14 +08:00
Yanzhen Yu
2816726e23 impl replay the mutations and mouse interactions 2018-10-15 12:37:47 +08:00
Yanzhen Yu
95713f1ea7 apply viewport resize and input event changes 2018-10-12 16:04:07 +08:00
Yanzhen Yu
ffc2b01796 add data attribute to element when rebuild 2018-10-12 15:57:39 +08:00
Yanzhen Yu
f4bf94aa2d use raf to impl a more accurate timer and replay events async 2018-10-12 14:30:44 +08:00
Yanzhen Yu
e93fd177be import snapshot rebuilder into replayer 2018-10-12 13:33:53 +08:00
Yanzhen Yu
85a56d2047 fix scroll value and record viewport when loaded 2018-10-12 13:08:03 +08:00
Yanzhen Yu
1ddb0a3343 return id node map when rebuild 2018-10-12 12:43:16 +08:00
Yanzhen Yu
c07cce74bf improve record method and bump 0.2.0 2018-10-11 17:30:54 +08:00
Yanzhen Yu
215b2b319b update bundle configs 2018-10-11 16:46:34 +08:00
Yanzhen Yu
b3fdc44fc7 update the bundle config 2018-10-11 16:44:38 +08:00
Yanzhen Yu
40f29e5353 add input event observer and hook the value setter 2018-10-11 16:12:32 +08:00
Yanzhen Yu
46ab1d6e80 serialize newly added nodes and update id node map when childList changed 2018-10-09 10:52:20 +08:00