Commit Graph

838 Commits

Author SHA1 Message Date
Yanzhen Yu
9c8b7b3c44 upgrade rrweb 2026-04-01 12:00:00 +08:00
Justin Halsall
34ef34469a Add check-types to package.json (#627)
* Add type checking to ci

* Update @types/node to version 12

We are using node 12 on ci

* Add check-types to package.json
2026-04-01 12:00:00 +08:00
bachmanity1
5fbb459a8e fix media playback bug (#80) 2026-04-01 12:00:00 +08:00
dependabot[bot]
cf791ebca1 Bump glob-parent from 5.1.1 to 5.1.2 (#74)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  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
Yanzhen Yu
83686e405c Release 0.6.5 2026-04-01 12:00:00 +08:00
Justin Halsall
a891d141d2 Add type checking to ci (#626)
* Add type checking to ci

* Update @types/node to version 12

We are using node 12 on ci
2026-04-01 12:00:00 +08:00
Yanzhen Yu
17b79ca210 Release 1.1.4 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b25033e872 limit max scale to 1 2026-04-01 12:00:00 +08:00
Eoghan Murray
afe6ec9dd1 Compact style mutation (#464)
* Don't store the full style attribute change, as small mutations to single style properties result in storage of a rewrite for the full style attribute, which may be very large.

Had an example of a website using http://schillmania.com/projects/snowstorm/ where many direct style changes were happening every second across many 'snowflake' elements, with each attribute change looking like:
"style":"color: rgb(255, 255, 255); position: absolute; width: 8px; height: 8px; font-family: arial, verdana; overflow: hidden; font-weight: normal; z-index: 0; display: block; bottom: auto; opacity: 1; padding: 0px; margin: 0px; font-size: 10px; line-height: 10px; text-align: center; vertical-align: baseline; left: 242.807px; top: 85.7332px;"
even though maybe just the left/top position had been changed

* More compact storage for the much more common attribute value without an `!important` flag - saves 6 chars per style attr in the json :)

* Fix bug: attributes weren't getting removed after changes to treatment of 'style' attributes
2026-04-01 12:00:00 +08:00
Lucky Feng
68b39c82c4 fix: "Uncaught TypeError: Cannot read property 'insertRule' of null" caused by CSP style-src (#79) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
09f694c90a Release 0.6.4 2026-04-01 12:00:00 +08:00
Justin Halsall
59b7a39ce1 Buffer modifications to virtual stylesheets (#618)
* Fix sheet insertion

Restore skip duration

Use virtualStyleRulesMap to re-populate stylesheet on Flush event

Clear virtualStyleRulesMap after flush applied

* Support rule deletion in virtual processing

* Simply restoreNodeSheet with early aborts

* Encountered a bug where firstFullSnapshot was played twice because timer was immediately started and reached the snapshot before the setTimeout returned

* Ignoring a FullSnapshot needs to be a one-time only thing, as otherwise we'll ignore it after scrubbing (restarting play head at a particular time). This is a problem if mutations have altered the player state, and we try to replay those mutations, so we e.g. try to remove an element that has already been removed because we haven't reset the FullSnapshot state

* Some `npm run typings` related fixups

* add basic html snapshot functionality

* move restoreNodeSheet to it's own module

* Refactor virtual style rules to buffer changes.
Only applies changes on flush.

`virtualStyleRulesMap` now works with strings instead of CSSRules.
CSSRules can only be via made `.insertRule` on CSSStyleSheet in most browsers.
And `new CSSStyleSheet()` only works in Chrome currently.

* remove unused code

* move VirtualStyleRules from CSSRule to string in tests

* correct paths for tests

* naming

* create and restore style snapshots for virtual nodes

* update replayer snapshot

* move storeCSSRules to virtual-styles.ts

* try/catch access to .sheet in case of access errors

* clean up tests

Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
2026-04-01 12:00:00 +08:00
Justin Halsall
1849943d48 Fixes https://github.com/rrweb-io/rrweb/issues/567 (#78) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
7c9b99a7a6 upgrade rrweb 2026-04-01 12:00:00 +08:00
Justin Halsall
9df2aa8e0e Add userTriggered (#495)
* add `userTriggered`

* update snapshots to add userTriggered

* add `userTriggered`

* update snapshots to add userTriggered

* update snapshot to include userTrigger

* only set userTriggered on `userTriggeredOnInput: true`

* What is user triggered?

* correct snapshot

* add second radio to demonstrate userTriggered
2026-04-01 12:00:00 +08:00
mgoshorn
42273eb2e4 Updates regex used to validate tagnames to allow for tagnames that include namespace information (esp: svg tags) (#77)
Co-authored-by: Mitch Goshorn <mitch.goshorn@calmid.com>
2026-04-01 12:00:00 +08:00
Yanzhen Yu
79a532a942 Release 0.6.3 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a224fdd903 Release 1.0.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6e144d13b3 Release 1.1.3 2026-04-01 12:00:00 +08:00
Yanzhen Yu
1a19d471a3 upgrade rrweb 2026-04-01 12:00:00 +08:00
Yanzhen Yu
8b7c36be3e add release to github 2026-04-01 12:00:00 +08:00
Yanzhen Yu
41e5082c08 related to #75 mask password input by default 2026-04-01 12:00:00 +08:00
Karl-Aksel Puulmann
b06005cf40 Update rrwebPlayer types (#46)
Without this change, the following fails to compile in typescript:

```js
new rrwebPlayer({
                target: document.body,
                props: {
                    width: 900,
                    events,
                    autoPlay: true,
                },
            })
```
2026-04-01 12:00:00 +08:00
Eoghan Murray
fb381a1254 Ignore firstFullSnapshot once only after initial 'poster' build (#608)
* Encountered a bug where firstFullSnapshot was played twice because timer was immediately started and reached the snapshot before the setTimeout returned

* Ignoring a FullSnapshot needs to be a one-time only thing, as otherwise we'll ignore it after scrubbing (restarting play head at a particular time). This is a problem if mutations have altered the player state, and we try to replay those mutations, so we e.g. try to remove an element that has already been removed because we haven't reset the FullSnapshot state

* Some `npm run typings` related fixups
2026-04-01 12:00:00 +08:00
Justin Halsall
b75140dc62 Allow password to be maskable instead of ignorable (#65)
* Add password to maskInputOptions on types

* Add password on maskInputOptions to types definition
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e3c93f261d Release 0.6.2 2026-04-01 12:00:00 +08:00
Yanzhen Yu
045e125e37 Release 1.0.0 2026-04-01 12:00:00 +08:00
Eoghan Murray
f2c5ab096e 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
2026-04-01 12:00:00 +08:00
Yanzhen Yu
6ffdf28ebe export speed as props 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e7d23755a4 close #489 add v1.0.0 changelog 2026-04-01 12:00:00 +08:00
Yanzhen Yu
628fee9292 Release 1.1.2 2026-04-01 12:00:00 +08:00
Yanzhen Yu
25432a1ef1 by pass all options to rrweb 2026-04-01 12:00:00 +08:00
Yanzhen Yu
8c17ef02ec add plugin API recipe 2026-04-01 12:00:00 +08:00
re-fort
89cdf67234 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
2026-04-01 12:00:00 +08:00
Yanzhen Yu
fa31bb6139 Release 0.6.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
35c6f20164 update console recipes 2026-04-01 12:00:00 +08:00
Justin Halsall
74706eeac6 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
2026-04-01 12:00:00 +08:00
Yanzhen Yu
3089b1ae8c expose trigger resize method 2026-04-01 12:00:00 +08:00
Yanzhen Yu
789533382b update roadmap and remove v1.0 warning 2026-04-01 12:00:00 +08:00
Yanzhen Yu
19038fe593 Release 1.1.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
760f76ec16 Release 0.6.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
00c568ea30 update slack channel link and core team members 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e92d92b0b6 add isShadow flag if a node is under shadow root 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f0a6ee518b update rrweb version 2026-04-01 12:00:00 +08:00
Omair Nabiel
ac1b7caa2c Update pagination.md (#610)
fix: typo lool to loop
2026-04-01 12:00:00 +08:00
Yanzhen Yu
d79922f6b6 update typings 2026-04-01 12:00:00 +08:00
jackycoder
8ee5ce8298 fix iframe border issue (#41) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
de16040917 Release 1.0.0-beta.2 2026-04-01 12:00:00 +08:00
Yanzhen Yu
697be5acf7 Release 1.1.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
78edf266d5 Release 0.5.6 2026-04-01 12:00:00 +08:00