Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add benchmark for replayer's fast-forward mode #947

Merged
merged 5 commits into from
Jul 31, 2022
Merged

Conversation

YunFeng0817
Copy link
Member

PR #897 added a benchmark for the recorder but benchmark for the replayer was not yet completed.
This PR added two benchmarking scenarios for the replayer and both of them are executed in the fast-forward mode.
I also compared the performance between the version without VirtualDom optimization #853 and the current version with two new scenarios. Here are the results:

without the optimization

┌─────────┬────────────────────────────────┬───────┬────────────────────┬────────────────────┐
│ (index) │             title              │ times │      duration      │     durations      │
├─────────┼────────────────────────────────┼───────┼────────────────────┼────────────────────┤
│    0    │ 'append 70 * 70 * 70 elements' │   3   │ 1865.3333333333333 │ '1852, 1831, 1913' │
└─────────┴────────────────────────────────┴───────┴────────────────────┴────────────────────┘
┌─────────┬────────────────────────────────────────────────┬───────┬──────────┬─────────────────┐
│ (index) │                     title                      │ times │ duration │    durations    │
├─────────┼────────────────────────────────────────────────┼───────┼──────────┼─────────────────┤
│    0    │ 'append 1000 elements and reverse their order' │   3   │   540    │ '543, 539, 538' │
└─────────┴────────────────────────────────────────────────┴───────┴──────────┴─────────────────┘

applied the optimization

┌─────────┬────────────────────────────────┬───────┬────────────────────┬────────────────────┐
│ (index) │             title              │ times │      duration      │     durations      │
├─────────┼────────────────────────────────┼───────┼────────────────────┼────────────────────┤
│    0    │ 'append 70 * 70 * 70 elements' │   3   │ 1689.3333333333333 │ '1662, 1650, 1756' │
└─────────┴────────────────────────────────┴───────┴────────────────────┴────────────────────┘
┌─────────┬────────────────────────────────────────────────┬───────┬──────────┬─────────────────┐
│ (index) │                     title                      │ times │ duration │    durations    │
├─────────┼────────────────────────────────────────────────┼───────┼──────────┼─────────────────┤
│    0    │ 'append 1000 elements and reverse their order' │   3   │   341    │ '335, 344, 344' │
└─────────┴────────────────────────────────────────────────┴───────┴──────────┴─────────────────┘

Performance was improved by approximately 10% in the first scenario and about 60% in the second one.

@YunFeng0817 YunFeng0817 changed the title Rrdom benchmark add benchmark for replayer's fast-forward mode Jul 28, 2022
@Yuyz0112
Copy link
Member

need a rebase to pass CI?

@YunFeng0817
Copy link
Member Author

I made 'benchmark' a separate command because I found the current CI doesn't report the benchmark result to us. I can't even see any results in its log. So running benchmarks every time can be a waste of energy and time. Maybe configuring another Github action is a solution?

@Yuyz0112
Copy link
Member

Yes, and since the execution env varies, we can not set threshold assertions for the benchmark suite in CI.

