summaryrefslogtreecommitdiffstats
path: root/dom/webidl/HTMLInputElement.webidl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webidl/HTMLInputElement.webidl')
-rw-r--r--dom/webidl/HTMLInputElement.webidl293
1 files changed, 293 insertions, 0 deletions
diff --git a/dom/webidl/HTMLInputElement.webidl b/dom/webidl/HTMLInputElement.webidl
new file mode 100644
index 0000000000..594d80c30f
--- /dev/null
+++ b/dom/webidl/HTMLInputElement.webidl
@@ -0,0 +1,293 @@
+/* -*- 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/.
+ *
+ * The origin of this IDL file is
+ * http://www.whatwg.org/specs/web-apps/current-work/#the-input-element
+ * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis
+ * https://wicg.github.io/entries-api/#idl-index
+ *
+ * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and
+ * Opera Software ASA. You are granted a license to use, reproduce
+ * and create derivative works of this document.
+ */
+
+enum SelectionMode {
+ "select",
+ "start",
+ "end",
+ "preserve",
+};
+
+interface XULControllers;
+
+[Exposed=Window,
+ InstrumentedProps=(capture,
+ incremental,
+ onsearch,
+ popoverTargetAction,
+ popoverTargetElement,
+ webkitEntries,
+ webkitdirectory)]
+interface HTMLInputElement : HTMLElement {
+ [HTMLConstructor] constructor();
+
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString accept;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString alt;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString autocomplete;
+ [CEReactions, Pure, SetterThrows, Pref="dom.capture.enabled"]
+ attribute DOMString capture;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean defaultChecked;
+ [Pure]
+ attribute boolean checked;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString dirName;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ [Pure]
+ attribute FileList? files;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString formAction;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString formEnctype;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString formMethod;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean formNoValidate;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString formTarget;
+ [CEReactions, Pure, SetterThrows]
+ attribute unsigned long height;
+ [Pure]
+ attribute boolean indeterminate;
+ [Pure]
+ readonly attribute HTMLDataListElement? list;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString max;
+ [CEReactions, Pure, SetterThrows]
+ attribute long maxLength;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString min;
+ [CEReactions, Pure, SetterThrows]
+ attribute long minLength;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean multiple;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString name;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString pattern;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString placeholder;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean readOnly;
+ [CEReactions, Pure, SetterThrows]
+ attribute boolean required;
+ [CEReactions, Pure, SetterThrows]
+ attribute unsigned long size;
+ [CEReactions, Pure, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows]
+ attribute DOMString src;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString step;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString type;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString defaultValue;
+ [CEReactions, Pure, SetterThrows, NeedsCallerType]
+ attribute [LegacyNullToEmptyString] DOMString value;
+ [Throws]
+ attribute object? valueAsDate;
+ [Pure, SetterThrows]
+ attribute unrestricted double valueAsNumber;
+ [CEReactions, SetterThrows]
+ attribute unsigned long width;
+
+ [Throws]
+ undefined stepUp(optional long n = 1);
+ [Throws]
+ undefined stepDown(optional long n = 1);
+
+ [Pure]
+ readonly attribute boolean willValidate;
+ [Pure]
+ readonly attribute ValidityState validity;
+ [Throws]
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ boolean reportValidity();
+ undefined setCustomValidity(DOMString error);
+
+ readonly attribute NodeList? labels;
+
+ undefined select();
+
+ [Throws]
+ attribute unsigned long? selectionStart;
+ [Throws]
+ attribute unsigned long? selectionEnd;
+ [Throws]
+ attribute DOMString? selectionDirection;
+ [Throws]
+ undefined setRangeText(DOMString replacement);
+ [Throws]
+ undefined setRangeText(DOMString replacement, unsigned long start,
+ unsigned long end, optional SelectionMode selectionMode = "preserve");
+ [Throws]
+ undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
+
+ [Throws]
+ undefined showPicker();
+
+ // also has obsolete members
+};
+
+partial interface HTMLInputElement {
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString align;
+ [CEReactions, Pure, SetterThrows]
+ attribute DOMString useMap;
+};
+
+// Mozilla extensions
+
+partial interface HTMLInputElement {
+ [GetterThrows, ChromeOnly]
+ readonly attribute XULControllers? controllers;
+ // Binaryname because we have a FragmentOrElement function named "TextLength()".
+ [NeedsCallerType, BinaryName="inputTextLength"]
+ readonly attribute long textLength;
+
+ [Throws, ChromeOnly]
+ sequence<DOMString> mozGetFileNameArray();
+
+ [ChromeOnly, Throws]
+ undefined mozSetFileNameArray(sequence<DOMString> fileNames);
+
+ [ChromeOnly]
+ undefined mozSetFileArray(sequence<File> files);
+
+ // This method is meant to use for testing only.
+ [ChromeOnly, Throws]
+ undefined mozSetDirectory(DOMString directoryPath);
+
+ // This method is meant to use for testing only.
+ [ChromeOnly]
+ undefined mozSetDndFilesAndDirectories(sequence<(File or Directory)> list);
+
+ // This method is meant to use for testing only.
+ [ChromeOnly, NewObject]
+ Promise<sequence<(File or Directory)>> getFilesAndDirectories();
+
+ boolean mozIsTextField(boolean aExcludePassword);
+
+ [ChromeOnly]
+ readonly attribute boolean hasBeenTypePassword;
+
+ [ChromeOnly]
+ attribute DOMString previewValue;
+
+ // Last value entered by the user, not by a script.
+ // NOTE(emilio): As of right now some execCommand triggered changes might be
+ // considered interactive.
+ [ChromeOnly]
+ readonly attribute DOMString lastInteractiveValue;
+
+ [ChromeOnly]
+ // This function will return null if @autocomplete is not defined for the
+ // current @type
+ AutocompleteInfo? getAutocompleteInfo();
+
+ [ChromeOnly]
+ // The reveal password state for a type=password control.
+ attribute boolean revealPassword;
+};
+
+interface mixin MozEditableElement {
+ // Returns an nsIEditor instance which is associated with the element.
+ // If the element can be associated with an editor but not yet created,
+ // this creates new one automatically.
+ [Pure, ChromeOnly, BinaryName="editorForBindings"]
+ readonly attribute nsIEditor? editor;
+
+ // Returns true if an nsIEditor instance has already been associated with
+ // the element.
+ [Pure, ChromeOnly]
+ readonly attribute boolean hasEditor;
+
+ // This is set to true if "input" event should be fired with InputEvent on
+ // the element. Otherwise, i.e., if "input" event should be fired with
+ // Event, set to false.
+ [ChromeOnly]
+ readonly attribute boolean isInputEventTarget;
+
+ // This is similar to set .value on nsIDOMInput/TextAreaElements, but handling
+ // of the value change is closer to the normal user input, so 'change' event
+ // for example will be dispatched when focusing out the element.
+ [Func="IsChromeOrUAWidget", NeedsSubjectPrincipal]
+ undefined setUserInput(DOMString input);
+};
+
+HTMLInputElement includes MozEditableElement;
+
+HTMLInputElement includes MozImageLoadingContent;
+
+HTMLInputElement includes PopoverInvokerElement;
+
+HTMLInputElement includes InvokerElement;
+
+// https://wicg.github.io/entries-api/#idl-index
+partial interface HTMLInputElement {
+ [Pref="dom.webkitBlink.filesystem.enabled", Frozen, Cached, Pure]
+ readonly attribute sequence<FileSystemEntry> webkitEntries;
+
+ [Pref="dom.webkitBlink.dirPicker.enabled", BinaryName="WebkitDirectoryAttr", SetterThrows]
+ attribute boolean webkitdirectory;
+};
+
+dictionary DateTimeValue {
+ long hour;
+ long minute;
+ long year;
+ long month;
+ long day;
+};
+
+partial interface HTMLInputElement {
+ [ChromeOnly]
+ DateTimeValue getDateTimeInputBoxValue();
+
+ [ChromeOnly]
+ readonly attribute Element? dateTimeBoxElement;
+
+ [ChromeOnly, BinaryName="getMinimumAsDouble"]
+ double getMinimum();
+
+ [ChromeOnly, BinaryName="getMaximumAsDouble"]
+ double getMaximum();
+
+ [Func="IsChromeOrUAWidget"]
+ undefined openDateTimePicker(optional DateTimeValue initialValue = {});
+
+ [Func="IsChromeOrUAWidget"]
+ undefined updateDateTimePicker(optional DateTimeValue value = {});
+
+ [Func="IsChromeOrUAWidget"]
+ undefined closeDateTimePicker();
+
+ [Func="IsChromeOrUAWidget"]
+ undefined setFocusState(boolean aIsFocused);
+
+ [Func="IsChromeOrUAWidget"]
+ undefined updateValidityState();
+
+ [Func="IsChromeOrUAWidget", BinaryName="getStepAsDouble"]
+ double getStep();
+
+ [Func="IsChromeOrUAWidget", BinaryName="getStepBaseAsDouble"]
+ double getStepBase();
+};