/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIDOMHTMLElement.idl"

/**
 * The nsIDOMHTMLObjectElement interface is the interface to a [X]HTML
 * object element.
 *
 * This interface is trying to follow the DOM Level 2 HTML specification:
 * http://www.w3.org/TR/DOM-Level-2-HTML/
 *
 * with changes from the work-in-progress WHATWG HTML specification:
 * http://www.whatwg.org/specs/web-apps/current-work/
 */

interface nsIDOMValidityState;

[scriptable, uuid(bed8f222-c4dd-41ba-9ec6-dfae0ec8def8)]
interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement
{
  readonly attribute nsIDOMHTMLFormElement form;
           attribute DOMString             code;
           attribute DOMString             align;
           attribute DOMString             archive;
           attribute DOMString             border;
           attribute DOMString             codeBase;
           attribute DOMString             codeType;
           attribute DOMString             data;
           attribute boolean               declare;
           attribute DOMString             height;
           attribute long                  hspace;
           attribute DOMString             name;
           attribute DOMString             standby;
           attribute DOMString             type;
           attribute DOMString             useMap;
           attribute long                  vspace;
           attribute DOMString             width;
  // Introduced in DOM Level 2:
  readonly attribute nsIDOMDocument        contentDocument;

  // The following lines are parte of the constraint validation API, see:
  // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api
  readonly attribute boolean               willValidate;
  readonly attribute nsIDOMValidityState   validity;
  readonly attribute DOMString             validationMessage;
  boolean  checkValidity();
  void     setCustomValidity(in DOMString error);
};
