Content-Length: 390517 | pFad | http://github.com/WebKit/WebKit/commit/706e3063ae335e1dcfdf8213c05409d3112e85a5

EF [css-values-4] logical `*vi`(inline) and `*vb` (block) viewport units… · WebKit/WebKit@706e306 · 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 706e306

Browse files
committedMay 21, 2022
[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
1 parent 5325a9e commit 706e306

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
@@ -695,12 +695,12 @@ static constexpr double mmPerInch = 25.4;
695695
static constexpr double cmPerInch = 2.54;
696696
static constexpr double QPerInch = 25.4 * 4.0;
697697

698-
static double lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis logicalAxis, const FloatSize& size, const RenderStyle* rootElementStyle)
698+
static double lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis logicalAxis, const FloatSize& size, const RenderStyle* style)
699699
{
700-
if (!rootElementStyle)
700+
if (!style)
701701
return 0;
702702

703-
switch (mapLogicalAxisToPhysicalAxis(makeTextFlow(rootElementStyle->writingMode(), rootElementStyle->direction()), logicalAxis)) {
703+
switch (mapLogicalAxisToPhysicalAxis(makeTextFlow(style->writingMode(), style->direction()), logicalAxis)) {
704704
case BoxAxis::Horizontal:
705705
return size.width();
706706

@@ -883,10 +883,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
883883
return value * conversionData.defaultViewportFactor().minDimension();
884884

885885
case CSSUnitType::CSS_VB:
886-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.defaultViewportFactor(), conversionData.rootStyle());
886+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.defaultViewportFactor(), conversionData.style());
887887

888888
case CSSUnitType::CSS_VI:
889-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.defaultViewportFactor(), conversionData.rootStyle());
889+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.defaultViewportFactor(), conversionData.style());
890890

891891
case CSSUnitType::CSS_SVH:
892892
return value * conversionData.smallViewportFactor().height();
@@ -901,10 +901,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
901901
return value * conversionData.smallViewportFactor().minDimension();
902902

903903
case CSSUnitType::CSS_SVB:
904-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.smallViewportFactor(), conversionData.rootStyle());
904+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.smallViewportFactor(), conversionData.style());
905905

906906
case CSSUnitType::CSS_SVI:
907-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.smallViewportFactor(), conversionData.rootStyle());
907+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.smallViewportFactor(), conversionData.style());
908908

909909
case CSSUnitType::CSS_LVH:
910910
return value * conversionData.largeViewportFactor().height();
@@ -919,10 +919,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
919919
return value * conversionData.largeViewportFactor().minDimension();
920920

921921
case CSSUnitType::CSS_LVB:
922-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.largeViewportFactor(), conversionData.rootStyle());
922+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.largeViewportFactor(), conversionData.style());
923923

924924
case CSSUnitType::CSS_LVI:
925-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.largeViewportFactor(), conversionData.rootStyle());
925+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.largeViewportFactor(), conversionData.style());
926926

927927
case CSSUnitType::CSS_DVH:
928928
return value * conversionData.dynamicViewportFactor().height();
@@ -937,10 +937,10 @@ double CSSPrimitiveValue::computeNonCalcLengthDouble(const CSSToLengthConversion
937937
return value * conversionData.dynamicViewportFactor().minDimension();
938938

939939
case CSSUnitType::CSS_DVB:
940-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.dynamicViewportFactor(), conversionData.rootStyle());
940+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Block, conversionData.dynamicViewportFactor(), conversionData.style());
941941

942942
case CSSUnitType::CSS_DVI:
943-
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.dynamicViewportFactor(), conversionData.rootStyle());
943+
return value * lengthOfViewportPhysicalAxisForLogicalAxis(LogicalBoxAxis::Inline, conversionData.dynamicViewportFactor(), conversionData.style());
944944

945945
case CSSUnitType::CSS_LHS:
946946
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/706e3063ae335e1dcfdf8213c05409d3112e85a5

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy