Commit Graph

838 Commits

Author SHA1 Message Date
Jin
1f06234bdc :feat add tips (#23)
Co-authored-by: jinwentao <jinwentao@huya.com>
2026-04-01 12:00:00 +08:00
Justin Halsall
80e7307729 Tests: Iframe event order (#568)
* add failing test

* assert order of events

* defer attaching of iframe till FullSnapshot is done
Fixes: https://github.com/rrweb-io/rrweb/issues/567

* correct event order in iframe integration test snapshot

* trigger build

* trigger build

* Move settimeout responsibility to snapshot
https://github.com/rrweb-io/rrweb-snapshot/pull/78

* upgrade rrweb-snapshot to 1.1.4

* DRY record tests

* cleanup

* Upgrade puppeteer to 9.1.1
for (hopefully) more consistent behaviour between CI and development

* make input bigger to prevent triggering scroll events

* page.waitFor is deprecated
more info: https://github.com/puppeteer/puppeteer/issues/6214

* Set os and distro for Travis ci

Co-authored-by: yz-yu <yanzhen@smartx.com>
2026-04-01 12:00:00 +08:00
Yanzhen Yu
3f406ea5ce Release 1.0.2 2026-04-01 12:00:00 +08:00
Rifaudeen
9452e5b12a Added tags support in the player timeline (#17)
* implemented custom-event handler from replayer

* Added tags support in the player timeline

* updated event type check with EventType enum from rrweb
2026-04-01 12:00:00 +08:00
Yanzhen Yu
b9e1938951 fix registry 2026-04-01 12:00:00 +08:00
Yanzhen Yu
3a946702c2 fix https://github.com/rrweb-io/rrweb-snapshot/issues/56
safe access tagName of form element
2026-04-01 12:00:00 +08:00
Yanzhen Yu
8340ed933e Release 0.4.6 2026-04-01 12:00:00 +08:00
Yanzhen Yu
30f4aa20b3 update rrweb-snapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
93be66e22a Release 1.0.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
3537720833 update player with built-in unpack function 2026-04-01 12:00:00 +08:00
yashkumar18
a19893cdfa Handle Drag events in replayer (#587)
* Handle Drag events in replayer

* add touch move source as well

Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
2026-04-01 12:00:00 +08:00
Yanzhen Yu
c7966070ef fix https://github.com/rrweb-io/rrweb/issues/395 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a4dc863065 Release 0.4.5 2026-04-01 12:00:00 +08:00
yashkumar18
1539d35039 Fix order of ternary expression for mouse move source type (#586)
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e65160697b Release 1.0.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
08e85b805d use player dimension to calc scale when fullscreen 2026-04-01 12:00:00 +08:00
Yun Feng
0235cd4d0a update typings and fix lint errors 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a9ef2cfa83 refactoring public API 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f6219c37f9 Release 0.4.4 2026-04-01 12:00:00 +08:00
Justin Halsall
e00ca2cbd9 add ability to stop listening 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6852da5fe5 close #38, update data uri regexp 2026-04-01 12:00:00 +08:00
Yanzhen Yu
1a3762212f allow scale over 1 2026-04-01 12:00:00 +08:00
Yakko Majuri
ba33720104 Update canvas recording mechanism (#536) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
40d754884a fix lint 2026-04-01 12:00:00 +08:00
Yanzhen Yu
3b0a2f2c5a update rrweb 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c581cf68ca shadow DOM recording GA
1. record shadow DOM event target by parsing composed path
2. nested record scroll event in shadow DOM
2026-04-01 12:00:00 +08:00
Yanzhen Yu
288beb6cb2 Release 0.8.4 2026-04-01 12:00:00 +08:00
Yanzhen Yu
4a30fca766 Release 0.4.3 2026-04-01 12:00:00 +08:00
Yanzhen Yu
24d65c7cb1 remove useless log 2026-04-01 12:00:00 +08:00
Karl-Aksel Puulmann
0c62d31002 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.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
3cd0816535 add rrweb options 2026-04-01 12:00:00 +08:00
dependabot[bot]
a9a3e2849f Bump ws from 6.2.1 to 6.2.2 (#575)
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 12:00:00 +08:00
Eoghan Murray
65671be739 Add ability to reset the mapping id, to facilitate destructor in rrweb (rrwebRecord.stop) (#49) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
00e36bb070 Release 0.4.2 2026-04-01 12:00:00 +08:00
dependabot[bot]
1a05e51ee2 Bump browserslist from 4.14.5 to 4.16.6 (#569)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.5 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.14.5...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 12:00:00 +08:00
Eoghan Murray
b005450c64 Prefer a map and a join as feel it's easier to understand, and I found a case in the wild where Array.prototype.reduce was overwritten (which admittedly is also a danger with map) (#52) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
1a6bd7a5f8 fix logic operator 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fd88a950a9 fix mirror usage in shadow DOM manager 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f9f9e9cecd Release 0.8.3 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a56c15c32b Release 0.4.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
222063ae48 fix unit test 2026-04-01 12:00:00 +08:00
Yanzhen Yu
40cf712cfd update typings 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6b81e939cb fix controller height compute 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b693d667b5 create mirror during record 2026-04-01 12:00:00 +08:00
Eoghan Murray
28917d1c9a 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??
2026-04-01 12:00:00 +08:00
Yanzhen Yu
70c8a6b9d1 Release 0.4.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e9784a20cb fix #565 add departed warning 2026-04-01 12:00:00 +08:00
Eoghan Murray
71b6e683c0 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
2026-04-01 12:00:00 +08:00
Yanzhen Yu
795e6cd8dc Release 0.3.17 2026-04-01 12:00:00 +08:00
Yanzhen Yu
37c293c4bd fix useless code introduced by resolving conflicts 2026-04-01 12:00:00 +08:00