Commit Graph

18 Commits

Author SHA1 Message Date
Yanzhen Yu
778b22dc81 format code 2021-06-29 18:37:49 +08:00
bachmanity1
b1a8b6926a add keepIframeSrcFn option (#81)
* add allowIframe option to snapshot

* rename allowIframe to keepIframeSrcFn
2021-06-29 18:07:47 +08:00
Justin Halsall
0bb95f1ee7 Allow password to be maskable instead of ignorable (#65)
* Add password to maskInputOptions on types

* Add password on maskInputOptions to types definition
2021-05-13 02:13:44 +08:00
re-fort
a0d82589b7 Enable to mask texts (#73)
* chore: reorder options

* feat: enable 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
2021-04-22 15:34:36 +08:00
Yanzhen Yu
88f348a57b snapshot and rebuild shadow DOM
https://github.com/rrweb-io/rrweb/issues/38
2021-03-13 20:46:18 +08:00
yz-yu
98aa732d17 nested record iframe (#63)
* pick nested branch

* iframe snapshot

* temp: add bundle file to git

* revert ignore file

* refactor iframe impl
1. do callback one iframe is loaded, let rrweb handle the rest
2. handle iframe as normal element in rebuild

* rename hook function
2021-02-07 14:00:22 +08:00
Eoghan Murray
6728d12b3c 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
2020-09-20 13:00:44 +08:00
吴泽康
f7d43f5fee Add nested scroll support (#31) 2020-07-25 15:05:45 +08:00
Yanzhen Yu
9ea534505f support mask select fields 2020-07-18 13:58:09 +08:00
Yanzhen Yu
3ebdcbdf03 fix mask textarea 2020-07-18 13:50:47 +08:00
Yanzhen Yu
e4593ff76d part of rrweb #80, support configure mask input types 2020-07-18 13:31:32 +08:00
Yanzhen Yu
d8c5ae5ae6 handle block element 2018-12-02 23:06:36 +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
f143eee54a return id node map when snapshot 2018-10-08 15:35:03 +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
3edd364c3b basic rebuild implementation 2018-09-30 15:26:00 +08:00