@Yuyz0112 Yuyz0112 merged commit cb24aaf into master Jul 31, 2022
@YunFeng0817 YunFeng0817 deleted the rrdom-benchmark branch July 31, 2022 03:50
Vadman97 added a commit to highlight/rrweb that referenced this pull request Aug 2, 2022
merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Vadman97 added a commit to highlight/rrweb that referenced this pull request Aug 3, 2022
merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 17, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Nov 1, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Nov 4, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Nov 8, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Nov 8, 2022
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
@Juice10 Juice10 added the 2.0 label Dec 1, 2022
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jan 6, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jan 9, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jan 11, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jan 25, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Feb 20, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Feb 21, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Feb 21, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Feb 21, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Feb 22, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Apr 9, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Apr 28, 2023
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jan 30, 2024
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Mar 4, 2024
parent 5992f03
author Jay Khatri <jaykhatrimail@gmail.com> 1608000413 -0500
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Mar 5, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Mar 5, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Apr 16, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Apr 17, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Jun 25, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Aug 5, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Aug 5, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Aug 26, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Sep 3, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Sep 9, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Sep 18, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 9, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 9, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 15, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 29, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Vadman97 pushed a commit to highlight/rrweb that referenced this pull request Oct 29, 2024
parent 5992f03
author Vadim Korolik <vkorolik@gmail.com> 1608000413 -0700
committer Vadim Korolik <vkorolik@gmail.com> 1666033419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIyBAABCgAdFiEE5qJt+0KcVgDpzp9NmG2rb3pHHDQFAmNNpwsACgkQmG2rb3pH
 HDT+Qg/2Lwz671fehqmv/yC4LksqoSVdFH1JG0e61qKEaUqaCGST/c0GqUpHiI7D
 Y3yFTlhatbWqaDV+bpJ/9KzB3cRtOhV6URbw5xLrhsR3pGEzNqv4c+ZkaWR2U32k
 pSFidY7MZTJURbEosOR0cXc+WhHfiVEgzJ6/ny6e4r7zY6gBbE66DLVRNelhMwW7
 wdpwzh4KcfLroOecA49skgvTj7xO3Bv3B5X2Ok2Rch18WzWiFDDVYFdIiArf7Kua
 /gIn1AybT6B6nb4kl99H763zATHLXKdWeLS9nFySGG73ILVpaefMS5cHZnmvmw10
 6hltrcYpcZTbPJCV9npFUS+1ViSTK8FpegBVtlUZj5+ZhL3I+McBYyzjgrv/67vc
 fJKkVCgtgkEgbHHwouw4KnsyRZLcb4/0krOhyqdEKHxmEy+nNvIQ6OVyw4+vYW5B
 DN84bQ9wWC/p5wEdhJoEz7o42o2UYboGW9Gmzpsef7NaK0MUZr/XHMonOvwL9Yd+
 STe9WjkVgWs3Ah6WQrXyYHDsxyn/PXCquSQK1qfnj5qSa3Aajrn1MHVYwNN1IdmL
 4+Yn+JQe43Ahb3BEUVuD1w0V3cZs15UoHfKbNuc1VGKfmbvztu/48gwvUCE/BgkG
 E33iWf+6LcSjQJvEM8HHsBmMq64QOP2Tnsklfn/WJMZF41Pvbg==
 =P0Tg
 -----END PGP SIGNATURE-----

add typings

change

change

more changes to release

change

change

try again

try again

try again

try again

change

change

change

v0.9.12

change

change

added npm ignore

change

change

chagne

change

change

change

change

change

Preprocess inactive segments

Cleaned up code

Renamed, and removed generated file changes

change

change

change

bump version

delete old files

change

add typings

change

try again

change

another change

change

change

change

change

Undef handling for intervals

Another check

