summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/DOM/Document.idl
blob: 50b1baceef0bdd2d6286350e85f6f0ba3c7c667f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#import <CSS/StyleSheetList.idl>
#import <DOM/Comment.idl>
#import <DOM/DOMImplementation.idl>
#import <DOM/DocumentFragment.idl>
#import <DOM/DocumentType.idl>
#import <DOM/Element.idl>
#import <DOM/Event.idl>
#import <DOM/HTMLCollection.idl>
#import <DOM/Node.idl>
#import <DOM/NodeList.idl>
#import <DOM/Range.idl>
#import <DOM/Text.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/HTMLHeadElement.idl>
#import <HTML/HTMLScriptElement.idl>

interface Document : Node {

    constructor();

    boolean hasFocus();

    // FIXME: These attributes currently don't do anything.
    [PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;

    readonly attribute DOMImplementation implementation;

    readonly attribute DOMString characterSet;
    readonly attribute DOMString charset;
    readonly attribute DOMString inputEncoding;
    readonly attribute DOMString contentType;

    readonly attribute Window? defaultView;

    [CEReactions] Document open(optional DOMString unused1, optional DOMString unused2);
    // FIXME: implement ExceptionOr<HTML::Window> Document::open(...)
    // WindowProxy? open(USVString url, DOMString name, DOMString features);
    [CEReactions] undefined close();
    [CEReactions] undefined write(DOMString... text);
    [CEReactions] undefined writeln(DOMString... text);

    attribute DOMString cookie;

    readonly attribute USVString referrer;

    readonly attribute Element? activeElement;

    Element? getElementById(DOMString id);
    HTMLCollection getElementsByName(DOMString name);
    HTMLCollection getElementsByTagName(DOMString tagName);
    HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
    HTMLCollection getElementsByClassName(DOMString className);

    readonly attribute HTMLCollection applets;
    readonly attribute HTMLCollection anchors;
    readonly attribute HTMLCollection images;
    readonly attribute HTMLCollection embeds;
    readonly attribute HTMLCollection plugins;
    readonly attribute HTMLCollection links;
    readonly attribute HTMLCollection forms;
    readonly attribute HTMLCollection scripts;

    Element createElement(DOMString tagName);
    Element createElementNS(DOMString? namespace, DOMString qualifiedName);
    DocumentFragment createDocumentFragment();
    Text createTextNode(DOMString data);
    Comment createComment(DOMString data);
    Range createRange();
    Event createEvent(DOMString interface);

    [CEReactions, NewObject] Node importNode(Node node, optional boolean deep = false);
    [CEReactions, ImplementedAs=adopt_node_binding] Node adoptNode(Node node);

    [ImplementedAs=style_sheets_for_bindings] readonly attribute StyleSheetList styleSheets;

    readonly attribute DOMString compatMode;
    readonly attribute DocumentType? doctype;

    readonly attribute Element? documentElement;
    attribute HTMLElement? body;
    readonly attribute HTMLHeadElement? head;
    readonly attribute HTMLScriptElement? currentScript;

    readonly attribute DOMString readyState;

    attribute DOMString title;

    // FIXME: These should all come from a ParentNode mixin
    readonly attribute Element? firstElementChild;
    readonly attribute Element? lastElementChild;
    readonly attribute unsigned long childElementCount;

    [CEReactions, Unscopable] undefined prepend((Node or DOMString)... nodes);
    [CEReactions, Unscopable] undefined append((Node or DOMString)... nodes);
    [CEReactions, Unscopable] undefined replaceChildren((Node or DOMString)... nodes);

    Element? querySelector(DOMString selectors);
    [NewObject] NodeList querySelectorAll(DOMString selectors);

    [SameObject] readonly attribute HTMLCollection children;

    // FIXME: These should all come from a GlobalEventHandlers mixin
    attribute EventHandler onabort;
    attribute EventHandler onauxclick;
    attribute EventHandler onblur;
    attribute EventHandler oncancel;
    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;
    attribute EventHandler ondragleave;
    attribute EventHandler ondragover;
    attribute EventHandler ondragstart;
    attribute EventHandler ondrop;
    attribute EventHandler ondurationchange;
    attribute EventHandler onemptied;
    attribute EventHandler onended;

    // FIXME: Should be an OnErrorEventHandler
    attribute EventHandler onerror;

    attribute EventHandler onfocus;
    attribute EventHandler onformdata;
    attribute EventHandler oninput;
    attribute EventHandler oninvalid;
    attribute EventHandler onkeydown;
    attribute EventHandler onkeypress;
    attribute EventHandler onkeyup;
    attribute EventHandler onload;
    attribute EventHandler onloadeddata;
    attribute EventHandler onloadedmetadata;
    attribute EventHandler onloadstart;
    attribute EventHandler onmousedown;
    [LegacyLenientThis] attribute EventHandler onmouseenter;
    [LegacyLenientThis] attribute EventHandler onmouseleave;
    attribute EventHandler onmousemove;
    attribute EventHandler onmouseout;
    attribute EventHandler onmouseover;
    attribute EventHandler onmouseup;
    attribute EventHandler onpause;
    attribute EventHandler onplay;
    attribute EventHandler onplaying;
    attribute EventHandler onprogress;
    attribute EventHandler onratechange;
    attribute EventHandler onreset;
    attribute EventHandler onresize;
    attribute EventHandler onscroll;
    attribute EventHandler onsecuritypolicyviolation;
    attribute EventHandler onseeked;
    attribute EventHandler onseeking;
    attribute EventHandler onselect;
    attribute EventHandler onslotchange;
    attribute EventHandler onstalled;
    attribute EventHandler onsubmit;
    attribute EventHandler onsuspend;
    attribute EventHandler ontimeupdate;
    attribute EventHandler ontoggle;
    attribute EventHandler onvolumechange;
    attribute EventHandler onwaiting;
    attribute EventHandler onwebkitanimationend;
    attribute EventHandler onwebkitanimationiteration;
    attribute EventHandler onwebkitanimationstart;
    attribute EventHandler onwebkittransitionend;
    attribute EventHandler onwheel;

    readonly boolean hidden;
    readonly DOMString visibilityState;

};