Commit Graph

57 Commits

Author SHA1 Message Date
AssafKr
10eead6d42 Handle quoted strings in data url (#84)
* handle quoted strings in data url

* unrefactor

* update package json

* Revert "update package json"

This reverts commit 9446109b0f94d9e569a961642f1e57b1a67793ee.

* change background-image to border-image
2021-07-11 16:47:58 +08:00
Eoghan Murray
362359eccc Improve parsing of srcset according to whatwg spec (#74)
* Improve parsing of srcset according to whatwg spec; e.g. srcset="http://example.com/size400,300/img.jpg 640w"

* Trim/normalise the output in order to conform to prior version; solely to keep tests happy

* Add test case for embedded commas in a srcset url as well as support for future possible parenthesis in descriptor string

* Drop 'future proof' test as it causes an error message in test output
2021-05-04 13:28:38 +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
Justin Halsall
3c2d7c1eea Speed up addHoverClass on large stylesheets (#72)
* speed up addHoverClass on large style sheets

* longer strings first to prevent accidental partial matches

* can add hover class when there is a multi selector with the same prefix

* tweak performance
2021-04-22 15:32:50 +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
Yanzhen Yu
1cc7164f2c fix https://github.com/rrweb-io/rrweb-snapshot/issues/56
safe access tagName of form element
2020-12-21 12:37:13 +08:00
Yanzhen Yu
6c2d85049a fix https://github.com/rrweb-io/rrweb/issues/395 2020-11-29 14:37:11 +08:00
Yanzhen Yu
852632656f refactoring public API 2020-11-29 13:22:01 +08:00
Yanzhen Yu
555398d3f5 close #38, update data uri regexp 2020-11-21 11:05:08 +08:00
Karl-Aksel Puulmann
036d3df692 Allow blocking elements by selector (#50)
* Extract method (isElementBlocked) and add tests

* Add blockSelector argument to snapshot

If blockSelector is passed, it will be matched against the element.

Reasoning: Mutating class names can get messy, so providing another hook
helps keep code clean by using data-attributes instead.
2020-10-24 16:11:39 +08:00
Eoghan Murray
8b0bc7c505 Preserve url quotes (#47)
* Preserve original quotes when rewriting CSS url() paths - important for inline SVG files which often have spaces

* Found an example in the wild with the 'charset=' part left off. This is supported by https://css-tricks.com/lodge/svg/09-svg-data-uris/ ... not sure why we aren't just testing for the 'data:' prefix here?

* Not sure why this is now coming back with a double quote after recent changes here; it's supposed to preserve the single quote from style.css??
2020-10-04 20:46:57 +08:00
Yanzhen Yu
8565b0d692 close #42 fallback to html when doctype is invalid 2020-09-06 16:59:03 +08:00
Jason Barry
db28bc4428 Fixes missing space when converting srcset to use absolute URLs (#40)
* Fixes missing space when converting srcset to use absolute URLs

* Fix integration snapshot
2020-08-05 10:09:59 +08:00
James Bradley
86cf78822d H tags (#28)
* Failing test

* Allow numbers in el name tests

* Allow numbers in el names
2020-03-10 22:33:23 +08:00
Yanzhen Yu
a7a3a76af1 add media state check 2020-01-12 18:01:37 +08:00
Filip Slatinac
f1cae2f68c added cssText check (#23)
* added cssText check

* added testing
2019-11-27 14:17:00 +08:00
Filip Slatinac
acb53f2ef1 replacing invalid tag names by div (#22) 2019-11-25 21:28:20 +08:00
Yanzhen Yu
cd9de42b6d add picture tag test 2019-10-12 16:54:41 +08:00
Filip Slatinac
30bbd9e21d Added srcset support (#18)
* added src set as a parsed attribute

* added tests

* changed to /a

* added multiple attribute handling

* added better comment

* made snapshot ignore invalid input as if it is invalid input in the original DOM, it should stay invalid in the recreated DOM

* added extra absolute test case

* code style

* addressed comments
2019-10-01 11:32:50 +08:00
Yanzhen Yu
a69791b7f5 fix data url regexp 2019-08-31 16:13:02 +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
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
7b02f13a19 update typescript and fix test cases 2019-04-02 21:43:16 +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
Yanzhen Yu
922be70f54 do not add origin before data uri image 2018-12-27 12:44:52 +08:00
Yanzhen Yu
d8c5ae5ae6 handle block element 2018-12-02 23:06:36 +08:00
Yanzhen Yu
ab79af115a update the test snapshot 2018-11-30 22:59:29 +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
124959a67d fix css url regexp 2018-11-23 23:02:35 +08:00
Yanzhen Yu
cb3c842a12 bump 0.5.6 2018-11-01 13:29:23 +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
e5dba6a986 remove local test code 2018-10-22 10:50:57 +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
71932ee530 update README and add travis 2018-10-16 17:57:11 +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
3e5c0adcdc use jest-snapshot to apply the snapshot testing 2018-10-15 19:25:52 +08:00
Yanzhen Yu
1ddb0a3343 return id node map when rebuild 2018-10-12 12:43:16 +08:00
Yanzhen Yu
f143eee54a return id node map when snapshot 2018-10-08 15:35:03 +08:00