[aspect-ratio] Use continued fraction algorithm for LayoutUnit conversion #32837
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.
Previously we'd directly convert the float aspect-ratio to LayoutUnit.
This wasn't correct as we'd potentially lose a lot of precision in the
process.
Instead of this use the continued fraction algorithm to find a precise
representation.
This mitigates the current problem, but likely isn't the best end
scenario. We likely want to represent aspect-ratios as either a
LayoutUnit ratio, or float ratio, depending on the source.
(Specifically the LayoutUnit ratio is far better for the replaced
element case, except for aspect-ratio only SVGs, a float ratio may be
better for aspect-ratio only elements).
Bug: 1296175
Change-Id: I1a1f62fdfdb27785eb076ccaa2d5a4e81566fd46
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3459264
Reviewed-by: David Grogan <dgrogan@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#971292}