Content-Length: 392142 | pFad | http://github.com/WebKit/WebKit/commit/50d5752c3b1941b2140d99c91370b3c353c2bf36

E7 Cherry-pick 706e3063ae33. rdar://problem/86832561 · WebKit/WebKit@50d5752 · GitHub
Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 50d5752

Browse files
committedJun 3, 2022
Cherry-pick 706e306. rdar://problem/86832561
[css-values-4] logical `*vi`(inline) and `*vb` (block) viewport units should be based on the current element's `writing-mode` https://bugs.webkit.org/show_bug.cgi?id=234373 <rdar://problem/86832561> Reviewed by Tim Nguyen. Previously, we only looked at the root element's `writing-mode`. Looking at the current element's `writing-mode` allows for non-root elements to have a `writing-mode` independent of the root element, as well as having styles based on that. This was changed in <w3c/csswg-drafts#6873>. Tests: CSSViewportUnits.AllSame CSSViewportUnits.MinimumViewportInsetWithWritingMode CSSViewportUnits.MaximumViewportInsetWithWritingMode CSSViewportUnits.EmptyUnobscuredSizeOverrides CSSViewportUnits.SameUnobscuredSizeOverrides CSSViewportUnits.DifferentUnobscuredSizeOverrides CSSViewportUnits.SVGDocument * Source/WebCore/css/CSSPrimitiveValue.cpp: (WebCore::lengthOfViewportPhysicalAxisForLogicalAxis): (WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble): * Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (changeCSSPropertyOfElements): Added. (TEST.CSSViewportUnits.AllSame): (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SameUnobscuredSizeOverrides): (TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SVGDocument): Canonical link: https://commits.webkit.org/250835@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294609 268f45cc-cd09-0410-ab3c-d52691b4dbfc Canonical link: https://commits.webkit.org/245886.622@safari-613-branch git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-613-branch@295194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 8ebe42e commit 50d5752

File tree

2 files changed

+275
-20
lines changed

2 files changed

+275
-20
lines changed
 

‎Source/WebCore/css/CSSPrimitiveValue.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -672,12 +672,12 @@ static constexpr double mmPerInch = 25.4;
672672
static constexpr double cmPerInch = 2.54;
673673
static constexpr double QPerInch = 25.4 * 4.0;
674674

675-
static double lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis logicalAxis, const FloatSize& size, const RenderStyle* rootElementStyle)
675+
static double lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis logicalAxis, const FloatSize& size, const RenderStyle* style)
676676
{
677-
if (!rootElementStyle)
677+
if (!style)
678678
return 0;
679679

680-
switch (mapLogicalAxisToPhysicalAxis(makeTextFlow(rootElementStyle->writingMode(), rootElementStyle->direction()), logicalAxis)) {
680+
switch (mapLogicalAxisToPhysicalAxis(makeTextFlow(style->writingMode(), style->direction()), logicalAxis)) {
681681
case BoxAxis::Horizontal:
682682
return size.width();
683683

@@ -849,10 +849,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
849849
return value * conversionData.defaultViewportFactor().minDimension();
850850

851851
case CSSUnitType::CSS_VB:
852-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.defaultViewportFactor(), conversionData.rootStyle());
852+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.defaultViewportFactor(), conversionData.style());
853853

854854
case CSSUnitType::CSS_VI:
855-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.defaultViewportFactor(), conversionData.rootStyle());
855+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.defaultViewportFactor(), conversionData.style());
856856

857857
case CSSUnitType::CSS_SVH:
858858
return value * conversionData.smallViewportFactor().height();
@@ -867,10 +867,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
867867
return value * conversionData.smallViewportFactor().minDimension();
868868

869869
case CSSUnitType::CSS_SVB:
870-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.smallViewportFactor(), conversionData.rootStyle());
870+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.smallViewportFactor(), conversionData.style());
871871

872872
case CSSUnitType::CSS_SVI:
873-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.smallViewportFactor(), conversionData.rootStyle());
873+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.smallViewportFactor(), conversionData.style());
874874

875875
case CSSUnitType::CSS_LVH:
876876
return value * conversionData.largeViewportFactor().height();
@@ -885,10 +885,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
885885
return value * conversionData.largeViewportFactor().minDimension();
886886

887887
case CSSUnitType::CSS_LVB:
888-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.largeViewportFactor(), conversionData.rootStyle());
888+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.largeViewportFactor(), conversionData.style());
889889

890890
case CSSUnitType::CSS_LVI:
891-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.largeViewportFactor(), conversionData.rootStyle());
891+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.largeViewportFactor(), conversionData.style());
892892

893893
case CSSUnitType::CSS_DVH:
894894
return value * conversionData.dynamicViewportFactor().height();
@@ -903,10 +903,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
903903
return value * conversionData.dynamicViewportFactor().minDimension();
904904

905905
case CSSUnitType::CSS_DVB:
906-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.dynamicViewportFactor(), conversionData.rootStyle());
906+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.dynamicViewportFactor(), conversionData.style());
907907

908908
case CSSUnitType::CSS_DVI:
909-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.dynamicViewportFactor(), conversionData.rootStyle());
909+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.dynamicViewportFactor(), conversionData.style());
910910

911911
case CSSUnitType::CSS_LHS:
912912
ASSERT(conversionData.style());
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Failed to load comments.








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/WebKit/WebKit/commit/50d5752c3b1941b2140d99c91370b3c353c2bf36

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy