[Webkit-unassigned] [Bug 174230] New: REGRESSION(r219045): A partially loaded image may not be repainted when its complete frame finishes decoding

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jul 6 17:26:44 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=174230

            Bug ID: 174230
           Summary: REGRESSION(r219045): A partially loaded image may not
                    be repainted when its complete frame finishes decoding
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Images
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: sabouhallawa at apple.com

After <http://trac.webkit.org/changeset/219045>, assume we have only one image in a page and this image is loaded into separate chunks. Assume the following sequence of events happens:

1. Part-1 of image is loaded.
2. Image rectangle is repainted.
3. BitmapImage::draw() is called.
4. Request-1 has been requested for Part-1 of this image.
5. RenderImage adds itself to CachedImage::m_pendingImageDrawingClients.
6. Part-2 of image is loaded.
7. Image rectangle is repainted.
8. BitmapImage::draw() is called.
9. Request-2 has been requested for Part-2 of this image. The request will happen BitmapImage::draw() allows multiple requests for the same frame if new data is added to the image source.
10. RenderImage will not add itself to CachedImage::m_pendingImageDrawingClients since it is already there.
11. BitmapImage::imageFrameAvailableAtIndex() is called for Request-1.
12. CachedImage::imageFrameAvailable() repaints the image rectangle and "clears its m_pendingImageDrawingClients".
13. BitmapImage::draw() is called.
14. Frame for Request-1 is drawn.
15. BitmapImage::imageFrameAvailableAtIndex() is called for Request-2.
16. CachedImage::imageFrameAvailable() does not repaint the image rectangle because its m_pendingImageDrawingClients is empty.

Result: we end up having incomplete frame for the image even after the image finishes loading.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170707/02975323/attachment.html>


More information about the webkit-unassigned mailing list