| Summary: | REGRESSION(262518@main) [cairo] Crash under GraphicsContextGL::paintToCanvas | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> | ||||||
| Component: | Platform | Assignee: | Fujii Hironori <Hironori.Fujii> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | djg, webkit-bug-importer | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | WebKit Nightly Build | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Attachments: |
|
||||||||
|
Description
Fujii Hironori
2023-04-03 13:44:31 PDT
Please let me know if I can assist with fixing this. Created attachment 465756 [details]
WIP patch
GraphicsContextGLANGLE::withDrawingBufferAsNativeImage has to retain pixelBuffer until the function `func` is called.
Is this a cairo specific problem?
Created attachment 465757 [details]
Patch of using cairo_image_surface_create (doesn't work as expected)
Using cairo_image_surface_create instead of cairo_image_surface_create_for_data can avoid crashing.
But, a lot of tests fail.
It seems that GraphicsContextGL::createNativeImageFromPixelBuffer has to return a NativeImage that is using the given pixel buffer.
(In reply to Fujii Hironori from comment #2) > Is this a cairo specific problem? GraphicsContextGLCG.cpp retains the given PixelBuffer into dataProvider. https://github.com/WebKit/WebKit/blob/565c294fbf5fe2ba6ef15fbb52f561bd5b7e1420/Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp#L527-L528 Pull request: https://github.com/WebKit/WebKit/pull/12365 Committed 262575@main (fc5e0e6a297b): <https://commits.webkit.org/262575@main> Reviewed commits have been landed. Closing PR #12365 and removing active labels. |