diff --git a/source b/source index 5052495dfbb..0f0aba9cbfb 100644 --- a/source +++ b/source @@ -39080,9 +39080,10 @@ interface MediaError { data-x="dom-media-readyState">readyState is HAVE_NOTHING, then it must set the media element's default playback start position to the new value; otherwise, it must - set the official playback position to the new value and then seek to the new value. The new value must be interpreted as being - in seconds.

+ seek to the new value. The new value must be interpreted as + being in seconds. The value returned upon setting must be the new value, not the official playback + position after it has been modified by the synchronous steps of the seek.

If the media resource is a streaming resource, then the user agent might be unable @@ -39611,8 +39612,9 @@ interface MediaError {

  • The direction of playback is forwards, and

  • -
  • The media element does not have a loop attribute specified.

  • +
  • The media element did not have a loop attribute specified the last time that playback + reached the end of the media resource.

  • Or:

    @@ -39689,13 +39691,20 @@ interface MediaError { agent must follow these steps:

      -
    1. If the media element has a loop - attribute specified, then seek to the earliest - possible position of the media resource and return.

    2. - +
    3. +

      If the media element has a loop + attribute specified, then:

      + +
        +
      1. If paused is false, + seek to the earliest possible position of the media resource + and return.

      2. + +
      +
    4. As defined above, the ended IDL attribute starts returning true once the event loop returns to step 1.

    5. @@ -39944,7 +39953,10 @@ interface MediaError { data-x="dom-media-readyState">readyState attribute has the value HAVE_FUTURE_DATA or HAVE_ENOUGH_DATA: notify about playing - for the element.

      + for the element, and if playback was paused and loop was specified the last time playback reached the end (i.e. when the official playback + position is still the duration at this step), seek to the earliest + possible position.

    @@ -40378,11 +40390,6 @@ interface MediaError {
  • Set the seeking IDL attribute to true.

  • -
  • If the seek was in response to a DOM method call or setting of an IDL attribute, then - continue the script. The remainder of these steps must be run in parallel. With the exception - of the steps marked with ⌛, they could be aborted at any time by another instance of this - algorithm being invoked.

  • -
  • If the new playback position is later than the end of the media resource, then let it be the end of the media resource instead.

  • @@ -40399,6 +40406,14 @@ interface MediaError { data-x="dom-media-seekable">seekable attribute, then set the seeking IDL attribute to false and return.

    +
  • Set the official playback position to the new playback + position.

  • + +
  • If the seek was in response to a DOM method call or setting of an IDL attribute, then + continue the script. The remainder of these steps must be run in parallel. With the exception + of the steps marked with ⌛, they could be aborted at any time by another instance of this + algorithm being invoked.

  • +
  • If the approximate-for-speed flag is set, adjust the new playback position to a value that will allow for playback to resume promptly. If new