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

AMP-101866 textarea serialization fix #25

Merged
merged 3 commits into from
Aug 1, 2024

Conversation

eoghanmurray and others added 2 commits August 1, 2024 10:41
* Fix serialization and mutation of <textarea> elements taking account the duality that the value can be set in either the child node, or in the value _parameter_ (not attribute)

* Backwards compatibility: Bug fix and regression test for rrweb-io#112
 - this is to fix up 'historical' recordings, as duplicate textarea content should no longer be being created at record time
 - new test shows what the snapshot generated by previous versions of rrweb used to look like, hence 'bad'
 - original 0efe23f fix either didn't work or no longer works due to childNodes being appended subsequent to this part of the code
 - during review, we also verified that the `_cssText` case should still be handled okay, as there's currently no scenario where csstext is present with css child nodes of a <style>

* Masking: Fix that textarea values were being missed by the masking system if the value was recorded as a child node
 - I didn't notice that form.html was used in other tests, so lucky that I noticed that those tests also should have the 'pre value' masked out

* Simplify by always storing the textarea value in the `.value` attribute (from it's DOM property) and not as a childNode. It should still be rebuilt as a childNode rather than a property
---------

Authored-by: eoghanmurray <[email protected]>
Copy link

changeset-bot bot commented Aug 1, 2024

🦋 Changeset detected

Latest commit: fb39603

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
@amplitude/rrweb Patch
@amplitude/rrweb-snapshot Patch
@amplitude/rrdom Patch
@amplitude/rrdom-nodejs Patch
@amplitude/rrweb-player Patch
@amplitude/rrweb-types Patch
@amplitude/rrweb-web-extension Patch
@amplitude/rrvideo Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@@ -0,0 +1,5 @@
---
'rrweb': patch
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to change to @amplitude/rrweb

@jxiwang
Copy link
Collaborator

jxiwang commented Aug 1, 2024

Should try and test before releasing at least on SR SDK side.

@lewgordon-amplitude
Copy link
Author

lewgordon-amplitude commented Aug 1, 2024

@jxiwang so the replay I linked was using this new patch. Though I hadn't tested for regressions. I can run the playwright scripts I have against the tasks app though before merging. Also I wasn't sure if you had anything specific to look out for.

@lewgordon-amplitude lewgordon-amplitude merged commit e9e6a53 into master Aug 1, 2024
6 of 10 checks passed
@github-actions github-actions bot mentioned this pull request Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants