Commit Graph

53 Commits

Author SHA1 Message Date
Yanzhen Yu
13a2985d48 pass mask all input option recursively 2019-08-11 20:43:09 +08:00
dphuang2
4248b3d2a9 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.
2019-08-10 10:13:03 +08:00
Yanzhen Yu
ada77fe861 remove child node before set default value 2019-08-07 23:38:09 +08:00
Yanzhen Yu
b22ccd6bc0 fix #14 fix innerText cap issue 2019-08-04 14:40:54 +08:00
Yanzhen Yu
61a99c642a 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.
2019-08-04 14:35:35 +08:00
Yanzhen Yu
77c7053751 add mask all inputs option to snapshot 2019-06-15 14:41:36 +08:00
Yanzhen Yu
40da9ffa2f format code 2019-05-26 16:05:47 +08:00
Razvan Sandu
9b0c92fd67 Allow rendering image tags inside svgs during replay (#13) 2019-05-23 18:18:10 +08:00
Benoît Zugmeyer
5697c689d9 reuse serialized nodes ids (#12)
* reuse serialized nodes ids

With this patch, each DOM node keeps its id during its existence. This
allows to apply RRWeb events to previous snapshots if needed.

`resetId` has been removed because it loses its meaning: calling it
would not reset the existing nodes ids anymore, only the new ones.

Since we don't reset the id anymore, we may exhaust the available ids
quicker, but Number.MAX_SAFE_INTEGER (2 ** 53 - 1) is pretty large, so I
doubt this'll cause any problem.

* improv TS typing

The `nAsINode` variable was not very elegant.  Simplify this by removing
the cast, and make the INode interface compatible with Node.

* update typings
2019-05-21 17:55:43 +08:00
Yanzhen Yu
0f30dc288c pass inline stylesheet option to iteratly 2019-05-12 21:06:38 +08:00
Yanzhen Yu
724b67f166 add inline option which can bypass the inline stylesheet 2019-05-12 16:04:14 +08:00
Whalefreezer
78c8c11e6b add support for css @import rules (#11) 2019-05-06 21:56:33 +08:00
Yanzhen Yu
6218745a75 update typings 2019-04-14 15:59:22 +08:00
Yanzhen Yu
171d7b39b6 accept RegExp type block class config 2019-04-14 15:55:34 +08:00
Sam Mason
03c9fde822 Make block css class optional & fix test (#6)
* Make block class optional

* Fix test by removing unexpected space space
2019-04-01 10:30:52 +08:00
Yanzhen Yu
687c710fe9 iterate style element to get css rules string 2019-02-17 16:34:28 +08:00
Yanzhen Yu
c4c147649c handle empty url path 2019-01-24 18:39:57 +08:00
Yanzhen Yu
7c275cbf2c fix the format and use window.location 2018-12-30 21:50:04 +08:00
Daniël van de Giessen
91e031844e Fixed detection of multiple consecutive CSS URLs without quotes (#4) 2018-12-30 13:36:17 +08:00
Daniël van de Giessen
056b317116 Parse style attributes for absolute URL paths (#5) 2018-12-30 13:19:31 +08:00
Yanzhen Yu
9854e5cf31 add camel case svg element tag names to tag map 2018-12-27 12:53:07 +08:00
Yanzhen Yu
922be70f54 do not add origin before data uri image 2018-12-27 12:44:52 +08:00
Yanzhen Yu
6a910d3eaa close before open to make sure document was closed 2018-12-21 22:32:01 +08:00
Yanzhen Yu
b7b38c3a2b delete not needed props 2018-12-02 23:15:48 +08:00
Yanzhen Yu
d8c5ae5ae6 handle block element 2018-12-02 23:06:36 +08:00
Yanzhen Yu
e55b917590 remove _cssText attribute from style element 2018-11-27 15:22:06 +08:00
Yanzhen Yu
e198ea494e ignore iframe src attribute 2018-11-27 14:39:13 +08:00
Yanzhen Yu
f73bad21e5 complately update relative path regexp 2018-11-26 17:42:52 +08:00
Yanzhen Yu
66e8d4318c fix absolute to doc 2018-11-23 23:36:19 +08:00
Yanzhen Yu
124959a67d fix css url regexp 2018-11-23 23:02:35 +08:00
Yanzhen Yu
49c1ba0a1f absolute relative path in inline stylesheet 2018-11-23 22:47:19 +08:00
Yanzhen Yu
8157b38f99 check is svg when serialization 2018-11-13 16:09:57 +08:00
Yanzhen Yu
216d03dae3 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.
2018-11-01 11:36:25 +08:00
Yanzhen Yu
7f806128ed add hover class to :hover related css rules 2018-10-31 19:02:26 +08:00
Yanzhen Yu
2a50fff366 allow skip child when serialize node and rebuild node 2018-10-22 23:03:10 +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
43b2290f5f export reset id function 2018-10-18 16:13:59 +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
eef6a6e389 change relative path into absolute path 2018-10-16 12:11:00 +08:00
Yanzhen Yu
ffc2b01796 add data attribute to element when rebuild 2018-10-12 15:57:39 +08:00
Yanzhen Yu
1ddb0a3343 return id node map when rebuild 2018-10-12 12:43:16 +08:00
Yanzhen Yu
d59ba817cb export serializeNodeWithId so rrweb could serialize newly added nodes 2018-10-09 10:51:30 +08:00
Yanzhen Yu
f143eee54a return id node map when snapshot 2018-10-08 15:35:03 +08:00
Yanzhen Yu
978e12b089 add strict null check and fix codes 2018-10-08 11:20:48 +08:00
Yanzhen Yu
bfe431e99a add iframe tests and update urls in test file 2018-10-06 10:13:33 +08:00
Yanzhen Yu
8b82981b62 try to inline linked stylesheet when in same origin 2018-10-05 23:06:51 +08:00
Yanzhen Yu
05e4103f7a replace script tag with noscript and inline the states of form field components 2018-09-30 17:38:44 +08:00
Yanzhen Yu
7d1cf13266 setup tests 2018-09-30 16:20:53 +08:00