* feat: Ensure password inputs are masked when switching type
Apply formatting changes
use data- attribute
ref: Ensure type is always lowercased
add changeset
* extract into util
* Apply formatting changes
* Extend the suppression of warnings to take account that a prior removal may not have been against the immediate parent of a subsequent removal, but rather some anscestor
* Create proud-experts-jam.md
* Apply formatting changes
* improve: mutation.ts, loop use Set replace Array
* improve: add a try-catch to utils.ts to make it robust
* Create yellow-mails-cheat.md
---------
Co-authored-by: Yun Feng <yun.feng0817@gmail.com>
* feat: Ignore `autoplay` attribute on video/auto elements
This element leads to weird issues when replaying, so it's better to strip this out.
* add changeset
* fix check
fix typo
* Apply formatting changes
---------
Co-authored-by: mydea <mydea@users.noreply.github.com>
* Set userTriggered to false on Input attribute modifications
- the fact we are intercepting them via hook rather than an event suggests to me that they could well be programmatic
* Create young-timers-grow.md
* fix: Explicitly handle removed attributes
The attribute `value` can be null when a mutation observer triggers due to a removed attribute. This is currently not reflected by types and code.
* Apply formatting changes
* fix
* add changeset
* fix the statement which is getting changed by microbundle
* Create chatty-cherries-train.md
* fix formatting.
* fix position of comment
---------
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
* Firefox fix: Allow the <head> and <body> to be added in two stages so that (presumably) stylesheet rules are ready to be applied when the body appears
The css which triggered the bug was simply
{
margin-left: 220px;
transition: margin-left .448s;
}
* Add a test case which can only be appreciated if you record against this file://, save the events to a html file, and then open the file in Firefox (without this PR applied)
* Apply formatting changes
* Ensure we don't apply this branch when using rrdom, where it is not necessary
* Apply formatting changes
* Rewrite insertion in order to be compatible with rrdom
Also easier to understand
* Delete transition.html
* Create grumpy-ways-own.md
---------
Co-authored-by: Yun Feng <yun.feng0817@gmail.com>
* Bump up all package versions together whenever any one version changes.
Keeps everything in sync to make it easy to see if you have the correct dependencies.
https://github.com/changesets/changesets/blob/main/docs/fixed-packages.md
* Empty changeset as this changes nothing for the packages them selves
* Bring @rrweb/web-extension version inline with other packages
* separate the extension version from package.json's to avoid errors
---------
Co-authored-by: Yun Feng <yun.feng0817@gmail.com>
* add more check to rrdom to make diff algorithm more robust
* fix: selector match in iframe is case-insensitive
add try catch to some fragile points
* test: increase timeout value for Jest
* improve code style
* fix: failed to execute insertBefore on Node in the diff function
this happens when ids of doctype or html element are changed in the virtual dom
also improve the code quality
* refactor diff function to make the code cleaner
* fix: virtual nodes are passed to plugin's onBuild function
* refactor the diff function and adjust the order of diff work.
* call afterAppend hook in a consistent traversal order
* improve the performance of the "contains" function
reduce the complexity from O(n) to O(logn)
a specific benchmark is needed to add further
* add a real events for benchmark
* refactor: change the data structure of childNodes from array to linked list
* remove legacy code in rrweb package
* update unit tests
* update change log
* feat: add rrweb web-extension package
* refactor: make the extension suitable for manifest v3
* update tsconfig.json
* use version_name rather than recorder_version in manifest.json
* update manifest.json
* enable to keep recording after changing tabs
* enable to record between tabs and urls
* fix CI error
* try to fix CI error
* feat: add pause and resume buttons
* feat: add a link to new session after recording
* improve session list
* refactor: migrate session storage from chrome local storage to indexedDB
* feat: add pagination to session list
* fix: multiple recorders are started after pausing and resuming process
* fix: can't stop recording on firefox browser
* update type import of 'eventWithTime'
* fix CI error
* doc: add readme
* Apply suggestions from Justin's code review
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
* refactor: make use of webNavigation API to implement recording consistent during page navigation
* fix firefox compatibility issue and add title to pages
* add mouseleave listener to enhance the recording liability
* fix firefox compatibility issue and improve the experience of recording resume after closing tabs
* update tsconfig
* upgrade vite-plugin-web-extension config to fix some bugs on facebook web page
* update import links
* refactor: cross tab recording mechanism
apply Justin's suggestion
* refactor: slipt util/index.ts into multiple files
* implement cross-origin iframe recording
* fix: regression of issue: ShadowHost can't be a string (issue 941)
* refactor shadow dom recording to make tests cover key code
* Apply formatting changes
* increase the node memory limitation to avoid CI failure
* Create lovely-pears-cross.md
* Apply formatting changes
* Update packages/web-extension/package.json
* Update .changeset/lovely-pears-cross.md
* update change logs
* delete duplicated property
---------
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
* fix: duplicated elements in shadow doms
clean observers before taking new full snapshots
* add checker for replayer to make it stable when data has duplicated nodes
* apply review suggestions
* add change log
* Apply formatting changes
* update prettier to fit the master branch
---------
Co-authored-by: Mark-Fenng <Mark-Fenng@users.noreply.github.com>