#import <DOM/Document.idl>
#import <HTML/HTMLElement.idl>

// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmlobjectelement
[Exposed=Window]
interface HTMLObjectElement : HTMLElement {

    [HTMLConstructor] constructor();

    [CEReactions] attribute DOMString data;
    [CEReactions, Reflect] attribute DOMString type;
    [CEReactions, Reflect] attribute DOMString name;
    // FIXME: readonly attribute HTMLFormElement? form;
    [CEReactions, Reflect] attribute DOMString width;
    [CEReactions, Reflect] attribute DOMString height;
    readonly attribute Document? contentDocument;
    // FIXME: readonly attribute WindowProxy? contentWindow;
    Document? getSVGDocument();

    // FIXME: readonly attribute boolean willValidate;
    // FIXME: readonly attribute ValidityState validity;
    // FIXME: readonly attribute DOMString validationMessage;
    // FIXME: boolean checkValidity();
    // FIXME: boolean reportValidity();
    // FIXME: undefined setCustomValidity(DOMString error);

    // Obsolete
    [CEReactions, Reflect] attribute DOMString align;
    [CEReactions, Reflect] attribute DOMString archive;
    [CEReactions, Reflect] attribute DOMString code;
    [CEReactions, Reflect] attribute boolean declare;
    // FIXME: [CEReactions] attribute unsigned long hspace;
    [CEReactions, Reflect] attribute DOMString standby;
    // FIXME: [CEReactions] attribute unsigned long vspace;
    // FIXME: [CEReactions] attribute DOMString codeBase;
    [CEReactions, Reflect=codetype] attribute DOMString codeType;
    [CEReactions, Reflect=usemap] attribute DOMString useMap;

    [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString border;

};