Bug 253275
| Summary: | REGRESSION(260512@main): HDR images should be drawn directly if the destination context has HDR color space | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Said Abou-Hallawa <sabouhallawa> |
| Component: | Images | Assignee: | Said Abou-Hallawa <sabouhallawa> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | sabouhallawa, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=245858 https://bugs.webkit.org/show_bug.cgi?id=253365 |
||
Said Abou-Hallawa
When playing some HDR videos, RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime() may create a ShareableBitmap with HDR colorSpace which it gets it from MediaPlayer. In this case, the workaround in NativeImage::draw() will cause recursion.
The workaround draws the HDR NativeImage to a temporary ImageBuffer. This temporary ImageBuffer will have HDR colorSpace also because it will match the colorSpace of destinationContext which is the colorSpace of MediaPlayer. When we call ImageBuffer::draw(), a temporary NativeImage will be created from this ImageBuffer. This NativeImage will have HDR colorSpace also. So when NativeImage::draw() is called from ImageBuffer::draw(), it will go through the workaround code path again. This will cause an infinite recursion.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Said Abou-Hallawa
rdar://106055782
Said Abou-Hallawa
Pull request: https://github.com/WebKit/WebKit/pull/10970
Said Abou-Hallawa
rdar://106017462
EWS
Committed 261149@main (9180e60fc30a): <https://commits.webkit.org/261149@main>
Reviewed commits have been landed. Closing PR #10970 and removing active labels.