Revision cf5f3898987ec02aa02c02cb945c2abcc5307737 authored by Avi Drissman on 13 April 2018, 19:50:51 UTC, committed by Chromium WPT Sync on 13 April 2018, 19:50:51 UTC
This reverts commit 0ade0386aa4168b48234bc7f33d30a62140b95ea.

Reason for revert:
Unexpected Failures:
* bindings/sequence-type.html
* custom-elements/spec/define-element.html
* external/wpt/custom-elements/CustomElementRegistry.html

on
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Mac10.11%20%28dbg%29/
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20%28dbg%29/

Speculatively reverting this to see if it's the cause.

Original change's description:
> Web Animations: Fix bugs in procedure to process a keyframes argument
>
> There were three minor bugs left in the implementation:
>
>   - We threw on lists-in-custom-iterators instead of just ignoring them.
>   - We returned all properties on the keyframe rather than just those
>     defined on the keyframe itself (e.g. we would include prototype
>     properties, against spec).
>   - We didn't access the properties in ascending unicode order.
>
> Bug: 827573
> Change-Id: I213ae5b24e1f35d7f28d16625025122950a6ba88
> Reviewed-on: https://chromium-review.googlesource.com/989261
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Reviewed-by: Robert Flack <flackr@chromium.org>
> Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#550641}

TBR=flackr@chromium.org,yukishiino@chromium.org,jbroman@chromium.org,haraken@chromium.org,smcgruer@chromium.org

Change-Id: I5e8dc0c67599492bd6e90fca4a034e29e334ef88
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 827573
Reviewed-on: https://chromium-review.googlesource.com/1012857
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550721}
1 parent e6cffaa
Raw File
interfaces.html
<!doctype html>
<meta charset=utf-8>
<title>Media Source Extensions IDL tests</title>
<div id=log></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
<script type=text/plain class=untested>
interface EventTarget {
  void addEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
  void removeEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
  boolean dispatchEvent(Event event);
};
interface EventHandler {};
interface URL {};
interface HTMLVideoElement {};
interface AudioTrack {};
interface AudioTrackList {};
interface VideoTrack {};
interface VideoTrackList {};
interface TextTrack {};
interface TextTrackList {};
interface TimeRanges {};
typedef double DOMHighResTimeStamp;
</script>
<script type=text/plain>
[Constructor]
interface MediaSource : EventTarget {
    readonly attribute SourceBufferList    sourceBuffers;
    readonly attribute SourceBufferList    activeSourceBuffers;
    readonly attribute ReadyState          readyState;
             attribute unrestricted double duration;
             attribute EventHandler        onsourceopen;
             attribute EventHandler        onsourceended;
             attribute EventHandler        onsourceclose;
    SourceBuffer addSourceBuffer(DOMString type);
    void         removeSourceBuffer(SourceBuffer sourceBuffer);
    void         endOfStream(optional EndOfStreamError error);
    void         setLiveSeekableRange(double start, double end);
    void         clearLiveSeekableRange();
    static boolean isTypeSupported(DOMString type);
};

interface SourceBuffer : EventTarget {
             attribute AppendMode          mode;
    readonly attribute boolean             updating;
    readonly attribute TimeRanges          buffered;
             attribute double              timestampOffset;
    readonly attribute AudioTrackList      audioTracks;
    readonly attribute VideoTrackList      videoTracks;
    readonly attribute TextTrackList       textTracks;
             attribute double              appendWindowStart;
             attribute unrestricted double appendWindowEnd;
             attribute EventHandler        onupdatestart;
             attribute EventHandler        onupdate;
             attribute EventHandler        onupdateend;
             attribute EventHandler        onerror;
             attribute EventHandler        onabort;
    void appendBuffer(BufferSource data);
    void abort();
    void remove(double start, unrestricted double end);
};

interface SourceBufferList : EventTarget {
    readonly attribute unsigned long length;
             attribute EventHandler  onaddsourcebuffer;
             attribute EventHandler  onremovesourcebuffer;
    getter SourceBuffer (unsigned long index);
};

[Exposed=Window,DedicatedWorker,SharedWorker]
partial interface URL {
    static DOMString createObjectURL(MediaSource mediaSource);
};

partial interface AudioTrack {
    readonly attribute SourceBuffer? sourceBuffer;
};

partial interface VideoTrack {
    readonly attribute SourceBuffer? sourceBuffer;
};

partial interface TextTrack {
    readonly attribute SourceBuffer? sourceBuffer;
};

enum EndOfStreamError {
    "network",
    "decode"
};

enum AppendMode {
    "segments",
    "sequence"
};

enum ReadyState {
    "closed",
    "open",
    "ended"
};
</script>
<script>
"use strict";
setup({ explicit_done: true });
var mediaSource;
var sourceBuffer;
var video = document.createElement("video");
var idlCheck = function() {
  var idlArray = new IdlArray();
  [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
    if (node.className == "untested") {
      idlArray.add_untested_idls(node.textContent);
    } else {
      idlArray.add_idls(node.textContent);
    }
  });
  idlArray.add_objects({
    MediaSource: ['mediaSource'],
    SourceBuffer: ['sourceBuffer'],
    SourceBufferList: ['mediaSource.sourceBuffers']
  });
  idlArray.test();
  done();
}
mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", function () {
  var defaultType ='video/webm;codecs="vp8,vorbis"';
  if (MediaSource.isTypeSupported(defaultType)) {
    sourceBuffer = mediaSource.addSourceBuffer(defaultType);
  } else {
    sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
  }
  sourceBuffer.addEventListener("updateend", function (e) {
    mediaSource.endOfStream();
    idlCheck();
  });
  sourceBuffer.appendBuffer(new ArrayBuffer());
});
</script>
back to top