<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 - Cannot clear a MediaSource SourceBuffer in Safari 9 and WebKit nightly"
   href="https://bugs.webkit.org/show_bug.cgi?id=159230">159230</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Cannot clear a MediaSource SourceBuffer in Safari 9 and WebKit nightly
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>Safari 9
          </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>Media Elements
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>joeyparrish&#64;google.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Shaka Player (<a href="https://github.com/google/shaka-player">https://github.com/google/shaka-player</a>) discovered that Safari does not completely remove buffered ranges.

In our test, we append 30 seconds of data (from 0 to about 30s), then remove from 0 to 60.  Even though this removal encompasses all data in buffer, Safari leaves behind a tiny buffered range (less than 1 trillionth of a second).  This causes confusion in MSE apps like ours which make decisions based on where the end of the buffer is.

To reproduce:

1. Visit <a href="http://storage.googleapis.com/shaka-demo-assets/_bugs/safari-mse-clear/index.html">http://storage.googleapis.com/shaka-demo-assets/_bugs/safari-mse-clear/index.html</a> in Safari
2. Open the JavaScript console
3. Observe information about the steps that were taken

In Chrome, Firefox, Opera, Edge, and IE 11, the result is that nothing is buffered after removing the range from 0-60.

In Safari 9, the result is that there is still a buffered range.  You will see a failed assertion in the console after loading our test page.

OS X El Capitan, Safari 9.0.3 (11601.4.4) and in WebKit nightly r202569.</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>