blob: d5ee4889499360e92530f7cbc97ecaa8ed2e48ca [file] [log] [blame]
// This file introduces / supplements and forces Dart declarations.
[DartSupplemental]
interface WaveShaperNode {
// TODO(ager): Auto-generate this custom method when the info about retaining
// typed arrays is in the IDL.
[Custom=Setter] attribute Float32Array curve;
};
[DartSupplemental]
interface AudioParam {
// TODO(ager): Auto-generate this custom method when the info about retaining
// typed arrays is in the IDL.
[Custom] void setValueCurveAtTime(Float32Array values, double time, double duration);
};
[DartSupplemental]
interface Document {
[Custom] Element createElement(DOMString tagName);
[Custom] Element createElement(DOMString localName, DOMString typeExtension);
[Custom] Element createElementNS(DOMString namespaceURI, DOMString qualifiedName);
[Custom] Element createElementNS(DOMString namespaceURI, DOMString qualifiedName, DOMString typeExtension);
[DartName=registerElement2] CustomElementConstructor registerElement(DOMString type, optional ElementRegistrationOptions options);
[DartSuppress] readonly attribute (HTMLScriptElement or SVGScriptElement)? currentScript;
readonly attribute HTMLScriptElement? currentScript;
};
[DartSupplemental]
interface Node {
[Custom] Node cloneNode([Default=Undefined] optional boolean deep);
[DartSuppress] readonly attribute Element nextElementSibling;
[DartSuppress] readonly attribute Element previousElementSibling;
};
[DartSupplemental]
interface ScriptProcessorNode {
[DartSuppress] attribute EventListener onaudioprocess;
[Custom] void _setEventListener(EventListener eventListener);
};
[DartSupplemental]
interface Element {
readonly attribute Element nextElementSibling;
readonly attribute Element previousElementSibling;
};
[DartSupplemental]
interface CharacterData {
readonly attribute Element nextElementSibling;
readonly attribute Element previousElementSibling;
};
[Callback]
interface TimeoutHandler {
void handleEvent();
};
[Callback]
interface RequestAnimationFrameCallback{
void handleEvent(double highResTime);
};
// FIXME(leafp): This is a temporary hack to get things running while
// we are still generating _blink from the dart side idl files.
// Once we are up and running generating dart:_blink in dartium
// this should go away.
[DartSupplemental]
interface URL {
[DartSuppress] static DOMString createObjectURL(WebKitMediaSource source);
};
[DartSupplemental]
interface CanvasRenderingContext2D {
[DartName=createImageDataFromImageData] ImageData createImageData(ImageData imagedata);
// Removed in 1916.
[DartSuppress] void drawSystemFocusRing(Element element);
[DartSuppress] void assert(boolean condition);
[DartSuppress] attribute boolean webkitImageSmoothingEnabled;
// Removed in 1985.
[DartSuppress] readonly attribute float webkitBackingStorePixelRatio;
};
interface HTMLCanvasElement {
[DartSuppress] DOMString toDataURL([TreatNullAs=NullString, Default=Undefined] DOMString type);
[Custom] DOMString toDataURL([TreatNullAs=NullString, Default=Undefined] DOMString type, optional float quality);
};
[DartSupplemental]
interface HTMLOptionsCollection {
[DartSuppress] void add(optional HTMLOptionElement element, optional long before);
[DartSuppress] void remove(HTMLOptionElement option); // Non standard.
};
[DartSupplemental]
interface HTMLSelectElement {
[DartSuppress] void add([Default=Undefined] HTMLElement element, [Default=Undefined] HTMLElement before);
[DartSuppress, Custom] void remove();
[DartSuppress] void remove(long index);
[DartSuppress] void remove(HTMLOptionElement option); // Non standard.
};
[DartSupplemental]
interface HTMLMediaElement {
// Adding media events.
attribute EventListener oncanplay;
attribute EventListener oncanplaythrough;
attribute EventListener ondurationchange;
attribute EventListener onemptied;
attribute EventListener onended;
attribute EventListener onloadeddata;
attribute EventListener onloadedmetadata;
attribute EventListener onloadstart;
attribute EventListener onpause;
attribute EventListener onplay;
attribute EventListener onplaying;
attribute EventListener onprogress;
attribute EventListener onratechange;
attribute EventListener onseeked;
attribute EventListener onseeking;
attribute EventListener onshow;
attribute EventListener onstalled;
attribute EventListener onsuspend;
attribute EventListener ontimeupdate;
attribute EventListener onvolumechange;
attribute EventListener onwaiting;
attribute EventListener onwheel;
};
[DartSupplemental]
interface RTCPeerConnection {
[DartSuppress, RaisesException] void addIceCandidate(RTCIceCandidate candidate);
[DartSuppress] Promise<void> getStats(RTCStatsCallback successCallback, optional MediaStreamTrack? selector);
[DartSuppress] Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
[DartSuppress] Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
};
// See implementation in tools/dom/templates for canvas and offscreenCanvas.
interface WebGLCanvas {
};
[DartSupplemental]
interface WebGL2RenderingContext {
[DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
readonly attribute WebGLCanvas canvas;
};
[DartSupplemental]
interface WebGLRenderingContext {
[DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
readonly attribute HTMLCanvasElement canvas;
};
[DartSupplemental]
interface WebGL2RenderingContextBase {
[DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
readonly attribute WebGLCanvas canvas;
[DartName=bufferData2] void bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage, GLuint srcOffset, optional GLuint length = 0);
[DartName=bufferSubData2] void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] ArrayBufferView srcData, GLuint srcOffset, optional GLuint length = 0);
[DartName=compressedTexImage2D2] void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
GLsizei width, GLsizei height, GLint border,
[AllowShared] ArrayBufferView data, GLuint srcOffset,
optional GLuint srcLengthOverride = 0);
[DartName=compressedTexImage2D3] void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
GLsizei width, GLsizei height, GLint border,
GLsizei imageSize, GLintptr offset);
[DartName=compressedTexSubImage2D2] void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height, GLenum format,
[AllowShared] ArrayBufferView data, GLuint srcOffset,
optional GLuint srcLengthOverride = 0);
[DartName=compressedTexSubImage2D3] void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height, GLenum format,
GLsizei imageSize, GLintptr offset);
[DartName=compressedTexImage3D2] void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat,
GLsizei width, GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, GLintptr offset);
[DartName=compressedTexSubImage3D2] void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, GLintptr offset);
[DartName=readPixels2] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView dstData, GLintptr offset);
[DartName=readPixels2] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLintptr offset);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLintptr offset);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ImageData data);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLImageElement image);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLCanvasElement canvas);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLVideoElement video);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ImageBitmap bitmap);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, GLuint srcOffset);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLintptr offset);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, ImageData data);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLImageElement image);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLCanvasElement canvas);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLVideoElement video);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, ImageBitmap bitmap);
[DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, GLuint srcOffset);
[DartName=uniform1fv2] void uniform1fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform1fv2] void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform2fv2] void uniform2fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform2fv2] void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform3fv2] void uniform3fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform3fv2] void uniform3fv(WebGLUniformLocation? location, sequence<GLfloat> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform4fv2] void uniform4fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform4fv2] void uniform4fv(WebGLUniformLocation? location, sequence<GLfloat> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform1iv2] void uniform1iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform1iv2] void uniform1iv(WebGLUniformLocation? location, sequence<GLint> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform2iv2] void uniform2iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform2iv2] void uniform2iv(WebGLUniformLocation? location, sequence<GLint> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform3iv2] void uniform3iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform3iv2] void uniform3iv(WebGLUniformLocation? location, sequence<GLint> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform4iv2] void uniform4iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniform4iv2] void uniform4iv(WebGLUniformLocation? location, sequence<GLint> v,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix2fv2] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix2fv2] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix3fv2] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix3fv2] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix4fv2] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
GLuint srcOffset, optional GLuint srcLength = 0);
[DartName=uniformMatrix4fv2] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
GLuint srcOffset, optional GLuint srcLength = 0);
};
[DartSupplemental]
interface WebGLContextEvent {
[DartSuppress] void initEvent(optional DOMString eventTypeArg,
optional boolean canBubbleArg,
optional boolean cancelableArg,
optional DOMString statusMessageArg);
};
// TODO(vsm): Define new names for these (see b/4436830).
[DartSupplemental]
interface IDBCursor {
[DartName=next, CallWith=ExecutionContext, ImplementedAs=continueFunction, RaisesException] void continue([DartForceOptional] optional any key);
};
[DartSupplemental]
interface IDBIndex {
[CallWith=ExecutionContext, RaisesException] IDBRequest count([Default=Undefined] optional any key);
};
[DartSupplemental]
interface HTMLMediaElement {
DOMString canPlayType([Default=Undefined] optional DOMString type, [Default=Undefined, TreatNullAs=NullString, DartForceOptional] optional DOMString keySystem);
};
[DartSupplemental]
interface IDBKeyRange {
[DartName=only_] static IDBKeyRange only(any value);
[DartName=lowerBound_] static IDBKeyRange lowerBound(any bound, [DartForceOptional] optional boolean open);
[DartName=upperBound_] static IDBKeyRange upperBound(any bound, [DartForceOptional] optional boolean open);
[DartName=bound_] static IDBKeyRange bound(any lower, any upper, [DartForceOptional] optional boolean lowerOpen, [DartForceOptional] optional boolean upperOpen);
};
[DartSupplemental]
interface IDBObjectStore {
[CallWith=ScriptState, RaisesException] IDBRequest put(any value, [DartForceOptional] optional any key);
[CallWith=ScriptState, RaisesException] IDBRequest add(any value, [DartForceOptional] optional any key);
};
interface EntrySync {
// Native implementation is declared to return EntrySync.
[DartSuppress] DirectoryEntrySync getParent();
EntrySync getParent();
};
// Need to add for Blob which are really File that extends a Blob when called
// via file() method on FileEntry
callback interface FileCallback {
void handleEvent(File? file);
};
[DartSupplemental]
interface FileEntry {
[DartSuppress] void file(BlobCallback successCallback, optional ErrorCallback errorCallback);
void file(FileCallback successCallback, optional ErrorCallback errorCallback);
};
[DartSupplemental,
CustomConstructor,
Constructor(Array blobParts, optional DOMString type, optional DOMString endings)
]
interface Blob {
};
[DartSupplemental, Callback] // Add missing Callback attribute.
interface VoidCallback {
};
interface SVGNumber {
[DartStrictTypeChecking, Custom] attribute float value;
};
[DartSupplemental]
interface MediaDevices {
[DartSuppress] Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints);
};
[DartSupplemental]
interface Navigator {
[DartSuppress] void getUserMedia(MediaStreamConstraints constraints,
NavigatorUserMediaSuccessCallback successCallback,
NavigatorUserMediaErrorCallback errorCallback);
};
[DartSupplemental,
CustomConstructor,
// Provide missing constructor signature.
Constructor(optional HTMLFormElement form)]
interface FormData {
[DartSuppress] void append(DOMString name, DOMString value, DOMString filename);
[Custom] void append(DOMString name, DOMString value);
[Custom] void append(DOMString name, Blob value, optional DOMString filename);
};
[DartSupplemental, Constructor]
interface XMLHttpRequest {
[Custom] void send();
[Custom] void send(ArrayBuffer data); // FIXME: this should be eventually deprecated.
[Custom] void send(ArrayBufferView data);
[Custom] void send(Blob data);
[Custom] void send(Document data);
[Custom] void send([DartStrictTypeChecking] DOMString data);
[Custom] void send(FormData data);
};
[DartSuppress]
interface AbstractView {};
[DartSuppress]
interface JavaScriptCallFrame {};
[DartSupplemental]
interface Location {
[DartSuppress] attribute URLString href;
[Custom=Setter] attribute DOMString href;
[Custom=Setter] attribute TrustedURL trustedHref;
[Custom] void assign(optional DOMString url);
[Custom] void replace([Default=Undefined] optional DOMString url);
[Custom] void reload();
// URI decomposition attributes
[Custom=Setter] attribute DOMString protocol;
[Custom=Setter] attribute DOMString host;
[Custom=Setter] attribute DOMString hostname;
[Custom=Setter] attribute DOMString port;
[Custom=Setter] attribute DOMString pathname;
[Custom=Setter] attribute DOMString search;
[Custom=Setter] attribute DOMString hash;
};
// TODO(jacobr): reenable these new Blink features.
[DartSuppress]
interface ImageBitmapFactories {};
[DartSupplemental]
interface ImageData {
[DartSuppress] ImageDataColorSettings getColorSettings();
// Below needs 'any' because ImageDataArray is union of (Uint8ClampedArray
// or Uint16Array or Float32Array)
[DartSuppress] readonly attribute any dataUnion;
};
[DartSupplemental,
CustomConstructor,
Constructor()
]
interface MessageChannel {
};
// See https://chromiumcodereview.appspot.com/15901002 for the V8 implementation of
// TextEncoder/TextDecoder
[DartSuppress]
interface TextEncoder {};
[DartSuppress]
interface TextDecoder {};
[DartSupplemental]
interface Window : EventTarget {
[DartSuppress] void alert();
[DartSuppress] void alert(DOMString message);
void alert(optional DOMString message);
[DartSuppress] void scrollBy(long x, long y);
[DartSuppress] void scrollBy(long x, long y, Dictionary scrollOptions);
[RaisesException] void scrollBy(long x, long y, optional Dictionary scrollOptions);
[DartSuppress] void scrollTo(long x, long y);
[DartSuppress] void scrollTo(long x, long y, Dictionary scrollOptions);
[RaisesException] void scrollTo(long x, long y, optional Dictionary scrollOptions);
[DartSuppress] void scroll(long x, long y);
[DartSuppress] void scroll(long x, long y, Dictionary scrollOptions);
[RaisesException] void scroll(long x, long y, optional Dictionary scrollOptions);
};
[DartSupplemental]
interface CanvasRenderingContext2D {
[DartSuppress] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy);
[DartSuppress] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
[DartSuppress] ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
};
[DartSupplemental]
interface AudioParam {
[DartSuppress] void setTargetValueAtTime(float target, double time, double timeConstant);
void setTargetAtTime(float target, double time, double timeConstant);
};
[DartSupplemental]
interface AudioContext {
// Number of AudioBufferSourceNodes that are currently playing.
[DartSuppress] readonly attribute unsigned long activeSourceCount;
[DartSuppress] ScriptProcessorNode createJavaScriptNode(unsigned long bufferSize, optional unsigned long numberOfInputChannels, optional unsigned long numberOfOutputChannels);
[DartSuppress] AudioBuffer createBuffer(ArrayBuffer? buffer, boolean mixToMono);
[DartSuppress] GainNode createGainNode();
[DartSuppress] DelayNode createDelayNode(optional double maxDelayTime);
};
[DartSupplemental]
interface HTMLInputElement {
[DartSuppress] attribute boolean webkitSpeech;
[DartSuppress] attribute boolean webkitGrammar;
};
[DartSupplemental]
interface ShadowRoot {
[DartSuppress] attribute boolean applyAuthorStyles;
};
[DartSupplemental]
interface BeforeLoadEvent {
[DartSuppress] readonly attribute DOMString url;
};
[DartSupplemental]
interface OscillatorNode {
[DartSuppress] readonly attribute unsigned short playbackState;
};
[DartSupplemental]
interface SVGElementInstance {
[DartSuppress] readonly attribute SVGElementInstanceList childNodes;
};
[DartSupplemental]
interface DOMImplementation {
[DartSuppress] CSSStyleSheet createCSSStyleSheet([Default=Undefined] optional DOMString title,
[Default=Undefined] optional DOMString media);
[DartSuppress] Document createHTMLDocument(optional DOMString title);
HTMLDocument createHTMLDocument(optional DOMString title);
};
[DartSupplemental]
interface DOMRect {
[DartSuppress] static DOMRect fromRect(optional DOMRectInit other);
};
[DartSupplemental]
interface SVGSVGElement {
[DartSuppress] attribute DOMString contentStyleType;
[DartSuppress] attribute DOMString contentScriptType;
};
[DartSupplemental]
interface AudioBuffer {
[DartSuppress] attribute float gain;
};
[DartSupplemental]
interface WorkerCrypto {
[DartSuppress] ArrayBufferView getRandomValues(ArrayBufferView array);
};
[DartSupplemental]
interface HTMLFormElement {
void requestAutocomplete([Default=Undefined] optional Dictionary details);
[DartSuppress] void requestAutocomplete();
};
[DartSupplemental]
interface AudioBufferSourceNode {
[DartSuppress] readonly attribute unsigned short playbackState;
};
[DartSupplemental]
interface AudioScheduledSourceNode {
[DartName=start2] void start(optional double when);
};
// Remove operation requestFullscreen only use webKitRequestFullscreen.
[DartSupplemental]
interface Element : Node {
[DartSuppress] void requestFullscreen();
};
[DartSupplemental]
interface CSS {
[DartName=inch] static CSSUnitValue in(double value);
};
[DartSupplemental]
interface CSSStyleDeclaration {
// Expose __propertyQuery__ a getter with a special operation in the IDL
// when used with Custom=PropertyQuery will emit __propertyQuery__.
[Custom=PropertyQuery] getter boolean (DOMString name);
};
[DartSupplemental]
interface MIDIOutput : MIDIPort {
// TODO(terry): Need to support both send operations where the first param
// is Uint8Array or sequence<unsigned long>. For now suppress
// the new operation. Vijay suggestion, and I think this makes
// sense, change dart:html to have a send operation that takes
// a List<int> and have custom handler to call the correct
// method. The dart:blink library needs to do something else
// postfix the name with send_sequence (?).
[DartSuppress] void send(sequence<unsigned long> data, optional double timestamp);
};
// Tweaks types required for Dart strong mode.
[DartSupplemental]
interface HTMLCollection {
// FIXME: The index argument should not be optional.
getter Node? item([Default=Undefined] optional unsigned long index);
getter any namedItem(DOMString name);
[DartSuppress] getter Element? item([Default=Undefined] optional unsigned long index);
[DartSuppress] getter Element? namedItem(DOMString name);
};
[DartSupplemental]
interface Performance {
[DartSuppress] void webkitClearResourceTimings();
[DartSuppress] void webkitSetResourceTimingBufferSize(unsigned long maxSize);
[DartSuppress] attribute EventHandler onwebkitresourcetimingbufferfull;
};
[DartSupplemental]
interface CalcLength {
[DartName=inch] readonly attribute double? in;
};
[DartSuppress]
interface DragEvent {};
[DartSuppress]
interface InputEvent {};
[DartSuppress]
interface Scale {};
Element implements GlobalEventHandlers;
// This only exists in Safari, and is deprecated there. But include it anyway
// because otherwise iterating CSSRules in Safari can yield unknown JS objects.
interface CSSCharsetRule : CSSRule {
[MeasureAs=CSSCharsetRuleEncoding] attribute DOMString encoding;
};
[DartSupplemental]
interface Event {
[DartSuppress] readonly attribute object path;
};
[DartSupplemental]
interface EventTarget {
[DartSuppress] void addEventListener(DOMString type, EventListener? listener, optional (AddEventListenerOptions or boolean) options);
[DartSuppress] void removeEventListener(DOMString type, EventListener? listener, optional (EventListenerOptions or boolean) options);
[Custom] void addEventListener(DOMString type, EventListener? listener, optional boolean options);
[Custom] void removeEventListener(DOMString type, EventListener? listener, optional boolean options);
};