spec/fixtures/html5.idl in webidl-0.1.10 vs spec/fixtures/html5.idl in webidl-0.2.0

- old
+ new

@@ -26,59 +26,65 @@ void remove(long index); attribute long selectedIndex; }; -interface DOMStringList { - readonly attribute unsigned long length; - getter DOMString? item(unsigned long index); - boolean contains(DOMString string); +[OverrideBuiltins] +interface DOMStringMap { + getter DOMString (DOMString name); + setter void (DOMString name, DOMString value); + deleter void (DOMString name); }; -enum DocumentReadyState { "loading", "interactive", "complete" }; +interface DOMElementMap { + getter Element (DOMString name); + setter creator void (DOMString name, Element value); + deleter void (DOMString name); +}; -typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; +enum DocumentReadyState { "loading", "interactive", "complete" }; + [OverrideBuiltins] -partial interface Document { +partial /*sealed*/ interface Document { // resource metadata management [PutForwards=href, Unforgeable] readonly attribute Location? location; - attribute USVString domain; - readonly attribute USVString referrer; - attribute USVString cookie; + attribute DOMString domain; + readonly attribute DOMString referrer; + attribute DOMString cookie; readonly attribute DOMString lastModified; readonly attribute DocumentReadyState readyState; // DOM tree accessors getter object (DOMString name); - [CEReactions] attribute DOMString title; + attribute DOMString title; attribute DOMString dir; attribute HTMLElement? body; readonly attribute HTMLHeadElement? head; [SameObject] readonly attribute HTMLCollection images; [SameObject] readonly attribute HTMLCollection embeds; [SameObject] readonly attribute HTMLCollection plugins; [SameObject] readonly attribute HTMLCollection links; [SameObject] readonly attribute HTMLCollection forms; [SameObject] readonly attribute HTMLCollection scripts; NodeList getElementsByName(DOMString elementName); - readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only + readonly attribute HTMLScriptElement? currentScript; // dynamic markup insertion Document open(optional DOMString type = "text/html", optional DOMString replace = ""); WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false); - [CEReactions] void close(); - [CEReactions] void write(DOMString... text); - [CEReactions] void writeln(DOMString... text); + void close(); + void write(DOMString... text); + void writeln(DOMString... text); // user interaction readonly attribute WindowProxy? defaultView; readonly attribute Element? activeElement; boolean hasFocus(); - [CEReactions] attribute DOMString designMode; - [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); + attribute DOMString designMode; + boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); boolean queryCommandEnabled(DOMString commandId); boolean queryCommandIndeterm(DOMString commandId); boolean queryCommandState(DOMString commandId); boolean queryCommandSupported(DOMString commandId); DOMString queryCommandValue(DOMString commandId); @@ -88,47 +94,44 @@ }; Document implements GlobalEventHandlers; Document implements DocumentAndElementEventHandlers; -[HTMLConstructor] +partial interface XMLDocument { + boolean load(DOMString url); +}; + + interface HTMLElement : Element { // metadata attributes - [CEReactions] attribute DOMString title; - [CEReactions] attribute DOMString lang; - [CEReactions] attribute boolean translate; - [CEReactions] attribute DOMString dir; + attribute DOMString title; + attribute DOMString lang; + attribute boolean translate; + attribute DOMString dir; [SameObject] readonly attribute DOMStringMap dataset; // user interaction - [CEReactions] attribute boolean hidden; + attribute boolean hidden; void click(); - [CEReactions] attribute long tabIndex; + attribute long tabIndex; void focus(); void blur(); - [CEReactions] attribute DOMString accessKey; - [CEReactions] attribute boolean draggable; - [CEReactions] attribute boolean spellcheck; + attribute DOMString accessKey; + attribute boolean draggable; + [PutForwards=value] readonly attribute DOMTokenList dropzone; + attribute HTMLMenuElement? contextMenu; + attribute boolean spellcheck; void forceSpellCheck(); - [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText; }; HTMLElement implements GlobalEventHandlers; HTMLElement implements DocumentAndElementEventHandlers; HTMLElement implements ElementContentEditable; -// Note: intentionally not [HTMLConstructor] + interface HTMLUnknownElement : HTMLElement { }; -[OverrideBuiltins] -interface DOMStringMap { - getter DOMString (DOMString name); - [CEReactions] setter void (DOMString name, DOMString value); - [CEReactions] deleter void (DOMString name); -}; - - interface HTMLHtmlElement : HTMLElement {}; interface HTMLHeadElement : HTMLElement {}; @@ -143,23 +146,21 @@ attribute DOMString target; }; interface HTMLLinkElement : HTMLElement { - [CEReactions] attribute USVString href; - [CEReactions] attribute DOMString? crossOrigin; - [CEReactions] attribute DOMString rel; - [CEReactions] attribute DOMString rev; - [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList; - [CEReactions] attribute DOMString media; - [CEReactions] attribute DOMString nonce; - [CEReactions] attribute DOMString hreflang; - [CEReactions] attribute DOMString type; - [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; - [CEReactions] attribute DOMString referrerPolicy; + attribute DOMString href; + attribute DOMString? crossOrigin; + attribute DOMString rel; + attribute DOMString rev; + [SameObject, PutForwards=value]readonly attribute DOMTokenList relList; + attribute DOMString media; + attribute DOMString hreflang; + attribute DOMString type; + [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; }; - HTMLLinkElement implements LinkStyle; +HTMLLinkElement implements LinkStyle; interface HTMLMetaElement : HTMLElement { attribute DOMString name; attribute DOMString httpEquiv; @@ -225,11 +226,10 @@ attribute DOMString rev; [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; attribute DOMString hreflang; attribute DOMString type; attribute DOMString text; - attribute DOMString referrerPolicy; }; HTMLAnchorElement implements HTMLHyperlinkElementUtils; interface HTMLDataElement : HTMLElement { @@ -255,13 +255,11 @@ interface HTMLPictureElement : HTMLElement {}; -interface HTMLSourceElement : HTMLElement { - attribute DOMString src; - attribute DOMString type; +partial interface HTMLSourceElement { attribute DOMString srcset; attribute DOMString sizes; attribute DOMString media; }; @@ -272,32 +270,28 @@ attribute DOMString src; attribute DOMString srcset; attribute DOMString sizes; attribute DOMString? crossOrigin; attribute DOMString useMap; - attribute DOMString longDesc; attribute boolean isMap; attribute unsigned long width; attribute unsigned long height; readonly attribute unsigned long naturalWidth; readonly attribute unsigned long naturalHeight; readonly attribute boolean complete; readonly attribute DOMString currentSrc; - attribute DOMString referrerPolicy; }; interface HTMLIFrameElement : HTMLElement { attribute DOMString src; attribute DOMString srcdoc; attribute DOMString name; - [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox; + [PutForwards=value] readonly attribute DOMTokenList sandbox; attribute boolean allowFullscreen; - attribute boolean allowPaymentRequest; attribute DOMString width; attribute DOMString height; - attribute DOMString referrerPolicy; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; }; @@ -349,10 +343,16 @@ [NamedConstructor=Audio(optional DOMString src)] interface HTMLAudioElement : HTMLMediaElement {}; +interface HTMLSourceElement : HTMLElement { + attribute DOMString src; + attribute DOMString type; +}; + + interface HTMLTrackElement : HTMLElement { attribute DOMString kind; attribute DOMString src; attribute DOMString srclang; attribute DOMString label; @@ -555,11 +555,11 @@ interface TrackEvent : Event { readonly attribute (VideoTrack or AudioTrack or TextTrack)? track; }; dictionary TrackEventInit : EventInit { - (VideoTrack or AudioTrack or TextTrack)? track = null; + (VideoTrack or AudioTrack or TextTrack)? track; }; interface HTMLMapElement : HTMLElement { attribute DOMString name; @@ -573,14 +573,13 @@ attribute DOMString coords; attribute DOMString shape; attribute DOMString target; attribute DOMString download; attribute DOMString rel; - [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; + readonly attribute DOMTokenList relList; attribute DOMString hreflang; attribute DOMString type; - attribute DOMString referrerPolicy; }; HTMLAreaElement implements HTMLHyperlinkElementUtils; [NoInterfaceObject] @@ -651,11 +650,11 @@ interface HTMLTableCellElement : HTMLElement { attribute unsigned long colSpan; attribute unsigned long rowSpan; - [SameObject, PutForwards=value] readonly attribute DOMTokenList headers; + [PutForwards=value] readonly attribute DOMTokenList headers; readonly attribute long cellIndex; }; [OverrideBuiltins] @@ -705,21 +704,22 @@ attribute DOMString formMethod; attribute boolean formNoValidate; attribute DOMString formTarget; attribute unsigned long height; attribute boolean indeterminate; + attribute DOMString inputMode; readonly attribute HTMLElement? list; attribute DOMString max; attribute long maxLength; attribute DOMString min; attribute long minLength; attribute boolean multiple; attribute DOMString name; attribute DOMString pattern; attribute DOMString placeholder; attribute boolean readOnly; - attribute boolean _required; + attribute boolean required; attribute unsigned long size; attribute DOMString src; attribute DOMString step; attribute DOMString type; attribute DOMString defaultValue; @@ -739,13 +739,13 @@ void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); - attribute unsigned long? selectionStart; - attribute unsigned long? selectionEnd; - attribute DOMString? selectionDirection; + attribute unsigned long selectionStart; + attribute unsigned long selectionEnd; + attribute DOMString selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; @@ -760,10 +760,11 @@ attribute boolean formNoValidate; attribute DOMString formTarget; attribute DOMString name; attribute DOMString type; attribute DOMString value; + attribute HTMLMenuElement? menu; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); @@ -779,11 +780,11 @@ attribute boolean autofocus; attribute boolean disabled; readonly attribute HTMLFormElement? form; attribute boolean multiple; attribute DOMString name; - attribute boolean _required; + attribute boolean required; attribute unsigned long size; readonly attribute DOMString type; [SameObject] readonly attribute HTMLOptionsCollection options; @@ -840,16 +841,17 @@ attribute boolean autofocus; attribute unsigned long cols; attribute DOMString dirName; attribute boolean disabled; readonly attribute HTMLFormElement? form; + attribute DOMString inputMode; attribute long maxLength; attribute long minLength; attribute DOMString name; attribute DOMString placeholder; attribute boolean readOnly; - attribute boolean _required; + attribute boolean required; attribute unsigned long rows; attribute DOMString wrap; readonly attribute DOMString type; attribute DOMString defaultValue; @@ -864,19 +866,40 @@ void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); - attribute unsigned long? selectionStart; - attribute unsigned long? selectionEnd; - attribute DOMString? selectionDirection; + attribute unsigned long selectionStart; + attribute unsigned long selectionEnd; + attribute DOMString selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; +interface HTMLKeygenElement : HTMLElement { + attribute boolean autofocus; + attribute DOMString challenge; + attribute boolean disabled; + readonly attribute HTMLFormElement? form; + attribute DOMString keytype; + attribute DOMString name; + + readonly attribute DOMString type; + + readonly attribute boolean willValidate; + readonly attribute ValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + boolean reportValidity(); + void setCustomValidity(DOMString error); + + [SameObject] readonly attribute NodeList labels; +}; + + interface HTMLOutputElement : HTMLElement { [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; readonly attribute HTMLFormElement? form; attribute DOMString name; @@ -963,19 +986,37 @@ interface HTMLDetailsElement : HTMLElement { attribute boolean open; }; -interface HTMLDialogElement : HTMLElement { - attribute boolean open; - attribute DOMString returnValue; - void show(optional (MouseEvent or Element) anchor); - void showModal(optional (MouseEvent or Element) anchor); - void close(optional DOMString returnValue); +interface HTMLMenuElement : HTMLElement { + attribute DOMString type; + attribute DOMString label; }; +interface HTMLMenuItemElement : HTMLElement { + attribute DOMString type; + attribute DOMString label; + attribute DOMString icon; + attribute boolean disabled; + attribute boolean checked; + attribute DOMString radiogroup; + attribute boolean default; +}; + + +[Constructor(DOMString type, optional RelatedEventInit eventInitDict)] +interface RelatedEvent : Event { + readonly attribute EventTarget? relatedTarget; +}; + +dictionary RelatedEventInit : EventInit { + EventTarget? relatedTarget; +}; + + interface HTMLScriptElement : HTMLElement { attribute DOMString src; attribute DOMString type; attribute DOMString charset; attribute boolean async; @@ -984,12 +1025,10 @@ attribute DOMString text; attribute DOMString nonce; }; -[Exposed=Window, - HTMLConstructor] interface HTMLTemplateElement : HTMLElement { readonly attribute DocumentFragment content; }; @@ -1093,23 +1132,21 @@ [Replaceable] readonly attribute WindowProxy parent; readonly attribute Element? frameElement; WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false); getter WindowProxy (unsigned long index); getter object (DOMString name); -// Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic -// object on the prototype chain. Indeed, this does not make the global object an exotic object. -// Indexed access is taken care of by the WindowProxy exotic object. // the user agent readonly attribute Navigator navigator; // user prompts void alert(); void alert(DOMString message); boolean confirm(optional DOMString message = ""); DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); void print(); +any showModalDialog(DOMString url, optional any argument); // deprecated unsigned long requestAnimationFrame(FrameRequestCallback callback); void cancelAnimationFrame(unsigned long handle); }; Window implements GlobalEventHandlers; @@ -1136,61 +1173,62 @@ void pushState(any data, DOMString title, optional DOMString? url = null); void replaceState(any data, DOMString title, optional DOMString? url = null); }; +[Unforgeable] interface Location { - [Unforgeable] stringifier attribute USVString href; - [Unforgeable] readonly attribute USVString origin; - [Unforgeable] attribute USVString protocol; - [Unforgeable] attribute USVString host; - [Unforgeable] attribute USVString hostname; - [Unforgeable] attribute USVString port; - [Unforgeable] attribute USVString pathname; - [Unforgeable] attribute USVString search; - [Unforgeable] attribute USVString hash; + stringifier attribute USVString href; + readonly attribute USVString origin; + attribute USVString protocol; + attribute USVString host; + attribute USVString hostname; + attribute USVString port; + attribute USVString pathname; + attribute USVString search; + attribute USVString hash; - [Unforgeable] void assign(USVString url); - [Unforgeable] void replace(USVString url); - [Unforgeable] void reload(); + void assign(USVString url); + void replace(USVString url); + void reload(); - [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins; + [SameObject] readonly attribute USVString[] ancestorOrigins; }; [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)] interface PopStateEvent : Event { readonly attribute any state; }; dictionary PopStateEventInit : EventInit { - any state = null; + any state; }; [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)] interface HashChangeEvent : Event { - readonly attribute USVString oldURL; - readonly attribute USVString newURL; + readonly attribute DOMString oldURL; + readonly attribute DOMString newURL; }; dictionary HashChangeEventInit : EventInit { - USVString oldURL = ""; - USVString newURL = ""; + DOMString oldURL; + DOMString newURL; }; [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)] interface PageTransitionEvent : Event { readonly attribute boolean persisted; }; dictionary PageTransitionEventInit : EventInit { - boolean persisted = false; + boolean persisted; }; interface BeforeUnloadEvent : Event { attribute DOMString returnValue; @@ -1258,10 +1296,11 @@ attribute EventHandler oncanplay; attribute EventHandler oncanplaythrough; attribute EventHandler onchange; attribute EventHandler onclick; attribute EventHandler onclose; + attribute EventHandler oncontextmenu; attribute EventHandler oncuechange; attribute EventHandler ondblclick; attribute EventHandler ondrag; attribute EventHandler ondragend; attribute EventHandler ondragenter; @@ -1340,42 +1379,46 @@ attribute EventHandler oncut; attribute EventHandler onpaste; }; -typedef (DOMString or Function) TimerHandler; - [NoInterfaceObject, Exposed=(Window, Worker)] -interface WindowOrWorkerGlobalScope { - [Replaceable] readonly attribute USVString origin; - - // Base64 utility methods (WindowBase64) +interface WindowBase64 { DOMString btoa(DOMString btoa); DOMString atob(DOMString atob); +}; +Window implements WindowBase64; +WorkerGlobalScope implements WindowBase64; - // Timers (WindowTimers) + +[NoInterfaceObject, Exposed=(Window,Worker)] +interface WindowTimers { long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments); void clearTimeout(optional long handle = 0); long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments); void clearInterval(optional long handle = 0); +}; +Window implements WindowTimers; +WorkerGlobalScope implements WindowTimers; - // ImageBitmap, Images (ImageBitmapFactories) - Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image); - Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh); + +[NoInterfaceObject] +interface WindowModal { + readonly attribute any dialogArguments; + attribute any returnValue; }; -Window implements WindowOrWorkerGlobalScope; -WorkerGlobalScope implements WindowOrWorkerGlobalScope; interface Navigator { // objects implementing this interface also implement the interfaces given below }; Navigator implements NavigatorID; Navigator implements NavigatorLanguage; Navigator implements NavigatorOnLine; Navigator implements NavigatorContentUtils; Navigator implements NavigatorCookies; +Navigator implements NavigatorPlugins; [NoInterfaceObject, Exposed=(Window, Worker)] interface NavigatorID { [Exposed=Window] readonly attribute DOMString appCodeName; // constant "Mozilla" @@ -1396,25 +1439,62 @@ [NoInterfaceObject] interface NavigatorContentUtils { // content handler registration void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title); - void registerContentHandler(DOMString mimeType, DOMString url, DOMString title); - DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url); - DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url); void unregisterProtocolHandler(DOMString scheme, DOMString url); - void unregisterContentHandler(DOMString mimeType, DOMString url); }; [NoInterfaceObject] interface NavigatorCookies { readonly attribute boolean cookieEnabled; }; -[Exposed=(Window, Worker), Serializable, Transferable] +[NoInterfaceObject] + interface NavigatorPlugins { + [SameObject] readonly attribute PluginArray plugins; + [SameObject] readonly attribute MimeTypeArray mimeTypes; + boolean javaEnabled(); +}; + + +interface PluginArray { + void refresh(optional boolean reload = false); + readonly attribute unsigned long length; + getter Plugin? item(unsigned long index); + getter Plugin? namedItem(DOMString name); +}; + + +interface MimeTypeArray { + readonly attribute unsigned long length; + getter MimeType? item(unsigned long index); + getter MimeType? namedItem(DOMString name); +}; + + +interface Plugin { + readonly attribute DOMString name; + readonly attribute DOMString description; + readonly attribute DOMString filename; + readonly attribute unsigned long length; + getter MimeType? item(unsigned long index); + getter MimeType? namedItem(DOMString name); +}; + + +interface MimeType { + readonly attribute DOMString type; + readonly attribute DOMString description; + readonly attribute DOMString suffixes; // comma-separated + readonly attribute Plugin enabledPlugin; +}; + + +[Exposed=(Window, Worker)] interface ImageBitmap { readonly attribute unsigned long width; readonly attribute unsigned long height; }; @@ -1425,318 +1505,354 @@ ImageData or CanvasRenderingContext2D or ImageBitmap) ImageBitmapSource; -// Note: intentionally not [HTMLConstructor] +[NoInterfaceObject, Exposed=(Window, Worker)] +interface ImageBitmapFactories { + Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image); + Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh); +}; +Window implements ImageBitmapFactories; +WorkerGlobalScope implements ImageBitmapFactories; + + interface HTMLAppletElement : HTMLElement { attribute DOMString align; attribute DOMString alt; attribute DOMString archive; attribute DOMString code; - attribute USVString codeBase; + attribute DOMString codeBase; attribute DOMString height; attribute unsigned long hspace; attribute DOMString name; - attribute USVString _object; // the underscore is not part of the identifier + attribute DOMString _object; // the underscore is not part of the identifier attribute unsigned long vspace; attribute DOMString width; }; -[HTMLConstructor] interface HTMLMarqueeElement : HTMLElement { - [CEReactions] attribute DOMString behavior; - [CEReactions] attribute DOMString bgColor; - [CEReactions] attribute DOMString direction; - [CEReactions] attribute DOMString height; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute long loop; - [CEReactions] attribute unsigned long scrollAmount; - [CEReactions] attribute unsigned long scrollDelay; - [CEReactions] attribute boolean trueSpeed; - [CEReactions] attribute unsigned long vspace; - [CEReactions] attribute DOMString width; + attribute DOMString behavior; + attribute DOMString bgColor; + attribute DOMString direction; + attribute DOMString height; + attribute unsigned long hspace; + attribute long loop; + attribute unsigned long scrollAmount; + attribute unsigned long scrollDelay; + attribute boolean trueSpeed; + attribute unsigned long vspace; + attribute DOMString width; attribute EventHandler onbounce; attribute EventHandler onfinish; attribute EventHandler onstart; void start(); void stop(); }; -[HTMLConstructor] interface HTMLFrameSetElement : HTMLElement { - [CEReactions] attribute DOMString cols; - [CEReactions] attribute DOMString rows; + attribute DOMString cols; + attribute DOMString rows; }; HTMLFrameSetElement implements WindowEventHandlers; -[HTMLConstructor] interface HTMLFrameElement : HTMLElement { - [CEReactions] attribute DOMString name; - [CEReactions] attribute DOMString scrolling; - [CEReactions] attribute USVString src; - [CEReactions] attribute DOMString frameBorder; - [CEReactions] attribute USVString longDesc; - [CEReactions] attribute boolean noResize; + attribute DOMString name; + attribute DOMString scrolling; + attribute DOMString src; + attribute DOMString frameBorder; + attribute boolean noResize; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; + [TreatNullAs=EmptyString] attribute DOMString marginHeight; + [TreatNullAs=EmptyString] attribute DOMString marginWidth; }; +[Exposed=(Window, SharedWorker)] +interface ApplicationCache : EventTarget { + // 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; + const unsigned short OBSOLETE = 5; + readonly attribute unsigned short status; + + // updates + void update(); + void abort(); + void swapCache(); + + // events + attribute EventHandler onchecking; + attribute EventHandler onerror; + attribute EventHandler onnoupdate; + attribute EventHandler ondownloading; + attribute EventHandler onprogress; + attribute EventHandler onupdateready; + attribute EventHandler oncached; + attribute EventHandler onobsolete; +}; + + partial interface HTMLAnchorElement { - [CEReactions] attribute DOMString coords; - [CEReactions] attribute DOMString charset; - [CEReactions] attribute DOMString name; - [CEReactions] attribute DOMString shape; + attribute DOMString coords; + attribute DOMString charset; + attribute DOMString name; + attribute DOMString shape; }; partial interface HTMLAreaElement { - [CEReactions] attribute boolean noHref; + attribute boolean noHref; }; partial interface HTMLBodyElement { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString text; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString link; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString text; + [TreatNullAs=EmptyString] attribute DOMString link; + [TreatNullAs=EmptyString] attribute DOMString vLink; + [TreatNullAs=EmptyString] attribute DOMString aLink; + [TreatNullAs=EmptyString] attribute DOMString bgColor; attribute DOMString background; }; partial interface HTMLBRElement { - [CEReactions] attribute DOMString clear; + attribute DOMString clear; }; partial interface HTMLTableCaptionElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLTableColElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; + attribute DOMString width; }; -[HTMLConstructor] interface HTMLDirectoryElement : HTMLElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLDivElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLDListElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLEmbedElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString name; + attribute DOMString align; + attribute DOMString name; }; -[HTMLConstructor] interface HTMLFontElement : HTMLElement { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString color; - [CEReactions] attribute DOMString face; - [CEReactions] attribute DOMString size; + [TreatNullAs=EmptyString] attribute DOMString color; + attribute DOMString face; + attribute DOMString size; }; partial interface HTMLHeadingElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLHRElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString color; - [CEReactions] attribute boolean noShade; - [CEReactions] attribute DOMString size; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString color; + attribute boolean noShade; + attribute DOMString size; + attribute DOMString width; }; partial interface HTMLHtmlElement { - [CEReactions] attribute DOMString version; + attribute DOMString version; }; partial interface HTMLIFrameElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString scrolling; - [CEReactions] attribute DOMString frameBorder; - [CEReactions] attribute USVString longDesc; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; + attribute DOMString align; + attribute DOMString scrolling; + attribute DOMString frameBorder; + + [TreatNullAs=EmptyString] attribute DOMString marginHeight; + [TreatNullAs=EmptyString] attribute DOMString marginWidth; }; partial interface HTMLImageElement { - [CEReactions] attribute DOMString name; - [CEReactions] attribute USVString lowsrc; - [CEReactions] attribute DOMString align; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute unsigned long vspace; + attribute DOMString name; + attribute DOMString lowsrc; + attribute DOMString align; + attribute unsigned long hspace; + attribute unsigned long vspace; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; + [TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLInputElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString useMap; + attribute DOMString align; + attribute DOMString useMap; }; partial interface HTMLLegendElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLLIElement { - [CEReactions] attribute DOMString type; + attribute DOMString type; }; partial interface HTMLLinkElement { - [CEReactions] attribute DOMString charset; - [CEReactions] attribute DOMString target; + attribute DOMString charset; + attribute DOMString target; }; partial interface HTMLMenuElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLMetaElement { - [CEReactions] attribute DOMString scheme; + attribute DOMString scheme; }; partial interface HTMLObjectElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString archive; - [CEReactions] attribute DOMString code; - [CEReactions] attribute boolean declare; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute DOMString standby; - [CEReactions] attribute unsigned long vspace; - [CEReactions] attribute DOMString codeBase; - [CEReactions] attribute DOMString codeType; + attribute DOMString align; + attribute DOMString archive; + attribute DOMString code; + attribute boolean declare; + attribute unsigned long hspace; + attribute DOMString standby; + attribute unsigned long vspace; + attribute DOMString codeBase; + attribute DOMString codeType; + attribute DOMString useMap; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; + [TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLOListElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLParagraphElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLParamElement { - [CEReactions] attribute DOMString type; - [CEReactions] attribute DOMString valueType; + attribute DOMString type; + attribute DOMString valueType; }; partial interface HTMLPreElement { - [CEReactions] attribute long width; + attribute long width; }; partial interface HTMLScriptElement { - [CEReactions] attribute DOMString event; - [CEReactions] attribute DOMString htmlFor; + attribute DOMString event; + attribute DOMString htmlFor; }; partial interface HTMLTableElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString border; - [CEReactions] attribute DOMString frame; - [CEReactions] attribute DOMString rules; - [CEReactions] attribute DOMString summary; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString border; + attribute DOMString frame; + attribute DOMString rules; + attribute DOMString summary; + attribute DOMString width; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing; + [TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString cellPadding; + [TreatNullAs=EmptyString] attribute DOMString cellSpacing; }; partial interface HTMLTableSectionElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; }; partial interface HTMLTableCellElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString axis; - [CEReactions] attribute DOMString height; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString axis; + attribute DOMString height; + attribute DOMString width; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute boolean noWrap; - [CEReactions] attribute DOMString vAlign; + attribute DOMString ch; + attribute DOMString chOff; + attribute boolean noWrap; + attribute DOMString vAlign; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; }; +partial interface HTMLTableDataCellElement { + attribute DOMString abbr; +}; + + partial interface HTMLTableRowElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; }; partial interface HTMLUListElement { - [CEReactions] attribute boolean compact; - [CEReactions] attribute DOMString type; + attribute boolean compact; + attribute DOMString type; }; partial interface Document { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString fgColor; + [TreatNullAs=EmptyString] attribute DOMString linkColor; + [TreatNullAs=EmptyString] attribute DOMString vlinkColor; + [TreatNullAs=EmptyString] attribute DOMString alinkColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; [SameObject] readonly attribute HTMLCollection anchors; [SameObject] readonly attribute HTMLCollection applets; void clear(); @@ -1760,53 +1876,10 @@ void AddSearchProvider(); void IsSearchProviderInstalled(); }; -Navigator implements NavigatorPlugins; - -[NoInterfaceObject] - interface NavigatorPlugins { - [SameObject] readonly attribute PluginArray plugins; - [SameObject] readonly attribute MimeTypeArray mimeTypes; - boolean javaEnabled(); -}; - - -interface PluginArray { - void refresh(optional boolean reload = false); - readonly attribute unsigned long length; - getter Plugin? item(unsigned long index); - getter Plugin? namedItem(DOMString name); -}; - - -interface MimeTypeArray { - readonly attribute unsigned long length; - getter MimeType? item(unsigned long index); - getter MimeType? namedItem(DOMString name); -}; - - -interface Plugin { - readonly attribute DOMString name; - readonly attribute DOMString description; - readonly attribute DOMString filename; - readonly attribute unsigned long length; - getter MimeType? item(unsigned long index); - getter MimeType? namedItem(DOMString name); -}; - - -interface MimeType { - readonly attribute DOMString type; - readonly attribute DOMString description; - readonly attribute DOMString suffixes; // comma-separated - readonly attribute Plugin enabledPlugin; -}; - - [LegacyUnenumerableNamedProperties] interface HTMLAllCollection { readonly attribute unsigned long length; getter Element? (unsigned long index); getter (HTMLCollection or Element)? namedItem(DOMString name); @@ -1829,58 +1902,63 @@ void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); void remove(long index); attribute long selectedIndex; }; -interface DOMStringList { - readonly attribute unsigned long length; - getter DOMString? item(unsigned long index); - boolean contains(DOMString string); +[OverrideBuiltins] +interface DOMStringMap { + getter DOMString (DOMString name); + setter void (DOMString name, DOMString value); + deleter void (DOMString name); }; +interface DOMElementMap { + getter Element (DOMString name); + setter creator void (DOMString name, Element value); + deleter void (DOMString name); +}; + enum DocumentReadyState { "loading", "interactive", "complete" }; -typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; - [OverrideBuiltins] -partial interface Document { +partial /*sealed*/ interface Document { // resource metadata management [PutForwards=href, Unforgeable] readonly attribute Location? location; - attribute USVString domain; - readonly attribute USVString referrer; - attribute USVString cookie; + attribute DOMString domain; + readonly attribute DOMString referrer; + attribute DOMString cookie; readonly attribute DOMString lastModified; readonly attribute DocumentReadyState readyState; // DOM tree accessors getter object (DOMString name); - [CEReactions] attribute DOMString title; + attribute DOMString title; attribute DOMString dir; attribute HTMLElement? body; readonly attribute HTMLHeadElement? head; [SameObject] readonly attribute HTMLCollection images; [SameObject] readonly attribute HTMLCollection embeds; [SameObject] readonly attribute HTMLCollection plugins; [SameObject] readonly attribute HTMLCollection links; [SameObject] readonly attribute HTMLCollection forms; [SameObject] readonly attribute HTMLCollection scripts; NodeList getElementsByName(DOMString elementName); - readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only + readonly attribute HTMLScriptElement? currentScript; // dynamic markup insertion Document open(optional DOMString type = "text/html", optional DOMString replace = ""); WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false); - [CEReactions] void close(); - [CEReactions] void write(DOMString... text); - [CEReactions] void writeln(DOMString... text); + void close(); + void write(DOMString... text); + void writeln(DOMString... text); // user interaction readonly attribute WindowProxy? defaultView; readonly attribute Element? activeElement; boolean hasFocus(); - [CEReactions] attribute DOMString designMode; - [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); + attribute DOMString designMode; + boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); boolean queryCommandEnabled(DOMString commandId); boolean queryCommandIndeterm(DOMString commandId); boolean queryCommandState(DOMString commandId); boolean queryCommandSupported(DOMString commandId); DOMString queryCommandValue(DOMString commandId); @@ -1889,45 +1967,41 @@ [LenientThis] attribute EventHandler onreadystatechange; }; Document implements GlobalEventHandlers; Document implements DocumentAndElementEventHandlers; -[HTMLConstructor] +partial interface XMLDocument { + boolean load(DOMString url); +}; + interface HTMLElement : Element { // metadata attributes - [CEReactions] attribute DOMString title; - [CEReactions] attribute DOMString lang; - [CEReactions] attribute boolean translate; - [CEReactions] attribute DOMString dir; + attribute DOMString title; + attribute DOMString lang; + attribute boolean translate; + attribute DOMString dir; [SameObject] readonly attribute DOMStringMap dataset; // user interaction - [CEReactions] attribute boolean hidden; + attribute boolean hidden; void click(); - [CEReactions] attribute long tabIndex; + attribute long tabIndex; void focus(); void blur(); - [CEReactions] attribute DOMString accessKey; - [CEReactions] attribute boolean draggable; - [CEReactions] attribute boolean spellcheck; + attribute DOMString accessKey; + attribute boolean draggable; + [PutForwards=value] readonly attribute DOMTokenList dropzone; + attribute HTMLMenuElement? contextMenu; + attribute boolean spellcheck; void forceSpellCheck(); - [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText; }; HTMLElement implements GlobalEventHandlers; HTMLElement implements DocumentAndElementEventHandlers; HTMLElement implements ElementContentEditable; -// Note: intentionally not [HTMLConstructor] interface HTMLUnknownElement : HTMLElement { }; -[OverrideBuiltins] -interface DOMStringMap { - getter DOMString (DOMString name); - [CEReactions] setter void (DOMString name, DOMString value); - [CEReactions] deleter void (DOMString name); -}; - interface HTMLHtmlElement : HTMLElement {}; interface HTMLHeadElement : HTMLElement {}; interface HTMLTitleElement : HTMLElement { @@ -1938,23 +2012,21 @@ attribute DOMString href; attribute DOMString target; }; interface HTMLLinkElement : HTMLElement { - [CEReactions] attribute USVString href; - [CEReactions] attribute DOMString? crossOrigin; - [CEReactions] attribute DOMString rel; - [CEReactions] attribute DOMString rev; - [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList; - [CEReactions] attribute DOMString media; - [CEReactions] attribute DOMString nonce; - [CEReactions] attribute DOMString hreflang; - [CEReactions] attribute DOMString type; - [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; - [CEReactions] attribute DOMString referrerPolicy; + attribute DOMString href; + attribute DOMString? crossOrigin; + attribute DOMString rel; + attribute DOMString rev; + [SameObject, PutForwards=value]readonly attribute DOMTokenList relList; + attribute DOMString media; + attribute DOMString hreflang; + attribute DOMString type; + [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; }; - HTMLLinkElement implements LinkStyle; +HTMLLinkElement implements LinkStyle; interface HTMLMetaElement : HTMLElement { attribute DOMString name; attribute DOMString httpEquiv; attribute DOMString content; @@ -2006,11 +2078,10 @@ attribute DOMString rev; [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; attribute DOMString hreflang; attribute DOMString type; attribute DOMString text; - attribute DOMString referrerPolicy; }; HTMLAnchorElement implements HTMLHyperlinkElementUtils; interface HTMLDataElement : HTMLElement { attribute DOMString value; @@ -2029,13 +2100,11 @@ attribute DOMString dateTime; }; interface HTMLPictureElement : HTMLElement {}; -interface HTMLSourceElement : HTMLElement { - attribute DOMString src; - attribute DOMString type; +partial interface HTMLSourceElement { attribute DOMString srcset; attribute DOMString sizes; attribute DOMString media; }; @@ -2045,31 +2114,27 @@ attribute DOMString src; attribute DOMString srcset; attribute DOMString sizes; attribute DOMString? crossOrigin; attribute DOMString useMap; - attribute DOMString longDesc; attribute boolean isMap; attribute unsigned long width; attribute unsigned long height; readonly attribute unsigned long naturalWidth; readonly attribute unsigned long naturalHeight; readonly attribute boolean complete; readonly attribute DOMString currentSrc; - attribute DOMString referrerPolicy; }; interface HTMLIFrameElement : HTMLElement { attribute DOMString src; attribute DOMString srcdoc; attribute DOMString name; - [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox; + [PutForwards=value] readonly attribute DOMTokenList sandbox; attribute boolean allowFullscreen; - attribute boolean allowPaymentRequest; attribute DOMString width; attribute DOMString height; - attribute DOMString referrerPolicy; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; }; interface HTMLEmbedElement : HTMLElement { @@ -2115,10 +2180,15 @@ }; [NamedConstructor=Audio(optional DOMString src)] interface HTMLAudioElement : HTMLMediaElement {}; +interface HTMLSourceElement : HTMLElement { + attribute DOMString src; + attribute DOMString type; +}; + interface HTMLTrackElement : HTMLElement { attribute DOMString kind; attribute DOMString src; attribute DOMString srclang; attribute DOMString label; @@ -2306,11 +2376,11 @@ interface TrackEvent : Event { readonly attribute (VideoTrack or AudioTrack or TextTrack)? track; }; dictionary TrackEventInit : EventInit { - (VideoTrack or AudioTrack or TextTrack)? track = null; + (VideoTrack or AudioTrack or TextTrack)? track; }; interface HTMLMapElement : HTMLElement { attribute DOMString name; [SameObject] readonly attribute HTMLCollection areas; @@ -2322,14 +2392,13 @@ attribute DOMString coords; attribute DOMString shape; attribute DOMString target; attribute DOMString download; attribute DOMString rel; - [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; + readonly attribute DOMTokenList relList; attribute DOMString hreflang; attribute DOMString type; - attribute DOMString referrerPolicy; }; HTMLAreaElement implements HTMLHyperlinkElementUtils; [NoInterfaceObject] interface HTMLHyperlinkElementUtils { @@ -2391,11 +2460,11 @@ }; interface HTMLTableCellElement : HTMLElement { attribute unsigned long colSpan; attribute unsigned long rowSpan; - [SameObject, PutForwards=value] readonly attribute DOMTokenList headers; + [PutForwards=value] readonly attribute DOMTokenList headers; readonly attribute long cellIndex; }; [OverrideBuiltins] interface HTMLFormElement : HTMLElement { @@ -2442,21 +2511,22 @@ attribute DOMString formMethod; attribute boolean formNoValidate; attribute DOMString formTarget; attribute unsigned long height; attribute boolean indeterminate; + attribute DOMString inputMode; readonly attribute HTMLElement? list; attribute DOMString max; attribute long maxLength; attribute DOMString min; attribute long minLength; attribute boolean multiple; attribute DOMString name; attribute DOMString pattern; attribute DOMString placeholder; attribute boolean readOnly; - attribute boolean _required; + attribute boolean required; attribute unsigned long size; attribute DOMString src; attribute DOMString step; attribute DOMString type; attribute DOMString defaultValue; @@ -2476,13 +2546,13 @@ void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); - attribute unsigned long? selectionStart; - attribute unsigned long? selectionEnd; - attribute DOMString? selectionDirection; + attribute unsigned long selectionStart; + attribute unsigned long selectionEnd; + attribute DOMString selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; @@ -2496,10 +2566,11 @@ attribute boolean formNoValidate; attribute DOMString formTarget; attribute DOMString name; attribute DOMString type; attribute DOMString value; + attribute HTMLMenuElement? menu; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); @@ -2514,11 +2585,11 @@ attribute boolean autofocus; attribute boolean disabled; readonly attribute HTMLFormElement? form; attribute boolean multiple; attribute DOMString name; - attribute boolean _required; + attribute boolean required; attribute unsigned long size; readonly attribute DOMString type; [SameObject] readonly attribute HTMLOptionsCollection options; @@ -2571,16 +2642,17 @@ attribute boolean autofocus; attribute unsigned long cols; attribute DOMString dirName; attribute boolean disabled; readonly attribute HTMLFormElement? form; + attribute DOMString inputMode; attribute long maxLength; attribute long minLength; attribute DOMString name; attribute DOMString placeholder; attribute boolean readOnly; - attribute boolean _required; + attribute boolean required; attribute unsigned long rows; attribute DOMString wrap; readonly attribute DOMString type; attribute DOMString defaultValue; @@ -2595,18 +2667,38 @@ void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); - attribute unsigned long? selectionStart; - attribute unsigned long? selectionEnd; - attribute DOMString? selectionDirection; + attribute unsigned long selectionStart; + attribute unsigned long selectionEnd; + attribute DOMString selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; +interface HTMLKeygenElement : HTMLElement { + attribute boolean autofocus; + attribute DOMString challenge; + attribute boolean disabled; + readonly attribute HTMLFormElement? form; + attribute DOMString keytype; + attribute DOMString name; + + readonly attribute DOMString type; + + readonly attribute boolean willValidate; + readonly attribute ValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + boolean reportValidity(); + void setCustomValidity(DOMString error); + + [SameObject] readonly attribute NodeList labels; +}; + interface HTMLOutputElement : HTMLElement { [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; readonly attribute HTMLFormElement? form; attribute DOMString name; @@ -2685,18 +2777,34 @@ interface HTMLDetailsElement : HTMLElement { attribute boolean open; }; -interface HTMLDialogElement : HTMLElement { - attribute boolean open; - attribute DOMString returnValue; - void show(optional (MouseEvent or Element) anchor); - void showModal(optional (MouseEvent or Element) anchor); - void close(optional DOMString returnValue); +interface HTMLMenuElement : HTMLElement { + attribute DOMString type; + attribute DOMString label; }; +interface HTMLMenuItemElement : HTMLElement { + attribute DOMString type; + attribute DOMString label; + attribute DOMString icon; + attribute boolean disabled; + attribute boolean checked; + attribute DOMString radiogroup; + attribute boolean default; +}; + +[Constructor(DOMString type, optional RelatedEventInit eventInitDict)] +interface RelatedEvent : Event { + readonly attribute EventTarget? relatedTarget; +}; + +dictionary RelatedEventInit : EventInit { + EventTarget? relatedTarget; +}; + interface HTMLScriptElement : HTMLElement { attribute DOMString src; attribute DOMString type; attribute DOMString charset; attribute boolean async; @@ -2704,12 +2812,10 @@ attribute DOMString? crossOrigin; attribute DOMString text; attribute DOMString nonce; }; -[Exposed=Window, - HTMLConstructor] interface HTMLTemplateElement : HTMLElement { readonly attribute DocumentFragment content; }; typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; @@ -2806,23 +2912,21 @@ [Replaceable] readonly attribute WindowProxy parent; readonly attribute Element? frameElement; WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false); getter WindowProxy (unsigned long index); getter object (DOMString name); -// Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic -// object on the prototype chain. Indeed, this does not make the global object an exotic object. -// Indexed access is taken care of by the WindowProxy exotic object. // the user agent readonly attribute Navigator navigator; // user prompts void alert(); void alert(DOMString message); boolean confirm(optional DOMString message = ""); DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); void print(); +any showModalDialog(DOMString url, optional any argument); // deprecated unsigned long requestAnimationFrame(FrameRequestCallback callback); void cancelAnimationFrame(unsigned long handle); }; Window implements GlobalEventHandlers; @@ -2845,55 +2949,56 @@ void forward(); void pushState(any data, DOMString title, optional DOMString? url = null); void replaceState(any data, DOMString title, optional DOMString? url = null); }; +[Unforgeable] interface Location { - [Unforgeable] stringifier attribute USVString href; - [Unforgeable] readonly attribute USVString origin; - [Unforgeable] attribute USVString protocol; - [Unforgeable] attribute USVString host; - [Unforgeable] attribute USVString hostname; - [Unforgeable] attribute USVString port; - [Unforgeable] attribute USVString pathname; - [Unforgeable] attribute USVString search; - [Unforgeable] attribute USVString hash; + stringifier attribute USVString href; + readonly attribute USVString origin; + attribute USVString protocol; + attribute USVString host; + attribute USVString hostname; + attribute USVString port; + attribute USVString pathname; + attribute USVString search; + attribute USVString hash; - [Unforgeable] void assign(USVString url); - [Unforgeable] void replace(USVString url); - [Unforgeable] void reload(); + void assign(USVString url); + void replace(USVString url); + void reload(); - [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins; + [SameObject] readonly attribute USVString[] ancestorOrigins; }; [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)] interface PopStateEvent : Event { readonly attribute any state; }; dictionary PopStateEventInit : EventInit { - any state = null; + any state; }; [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)] interface HashChangeEvent : Event { - readonly attribute USVString oldURL; - readonly attribute USVString newURL; + readonly attribute DOMString oldURL; + readonly attribute DOMString newURL; }; dictionary HashChangeEventInit : EventInit { - USVString oldURL = ""; - USVString newURL = ""; + DOMString oldURL; + DOMString newURL; }; [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)] interface PageTransitionEvent : Event { readonly attribute boolean persisted; }; dictionary PageTransitionEventInit : EventInit { - boolean persisted = false; + boolean persisted; }; interface BeforeUnloadEvent : Event { attribute DOMString returnValue; }; @@ -2951,10 +3056,11 @@ attribute EventHandler oncanplay; attribute EventHandler oncanplaythrough; attribute EventHandler onchange; attribute EventHandler onclick; attribute EventHandler onclose; + attribute EventHandler oncontextmenu; attribute EventHandler oncuechange; attribute EventHandler ondblclick; attribute EventHandler ondrag; attribute EventHandler ondragend; attribute EventHandler ondragenter; @@ -3030,41 +3136,43 @@ attribute EventHandler oncopy; attribute EventHandler oncut; attribute EventHandler onpaste; }; -typedef (DOMString or Function) TimerHandler; - [NoInterfaceObject, Exposed=(Window, Worker)] -interface WindowOrWorkerGlobalScope { - [Replaceable] readonly attribute USVString origin; - - // Base64 utility methods (WindowBase64) +interface WindowBase64 { DOMString btoa(DOMString btoa); DOMString atob(DOMString atob); +}; +Window implements WindowBase64; +WorkerGlobalScope implements WindowBase64; - // Timers (WindowTimers) +[NoInterfaceObject, Exposed=(Window,Worker)] +interface WindowTimers { long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments); void clearTimeout(optional long handle = 0); long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments); void clearInterval(optional long handle = 0); +}; +Window implements WindowTimers; +WorkerGlobalScope implements WindowTimers; - // ImageBitmap, Images (ImageBitmapFactories) - Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image); - Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh); +[NoInterfaceObject] +interface WindowModal { + readonly attribute any dialogArguments; + attribute any returnValue; }; -Window implements WindowOrWorkerGlobalScope; -WorkerGlobalScope implements WindowOrWorkerGlobalScope; interface Navigator { // objects implementing this interface also implement the interfaces given below }; Navigator implements NavigatorID; Navigator implements NavigatorLanguage; Navigator implements NavigatorOnLine; Navigator implements NavigatorContentUtils; Navigator implements NavigatorCookies; +Navigator implements NavigatorPlugins; [NoInterfaceObject, Exposed=(Window, Worker)] interface NavigatorID { [Exposed=Window] readonly attribute DOMString appCodeName; // constant "Mozilla" readonly attribute DOMString appName; // constant "Netscape" @@ -3082,23 +3190,55 @@ [NoInterfaceObject] interface NavigatorContentUtils { // content handler registration void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title); - void registerContentHandler(DOMString mimeType, DOMString url, DOMString title); - DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url); - DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url); void unregisterProtocolHandler(DOMString scheme, DOMString url); - void unregisterContentHandler(DOMString mimeType, DOMString url); }; [NoInterfaceObject] interface NavigatorCookies { readonly attribute boolean cookieEnabled; }; -[Exposed=(Window, Worker), Serializable, Transferable] +[NoInterfaceObject] + interface NavigatorPlugins { + [SameObject] readonly attribute PluginArray plugins; + [SameObject] readonly attribute MimeTypeArray mimeTypes; + boolean javaEnabled(); +}; + +interface PluginArray { + void refresh(optional boolean reload = false); + readonly attribute unsigned long length; + getter Plugin? item(unsigned long index); + getter Plugin? namedItem(DOMString name); +}; + +interface MimeTypeArray { + readonly attribute unsigned long length; + getter MimeType? item(unsigned long index); + getter MimeType? namedItem(DOMString name); +}; + +interface Plugin { + readonly attribute DOMString name; + readonly attribute DOMString description; + readonly attribute DOMString filename; + readonly attribute unsigned long length; + getter MimeType? item(unsigned long index); + getter MimeType? namedItem(DOMString name); +}; + +interface MimeType { + readonly attribute DOMString type; + readonly attribute DOMString description; + readonly attribute DOMString suffixes; // comma-separated + readonly attribute Plugin enabledPlugin; +}; + +[Exposed=(Window, Worker)] interface ImageBitmap { readonly attribute unsigned long width; readonly attribute unsigned long height; }; @@ -3108,281 +3248,314 @@ Blob or ImageData or CanvasRenderingContext2D or ImageBitmap) ImageBitmapSource; -// Note: intentionally not [HTMLConstructor] +[NoInterfaceObject, Exposed=(Window, Worker)] +interface ImageBitmapFactories { + Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image); + Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh); +}; +Window implements ImageBitmapFactories; +WorkerGlobalScope implements ImageBitmapFactories; + interface HTMLAppletElement : HTMLElement { attribute DOMString align; attribute DOMString alt; attribute DOMString archive; attribute DOMString code; - attribute USVString codeBase; + attribute DOMString codeBase; attribute DOMString height; attribute unsigned long hspace; attribute DOMString name; - attribute USVString _object; // the underscore is not part of the identifier + attribute DOMString _object; // the underscore is not part of the identifier attribute unsigned long vspace; attribute DOMString width; }; -[HTMLConstructor] interface HTMLMarqueeElement : HTMLElement { - [CEReactions] attribute DOMString behavior; - [CEReactions] attribute DOMString bgColor; - [CEReactions] attribute DOMString direction; - [CEReactions] attribute DOMString height; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute long loop; - [CEReactions] attribute unsigned long scrollAmount; - [CEReactions] attribute unsigned long scrollDelay; - [CEReactions] attribute boolean trueSpeed; - [CEReactions] attribute unsigned long vspace; - [CEReactions] attribute DOMString width; + attribute DOMString behavior; + attribute DOMString bgColor; + attribute DOMString direction; + attribute DOMString height; + attribute unsigned long hspace; + attribute long loop; + attribute unsigned long scrollAmount; + attribute unsigned long scrollDelay; + attribute boolean trueSpeed; + attribute unsigned long vspace; + attribute DOMString width; attribute EventHandler onbounce; attribute EventHandler onfinish; attribute EventHandler onstart; void start(); void stop(); }; -[HTMLConstructor] interface HTMLFrameSetElement : HTMLElement { - [CEReactions] attribute DOMString cols; - [CEReactions] attribute DOMString rows; + attribute DOMString cols; + attribute DOMString rows; }; HTMLFrameSetElement implements WindowEventHandlers; -[HTMLConstructor] interface HTMLFrameElement : HTMLElement { - [CEReactions] attribute DOMString name; - [CEReactions] attribute DOMString scrolling; - [CEReactions] attribute USVString src; - [CEReactions] attribute DOMString frameBorder; - [CEReactions] attribute USVString longDesc; - [CEReactions] attribute boolean noResize; + attribute DOMString name; + attribute DOMString scrolling; + attribute DOMString src; + attribute DOMString frameBorder; + attribute boolean noResize; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; + [TreatNullAs=EmptyString] attribute DOMString marginHeight; + [TreatNullAs=EmptyString] attribute DOMString marginWidth; }; +[Exposed=(Window, SharedWorker)] +interface ApplicationCache : EventTarget { + // 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; + const unsigned short OBSOLETE = 5; + readonly attribute unsigned short status; + + // updates + void update(); + void abort(); + void swapCache(); + + // events + attribute EventHandler onchecking; + attribute EventHandler onerror; + attribute EventHandler onnoupdate; + attribute EventHandler ondownloading; + attribute EventHandler onprogress; + attribute EventHandler onupdateready; + attribute EventHandler oncached; + attribute EventHandler onobsolete; +}; + partial interface HTMLAnchorElement { - [CEReactions] attribute DOMString coords; - [CEReactions] attribute DOMString charset; - [CEReactions] attribute DOMString name; - [CEReactions] attribute DOMString shape; + attribute DOMString coords; + attribute DOMString charset; + attribute DOMString name; + attribute DOMString shape; }; partial interface HTMLAreaElement { - [CEReactions] attribute boolean noHref; + attribute boolean noHref; }; partial interface HTMLBodyElement { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString text; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString link; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString text; + [TreatNullAs=EmptyString] attribute DOMString link; + [TreatNullAs=EmptyString] attribute DOMString vLink; + [TreatNullAs=EmptyString] attribute DOMString aLink; + [TreatNullAs=EmptyString] attribute DOMString bgColor; attribute DOMString background; }; partial interface HTMLBRElement { - [CEReactions] attribute DOMString clear; + attribute DOMString clear; }; partial interface HTMLTableCaptionElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLTableColElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; + attribute DOMString width; }; -[HTMLConstructor] interface HTMLDirectoryElement : HTMLElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLDivElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLDListElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLEmbedElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString name; + attribute DOMString align; + attribute DOMString name; }; -[HTMLConstructor] interface HTMLFontElement : HTMLElement { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString color; - [CEReactions] attribute DOMString face; - [CEReactions] attribute DOMString size; + [TreatNullAs=EmptyString] attribute DOMString color; + attribute DOMString face; + attribute DOMString size; }; partial interface HTMLHeadingElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLHRElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString color; - [CEReactions] attribute boolean noShade; - [CEReactions] attribute DOMString size; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString color; + attribute boolean noShade; + attribute DOMString size; + attribute DOMString width; }; partial interface HTMLHtmlElement { - [CEReactions] attribute DOMString version; + attribute DOMString version; }; partial interface HTMLIFrameElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString scrolling; - [CEReactions] attribute DOMString frameBorder; - [CEReactions] attribute USVString longDesc; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; + attribute DOMString align; + attribute DOMString scrolling; + attribute DOMString frameBorder; + + [TreatNullAs=EmptyString] attribute DOMString marginHeight; + [TreatNullAs=EmptyString] attribute DOMString marginWidth; }; partial interface HTMLImageElement { - [CEReactions] attribute DOMString name; - [CEReactions] attribute USVString lowsrc; - [CEReactions] attribute DOMString align; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute unsigned long vspace; + attribute DOMString name; + attribute DOMString lowsrc; + attribute DOMString align; + attribute unsigned long hspace; + attribute unsigned long vspace; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; + [TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLInputElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString useMap; + attribute DOMString align; + attribute DOMString useMap; }; partial interface HTMLLegendElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLLIElement { - [CEReactions] attribute DOMString type; + attribute DOMString type; }; partial interface HTMLLinkElement { - [CEReactions] attribute DOMString charset; - [CEReactions] attribute DOMString target; + attribute DOMString charset; + attribute DOMString target; }; partial interface HTMLMenuElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLMetaElement { - [CEReactions] attribute DOMString scheme; + attribute DOMString scheme; }; partial interface HTMLObjectElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString archive; - [CEReactions] attribute DOMString code; - [CEReactions] attribute boolean declare; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute DOMString standby; - [CEReactions] attribute unsigned long vspace; - [CEReactions] attribute DOMString codeBase; - [CEReactions] attribute DOMString codeType; + attribute DOMString align; + attribute DOMString archive; + attribute DOMString code; + attribute boolean declare; + attribute unsigned long hspace; + attribute DOMString standby; + attribute unsigned long vspace; + attribute DOMString codeBase; + attribute DOMString codeType; + attribute DOMString useMap; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; + [TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLOListElement { - [CEReactions] attribute boolean compact; + attribute boolean compact; }; partial interface HTMLParagraphElement { - [CEReactions] attribute DOMString align; + attribute DOMString align; }; partial interface HTMLParamElement { - [CEReactions] attribute DOMString type; - [CEReactions] attribute DOMString valueType; + attribute DOMString type; + attribute DOMString valueType; }; partial interface HTMLPreElement { - [CEReactions] attribute long width; + attribute long width; }; partial interface HTMLScriptElement { - [CEReactions] attribute DOMString event; - [CEReactions] attribute DOMString htmlFor; + attribute DOMString event; + attribute DOMString htmlFor; }; partial interface HTMLTableElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString border; - [CEReactions] attribute DOMString frame; - [CEReactions] attribute DOMString rules; - [CEReactions] attribute DOMString summary; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString border; + attribute DOMString frame; + attribute DOMString rules; + attribute DOMString summary; + attribute DOMString width; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing; + [TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString cellPadding; + [TreatNullAs=EmptyString] attribute DOMString cellSpacing; }; partial interface HTMLTableSectionElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; }; partial interface HTMLTableCellElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString axis; - [CEReactions] attribute DOMString height; - [CEReactions] attribute DOMString width; + attribute DOMString align; + attribute DOMString axis; + attribute DOMString height; + attribute DOMString width; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute boolean noWrap; - [CEReactions] attribute DOMString vAlign; + attribute DOMString ch; + attribute DOMString chOff; + attribute boolean noWrap; + attribute DOMString vAlign; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; }; +partial interface HTMLTableDataCellElement { + attribute DOMString abbr; +}; + partial interface HTMLTableRowElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString ch; - [CEReactions] attribute DOMString chOff; - [CEReactions] attribute DOMString vAlign; + attribute DOMString align; + attribute DOMString ch; + attribute DOMString chOff; + attribute DOMString vAlign; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; }; partial interface HTMLUListElement { - [CEReactions] attribute boolean compact; - [CEReactions] attribute DOMString type; + attribute boolean compact; + attribute DOMString type; }; partial interface Document { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; + [TreatNullAs=EmptyString] attribute DOMString fgColor; + [TreatNullAs=EmptyString] attribute DOMString linkColor; + [TreatNullAs=EmptyString] attribute DOMString vlinkColor; + [TreatNullAs=EmptyString] attribute DOMString alinkColor; + [TreatNullAs=EmptyString] attribute DOMString bgColor; [SameObject] readonly attribute HTMLCollection anchors; [SameObject] readonly attribute HTMLCollection applets; void clear(); @@ -3401,45 +3574,7 @@ [NoInterfaceObject] interface External { void AddSearchProvider(); void IsSearchProviderInstalled(); -}; - -Navigator implements NavigatorPlugins; - -[NoInterfaceObject] - interface NavigatorPlugins { - [SameObject] readonly attribute PluginArray plugins; - [SameObject] readonly attribute MimeTypeArray mimeTypes; - boolean javaEnabled(); -}; - -interface PluginArray { - void refresh(optional boolean reload = false); - readonly attribute unsigned long length; - getter Plugin? item(unsigned long index); - getter Plugin? namedItem(DOMString name); -}; - -interface MimeTypeArray { - readonly attribute unsigned long length; - getter MimeType? item(unsigned long index); - getter MimeType? namedItem(DOMString name); -}; - -interface Plugin { - readonly attribute DOMString name; - readonly attribute DOMString description; - readonly attribute DOMString filename; - readonly attribute unsigned long length; - getter MimeType? item(unsigned long index); - getter MimeType? namedItem(DOMString name); -}; - -interface MimeType { - readonly attribute DOMString type; - readonly attribute DOMString description; - readonly attribute DOMString suffixes; // comma-separated - readonly attribute Plugin enabledPlugin; };