Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ff57fe9af2916f68ad0bca626adc5ec8e38551b7
      
https://github.com/WebKit/WebKit/commit/ff57fe9af2916f68ad0bca626adc5ec8e38551b7
  Author: Said Abou-Hallawa <[email protected]>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M Source/WebCore/html/HTMLImageElement.cpp
    M Source/WebCore/platform/graphics/BitmapImage.cpp
    M Source/WebCore/platform/graphics/DecodingOptions.h
    M Source/WebCore/platform/graphics/GraphicsContext.h
    M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h

  Log Message:
  -----------
  [GPU Process] REGRESSION (261700@main): Various 
"css-backgrounds/background-size-" tests fail with pixel differences
https://bugs.webkit.org/show_bug.cgi?id=254202
rdar://106952740

Reviewed by Simon Fraser.

The test page draws a tiled background-image by calling 
BitmapImage::drawPattern()
which ends up calling CGImageSourceCreateImageAtIndex().

The expected page draws an HTMLImageElements by calling BitmapImage::draw() 
which
ends up calling CGImageSourceCreateThumbnailAtIndex().

There is a slight difference between a frame decoded using 
CGImageSourceCreateImageAtIndex()
and a frame decode using CGImageSourceCreateThumbnailAtIndex(). A thumbnail 
frame
has to be decoded for a certain size which is called sizeForDrawing.

We need to switch back to use CGImageSourceCreateImageAtIndex() for small 
images.
This way we can ensure the image is decoded the same way for both the test and
the expected pages.

* Source/WebCore/html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::decoding const):
* Source/WebCore/platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
* Source/WebCore/platform/graphics/DecodingOptions.h:
(WebCore::DecodingOptions::isSynchronous const):
* Source/WebCore/platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::preferredImageDecodingMode const): Deleted.
* Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::createFrameImageAtIndex):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::decodingModeForImageDraw const):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::preferredImageDecodingMode const): 
Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

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


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

Reply via email to