Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b06dd10a198e651aac7c9f0256f612a31d4101f0 https://github.com/WebKit/WebKit/commit/b06dd10a198e651aac7c9f0256f612a31d4101f0 Author: Antti Koivisto <an...@apple.com> Date: 2022-11-29 (Tue, 29 Nov 2022)
Changed paths: M LayoutTests/TestExpectations M LayoutTests/fast/media/mq-any-hover-cssom-expected.txt M LayoutTests/fast/media/mq-any-hover-cssom.html M LayoutTests/fast/media/mq-color-index-02.html M LayoutTests/fast/media/mq-hover-cssom-expected.txt M LayoutTests/fast/media/mq-hover-cssom.html M LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-invalid-media-type-005-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-unknown-feature-custom-property-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt M Source/WebCore/css/CSSGroupingRule.h M Source/WebCore/css/CSSImportRule.cpp M Source/WebCore/css/CSSImportRule.h M Source/WebCore/css/CSSMediaRule.cpp M Source/WebCore/css/CSSMediaRule.h M Source/WebCore/css/CSSStyleSheet.cpp M Source/WebCore/css/CSSStyleSheet.h M Source/WebCore/css/MediaList.cpp M Source/WebCore/css/MediaList.h M Source/WebCore/css/StyleRule.cpp M Source/WebCore/css/StyleRule.h M Source/WebCore/css/StyleRuleImport.cpp M Source/WebCore/css/StyleRuleImport.h M Source/WebCore/css/parser/CSSParserImpl.cpp M Source/WebCore/dom/DOMImplementation.cpp M Source/WebCore/dom/InlineStyleSheetOwner.cpp M Source/WebCore/dom/ProcessingInstruction.cpp M Source/WebCore/html/HTMLLinkElement.cpp M Source/WebCore/html/HTMLStyleElement.cpp M Source/WebCore/style/ElementRuleCollector.h M Source/WebCore/style/RuleSet.cpp M Source/WebCore/style/RuleSet.h M Source/WebCore/style/RuleSetBuilder.cpp M Source/WebCore/style/RuleSetBuilder.h M Source/WebCore/style/StyleInvalidator.cpp M Source/WebCore/style/StyleInvalidator.h M Source/WebCore/style/StyleResolver.cpp M Source/WebCore/style/StyleResolver.h M Source/WebCore/style/StyleScopeRuleSets.cpp M Source/WebCore/style/StyleScopeRuleSets.h M Source/WebCore/style/UserAgentStyle.cpp Log Message: ----------- [MQ4] Use the new parser and evaluator for stylesheets and media rules https://bugs.webkit.org/show_bug.cgi?id=248391 <rdar://problem/102713933> Reviewed by Alan Baradlay. This enabled Media Queries 4 syntax (ranges and nesting) for regular stylesheets. https://www.w3.org/TR/mediaqueries-4/#mq-syntax * LayoutTests/TestExpectations: A bunch of reftests now pass. * LayoutTests/fast/media/mq-any-hover-cssom-expected.txt: * LayoutTests/fast/media/mq-any-hover-cssom.html: * LayoutTests/fast/media/mq-color-index-02.html: * LayoutTests/fast/media/mq-hover-cssom-expected.txt: * LayoutTests/fast/media/mq-hover-cssom.html: General Enclosed support changes the results here. This matches Chrome. * LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-invalid-media-type-005-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-unknown-feature-custom-property-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt: 669 new WPT PASS results. * Source/WebCore/css/CSSGroupingRule.h: (WebCore::CSSGroupingRule::groupRule): * Source/WebCore/css/CSSImportRule.cpp: (WebCore::CSSImportRule::~CSSImportRule): (WebCore::CSSImportRule::media const): (WebCore::CSSImportRule::cssText const): (WebCore::CSSImportRule::mediaQueries const): (WebCore::CSSImportRule::setMediaQueries): * Source/WebCore/css/CSSImportRule.h: * Source/WebCore/css/CSSMediaRule.cpp: (WebCore::CSSMediaRule::~CSSMediaRule): (WebCore::CSSMediaRule::mediaQueries const): (WebCore::CSSMediaRule::setMediaQueries): (WebCore::CSSMediaRule::conditionText const): (WebCore::CSSMediaRule::media const): (WebCore::CSSMediaRule::reattach): Deleted. * Source/WebCore/css/CSSMediaRule.h: * Source/WebCore/css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::CSSStyleSheet): (WebCore::CSSStyleSheet::~CSSStyleSheet): (WebCore::CSSStyleSheet::setMediaQueries): (WebCore::CSSStyleSheet::media const): * Source/WebCore/css/CSSStyleSheet.h: * Source/WebCore/css/MediaList.cpp: (WebCore::MediaQuerySet::MediaQuerySet): (WebCore::MediaList::MediaList): (WebCore::MediaList::detachFromParent): (WebCore::MediaList::length const): (WebCore::MediaList::mediaQueries const): MediaList now pulls the queries from the underlying CSSOM object. On detach the queries are copied. (WebCore::MediaList::setMediaQueries): Update via a setter. (WebCore::MediaList::mediaText const): (WebCore::MediaList::setMediaText): (WebCore::MediaList::item const): (WebCore::MediaList::deleteMedium): (WebCore::MediaList::appendMedium): (WebCore::MediaList::reattach): Deleted. No need to reattach, the list is live. * Source/WebCore/css/MediaList.h: * Source/WebCore/css/StyleRule.cpp: (WebCore::StyleRuleMedia::StyleRuleMedia): (WebCore::StyleRuleMedia::create): * Source/WebCore/css/StyleRule.h: * Source/WebCore/css/StyleRuleImport.cpp: (WebCore::StyleRuleImport::create): (WebCore::StyleRuleImport::StyleRuleImport): * Source/WebCore/css/StyleRuleImport.h: * Source/WebCore/css/parser/CSSParserImpl.cpp: (WebCore::CSSParserImpl::consumeImportRule): (WebCore::CSSParserImpl::consumeMediaRule): Use the new parser. * Source/WebCore/dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createCSSStyleSheet): * Source/WebCore/dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::createSheet): * Source/WebCore/dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::setCSSStyleSheet): * Source/WebCore/html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::initializeStyleSheet): * Source/WebCore/html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::parseAttribute): * Source/WebCore/style/ElementRuleCollector.h: (WebCore::Style::ElementRuleCollector::setMedium): * Source/WebCore/style/RuleSet.cpp: (WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules): Switch to the new evaluator. * Source/WebCore/style/RuleSet.h: (WebCore::Style::RuleSet::DynamicMediaQueryRules::shrinkToFit): * Source/WebCore/style/RuleSetBuilder.cpp: (WebCore::Style::RuleSetBuilder::RuleSetBuilder): (WebCore::Style::RuleSetBuilder::addRulesFromSheet): (WebCore::Style::RuleSetBuilder::addChildRules): (WebCore::Style::RuleSetBuilder::MediaQueryCollector::pushAndEvaluate): (WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop): * Source/WebCore/style/RuleSetBuilder.h: (WebCore::Style::RuleSetBuilder::addRulesFromSheet): * Source/WebCore/style/StyleInvalidator.cpp: (WebCore::Style::Invalidator::Invalidator): * Source/WebCore/style/StyleInvalidator.h: * Source/WebCore/style/StyleResolver.cpp: (WebCore::Style::Resolver::Resolver): (WebCore::Style::Resolver::styleForElement): (WebCore::Style::Resolver::styleForKeyframe): (WebCore::Style::Resolver::pseudoStyleForElement): (WebCore::Style::Resolver::pseudoStyleRulesForElement): * Source/WebCore/style/StyleResolver.h: (WebCore::Style::Resolver::mediaQueryEvaluator const): * Source/WebCore/style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets): (WebCore::Style::ScopeRuleSets::evaluateDynamicMediaQueryRules): (WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets): * Source/WebCore/style/StyleScopeRuleSets.h: * Source/WebCore/style/UserAgentStyle.cpp: (WebCore::Style::screenEval): (WebCore::Style::printEval): Canonical link: https://commits.webkit.org/257171@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes