<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Asynchronously decoded image frames should not be destroyed when switching encoded data buffers"
   href="https://bugs.webkit.org/show_bug.cgi?id=170408">170408</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Asynchronously decoded image frames should not be destroyed when switching encoded data buffers
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Images
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>sabouhallawa&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>When switching the encoded data buffers, it would be better if we could somehow tell the ImageDecoder to swap in the new contents without destroying anything. But right now the native ImageDecoder does not have a mechanism to do that so WebKit simply destroys all the decoded frames and then deletes the ImageDecoder itself. Then it sets the new data in the ImageSource which will recreate a new ImageDecoder.

For async image decoding, this aggressive flushing mechanism is not actually needed. The asynchronously decoded image frames are owned by WebKit. They are not referenced by the native ImageDecoder. Destroying them and re-decoding them again will generate exactly the same image frames. More importantly, destroying the decoded image frames, can cause flickering because the image can not be drawn till the second decode finish.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>