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.webidl261
1 files changed, 261 insertions, 0 deletions
diff --git a/dom/webidl/HTMLInputElement.webidl b/dom/webidl/HTMLInputElement.webidl
new file mode 100644
index 000000000..d3d537f84
--- /dev/null
+++ b/dom/webidl/HTMLInputElement.webidl
@@ -0,0 +1,261 @@
+/* -*- 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
+ *
+ * © 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 nsIControllers;
+
+interface HTMLInputElement : HTMLElement {
+ [Pure, SetterThrows]
+ attribute DOMString accept;
+ [Pure, SetterThrows]
+ attribute DOMString alt;
+ [Pure, SetterThrows]
+ attribute DOMString autocomplete;
+ [Pure, SetterThrows]
+ attribute boolean autofocus;
+ [Pure, SetterThrows]
+ attribute boolean defaultChecked;
+ [Pure]
+ attribute boolean checked;
+ // Bug 850337 - attribute DOMString dirName;
+ [Pure, SetterThrows]
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ [Pure]
+ readonly attribute FileList? files;
+ [Pure, SetterThrows]
+ attribute DOMString formAction;
+ [Pure, SetterThrows]
+ attribute DOMString formEnctype;
+ [Pure, SetterThrows]
+ attribute DOMString formMethod;
+ [Pure, SetterThrows]
+ attribute boolean formNoValidate;
+ [Pure, SetterThrows]
+ attribute DOMString formTarget;
+ [Pure, SetterThrows]
+ attribute unsigned long height;
+ [Pure]
+ attribute boolean indeterminate;
+ [Pure, SetterThrows, Pref="dom.forms.inputmode"]
+ attribute DOMString inputMode;
+ [Pure]
+ readonly attribute HTMLElement? list;
+ [Pure, SetterThrows]
+ attribute DOMString max;
+ [Pure, SetterThrows]
+ attribute long maxLength;
+ [Pure, SetterThrows]
+ attribute DOMString min;
+ [Pure, SetterThrows]
+ attribute long minLength;
+ [Pure, SetterThrows]
+ attribute boolean multiple;
+ [Pure, SetterThrows]
+ attribute DOMString name;
+ [Pure, SetterThrows]
+ attribute DOMString pattern;
+ [Pure, SetterThrows]
+ attribute DOMString placeholder;
+ [Pure, SetterThrows]
+ attribute boolean readOnly;
+ [Pure, SetterThrows]
+ attribute boolean required;
+ [Pure, SetterThrows]
+ attribute unsigned long size;
+ [Pure, SetterThrows]
+ attribute DOMString src;
+ [Pure, SetterThrows]
+ attribute DOMString step;
+ [Pure, SetterThrows]
+ attribute DOMString type;
+ [Pure, SetterThrows]
+ attribute DOMString defaultValue;
+ [Pure, TreatNullAs=EmptyString, Throws]
+ attribute DOMString value;
+ [Throws, Func="HTMLInputElement::ValueAsDateEnabled"]
+ attribute Date? valueAsDate;
+ [Pure, SetterThrows]
+ attribute unrestricted double valueAsNumber;
+ attribute unsigned long width;
+
+ [Throws]
+ void stepUp(optional long n = 1);
+ [Throws]
+ void stepDown(optional long n = 1);
+
+ [Pure]
+ readonly attribute boolean willValidate;
+ [Pure]
+ readonly attribute ValidityState validity;
+ [GetterThrows]
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ boolean reportValidity();
+ void setCustomValidity(DOMString error);
+
+ // Bug 850365 readonly attribute NodeList labels;
+
+ void select();
+
+ [Throws]
+ // TODO: unsigned vs signed
+ attribute long? selectionStart;
+ [Throws]
+ attribute long? selectionEnd;
+ [Throws]
+ attribute DOMString? selectionDirection;
+ [Throws]
+ void setRangeText(DOMString replacement);
+ [Throws]
+ void setRangeText(DOMString replacement, unsigned long start,
+ unsigned long end, optional SelectionMode selectionMode = "preserve");
+
+ // also has obsolete members
+};
+
+partial interface HTMLInputElement {
+ [Pure, SetterThrows]
+ attribute DOMString align;
+ [Pure, SetterThrows]
+ attribute DOMString useMap;
+};
+
+// Mozilla extensions
+
+partial interface HTMLInputElement {
+ [Throws]
+ void setSelectionRange(long start, long end, optional DOMString direction);
+
+ [GetterThrows, ChromeOnly]
+ readonly attribute nsIControllers controllers;
+ [GetterThrows]
+ readonly attribute long textLength;
+
+ [Throws, ChromeOnly]
+ sequence<DOMString> mozGetFileNameArray();
+
+ [ChromeOnly, Throws]
+ void mozSetFileNameArray(sequence<DOMString> fileNames);
+
+ [ChromeOnly]
+ void mozSetFileArray(sequence<File> files);
+
+ // This method is meant to use for testing only.
+ [ChromeOnly, Throws]
+ void mozSetDirectory(DOMString directoryPath);
+
+ // This method is meant to use for testing only.
+ [ChromeOnly]
+ void mozSetDndFilesAndDirectories(sequence<(File or Directory)> list);
+
+ // Number controls (<input type=number>) have an anonymous text control
+ // (<input type=text>) in the anonymous shadow tree that they contain. On
+ // such an anonymous text control this property provides access to the
+ // number control that owns the text control. This is useful, for example,
+ // in code that looks at the currently focused element to make decisions
+ // about which IME to bring up. Such code needs to be able to check for any
+ // owning number control since it probably wants to bring up a number pad
+ // instead of the standard keyboard, even when the anonymous text control has
+ // focus.
+ [ChromeOnly]
+ readonly attribute HTMLInputElement? ownerNumberControl;
+
+ boolean mozIsTextField(boolean aExcludePassword);
+
+ [ChromeOnly]
+ // This function will return null if @autocomplete is not defined for the
+ // current @type
+ AutocompleteInfo? getAutocompleteInfo();
+};
+
+partial interface HTMLInputElement {
+ // Mirrored chrome-only nsIDOMNSEditableElement methods. Please make sure
+ // to update this list if nsIDOMNSEditableElement changes.
+
+ [Pure, ChromeOnly]
+ readonly attribute nsIEditor? editor;
+
+ // 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="IsChromeOrXBL", NeedsSubjectPrincipal]
+ void setUserInput(DOMString input);
+};
+
+partial interface HTMLInputElement {
+ [Pref="dom.input.dirpicker", SetterThrows]
+ attribute boolean allowdirs;
+
+ [Pref="dom.input.dirpicker"]
+ readonly attribute boolean isFilesAndDirectoriesSupported;
+
+ [Throws, Pref="dom.input.dirpicker"]
+ Promise<sequence<(File or Directory)>> getFilesAndDirectories();
+
+ [Throws, Pref="dom.input.dirpicker"]
+ Promise<sequence<File>> getFiles(optional boolean recursiveFlag = false);
+
+ [Throws, Pref="dom.input.dirpicker"]
+ void chooseDirectory();
+};
+
+[NoInterfaceObject]
+interface MozPhonetic {
+ [Pure, ChromeOnly]
+ readonly attribute DOMString phonetic;
+};
+
+HTMLInputElement implements MozImageLoadingContent;
+HTMLInputElement implements MozPhonetic;
+
+// Webkit/Blink
+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;
+};
+
+partial interface HTMLInputElement {
+ [Pref="dom.forms.datetime", ChromeOnly]
+ DateTimeValue getDateTimeInputBoxValue();
+
+ [Pref="dom.forms.datetime", ChromeOnly]
+ void updateDateTimeInputBox(optional DateTimeValue value);
+
+ [Pref="dom.forms.datetime", ChromeOnly]
+ void setDateTimePickerState(boolean open);
+
+ [Pref="dom.forms.datetime", Func="IsChromeOrXBL"]
+ void openDateTimePicker(optional DateTimeValue initialValue);
+
+ [Pref="dom.forms.datetime", Func="IsChromeOrXBL"]
+ void updateDateTimePicker(optional DateTimeValue value);
+
+ [Pref="dom.forms.datetime", Func="IsChromeOrXBL"]
+ void closeDateTimePicker();
+};