[webkit-changes] [WebKit/WebKit] cfac95: Use partial style application for non-cacheable pr...

Antti Koivisto noreply at github.com
Thu May 23 02:53:17 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cfac95680a14569c0cc9a2b2c1eb70904a60c812
      https://github.com/WebKit/WebKit/commit/cfac95680a14569c0cc9a2b2c1eb70904a60c812
  Author: Antti Koivisto <antti at apple.com>
  Date:   2024-05-23 (Thu, 23 May 2024)

  Changed paths:
    M Source/WebCore/style/ElementRuleCollector.cpp
    M Source/WebCore/style/ElementRuleCollector.h
    M Source/WebCore/style/MatchResult.h
    M Source/WebCore/style/MatchedDeclarationsCache.cpp
    M Source/WebCore/style/PropertyCascade.cpp
    M Source/WebCore/style/PropertyCascade.h
    M Source/WebCore/style/StyleResolver.cpp

  Log Message:
  -----------
  Use partial style application for non-cacheable presentational hint style
https://bugs.webkit.org/show_bug.cgi?id=274081
rdar://127995820

Reviewed by Alan Baradlay.

Presentational hint style especially in SVG often uses many unique property values that
miss the the matched declarations cache. We can still use the cache partilly for such cases
by applying the presentational properties on top of the existing cache entry.

* Source/WebCore/style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::matchAllRules):

Enable partial caching for SVG presentational hints.

(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):

This could also be applied to inlne style but this patch does not implement it.

(WebCore::Style::ElementRuleCollector::addMatchedProperties):
* Source/WebCore/style/ElementRuleCollector.h:
* Source/WebCore/style/MatchResult.h:
(WebCore::Style::operator==):
(WebCore::Style::MatchResult::cacheablePropertiesEqual const):

New equality comparison that ignores non-cacheable properties.

(WebCore::Style::add):
* Source/WebCore/style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::computeHash):
(WebCore::Style::MatchedDeclarationsCache::find):
* Source/WebCore/style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::addMatch):
* Source/WebCore/style/PropertyCascade.h:
* Source/WebCore/style/StyleResolver.cpp:
(WebCore::Style::Resolver::applyMatchedProperties):

Apply non-cacheable properties after cache hit.

Canonical link: https://commits.webkit.org/279187@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list