[webkit-changes] [WebKit/WebKit] ba11d6: [MQ4] Use new parser and evaluator for responsive ...
Antti Koivisto
noreply at github.com
Thu Nov 24 09:08:11 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ba11d60c7b4cf1dd2641b482d8061777ac146e53
https://github.com/WebKit/WebKit/commit/ba11d60c7b4cf1dd2641b482d8061777ac146e53
Author: Antti Koivisto <antti at apple.com>
Date: 2022-11-24 (Thu, 24 Nov 2022)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt
M LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt
M LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt
M LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt
M LayoutTests/platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt
M LayoutTests/platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt
M LayoutTests/platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt
M LayoutTests/platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt
M Source/WebCore/css/parser/SizesAttributeParser.cpp
M Source/WebCore/css/parser/SizesAttributeParser.h
M Source/WebCore/css/query/GenericMediaQueryEvaluator.h
M Source/WebCore/css/query/GenericMediaQueryParser.cpp
M Source/WebCore/css/query/GenericMediaQueryTypes.h
M Source/WebCore/css/query/MediaQuery.h
M Source/WebCore/css/query/MediaQueryEvaluator.cpp
M Source/WebCore/css/query/MediaQueryEvaluator.h
M Source/WebCore/css/query/MediaQueryFeatures.cpp
M Source/WebCore/css/query/MediaQueryFeatures.h
M Source/WebCore/css/query/MediaQueryParser.cpp
M Source/WebCore/css/query/MediaQueryParser.h
M Source/WebCore/html/HTMLImageElement.cpp
M Source/WebCore/html/HTMLImageElement.h
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/html/HTMLSourceElement.cpp
M Source/WebCore/html/HTMLSourceElement.h
Log Message:
-----------
[MQ4] Use new parser and evaluator for responsive images
https://bugs.webkit.org/show_bug.cgi?id=248236
<rdar://problem/102647341>
Reviewed by Alan Baradlay.
Handle <source media> and <img sizes> with the new code.
* LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt:
* LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt:
* LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt:
* LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt:
Some progressions in these tests.
The new FAILs match the current spec text and the behavior of either Chrome or Firefox (general enclosed handling).
* Source/WebCore/css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::mediaConditionMatches):
(WebCore::SizesAttributeParser::parse):
* Source/WebCore/css/parser/SizesAttributeParser.h:
(WebCore::SizesAttributeParser::dynamicMediaQueryResults const):
(WebCore::SizesAttributeParser::dynamicMediaConditionResults const): Deleted.
* Source/WebCore/css/query/GenericMediaQueryEvaluator.h:
(WebCore::MQ::GenericMediaQueryEvaluator<ConcreteEvaluator>::evaluateCondition const):
* Source/WebCore/css/query/GenericMediaQueryTypes.h:
(WebCore::MQ::traverseFeatures):
* Source/WebCore/css/query/MediaQuery.h:
(WebCore::MQ::traverseFeatures):
Add helper for traversing features.
* Source/WebCore/css/query/MediaQueryEvaluator.cpp:
(WebCore::MQ::MediaQueryEvaluator::evaluate const):
Fix Unknown logic.
(WebCore::MQ::MediaQueryEvaluator::evaluateMediaType const):
Factor into a function.
(WebCore::MQ::MediaQueryEvaluator::collectDynamicDependencies const):
Find out the dynamic dependencies.
* Source/WebCore/css/query/MediaQueryEvaluator.h:
* Source/WebCore/css/query/MediaQueryFeatures.cpp:
(WebCore::MQ::Features::prefersReducedMotion):
Fix a copy-pasta error.
(WebCore::MQ::Features::dynamicDependency):
Get dynamic dependencies of a feature schema.
* Source/WebCore/css/query/MediaQueryFeatures.h:
* Source/WebCore/css/query/MediaQueryParser.cpp:
(WebCore::MQ::MediaQueryParser::parseCondition):
Add a helper for parsing a single condition (as used in the 'sizes' attribute).
* Source/WebCore/css/query/MediaQueryParser.h:
* Source/WebCore/html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::evaluateDynamicMediaQueryDependencies):
(WebCore::HTMLImageElement::selectImageSource):
* Source/WebCore/html/HTMLImageElement.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectNextSourceChild):
* Source/WebCore/html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::parsedMediaAttribute const):
* Source/WebCore/html/HTMLSourceElement.h:
Canonical link: https://commits.webkit.org/256993@main
More information about the webkit-changes
mailing list