[webkit-changes] [WebKit/WebKit] 46f0f6: SVG text in RTL mixes characters
Ahmad Saleem
noreply at github.com
Fri Mar 10 05:03:00 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 46f0f6ec886e357152e65e5d78428422ce6d4194
https://github.com/WebKit/WebKit/commit/46f0f6ec886e357152e65e5d78428422ce6d4194
Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
A LayoutTests/svg/text/bidi-dir-rtl-expected.html
A LayoutTests/svg/text/bidi-dir-rtl.html
M Source/WebCore/rendering/svg/SVGRootInlineBox.cpp
Log Message:
-----------
SVG text in RTL mixes characters
https://bugs.webkit.org/show_bug.cgi?id=246888
rdar://problem/101695671
Reviewed by Nikolas Zimmermann.
Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=167777
Only swap positions if both characters actually are absolute positioned.
When re-ordering inline boxes within a "line", character-based absolute
positioning attributes are re-ordered to match. However, when attempting
to re-order/swap a inline box that does have a absolute positioning
attribute (and is of length 1) with one that doesn't, the positioning
attribute is copied rather than swapped - leading to additional chunks
being created and consequently additional adjustments being performed.
However, swapping is not needed/required in this case, since the attribute
is already in the correct (logical) position.
To mitigate this, only perform the attribute swap if both characters
(and consequently inline boxes) have attributes in the first place.
* Source/WebCore/rendering/svg/SVGRootInlineBox:
(SVGRootInlineBox::swapItemsInLayoutAttributes): Update to remove conditions about First and Last Positions
* LayoutTests/svg/text/bidi-dir-rtl.html: Added Test Case
* LayoutTests/svg/text/bidi-dir-rtl-expected.html: Added Test Case Expectation
Canonical link: https://commits.webkit.org/261495@main
More information about the webkit-changes
mailing list