interface HTMLCollection { readonly attribute unsigned long length; [IndexGetter] Element item(in unsigned long index); [NameGetter] Element namedItem(in DOMString name); }; interface HTMLFormControlsCollection { readonly attribute unsigned long length; [IndexGetter] HTMLElement item(in unsigned long index); [NameGetter] Object namedItem(in DOMString name); }; interface HTMLOptionsCollection { attribute unsigned long length; [IndexGetter] HTMLOptionElement item(in unsigned long index); [NameGetter] Object namedItem(in DOMString name); void add(in HTMLElement element, in HTMLElement before); void add(in HTMLElement element, in long before); void remove(in long index); }; [Stringifies] interface DOMTokenList { readonly attribute unsigned long length; [IndexGetter] DOMString item(in unsigned long index); boolean has(in DOMString token); void add(in DOMString token); void remove(in DOMString token); boolean toggle(in DOMString token); }; interface DOMStringMap { [NameGetter] DOMString XXX1(in DOMString name); [NameSetter] void XXX2(in DOMString name, in DOMString value); [XXX] boolean XXX3(in DOMString name); }; interface HTMLDocument { // resource metadata management [PutForwards=href] readonly attribute Location location; readonly attribute DOMString URL; attribute DOMString domain; readonly attribute DOMString referrer; attribute DOMString cookie; readonly attribute DOMString lastModified; readonly attribute DOMString compatMode; attribute DOMString charset; readonly attribute DOMString characterSet; readonly attribute DOMString defaultCharset; readonly attribute DOMString readyState; // DOM tree accessors attribute DOMString title; attribute DOMString dir; attribute HTMLElement body; readonly attribute HTMLCollection images; readonly attribute HTMLCollection embeds; readonly attribute HTMLCollection plugins; readonly attribute HTMLCollection links; readonly attribute HTMLCollection forms; readonly attribute HTMLCollection anchors; readonly attribute HTMLCollection scripts; NodeList getElementsByName(in DOMString elementName); NodeList getElementsByClassName(in DOMString classNames); // dynamic markup insertion attribute DOMString innerHTML; HTMLDocument open(); HTMLDocument open(in DOMString type); HTMLDocument open(in DOMString type, in DOMString replace); Window open(in DOMString url, in DOMString name, in DOMString features); Window open(in DOMString url, in DOMString name, in DOMString features, in boolean replace); void close(); void write([Variadic] in DOMString text); void writeln([Variadic] in DOMString text); // user interaction Selection getSelection(); readonly attribute Element activeElement; boolean hasFocus(); attribute boolean designMode; boolean execCommand(in DOMString commandId); boolean execCommand(in DOMString commandId, in boolean showUI); boolean execCommand(in DOMString commandId, in boolean showUI, in DOMString value); boolean queryCommandEnabled(in DOMString commandId); boolean queryCommandIndeterm(in DOMString commandId); boolean queryCommandState(in DOMString commandId); boolean queryCommandSupported(in DOMString commandId); DOMString queryCommandValue(in DOMString commandId); readonly attribute HTMLCollection commands; }; interface HTMLElement : Element { // DOM tree accessors NodeList getElementsByClassName(in DOMString classNames); // dynamic markup insertion attribute DOMString innerHTML; attribute DOMString outerHTML; void insertAdjacentHTML(in DOMString position, in DOMString text); // metadata attributes attribute DOMString id; attribute DOMString title; attribute DOMString lang; attribute DOMString dir; attribute DOMString className; readonly attribute DOMTokenList classList; readonly attribute DOMStringMap dataset; // user interaction attribute boolean hidden; void click(); void scrollIntoView(); void scrollIntoView(in boolean top); attribute long tabIndex; void focus(); void blur(); attribute boolean draggable; attribute DOMString contentEditable; readonly attribute boolean isContentEditable; attribute HTMLMenuElement contextMenu; // styling readonly attribute CSSStyleDeclaration style; // event handler DOM attributes attribute EventListener onabort; attribute EventListener onbeforeunload; attribute EventListener onblur; attribute EventListener onchange; attribute EventListener onclick; attribute EventListener oncontextmenu; attribute EventListener ondblclick; attribute EventListener ondrag; attribute EventListener ondragend; attribute EventListener ondragenter; attribute EventListener ondragleave; attribute EventListener ondragover; attribute EventListener ondragstart; attribute EventListener ondrop; attribute EventListener onerror; attribute EventListener onfocus; attribute EventListener onhashchange; attribute EventListener onkeydown; attribute EventListener onkeypress; attribute EventListener onkeyup; attribute EventListener onload; attribute EventListener onmessage; attribute EventListener onmousedown; attribute EventListener onmousemove; attribute EventListener onmouseout; attribute EventListener onmouseover; attribute EventListener onmouseup; attribute EventListener onmousewheel; attribute EventListener onresize; attribute EventListener onscroll; attribute EventListener onselect; attribute EventListener onstorage; attribute EventListener onsubmit; attribute EventListener onunload; }; interface HTMLBaseElement : HTMLElement { attribute DOMString href; attribute DOMString target; }; interface HTMLLinkElement : HTMLElement { attribute boolean disabled; attribute DOMString href; attribute DOMString rel; readonly attribute DOMTokenList relList; attribute DOMString media; attribute DOMString hreflang; attribute DOMString type; attribute DOMString sizes; }; interface HTMLMetaElement : HTMLElement { attribute DOMString content; attribute DOMString name; attribute DOMString httpEquiv; }; interface HTMLStyleElement : HTMLElement { attribute boolean disabled; attribute DOMString media; attribute DOMString type; attribute boolean scoped; }; interface HTMLScriptElement : HTMLElement { attribute DOMString src; attribute boolean async; attribute boolean defer; attribute DOMString type; attribute DOMString charset; attribute DOMString text; }; interface HTMLEventSourceElement : HTMLElement { attribute DOMString src; }; interface HTMLBodyElement : HTMLElement {}; interface HTMLQuoteElement : HTMLElement { attribute DOMString cite; }; interface HTMLOListElement : HTMLElement { attribute boolean reversed; attribute long start; }; interface HTMLLIElement : HTMLElement { attribute long value; }; [Stringifies=href] interface HTMLAnchorElement : HTMLElement { attribute DOMString href; attribute DOMString target; attribute DOMString ping; attribute DOMString rel; readonly attribute DOMTokenList relList; attribute DOMString media; attribute DOMString hreflang; attribute DOMString type; }; interface HTMLTimeElement : HTMLElement { attribute DOMString dateTime; readonly attribute DOMTimeStamp date; readonly attribute DOMTimeStamp time; readonly attribute DOMTimeStamp timezone; }; interface HTMLProgressElement : HTMLElement { attribute float value; attribute float max; readonly attribute float position; }; interface HTMLMeterElement : HTMLElement { attribute float value; attribute float min; attribute float max; attribute float low; attribute float high; attribute float optimum; }; interface HTMLModElement : HTMLElement { attribute DOMString cite; attribute DOMString dateTime; }; [NamedConstructor=Image(), NamedConstructor=Image(in unsigned long width), NamedConstructor=Image(in unsigned long width, in unsigned long height)] interface HTMLImageElement : HTMLElement { attribute DOMString alt; attribute DOMString src; attribute DOMString useMap; attribute boolean isMap; attribute unsigned long width; attribute unsigned long height; readonly attribute boolean complete; }; interface HTMLIFrameElement : HTMLElement { attribute DOMString src; attribute DOMString name; attribute DOMString sandbox; attribute boolean seamless; attribute unsigned long width; attribute unsigned long height; }; interface HTMLEmbedElement : HTMLElement { attribute DOMString src; attribute DOMString type; attribute unsigned long width; attribute unsigned long height; }; interface HTMLObjectElement : HTMLElement { attribute DOMString data; attribute DOMString type; attribute DOMString name; attribute DOMString useMap; attribute unsigned long width; attribute unsigned long height; }; interface HTMLParamElement : HTMLElement { attribute DOMString name; attribute DOMString value; }; interface HTMLVideoElement : HTMLMediaElement { attribute unsigned long width; attribute unsigned long height; readonly attribute unsigned long videoWidth; readonly attribute unsigned long videoHeight; attribute DOMString poster; }; [NamedConstructor=Audio(), NamedConstructor=Audio(in DOMString url)] interface HTMLAudioElement : HTMLMediaElement { // no members }; interface HTMLSourceElement : HTMLElement { attribute DOMString src; attribute DOMString type; attribute DOMString media; attribute float pixelRatio; }; interface HTMLMediaElement : HTMLElement { // error state readonly attribute MediaError error; // network state attribute DOMString src; readonly attribute DOMString currentSrc; const unsigned short EMPTY = 0; const unsigned short LOADING = 1; const unsigned short LOADED_METADATA = 2; const unsigned short LOADED_FIRST_FRAME = 3; const unsigned short LOADED = 4; readonly attribute unsigned short networkState; readonly attribute float bufferingRate; readonly attribute boolean bufferingThrottled; readonly attribute TimeRanges buffered; readonly attribute ByteRanges bufferedBytes; readonly attribute unsigned long totalBytes; void load(); // ready state const unsigned short DATA_UNAVAILABLE = 0; const unsigned short CAN_SHOW_CURRENT_FRAME = 1; const unsigned short CAN_PLAY = 2; const unsigned short CAN_PLAY_THROUGH = 3; readonly attribute unsigned short readyState; readonly attribute boolean seeking; // playback state attribute float currentTime; readonly attribute float duration; readonly attribute boolean paused; attribute float defaultPlaybackRate; attribute float playbackRate; readonly attribute TimeRanges played; readonly attribute TimeRanges seekable; readonly attribute boolean ended; attribute boolean autoplay; void play(); void pause(); // looping attribute float start; attribute float end; attribute float loopStart; attribute float loopEnd; attribute unsigned long playCount; attribute unsigned long currentLoop; // cue ranges void addCueRange(in DOMString className, in DOMString id, in float start, in float end, in boolean pauseOnExit, in CueRangeCallback enterCallback, in CueRangeCallback exitCallback); void removeCueRanges(in DOMString className); // controls attribute boolean controls; attribute float volume; attribute boolean muted; }; interface MediaError { const unsigned short MEDIA_ERR_ABORTED = 1; const unsigned short MEDIA_ERR_NETWORK = 2; const unsigned short MEDIA_ERR_DECODE = 3; readonly attribute unsigned short code; }; interface VoidCallback { void handleEvent(); }; interface CueRangeCallback { void handleEvent(in DOMString id); }; interface TimeRanges { readonly attribute unsigned long length; float start(in unsigned long index); float end(in unsigned long index); }; interface ByteRanges { readonly attribute unsigned long length; unsigned long start(in unsigned long index); unsigned long end(in unsigned long index); }; interface HTMLCanvasElement : HTMLElement { attribute unsigned long width; attribute unsigned long height; DOMString toDataURL(); DOMString toDataURL(in DOMString type, [Variadic] in any args); DOMObject getContext(in DOMString contextId); }; interface CanvasRenderingContext2D { // back-reference to the canvas readonly attribute HTMLCanvasElement canvas; // state void save(); // push state on state stack void restore(); // pop state stack and restore state // transformations (default transform is the identity matrix) void scale(in float x, in float y); void rotate(in float angle); void translate(in float x, in float y); void transform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy); void setTransform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy); // compositing attribute float globalAlpha; // (default 1.0) attribute DOMString globalCompositeOperation; // (default source-over) // colors and styles attribute DOMObject strokeStyle; // (default black) attribute DOMObject fillStyle; // (default black) CanvasGradient createLinearGradient(in float x0, in float y0, in float x1, in float y1); CanvasGradient createRadialGradient(in float x0, in float y0, in float r0, in float x1, in float y1, in float r1); CanvasPattern createPattern(in HTMLImageElement image, in DOMString repetition); CanvasPattern createPattern(in HTMLCanvasElement image, in DOMString repetition); // line caps/joins attribute float lineWidth; // (default 1) attribute DOMString lineCap; // "butt", "round", "square" (default "butt") attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter") attribute float miterLimit; // (default 10) // shadows attribute float shadowOffsetX; // (default 0) attribute float shadowOffsetY; // (default 0) attribute float shadowBlur; // (default 0) attribute DOMString shadowColor; // (default transparent black) // rects void clearRect(in float x, in float y, in float w, in float h); void fillRect(in float x, in float y, in float w, in float h); void strokeRect(in float x, in float y, in float w, in float h); // path API void beginPath(); void closePath(); void moveTo(in float x, in float y); void lineTo(in float x, in float y); void quadraticCurveTo(in float cpx, in float cpy, in float x, in float y); void bezierCurveTo(in float cp1x, in float cp1y, in float cp2x, in float cp2y, in float x, in float y); void arcTo(in float x1, in float y1, in float x2, in float y2, in float radius); void rect(in float x, in float y, in float w, in float h); void arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise); void fill(); void stroke(); void clip(); boolean isPointInPath(in float x, in float y); // text attribute DOMString font; // (default 10px sans-serif) attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start") attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic") void fillText(in DOMString text, in float x, in float y); void fillText(in DOMString text, in float x, in float y, in float maxWidth); void strokeText(in DOMString text, in float x, in float y); void strokeText(in DOMString text, in float x, in float y, in float maxWidth); TextMetrics measureText(in DOMString text); // drawing images void drawImage(in HTMLImageElement image, in float dx, in float dy); void drawImage(in HTMLImageElement image, in float dx, in float dy, in float dw, in float dh); void drawImage(in HTMLImageElement image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh); void drawImage(in HTMLCanvasElement image, in float dx, in float dy); void drawImage(in HTMLCanvasElement image, in float dx, in float dy, in float dw, in float dh); void drawImage(in HTMLCanvasElement image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh); // pixel manipulation ImageData createImageData(in float sw, in float sh); ImageData getImageData(in float sx, in float sy, in float sw, in float sh); void putImageData(in ImageData imagedata, in float dx, in float dy); void putImageData(in ImageData imagedata, in float dx, in float dy, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight); }; interface CanvasGradient { // opaque object void addColorStop(in float offset, in DOMString color); }; interface CanvasPattern { // opaque object }; interface TextMetrics { readonly attribute float width; }; interface ImageData { readonly attribute unsigned long int width; readonly attribute unsigned long int height; readonly attribute CanvasPixelArray data; }; interface CanvasPixelArray { readonly attribute unsigned long length; [IndexGetter] octet XXX5(in unsigned long index); [IndexSetter] void XXX6(in unsigned long index, in octet value); }; interface HTMLMapElement : HTMLElement { attribute DOMString name; readonly attribute HTMLCollection areas; readonly attribute HTMLCollection images; }; interface HTMLAreaElement : HTMLElement { attribute DOMString alt; attribute DOMString coords; attribute DOMString shape; attribute DOMString href; attribute DOMString target; attribute DOMString ping; attribute DOMString rel; readonly attribute DOMTokenList relList; attribute DOMString media; attribute DOMString hreflang; attribute DOMString type; }; interface HTMLTableElement : HTMLElement { attribute HTMLTableCaptionElement caption; HTMLElement createCaption(); void deleteCaption(); attribute HTMLTableSectionElement tHead; HTMLElement createTHead(); void deleteTHead(); attribute HTMLTableSectionElement tFoot; HTMLElement createTFoot(); void deleteTFoot(); readonly attribute HTMLCollection tBodies; HTMLElement createTBody(); readonly attribute HTMLCollection rows; HTMLElement insertRow(in long index); void deleteRow(in long index); }; interface HTMLTableColElement : HTMLElement { attribute unsigned long span; }; interface HTMLTableSectionElement : HTMLElement { readonly attribute HTMLCollection rows; HTMLElement insertRow(in long index); void deleteRow(in long index); }; interface HTMLTableRowElement : HTMLElement { readonly attribute long rowIndex; readonly attribute long sectionRowIndex; readonly attribute HTMLCollection cells; HTMLElement insertCell(in long index); void deleteCell(in long index); }; interface HTMLTableDataCellElement : HTMLTableCellElement { attribute DOMString headers; }; interface HTMLTableHeaderCellElement : HTMLTableCellElement { attribute DOMString scope; }; interface HTMLTableCellElement : HTMLElement { attribute long colSpan; attribute long rowSpan; readonly attribute long cellIndex; }; interface HTMLFormElement : HTMLElement { attribute DOMString accept-charset; attribute DOMString action; attribute DOMString enctype; attribute DOMString method; attribute DOMString name; attribute DOMString target; readonly attribute HTMLFormControlsCollection elements; readonly attribute long length; [IndexGetter] HTMLElement XXX7(in unsigned long index); [NameGetter] Object XXX8(in DOMString name); void submit(); void reset(); boolean checkValidity(); void dispatchFormInput(); void dispatchFormChange(); }; interface HTMLFieldSetElement : HTMLElement { attribute boolean disabled; readonly attribute HTMLFormElement form; attribute DOMString name; readonly attribute DOMString type; readonly attribute HTMLFormControlsCollection elements; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); }; interface HTMLLabelElement : HTMLElement { readonly attribute HTMLFormElement form; attribute DOMString htmlFor; readonly attribute HTMLElement control; }; interface HTMLInputElement : HTMLElement { attribute DOMString accept; attribute DOMString action; attribute DOMString alt; attribute boolean autocomplete; attribute boolean autofocus; attribute boolean defaultChecked; attribute boolean checked; attribute boolean disabled; attribute DOMString enctype; readonly attribute HTMLFormElement form; readonly attribute HTMLElement list; attribute DOMString max; attribute long maxLength; attribute DOMString method; attribute DOMString min; attribute DOMString name; attribute DOMString pattern; attribute boolean readOnly; attribute boolean required; attribute unsigned long size; attribute DOMString src; attribute DOMString step; attribute DOMString target; attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; attribute DOMTimeStamp valueAsDate; attribute float valueAsNumber; readonly attribute HTMLOptionElement selectedOption; void stepUp(in int n); void stepDown(in int n); readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); readonly attribute NodeList labels; }; interface HTMLButtonElement : HTMLElement { attribute DOMString action; attribute boolean autofocus; attribute boolean disabled; attribute DOMString enctype; readonly attribute HTMLFormElement form; attribute DOMString method; attribute DOMString name; attribute DOMString target; attribute DOMString type; attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); readonly attribute NodeList labels; }; interface HTMLSelectElement : HTMLElement { attribute boolean autofocus; attribute boolean disabled; readonly attribute HTMLFormElement form; attribute boolean multiple; attribute DOMString name; attribute boolean size; readonly attribute DOMString type; readonly attribute HTMLOptionsCollection options; attribute unsigned long length; [IndexGetter] HTMLElement XXX9(in unsigned long index); void add(in HTMLElement element, in HTMLElement before); void add(in HTMLElement element, in long before); void remove(in long index); readonly attribute HTMLCollection selectedOptions; attribute long selectedIndex; attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); readonly attribute NodeList labels; }; interface HTMLDataListElement : HTMLElement { readonly attribute HTMLCollection options; }; interface HTMLOptGroupElement : HTMLElement { attribute boolean disabled; attribute DOMString label; }; [Constructor(), Constructor(in DOMString text), Constructor(in DOMString text, in DOMString value), Constructor(in DOMString text, in DOMString value, in boolean defaultSelected)] interface HTMLOptionElement : HTMLElement { attribute boolean disabled; readonly attribute HTMLFormElement form; attribute DOMString label; attribute boolean defaultSelected; attribute boolean selected; attribute DOMString value; readonly attribute DOMString text; readonly attribute long index; }; interface HTMLTextAreaElement : HTMLElement { attribute boolean autofocus; attribute unsigned long cols; attribute boolean disabled; readonly attribute HTMLFormElement form; attribute long maxLength; attribute DOMString name; attribute boolean readOnly; attribute boolean required; attribute unsigned long rows; attribute DOMString wrap; readonly attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); readonly attribute NodeList labels; }; interface HTMLOutputElement : HTMLElement { attribute DOMString htmlFor; readonly attribute HTMLFormElement form; attribute DOMString name; readonly attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); }; interface ValidityState { readonly attribute boolean valueMissing; readonly attribute boolean typeMismatch; readonly attribute boolean patternMismatch; readonly attribute boolean tooLong; readonly attribute boolean rangeUnderflow; readonly attribute boolean rangeOverflow; readonly attribute boolean stepMismatch; readonly attribute boolean customError; readonly attribute boolean valid; }; interface HTMLDetailsElement : HTMLElement { attribute boolean open; }; interface HTMLDataGridElement : HTMLElement { attribute DataGridDataProvider data; readonly attribute DataGridSelection selection; attribute boolean multiple; attribute boolean disabled; void updateEverything(); void updateRowsChanged(in RowSpecification row, in unsigned long count); void updateRowsInserted(in RowSpecification row, in unsigned long count); void updateRowsRemoved(in RowSpecification row, in unsigned long count); void updateRowChanged(in RowSpecification row); void updateColumnChanged(in unsigned long column); void updateCellChanged(in RowSpecification row, in unsigned long column); }; [NoInterfaceObject] interface RowSpecification { // binding-specific interface }; // To be implemented by Web authors as a JS object [NoInterfaceObject] interface DataGridDataProvider { void initialize(in HTMLDataGridElement datagrid); unsigned long getRowCount(in RowSpecification row); unsigned long getChildAtPosition(in RowSpecification parentRow, in unsigned long position); unsigned long getColumnCount(); DOMString getCaptionText(in unsigned long column); void getCaptionClasses(in unsigned long column, in DOMTokenList classes); DOMString getRowImage(in RowSpecification row); HTMLMenuElement getRowMenu(in RowSpecification row); void getRowClasses(in RowSpecification row, in DOMTokenList classes); DOMString getCellData(in RowSpecification row, in unsigned long column); void getCellClasses(in RowSpecification row, in unsigned long column, in DOMTokenList classes); void toggleColumnSortState(in unsigned long column); void setCellCheckedState(in RowSpecification row, in unsigned long column, in long state); void cycleCell(in RowSpecification row, in unsigned long column); void editCell(in RowSpecification row, in unsigned long column, in DOMString data); }; interface DataGridSelection { readonly attribute unsigned long length; [IndexGetter] RowSpecification item(in unsigned long index); boolean isSelected(in RowSpecification row); void setSelected(in RowSpecification row, in boolean selected); void selectAll(); void invert(); void clear(); }; interface HTMLCommandElement : HTMLElement { attribute DOMString type; attribute DOMString label; attribute DOMString icon; attribute boolean disabled; attribute boolean checked; attribute DOMString radiogroup; attribute boolean default; void click(); // shadows HTMLElement.click() }; interface HTMLBrowserButtonElement : HTMLElement { attribute DOMString type; readonly attribute boolean supported; readonly attribute boolean disabled; }; interface HTMLMenuElement : HTMLElement { attribute DOMString type; attribute DOMString label; }; [NoInterfaceObject] interface Command { readonly attribute DOMString commandType; readonly attribute DOMString id; readonly attribute DOMString label; readonly attribute DOMString title; readonly attribute DOMString icon; readonly attribute boolean hidden; readonly attribute boolean disabled; readonly attribute boolean checked; void click(); readonly attribute HTMLCollection triggers; readonly attribute Command command; }; [NoInterfaceObject] interface Window { // the current browsing context readonly attribute Window window; readonly attribute Window self; attribute DOMString name; [PutForwards=href] readonly attribute Location location; readonly attribute History history; readonly attribute UndoManager undoManager; Selection getSelection(); // other browsing contexts readonly attribute Window frames; readonly attribute unsigned long length; [IndexGetter] Window XXX4(in unsigned long index); readonly attribute Window top; readonly attribute Window opener; readonly attribute Window parent; readonly attribute Element frameElement; Window open(); Window open(in DOMString url); Window open(in DOMString url, in DOMString target); Window open(in DOMString url, in DOMString target, in DOMString features); Window open(in DOMString url, in DOMString target, in DOMString features, in DOMString replace); // the user agent readonly attribute Navigator navigator; readonly attribute Storage localStorage; readonly attribute Storage sessionStorage; Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize); // user prompts void alert(in DOMString message); boolean confirm(in DOMString message); DOMString prompt(in DOMString message); DOMString prompt(in DOMString message, in DOMString default); void print(); any showModalDialog(in DOMString url); any showModalDialog(in DOMString url, in any arguments); void showNotification(in DOMString title, in DOMString subtitle, in DOMString description); void showNotification(in DOMString title, in DOMString subtitle, in DOMString description, in VoidCallback onclick); // cross-document messaging void postMessage(in DOMString message, in DOMString targetOrigin); void postMessage(in DOMString message, in MessagePort messagePort, in DOMString targetOrigin); // event handler DOM attributes attribute EventListener onabort; attribute EventListener onbeforeunload; attribute EventListener onblur; attribute EventListener onchange; attribute EventListener onclick; attribute EventListener oncontextmenu; attribute EventListener ondblclick; attribute EventListener ondrag; attribute EventListener ondragend; attribute EventListener ondragenter; attribute EventListener ondragleave; attribute EventListener ondragover; attribute EventListener ondragstart; attribute EventListener ondrop; attribute EventListener onerror; attribute EventListener onfocus; attribute EventListener onhashchange; attribute EventListener onkeydown; attribute EventListener onkeypress; attribute EventListener onkeyup; attribute EventListener onload; attribute EventListener onmessage; attribute EventListener onmousedown; attribute EventListener onmousemove; attribute EventListener onmouseout; attribute EventListener onmouseover; attribute EventListener onmouseup; attribute EventListener onmousewheel; attribute EventListener onresize; attribute EventListener onscroll; attribute EventListener onselect; attribute EventListener onstorage; attribute EventListener onsubmit; attribute EventListener onunload; }; [XXX] interface ModalWindow { readonly attribute any dialogArguments; attribute DOMString returnValue; }; interface Navigator { // client identification readonly attribute DOMString appName; readonly attribute DOMString appVersion; readonly attribute DOMString platform; readonly attribute DOMString userAgent; // system state readonly attribute boolean onLine; void registerProtocolHandler(in DOMString protocol, in DOMString url, in DOMString title); void registerContentHandler(in DOMString mimeType, in DOMString url, in DOMString title); }; interface ApplicationCache { // update status const unsigned short UNCACHED = 0; const unsigned short IDLE = 1; const unsigned short CHECKING = 2; const unsigned short DOWNLOADING = 3; const unsigned short UPDATEREADY = 4; readonly attribute unsigned short status; // updates void update(); void swapCache(); // dynamic entries readonly attribute unsigned long length; DOMString item(in unsigned long index); void add(in DOMString url); void remove(in DOMString url); // events attribute EventListener onchecking; attribute EventListener onerror; attribute EventListener onnoupdate; attribute EventListener ondownloading; attribute EventListener onprogress; attribute EventListener onupdateready; attribute EventListener oncached; }; interface History { readonly attribute long length; void go(in long delta); void go(); void back(); void forward(); void pushState(in DOMObject data, in DOMString title); void pushState(in DOMObject data, in DOMString title, in DOMString url); void clearState(); }; interface PopStateEvent : Event { readonly attribute DOMObject state; void initPopStateEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMObject stateArg); void initPopStateEventNS(in DOMString namespaceURIArg, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMObject stateArg); }; interface Location { readonly attribute DOMString href; void assign(in DOMString url); void replace(in DOMString url); void reload(); // URL decomposition attributes attribute DOMString protocol; attribute DOMString host; attribute DOMString hostname; attribute DOMString port; attribute DOMString pathname; attribute DOMString search; attribute DOMString hash; }; interface Storage { readonly attribute unsigned long length; [IndexGetter] DOMString key(in unsigned long index); [NameGetter] DOMString getItem(in DOMString key); [NameSetter] void setItem(in DOMString key, in DOMString data); [XXX] void removeItem(in DOMString key); void clear(); }; interface StorageEvent : Event { readonly attribute DOMString key; readonly attribute DOMString oldValue; readonly attribute DOMString newValue; readonly attribute DOMString url; readonly attribute Window source; void initStorageEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in Window sourceArg); void initStorageEventNS(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in Window sourceArg); }; interface Database { void transaction(in SQLTransactionCallback callback); void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback); void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback); readonly attribute DOMString version; void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback); }; interface SQLTransactionCallback { void handleEvent(in SQLTransaction transaction); }; interface SQLTransactionErrorCallback { void handleEvent(in SQLError error); }; typedef sequence ObjectArray; interface SQLTransaction { void executeSql(in DOMString sqlStatement); void executeSql(in DOMString sqlStatement, in ObjectArray arguments); void executeSql(in DOMString sqlStatement, in ObjectArray arguments, in SQLStatementCallback callback); void executeSql(in DOMString sqlStatement, in ObjectArray arguments, in SQLStatementCallback callback, in SQLStatementErrorCallback errorCallback); }; interface SQLStatementCallback { void handleEvent(in SQLTransaction transaction, in SQLResultSet resultSet); }; interface SQLStatementErrorCallback { boolean handleEvent(in SQLTransaction transaction, in SQLError error); }; interface SQLResultSet { readonly attribute int insertId; readonly attribute int rowsAffected; readonly attribute SQLResultSetRowList rows; }; interface SQLResultSetRowList { readonly attribute unsigned long length; [IndexGetter] DOMObject item(in unsigned long index); }; interface SQLError { readonly attribute unsigned int code; readonly attribute DOMString message; }; [Stringifies] interface Selection { readonly attribute Node anchorNode; readonly attribute long anchorOffset; readonly attribute Node focusNode; readonly attribute long focusOffset; readonly attribute boolean isCollapsed; void collapse(in Node parentNode, in long offset); void collapseToStart(); void collapseToEnd(); void selectAllChildren(in Node parentNode); void deleteFromDocument(); readonly attribute long rangeCount; Range getRangeAt(in long index); void addRange(in Range range); void removeRange(in Range range); void removeAllRanges(); }; interface DragEvent : UIEvent { readonly attribute DataTransfer dataTransfer; void initDragEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in AbstractView viewArg, in long detailArg, in DataTransfer dataTransferArg); void initDragEventNS(in DOMString namespaceURIArg, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in AbstractView viewArg, in long detailArg, in DataTransfer dataTransferArg); }; interface DataTransfer { attribute DOMString dropEffect; attribute DOMString effectAllowed; readonly attribute DOMStringList types; void clearData(in DOMString format); void setData(in DOMString format, in DOMString data); DOMString getData(in DOMString format); void setDragImage(in Element image, in long x, in long y); void addElement(in Element element); }; interface UndoManager { unsigned long add(in DOMObject data, in DOMString title); [XXX] void remove(in unsigned long index); void clearUndo(); void clearRedo(); [IndexGetter] DOMObject item(in unsigned long index); readonly attribute unsigned long length; readonly attribute unsigned long position; }; interface UndoManagerEvent : Event { readonly attribute DOMObject data; void initUndoManagerEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMObject dataArg); void initUndoManagerEventNS(in DOMString namespaceURIArg, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMObject dataArg); }; interface MessageEvent : Event { readonly attribute DOMString data; readonly attribute DOMString origin; readonly attribute DOMString lastEventId; readonly attribute Window source; readonly attribute MessagePort messagePort; void initMessageEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString originArg, in DOMString lastEventIdArg, in Window sourceArg, in MessagePort messagePortArg); void initMessageEventNS(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString originArg, in DOMString lastEventIdArg, in Window sourceArg, in MessagePort messagePortArg); }; interface RemoteEventTarget { void addEventSource(in DOMString src); void removeEventSource(in DOMString src); }; [Constructor(in DOMString url)] interface WebSocket { readonly attribute DOMString URL; // ready state const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSED = 2; readonly attribute int readyState; // networking attribute EventListener onopen; attribute EventListener onmessage; attribute EventListener onclosed; void postMessage(in DOMString data); void disconnect(); }; [Constructor] interface MessageChannel { readonly attribute MessagePort port1; readonly attribute MessagePort port2; }; interface MessagePort { readonly attribute boolean active; void postMessage(in DOMString message); void postMessage(in DOMString message, in MessagePort messagePort); MessagePort startConversation(in DOMString message); void start(); void close(); // event handler attributes attribute EventListener onmessage; attribute EventListener onclose; }; interface MediaModeAbstractView { readonly attribute DOMString mediaMode; }; [XXX] interface HTMLDocument { attribute DOMString fgColor; attribute DOMString bgColor; attribute DOMString linkColor; attribute DOMString vlinkColor; attribute DOMString alinkColor; }; [XXX] interface HTMLBodyElement { attribute DOMString text; attribute DOMString bgColor; attribute DOMString background; attribute DOMString link; attribute DOMString vLink; attribute DOMString aLink; }; [XXX] interface HTMLDocument { readonly attribute HTMLCollection applets; }; [NoInterfaceObject] interface WindowTimers { // timers long setTimeout(in TimeoutHandler handler, in long timeout); long setTimeout(in TimeoutHandler handler, in long timeout, arguments...); long setTimeout(in DOMString code, in long timeout); long setTimeout(in DOMString code, in long timeout, in DOMString language); void clearTimeout(in long handle); long setInterval(in TimeoutHandler handler, in long timeout); long setInterval(in TimeoutHandler handler, in long timeout, arguments...); long setInterval(in DOMString code, in long timeout); long setInterval(in DOMString code, in long timeout, in DOMString language); void clearInterval(in long handle); }; interface TimeoutHandler { void handleEvent([Variadic] in any args); };