[webkit-changes] [WebKit/WebKit] 70ff96: Animated AVIF image animates only one loop on down...

Said Abou-Hallawa noreply at github.com
Mon Nov 14 12:02:03 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 70ff964ee191a2698da52a707fa83c1e4a8a6092
      https://github.com/WebKit/WebKit/commit/70ff964ee191a2698da52a707fa83c1e4a8a6092
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2022-11-14 (Mon, 14 Nov 2022)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fast/images/animated-avif-expected.html
    M LayoutTests/fast/images/animated-avif.html
    M LayoutTests/fast/images/animated-gif-loop-count.html
    M LayoutTests/fast/images/animated-jpegxl-loop-count.html
    M LayoutTests/fast/images/animated-png-loop-count.html
    M LayoutTests/fast/images/resources/animated-image-loop-count.js
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations
    M LayoutTests/platform/win/TestExpectations
    M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
    M Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp
    M Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp
    M Source/WebCore/platform/image-decoders/avif/AVIFImageReader.h

  Log Message:
  -----------
  Animated AVIF image animates only one loop on down level macOS and non Apple ports
https://bugs.webkit.org/show_bug.cgi?id=247704
rdar://102164553

Reviewed by Simon Fraser.

Delete the handcrafted implementation for AVIF repetitionCount() since libavif
does not provide loopCount for animated AVIF.

Make ImageDecoderCG::decodeUTI() look for the AVIF brands if CGImageSourceGetType()
returns "public.heics" for the image. This is what CG used to return for AVIF on
plafornss pre macOSVentura.

Refactor animated-image-loop-count.js such that an array for the canvases ids are
passed instead of passing the prefix of the first canvas only. This can be used
to draw the last frame of an animated image only.

* LayoutTests/TestExpectations:
* LayoutTests/fast/images/animated-avif-expected.html:
* LayoutTests/fast/images/animated-avif.html:
* LayoutTests/fast/images/animated-gif-loop-count.html:
* LayoutTests/fast/images/animated-jpegxl-loop-count.html:
* LayoutTests/fast/images/animated-png-loop-count.html:
* LayoutTests/fast/images/resources/animated-image-loop-count.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::decodeUTI):
* Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp:
(WebCore::AVIFImageDecoder::tryDecodeSize):
* Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp:
(WebCore::AVIFImageReader::repetitionCount const): Deleted.
* Source/WebCore/platform/image-decoders/avif/AVIFImageReader.h:

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




More information about the webkit-changes mailing list