Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aaaee1d25e29a6c1eb0c99ffdf0901418ad30424
      
https://github.com/WebKit/WebKit/commit/aaaee1d25e29a6c1eb0c99ffdf0901418ad30424
  Author: Aditya Keerthi <akeer...@apple.com>
  Date:   2024-05-31 (Fri, 31 May 2024)

  Changed paths:
    A LayoutTests/editing/pasteboard/copy-picture-and-text-expected.txt
    A LayoutTests/editing/pasteboard/copy-picture-and-text.html
    A 
LayoutTests/platform/ios/editing/pasteboard/copy-picture-and-text-expected.txt
    M Source/WebCore/editing/markup.cpp

  Log Message:
  -----------
  Copying and pasting a `<picture>` element and some text, loses `<source>` 
elements
https://bugs.webkit.org/show_bug.cgi?id=274874
rdar://124625324

Reviewed by Wenson Hsieh.

When selecting a `<picture>` element, visible positions are before/after the
contained `<img>`. Originally, this resulted in issues where simply copying and
pasting `<picture>` elements would drop other nodes (`<source>`).

276754@main fixed the issue when the selection being copied was contained to a
single `<picture>`, by consulting the highest common ancestor of the start and
end positions. However, in cases where the selection ends outside of the
`<picture>`, for example, including some text after the image, there is no
common ancestor. Consequently, `<source>` elements continue to be dropped in
that scenario.

Fix by generalizing the solution in 276754@main to always adjust the start
position for serialization if it is within a `<picture>` element. Add a test to
validate the fix.

* LayoutTests/editing/pasteboard/copy-picture-and-text-expected.txt: Added.
* LayoutTests/editing/pasteboard/copy-picture-and-text.html: Added.
* 
LayoutTests/platform/ios/editing/pasteboard/copy-picture-and-text-expected.txt: 
Added.

An iOS-specific expectation is necessary due to smart replace, which inserts an
additional space when pasting this content. The space before `<img>` exists
before and after this patch.

* Source/WebCore/editing/markup.cpp:
(WebCore::serializePreservingVisualAppearanceInternal):

Canonical link: https://commits.webkit.org/279597@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to