Add custom build command (#21)

Switch to version `1.0.4` of `rrweb-snapshot` (#23)

Added support for inactive threshold (#20)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

Missed an edge case where the last part of a session is inactive, and  counted that as active.  (#24)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

Anthony/hig 156 change the color style of the cursor to (#25)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#27)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

Anthony/hig 190 move rrweb getactivityinterval logic (#28)

* Added support for inactive threshold

* Updated version num

* Prettified

* Fixed names

* Fixed name

* Renamed

* Cleaned code and added handling for edge cases

* Updated package num

* More skip customize, changed cursor

* Update package version

* Changed to use webpack instead of rollup

Co-authored-by: Jay Khatri <j@jaykhatri.com>

* Fixed files

* Added missing styles from CDN

* Moved activity intervals calculation

* Updated version

* Only calculate intervals once

* Updated version

Co-authored-by: Jay Khatri <j@jaykhatri.com>

john/hig-231-block-recording-on-all-text-nodes (#30)

* Adds text randomization

* Update blocked styles

* Add privacy mode

* Don't record images

* v0.10.0

* Rename flag to enableStrictPrivacy

* Set redacted style on replayer side

Consider allevents for inactivity (#31)

* Consider allevents for inactivity

* Remove log

* skip inactive

Don't record value attribute on password inputs (#32)

* Don't record password

* v0.10.2

Redact the value attribute on mutations (#33)

* Redact the value attribute on mutations

* v0.10.3

Added 2s delay (#34)

* Added 2s delay

* updated version

* Changed back to fast_forwarding

Update rrweb (#35)

* fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)

plus: fix the problem that sometimes return value of getCurrentTime() is negative

* Fix broken link to design docs

* Update to fflate (#448)

* Update to fflate

* Update docs, bundler config

* Scroll replayer iframe on firstFullsnapshot (#451)

* upgrade snapshot

* Release 0.9.12

* Protect against generation of no-change viewport resize events. (#454)

I noticed 8 or 10 of these events being generated in a multi-tab browsing session on Chrome 87.0 on Win10.  I'm speculating they were generated as a side effect of changing tabs but I can't recreate

* fix #452 check isBlocked on add mutation's target

* Release 0.9.13

* let mouse tail duration respect timer speed

* clean addList when meet a corner case

* fix #460 ignore added node that are not in document anymore

* upgrade 0.9.14

* Release 0.9.14

* Tweaks to timings to get tests passing on my dev laptop (#466)

* Tweaks to timings to get tests passing on my dev laptop - hopefully this makes tests more deterministic

* Okay understand what's going on now that the test has run in the travis environment

* fix #469 try to get original MutationObserver
We found Angular's zone module will patch MutationObserver which
make the browser hang in some scenarios.
Reference: angular/angular#26948

* Discovered that the common case of mouse movement or scrolling happening during `takeFullSnapshot` was causing mutations to be immediately emitted, contrary to the goal of rrweb-io/rrweb#385 (#470)

* Don't remove the style attributes altogether from tests; they are an important part of the mutations (#468)

These were removed in rrweb-io/rrweb@8ed1c99 in order to smooth over differences in test environments
so have maintained that by converting pixel values to 'Npx' (could also try rounding, but didn't attempt that)

* read __rrMutationObserver from window

* update guide (#483)

* Fix RangeError: Maximum call stack size exceeded (#479)

Saw this line cause issues in production, causing the following error:

```
RangeError Maximum call stack size exceeded
```

I believe this is caused by javascript engine max argument length - see note from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

> The consequences of applying a function with too many arguments (that is, more than tens of thousands of arguments) varies across engines. (The JavaScriptCore engine has hard-coded argument limit of 65536.

* Impl record iframe (#481)

* Impl record iframe

* iframe observe

* temp: add bundle file to git

* update bundle

* update with pick

* update bundle

* fix fragment map remove

* feat: add an option to determine whether to pause CSS animation when playback is paused (#428)

set pauseAnimation to true by default

* fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)

* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node

* pick fixes

* revert ignore file

* re-impl iframe record

* re-impl iframe replay

* code housekeeping

* move multi layer dimension calculation to replay side

* update test cases

* teardown test server

* upgrade rrweb-snapshot with iframe load timeout

Co-authored-by: Lucky Feng <yun.feng@smartx.com>

* remove debugging warning (#486)

I can't see a reason for the warning here so believe it's a debugging statement that crept in?

* Add prettier as a dependency (#487)

* start impl rrdom

* upgrade rrweb-snapshot to 1.0.7

* Adding prepare npm statement (#490)

* added prepare statement

* using master rrweb snapshot

Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>

* Added mousemoveCallback threshold option to sampling config. (#492)

* Added mousemoveCallback threshold option to sampling config.

* Added mousemoveCallback to definitions file.

* Add yarn support for installing unreleased rrweb as a dependency  (#497)

* Use prepack instead of prepare for yarn support

* add prepare and prepack

for yarn v1 & v2 compatibility

* Create .npmignore

* update guide

* close #501 do not count attach iframe event in checkout

* close #491 check whether link node is head

* update test snapshot

* fix lint errors

* add hiring link

* impl #507 export takeFullSnapshot as a public API

* Update observer.md (#504)

Fixed some grammatical errors

* add an experiment config to set max speed in fast forward

* Handle event undefined in initMoveObserver (#515)

* fix: errors of replaying iframe records (#520)

* fix: errors of replaying iframe records

error1:
HierarchyRequestError: Failed to execute 'appendChild' on 'Node': Nodes of type '#document' may not be inserted inside nodes of type '#document-fragment'.
code: parent.appendChild(target)

error2:
Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
code: parent.appendChild(target);

* improve the comment for bugfix

* rename node_modules in es bundle to ext

* fix: inaccurate mouse position (#522)

1. Position of mouse was inaccurate when replaying and this PR will fix it.
2. Fix the bug that if one nested iframe has a scale transform and the position of mouse was inaccurate as well.

* impl shadow DOM manager
part of #38
1. observe DOM mutations in shadow DOM
2. rebuild DOM mutations in shadow DOM

* Fix docs to point to correct event format (#523)

* Fix docs to point to correct event attribute

* Update customize-replayer.zh_CN.md

* correct event object in guide

* Update guide.zh_CN.md

* Update snapshot to Release 1.1.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>

Disable onAddHoverClass and duplicate full snapshot (#36)

* Don't rebuild full snapshot

* Add config for hover class

* Revert "Update rrweb (#35)"

This reverts commit 5dc4ca2.

* Bump version

fix-rrweb-patch (#37)

* Make check conditional

* Update to 0.11.0

Bump (#38)

Skip the first fullSnapshotBuild (#39)

User events for inactivity calculation (#40)

Make sure we publish a production build (#41)

Pull in fix for #528 from rrweb (#42)

Buffer modifications to virtual stylesheets (#43)

Test rrweb 1.0.1

Co-authored-by: Lucky Feng <yun.feng@smartx.com>
Co-authored-by: filip slatinac <filipslatinac@MacBook-Pro-2.local>
Co-authored-by: zhaoziqiu <zhaoziqiu@meituan.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash Kumar <yashkumar@Yashs-MacBook-Pro-2.local>
Co-authored-by: Lucky Feng <294889365@qq.com>
Co-authored-by: Vladimir Milenko <vladimir.milenko@uber.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>
Co-authored-by: Fanis Katsimpas <katsimpas.f@gmail.com>
Co-authored-by: Lucky Feng <f18846188605@gmail.com>
Co-authored-by: 101arrowz <arjunbarrett@gmail.com>
Co-authored-by: Jarosław Salwa <armata007@gmail.com>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: zzq0826 <770166635@qq.com>
Co-authored-by: Karl-Aksel Puulmann <macobo@users.noreply.github.com>
Co-authored-by: Moji Izadmehr <m.eezadmehr@gmail.com>
Co-authored-by: Filip Slatinac <Fslat092@uottawa.ca>
Co-authored-by: Province Innovation <69924001+provinceinnovation@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Season <season@huzhenjiandeMacBook-Pro.local>
Co-authored-by: arshabh-copods <77658085+arshabh-copods@users.noreply.github.com>
Co-authored-by: Yakko Majuri <38760734+yakkomajuri@users.noreply.github.com>
Co-authored-by: re-fort <refort.dev@gmail.com>
Co-authored-by: Ziqiu Zhao <39512431+ZzqiZQute@users.noreply.github.com>
Co-authored-by: yashkumar18 <yashkumar1820@gmail.com>
Co-authored-by: bachmanity1 <81428651+bachmanity1@users.noreply.github.com>
Co-authored-by: Omair Nabiel <nabiel.omair@gmail.com>

Copy rrweb-io/rrweb#630 for DragEvent errors (#45)

Record and replay nested stylesheet rules (#46)

john/hig-1014-2nd-attempt-at-stitches-fix-in-rrweb (#47)

Apply nested styles refactor https://github.com/rrweb-io/rrweb/pull/667/files

john/hig-1046-apply-rrweb-css-change (#48)

Update Mirror to support null IDs

John/hig-1121-add-rrweb-patch-for-element-blocking (#49)

Set the blockClass background color to the same as the color (#51)

John/hig-1053-strictprivacy-mode-is-injecting-random (#52)

gc virtual style map when DOM has been removed (#53)

Monkeypatch each iframe (#54)

Update rrweb to 1.0.7 (#55)

Pause animations on pseudo elements (#56)

Add webgl recording and playback (#57)

Webgl-patches (#58)

* Add diffs

* Add missing changes

* Bump version

Patch webgl support for older Safari browsers

Make sure WebGL instance exists before saving

More patches for webgl recording

Update mouse cursor to make it visible on dark and light backgrounds

Bump version

Support loading CORS fonts through our proxy (#59)

John/hig-1919-update-rrweb (#60)

* Port over remaining webgl changes

* More updates

* https://github.com/rrweb-io/rrweb/pull/810/files

* https://github.com/rrweb-io/rrweb/pull/720/files

* Update package version

Make sure text mutations respect strict privacy mode (#61)

John/hig-1930-sync-rrweb-changes (#62)

* Sync change

* Port fix: an error when I stop the recording process

Change click behavior/visual (#63)

Silence the "please add custom even after start recording" (#64)

John/hig-1984-pull-in-rrweb-sequential-id-pr (#65)

* Add sequential IDs

* rrweb-io/rrweb#840

* bump version

Export sequential ID plugin

Ignore recording rrweb internal click events for canvas elements

John/hig-1998-apply-rrweb-commits (#66)

[HIG-2114] add replace events function for use by chunking (#67)

bump version (#68)

https://github.com/rrweb-io/rrweb/pull/866/files (#69)

remove promise to resolve immediately (#70)

baseline time check should include offset to avoid replaying past events (#71)

v1.1.20

fix rollup config (#72)

fix the bundle script so that we can use rrweb directly from a <script/> tag for use in server-side rrweb rendering (HIG-2197).

[HIG-2269] ensure invalid DOM nesting doesn't crash rrweb (#73)

Replaying an app with invalid DOM nesting may crash rrweb.
Print console warning instead of crashing.

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

highlight: merge rrweb (#74)

Update our fork based on rrweb@1.1.3 April 2022 Release
https://github.com/rrweb-io/rrweb/releases/tag/rrdom%400.1.2

merge rrweb #903 performance improvements (#75)

primarily to bring in Speed up snapshotting of many new dom nodes (#903)

Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: Rahul Lingala <88366029+rahulrelicx@users.noreply.github.com>
Co-authored-by: Dmytro Kozlovskyi <kozlovskidmytro@gmail.com>

remove testing from github actions

fix lerna publish step

improve error handling in rrdom (#76)

During live mode, we encounter rrdom errors related to
the replay of iframes. Ensure we handle these errors correctly rather
than crashing.

integrate fix for live mode #923 (#77)

[rrweb PR 923](rrweb-io/rrweb#923)

revert error catching code

merge rrweb PR #909 (#78)

rrweb-io/rrweb#909 with follow-up fix rrweb-io/rrweb#926

set empty link elements to loaded by default

Clean up stylesheet manager

Remove attribute mutation code

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/test/record.test.ts

Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Speed up snapshotting of many new dom nodes (#903)

* Speed up snapshotting of many new dom nodes

By avoiding reflow we shave about 15-25% off our snapshotting time

* Improve newlyAddedElement docs

* Optimize needMaskingText by using el.closest and less recursion

* Serve all rrweb dist files

* Split serializeNode into smaller functions

Makes it easier to profile

* Slow down cpu enhance tracing on fast machines

* Increase timeout

* Perf: only loop through ancestors when they have something to compare to

* Perf: `hasNode` is cheaper than `getMeta`

* Perf: If parents where already checked, no need to do it again

* Perf: reverse for loops are faster

Because they only do the .lenght check once. In this case I don't think we'll see much performance gains if any

* Clean up code

* Perf: check ancestors once with isBlocked

* guessing this might fixes canvas test

* Update packages/rrweb/src/record/observers/canvas/webgl.ts

Co-authored-by: yz-yu <yanzhen@smartx.com>

* Fix #904 (#906)

Properly remove crossorigin attribute

* Bump minimist from 1.2.5 to 1.2.6 (#902)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](substack/minimist@1.2.5...1.2.6)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: yz-yu <yanzhen@smartx.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Move require out of time sensitive assert

Update packages/rrweb/scripts/repl.js

Update packages/rrweb/test/record.test.ts

Update packages/rrweb/src/record/index.ts

Add todo

Add waitForRAF, its more reliable than waitForTimeout

Remove flaky tests

Add recording stylesheets in iframes

Remove variability from flaky test

Make test more robust

Fix naming

Update dive-into-event.md (#914)

move browser-only rrdom features to the new rrdom package (#913)

integrate turborepo in monorepo (#918)

* integrate turborepo in monorepo

* integrate turborepo in monorepo

unify typescript version and rollup plugins (#921)

Add test cases for inlineImages

Add test cases for inlineImages

Record iframe mutations cross page

Test: should record images inside iframe with blob url after iframe was reloaded

update rrweb-snapshot

Handle negative ids in rrdom correctly

When iframes get inserted they create untracked elements, both on the dom and rrdom side.
Because they are untracked they generate negative numbers when fetching the id from mirror.
This creates a problem when comparing and fetching ids across mirrors.
This commit tries to get away from using negative ids as much as possible in rrdom's comparisons

remove rrdom diff debug log statements

fix rrweb canvas recording crash (#79)

slow canvas loading can cause the canvas manager worker to crash.
also fix a merge conflict in rrweb styles file.

obfuscate text for highlight-mask class (#84)

Use the `obfuscateText` function as a default masking transform for the `highlight-mask` css class.

update versions

update rrweb to #947 (#83)

merge up to rrweb-io/rrweb#947

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: Jimmy Liu <sicong.liu98@gmail.com>
Co-authored-by: Eoghan Murray <eoghan@getthere.ie>

[HIG-2525] ensure highlight-mask blocks image src (#85)

`highlight-mask` class should be evaluated during image snapshotting to drop the image src.

publish rrweb

[HIG-2525] v2.1.4 make highlight-mask obfuscate images (#86)

`highlight-mask` class should hide images.

remove accidental console log (#87)

adds eslint rule to error on console logs

fix highlight-mask image obfuscation (#88)

fix how `highlight-mask` class obfuscates images
ensure image obfuscation works for `inline-images` enabled.

support canvas downsampling configuration (#89)

canvas recording takes snapshots at full canvas resolution
this is too slow to record at higher fps.
allow specifying canvas manager ratio and quality so that
the canvas can be imaged at lower quality and resolution to allow higher FPS recording

we now support the following `record` parameters for canvas settings:
* sampling.canvas.fps
* sampling.canvas.resizeQuality
* sampling.canvas.resizeFactor
* sampling.canvas.maxSnapshotDimension

sample recording @ 0.2 factor, low quality, 15 fps
https://app.highlight.run/1/sessions/KnAGq8rRSnafG7zXwp8ahpzFAqFd

fix client mutation observer check (#90)

ensure the element on which `.contains()` is called is a node.

Sort attributes to make `rr_*` attributes handled last

`rr_dataURL` overwrites `src` attribute, because of this we need to evaluate `rr_dataURL` last so it doesn't accidentally get overwritten again.

[HIG-2649] use yarn v3 workspace dependencies (#91)

allows us to only publish `@highlight-run/rrweb` while using the rest of the workspace packages as internal dependencies.
makes it easier to manage versions because it allows versioning `@highlight-run/rrweb` alone.

fix rrweb publishing (#92)

remove lerna since we only need to publish one package: `@highlight-run/rrweb`

support for highlight yarn workspaces monorepo

Apply formatting changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants