Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 37ebf3668e204784bc868427c5528fefbb82314c
https://github.com/WebKit/WebKit/commit/37ebf3668e204784bc868427c5528fefbb82314c
Author: Said Abou-Hallawa <[email protected]>
Date: 2025-01-15 (Wed, 15 Jan 2025)
Changed paths:
A LayoutTests/fast/text/otsvg-spacing-canvas-expected.html
A LayoutTests/fast/text/otsvg-spacing-canvas.html
M LayoutTests/fast/text/otsvg-spacing-expected.html
M LayoutTests/fast/text/otsvg-spacing.html
A LayoutTests/fast/text/resources/glyph-image-1.png
A LayoutTests/fast/text/resources/glyph-image-2.png
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
M Source/WebCore/platform/graphics/GraphicsContext.cpp
M Source/WebCore/platform/graphics/GraphicsContext.h
M Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItem.h
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
M Source/WebCore/rendering/TextPainter.cpp
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in
M Source/WebKit/Shared/DisplayListArgumentCoders.serialization.in
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:
-----------
REGRESSION(270688@main): Text is not displayed if it is formatted with
OpenType-SVG color fonts
https://bugs.webkit.org/show_bug.cgi?id=285935#
rdar://137496217
Reviewed by Simon Fraser.
drawDisplayListItems() was added to GraphicsContext and its subclasses in
270688@main
to transfer a DisplayList in one IPC to GPUProcess. It turned out this is
problematic
when RenderingResources are referenced from the items.
We do not transfer local ImageBuffers to GPUProcess and DisplayList::Recorder
should
fail to record these items. It is supposed to fall back to GraphicsContext
which
transfers the local ImageBuffers to ShareableBitmaps before calling the
corresponding
NativeImage functions.
The problem is this does not happen with individual items in
DisplayList::Recorder::drawDisplayListItems(). We keep them referencing
ImageBuffers
although RemoteDisplayListRecorderProxy::recordResourceUse() fails to record
the local
ImageBuffers.
The fix is to revert 270688@main. Reverting this change should not have an
effect on
MotionMark - Design sub-test. All the text runs in this sub-tests have only one
DrawDecomposedGlyphs item which references a Font resource. So replaying back
this
item in WebProcess and sending it to GPUP individually should be the same as
transferring
the one-item list and replaying it back in GPUProcess.
The layout test fast/text/otsvg-spacing.html was repurposed to test
OpenType-SVG fonts
in DOM elements so we can test drawing trough TextPainter.
otsvg-spacing-canvas.html
was added to test OpenType-SVG fonts in 2D canvas.
* LayoutTests/fast/text/otsvg-spacing-canvas-expected.html: Added.
* LayoutTests/fast/text/otsvg-spacing-canvas.html: Added.
* LayoutTests/fast/text/otsvg-spacing-expected.html:
* LayoutTests/fast/text/otsvg-spacing.html:
* LayoutTests/fast/text/resources/glyph-image-1.png: Added.
* LayoutTests/fast/text/resources/glyph-image-2.png: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawDisplayListItems): Deleted.
* Source/WebCore/platform/graphics/GraphicsContext.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp:
(WebCore::DisplayList::applyItem):
* Source/WebCore/platform/graphics/displaylists/DisplayListItem.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawDisplayListItems::DrawDisplayListItems): Deleted.
(WebCore::DisplayList::DrawDisplayListItems::apply const): Deleted.
(WebCore::DisplayList::DrawDisplayListItems::dump const): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawDisplayListItems::items const): Deleted.
(WebCore::DisplayList::DrawDisplayListItems::destination const): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawDisplayListItems): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordDrawDisplayListItems): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
* Source/WebCore/rendering/TextPainter.cpp:
(WebCore::TextPainter::paintTextOrEmphasisMarks):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawDisplayListItems): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
* Source/WebKit/Shared/DisplayListArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordDrawDisplayListItems): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
Canonical link: https://commits.webkit.org/288980@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes