WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-220970-20210127140319.patch (text/plain), 7.54 KB, created by
Rob Buis
on 2021-01-27 05:03:21 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Rob Buis
Created:
2021-01-27 05:03:21 PST
Size:
7.54 KB
patch
obsolete
>Subversion Revision: 271946 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index fab7b023c4db7344264e1a78df18c4730dd603eb..f9ae4f58e837d4691e1f79d350836abb5ef06ca2 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2021-01-27 Rob Buis <rbuis@igalia.com> >+ >+ Handle zero aspect-ratio width/height >+ https://bugs.webkit.org/show_bug.cgi?id=220970 >+ >+ Reviewed by Manuel Rego Casasnovas. >+ >+ Treat aspect-ratio with zero width and/or height internally >+ as auto, but when serializing maintain the original input. >+ >+ * css/CSSComputedStyleDeclaration.cpp: >+ (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): >+ * rendering/style/RenderStyleConstants.cpp: >+ (WebCore::operator<<): >+ * rendering/style/RenderStyleConstants.h: >+ * style/StyleBuilderCustom.h: >+ (WebCore::Style::BuilderCustom::applyValueAspectRatio): >+ > 2021-01-27 Antti Koivisto <antti@apple.com> > > Implement visibility based resource load scheduling for low priority resources >diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >index 1bf275330f698ce274e297f8910ff715d751c42e..452af425ed5306537a98d1252742a478aae0f4e4 100644 >--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >@@ -3472,12 +3472,13 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty > switch (style.aspectRatioType()) { > case AspectRatioType::Auto: > return cssValuePool.createIdentifierValue(CSSValueAuto); >+ case AspectRatioType::AutoZero: > case AspectRatioType::AutoAndRatio: > case AspectRatioType::Ratio: { > auto ratioList = CSSValueList::createSlashSeparated(); > ratioList->append(cssValuePool.createValue(style.aspectRatioWidth(), CSSUnitType::CSS_NUMBER)); > ratioList->append(cssValuePool.createValue(style.aspectRatioHeight(), CSSUnitType::CSS_NUMBER)); >- if (style.aspectRatioType() == AspectRatioType::Ratio) >+ if (style.aspectRatioType() != AspectRatioType::AutoAndRatio) > return ratioList; > auto list = CSSValueList::createSpaceSeparated(); > list->append(cssValuePool.createIdentifierValue(CSSValueAuto)); >diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.cpp b/Source/WebCore/rendering/style/RenderStyleConstants.cpp >index f5d0cdb33c66bfed92b93d8f1ffb5e1f3028557f..9e9576d504daaaf3cad2ec9105e5c9122d0e1119 100644 >--- a/Source/WebCore/rendering/style/RenderStyleConstants.cpp >+++ b/Source/WebCore/rendering/style/RenderStyleConstants.cpp >@@ -93,6 +93,7 @@ TextStream& operator<<(TextStream& ts, AspectRatioType aspectRatioType) > case AspectRatioType::Auto: ts << "auto"; break; > case AspectRatioType::Ratio: ts << "ratio"; break; > case AspectRatioType::AutoAndRatio: ts << "autoandratio"; break; >+ case AspectRatioType::AutoZero: ts << "autozero"; break; > } > return ts; > } >diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h >index ecca385fdd400f82dd01b84cbc1653ab9c7457ad..f1a313f94ed661f4b6127c50affac94b2e2c068d 100644 >--- a/Source/WebCore/rendering/style/RenderStyleConstants.h >+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h >@@ -519,7 +519,8 @@ enum class ObjectFit : uint8_t { > enum class AspectRatioType : uint8_t { > Auto, > Ratio, >- AutoAndRatio >+ AutoAndRatio, >+ AutoZero > }; > > enum class WordBreak : uint8_t { >diff --git a/Source/WebCore/style/StyleBuilderCustom.h b/Source/WebCore/style/StyleBuilderCustom.h >index 290de4535f89579ac39c98de81447dde1613d966..209b867276e6b823695276686a95c9e5f0e1af33 100644 >--- a/Source/WebCore/style/StyleBuilderCustom.h >+++ b/Source/WebCore/style/StyleBuilderCustom.h >@@ -1179,9 +1179,14 @@ inline void BuilderCustom::applyValueAspectRatio(BuilderState& builderState, CSS > return; > } > >- builderState.style().setAspectRatioType(AspectRatioType::Ratio); > ASSERT(list.length() == 2); >- builderState.style().setAspectRatio(downcast<CSSPrimitiveValue>(list.item(0))->doubleValue(), downcast<CSSPrimitiveValue>(list.item(1))->doubleValue()); >+ auto width = downcast<CSSPrimitiveValue>(list.item(0))->doubleValue(); >+ auto height = downcast<CSSPrimitiveValue>(list.item(1))->doubleValue(); >+ if (!width || !height) >+ builderState.style().setAspectRatioType(AspectRatioType::AutoZero); >+ else >+ builderState.style().setAspectRatioType(AspectRatioType::Ratio); >+ builderState.style().setAspectRatio(width, height); > } > > inline void BuilderCustom::applyValueWebkitTextEmphasisStyle(BuilderState& builderState, CSSValue& value) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 6b60d8f79ed4ffdee4da8e376b08039939a4559c..8d1efb0cc6acecce7ee8985fa64c19b22a0634be 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2021-01-27 Rob Buis <rbuis@igalia.com> >+ >+ Handle zero aspect-ratio width/height >+ https://bugs.webkit.org/show_bug.cgi?id=220970 >+ >+ Reviewed by Manuel Rego Casasnovas. >+ >+ Enable some tests that pass now. >+ >+ * TestExpectations: >+ > 2021-01-27 Manuel Rego Casasnovas <rego@igalia.com> > > Upstream to WPT Shadow DOM tests related to :focus pseudo-class >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 72b6c30b6587619022d8a8676df76f1576fd9d67..eee16e627366df77e3ced05b59437d3edbb958c4 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -4458,14 +4458,6 @@ webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/ > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031.html [ ImageOnlyFailure ] > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html [ ImageOnlyFailure ] > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/table-element-001.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-001.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-002.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-004.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-006.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-007.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-008.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-009.html [ ImageOnlyFailure ] >-webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-010.html [ ImageOnlyFailure ] > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-001.html [ ImageOnlyFailure ] > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-002.html [ ImageOnlyFailure ] > webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-003.html [ ImageOnlyFailure ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 220970
:
418389
|
418413
|
418464
|
418520
|
418524
| 418531