Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1a09d8d95ba6085df4ef44306c4bfc9fc86fdbc7
      
https://github.com/WebKit/WebKit/commit/1a09d8d95ba6085df4ef44306c4bfc9fc86fdbc7
  Author: Antti Koivisto <[email protected]>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    A 
LayoutTests/fast/css/custom-property-deduplication-cross-fade-crash-expected.txt
    A LayoutTests/fast/css/custom-property-deduplication-cross-fade-crash.html
    M Source/WebCore/rendering/style/RenderStyle.cpp
    M Source/WebCore/rendering/style/StyleCrossfadeImage.cpp

  Log Message:
  -----------
  Assertion failure in StyleGeneratedImage::removeClient
https://bugs.webkit.org/show_bug.cgi?id=256840
rdar://107311467

Reviewed by Alan Baradlay.

* 
LayoutTests/fast/css/custom-property-deduplication-cross-fade-crash-expected.txt:
 Added.
* LayoutTests/fast/css/custom-property-deduplication-cross-fade-crash.html: 
Added.
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::deduplicateCustomProperties):

Remove an optimization where we would after successfully deduplicating custom 
properties also
try to deduplicate the whole rare data struct. This is dangerous since it will 
mutate style
in all renderers that are using the rare data instance. Images in style need to 
be registered per-renderer
and that happens via RenderElement::setStyle. If style changes silently we fail 
to do this
registration.

This was also probably not super valuable. The main goal here was deduplicating 
large custom property data
which is still happening.

* Source/WebCore/rendering/style/StyleCrossfadeImage.cpp:
(WebCore::StyleCrossfadeImage::load):

Ensure we only trigger load for to/from image if it has not already been loaded.
We may end up in this case because only one of the images needs loading.

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to