Implement jsdom node traversal properties #1083
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #827
Description
This PR aims to fix an issue on mobile (#827) where pasted content from certain sources omits the images. Related comment: #617 (review), and a clipboard snippet of html that reproduces the issue on mobile here: #827 (comment).
Steps to test:
Types of changes
When some content is pasted, a code path in
figure-content-reducer.js
expectsparentElement
property to be implemented when finding the containing<p>
element (ancestor) surrounding an image element. BecauseparentElement
is not implemented in the DOM for the mobile environment,<img>
elements contained within<p>
elements are not properly unwrapped, and are thus removed in a subsequent call tocleanNodeList
.It was noted in an earlier PR that we may encounter similar issues in other code paths as a result of our limited DOM implementation. These changes implement the
parentElement
property on theNode.prototype
, as well as thepreviousElementSibling
andnextElementSibling
properties on theNode.prototype
for all node implementing theNonDocumentTypeChildNode
pure interface.Update release notes:
RELEASE-NOTES.txt
.