Bug 251809

Summary: Devirtualize GraphicsContext::drawConsumingImageBuffer()
Product: WebKit Reporter: Said Abou-Hallawa <sabouhallawa>
Component: Layout and RenderingAssignee: Said Abou-Hallawa <sabouhallawa>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Said Abou-Hallawa 2023-02-06 11:46:22 PST
GraphicsContext will resolve some of its methods to lower level ones. These higher level methods should not be virtual. These methods are:

GraphicsContext::drawImage()
GraphicsContext::drawTiledImage()
GraphicsContext::drawConsumingImageBuffer()

The first two methods will be resolved to GraphicsContext::drawNativeImage() if the Image is a BitmapImage. Or they will be revolved to SVGImage::draw() if it is an SVGImage. SVGImage::draw() will draw a full FrameView.

The third method will be resolved to ImageBuffer::drawConsuming() which will draw a NativeImage via GraphicsContext::drawNativeImage().
Comment 1 Radar WebKit Bug Importer 2023-02-06 11:46:49 PST
<rdar://problem/105092612>
Comment 2 Said Abou-Hallawa 2023-02-06 11:50:20 PST
Pull request: https://github.com/WebKit/WebKit/pull/9707
Comment 3 EWS 2023-04-06 18:12:54 PDT
Committed 262695@main (143e04df42bb): <https://commits.webkit.org/262695@main>

Reviewed commits have been landed. Closing PR #9707 and removing active labels.