Release 1.5.29.
[wine] / dlls / mshtml / nsiface.idl
1 /*
2  * Copyright 2005-2012 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 /*
20  * NOTE:
21  * This file is not a typical idl file. Interfaces in this file are XPCOM
22  * interfaces (NOT MSCOM!), but we generate the header file with WIDL
23  * compatible with XPCOM, usable in C code.
24  */
25
26 cpp_quote("#define GECKO_VERSION \"1.9\"")
27 cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION")
28
29 import "wtypes.idl";
30
31 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
32 cpp_quote("#undef GetForm")
33 cpp_quote("#undef SetPort")
34 cpp_quote("#endif")
35
36 typedef HRESULT nsresult;
37 typedef ULONG nsrefcnt;
38
39 typedef IID nsID;
40 typedef IID nsIID;
41 typedef nsIID nsCID;
42 typedef REFIID nsIIDRef;
43 typedef nsIIDRef nsCIDRef;
44
45 typedef WCHAR PRUnichar;
46
47 /*
48  * Mozilla uses stdint.h types for its headers. Following defines make this IDL file
49  * more similar to original declarations. Note that it's only a widl trick, we can't
50  * use stdint.h types in C.
51  */
52 #define int16_t short
53 #define int32_t LONG
54 #define int64_t INT64
55
56 #define uint8_t UINT8
57 #define uint16_t UINT16
58 #define uint32_t UINT32
59 #define uint64_t UINT64
60
61 typedef uint64_t DOMTimeStamp;
62 typedef uint32_t nsLoadFlags;
63 typedef int64_t PRTime;
64
65 /* Similar trick to stdint.h types for C++ bool type */
66 typedef unsigned char cpp_bool;
67 #define bool cpp_bool
68
69 typedef struct {
70     void *v;
71     void *d1;
72     uint32_t d2;
73     void *d3;
74 } nsCStringContainer;
75
76 typedef struct {
77     void *v;
78     void *d1;
79     uint32_t d2;
80     void *d3;
81 } nsStringContainer;
82
83 typedef nsCStringContainer nsACString;
84 typedef nsStringContainer nsAString;
85
86 interface nsIWebBrowserChrome;
87 interface nsILoadGroup;
88 interface nsIDOMNode;
89 interface nsIDOMDocument;
90 interface nsIDOMEvent;
91 interface nsIEditor;
92 interface nsISelectionController;
93 interface nsITransactionManager;
94 interface nsITransaction;
95 interface nsIInlineSpellChecker;
96 interface nsIOutputStream;
97 interface nsIEditorObserver;
98 interface nsIEditActionListener;
99 interface nsIDocumentStateListener;
100 interface nsIDOMCSSStyleSheet;
101 interface nsIDOMDocumentView;
102 interface nsIDOMWindow;
103 interface nsIDOMElement;
104 interface nsIDOMRange;
105 interface nsIDOMEventTarget;
106 interface nsISelection;
107 interface nsIDOMHTMLSelectElement;
108 interface nsIFile;
109
110 interface IMoniker;
111
112 [
113     object,
114     uuid(00000000-0000-0000-c000-000000000046),
115     local
116 ]
117 interface nsISupports
118 {
119     nsresult QueryInterface(nsIIDRef riid, void **result);
120     nsrefcnt AddRef();
121     nsrefcnt Release();
122 }
123
124 /* Currently we don't need a full declaration of these interfaces */
125 typedef nsISupports nsISHistory;
126 typedef nsISupports nsIWidget;
127 typedef nsISupports nsIDOMBarProp;
128 typedef nsISupports nsIPrompt;
129 typedef nsISupports nsIAuthPrompt;
130 typedef nsISupports nsIDOMDocumentType;
131 typedef nsISupports nsIDOMDOMImplementation;
132 typedef nsISupports nsIDOMCDATASection;
133 typedef nsISupports nsIDOMProcessingInstruction;
134 typedef nsISupports nsIDOMEntityReference;
135 typedef nsISupports nsIWebProgressListener;
136 typedef nsISupports nsIDOMCSSValue;
137 typedef nsISupports nsIPrintSession;
138 typedef nsISupports nsIControllerCommandTable;
139 typedef nsISupports nsIPrincipal;
140 typedef nsISupports nsIAtom;
141 typedef nsISupports nsISupportsArray;
142 typedef nsISupports nsIContentFilter;
143 typedef nsISupports nsIDOMMediaList;
144 typedef nsISupports nsIDOMHTMLTableCaptionElement;
145 typedef nsISupports nsIDOMHTMLTableSectionElement;
146 typedef nsISupports nsIDOMClientRectList;
147 typedef nsISupports nsINode;
148 typedef nsISupports nsIStyleSheet;
149 typedef nsISupports nsIStyleRule;
150 typedef nsISupports nsIDOMUserDataHandler;
151 typedef nsISupports nsIDocShellLoadInfo;
152 typedef nsISupports nsISHEntry;
153 typedef nsISupports nsIPresShell;
154 typedef nsISupports nsIContentViewer;
155 typedef nsISupports nsIDocumentCharsetInfo;
156 typedef nsISupports nsILayoutHistoryState;
157 typedef nsISupports nsISecureBrowserUI;
158 typedef nsISupports nsIDOMStorage;
159 typedef nsISupports nsIDOMDOMTokenList;
160 typedef nsISupports nsITransferable;
161 typedef nsISupports nsIDOMFileList;
162 typedef nsISupports nsIDOMFile;
163 typedef nsISupports nsIControllers;
164 typedef nsISupports nsIDOMValidityState;
165 typedef nsISupports nsIPluginInstanceOwner;
166 typedef nsISupports nsIPluginStreamListener;
167 typedef nsISupports nsIContentSink;
168 typedef nsISupports nsIParserFilter;
169 typedef nsISupports nsIDTD;
170 typedef nsISupports nsIObserver;
171 typedef nsISupports nsIDOMNodeFilter;
172 typedef nsISupports nsIDOMNodeIterator;
173 typedef nsISupports nsIDOMTreeWalker;
174 typedef nsISupports nsIHttpUpgradeListener;
175 typedef nsISupports nsIDOMDOMStringMap;
176 typedef nsISupports nsIDOMDOMStringList;
177 typedef nsISupports nsIDOMOfflineResourceList;
178 typedef nsISupports nsIDOMHistory;
179 typedef nsISupports nsIDOMNavigator;
180 typedef nsISupports nsIDOMMediaQueryList;
181 typedef nsISupports nsIDOMScreen;
182 typedef nsISupports nsIDOMCrypto;
183 typedef nsISupports nsIDOMPkcs11;
184 typedef nsISupports nsIAnimationFrameListener;
185 typedef nsISupports nsIDOMMozURLProperty;
186 typedef nsISupports nsIDOMStorageList;
187 typedef nsISupports nsILocalFile;
188 typedef nsISupports nsIDOMHTMLMenuElement;
189 typedef nsISupports nsIDOMCaretPosition;
190 typedef nsISupports nsIFrameRequestCallback;
191 typedef nsISupports nsICycleCollectorListener;
192 typedef nsISupports nsIDOMHTMLCanvasElement;
193 typedef nsISupports nsIQueryContentEventResult;
194 typedef nsISupports nsIDOMBlob;
195 typedef nsISupports nsIPrivacyTransitionObserver;
196 typedef nsISupports nsIDOMHTMLPropertiesCollection;
197 typedef nsISupports mozIDOMApplication;
198
199 typedef void *JSContext;
200 typedef void *JSObject;
201 typedef uint64_t jsval;
202
203 [
204     object,
205     uuid(8bb35ed9-e332-462d-9155-4a002ab5c958),
206     local
207 ]
208 interface nsIServiceManager : nsISupports
209 {
210     nsresult GetService(nsCIDRef aClass, nsIIDRef aIID, void **result);
211     nsresult GetServiceByContractID(const char *aContractID, nsIIDRef aIID, void **result);
212     nsresult IsServiceInstantiated(nsCIDRef aClass, nsIIDRef aIID, BOOL *_retval);
213     nsresult IsServiceInstantiatedByContractID(const char *aContractID, nsIIDRef aIID, BOOL *_retval);
214 }
215
216 [
217     object,
218     uuid(00000001-0000-0000-c000-000000000046),
219     local
220 ]
221 interface nsIFactory : nsISupports
222 {
223     nsresult CreateInstance(nsISupports *aOuter, const nsIID *iid, void **result);
224     nsresult LockFactory(bool lock);
225 }
226
227 [
228     object,
229     uuid(59e7e77a-38e4-11d4-8cf5-0060b0fc14a3),
230     local
231 ]
232 interface nsIMemory : nsISupports
233 {
234     void *Alloc(/*size_t*/ int size);
235     void *Realloc(void *_ptr, /*size_t*/ int newSize);
236     void Free(void *_ptr);
237     nsresult HeapMinimize(bool immediate);
238     nsresult IsLowMemory(bool *_retval);
239 }
240
241 [
242     object,
243     uuid(9188bc85-f92e-11d2-81ef-0060083a0bcf),
244     local
245 ]
246 interface nsIWeakReference : nsISupports
247 {
248     nsresult QueryReferent(const nsIID *riid, void **result);
249 }
250
251 [
252     object,
253     uuid(9188bc86-f92e-11d2-81ef-0060083a0bcf),
254     local
255 ]
256 interface nsISupportsWeakReference : nsISupports
257 {
258     nsresult GetWeakReference(nsIWeakReference **_retval);
259 }
260
261 [
262     object,
263     uuid(033a1470-8b2a-11d3-af88-00a024ffc08c),
264     local
265 ]
266 interface nsIInterfaceRequestor : nsISupports
267 {
268     nsresult GetInterface(const nsIID *riid, void **result);
269 }
270
271 [
272     object,
273     uuid(4a2abaf0-6886-11d3-9382-00104ba0fd40),
274     local
275 ]
276 interface nsIRunnable : nsISupports
277 {
278     nsresult Run();
279 }
280
281 [
282     object,
283     uuid(d1899240-f9d2-11d2-bdd6-000064657374),
284     local
285 ]
286 interface nsISimpleEnumerator : nsISupports
287 {
288     nsresult HasMoreElements(bool *_retval);
289     nsresult GetNext(nsISupports **_retval);
290 }
291
292 [
293     object,
294     uuid(81e4c2de-acac-4ad6-901a-b5fb1b851a0d),
295     local
296 ]
297 interface nsIVariant : nsISupports
298 {
299     nsresult GetDataType(uint16_t *aDataType);
300     nsresult GetAsInt8(uint8_t *_retval);
301     nsresult GetAsInt16(int16_t *_retval);
302     nsresult GetAsInt32(int32_t *_retval);
303     nsresult GetAsInt64(int64_t *_retval);
304     nsresult GetAsUint8(uint8_t *_retval);
305     nsresult GetAsUint16(uint16_t *_retval);
306     nsresult GetAsUint32(uint32_t *_retval);
307     nsresult GetAsUint64(uint64_t *_retval);
308     nsresult GetAsFloat(float *_retval);
309     nsresult GetAsDouble(double *_retval);
310     nsresult GetAsBool(bool *_retval);
311     nsresult GetAsChar(char *_retval);
312     nsresult GetAsWChar(PRUnichar *_retval);
313     nsresult GetAsID(nsID *retval);
314     nsresult GetAsAString(nsAString *_retval);
315     nsresult GetAsDOMString(nsAString *_retval);
316     nsresult GetAsACString(nsACString *_retval);
317     nsresult GetAsAUTF8String(nsACString *_retval);
318     nsresult GetAsString(char * *_retval);
319     nsresult GetAsWString(PRUnichar * *_retval);
320     nsresult GetAsISupports(nsISupports * *_retval);
321     nsresult GetAsJSVal(long /*jsval*/ *_retval);
322     nsresult GetAsInterface(nsIID **iid, void **iface);
323     nsresult GetAsArray(uint16_t *type, nsIID *iid, uint32_t *count, void **ptr);
324     nsresult GetAsStringWithSize(uint32_t *size, char **str);
325     nsresult GetAsWStringWithSize(uint32_t *size, PRUnichar **str);
326 }
327
328 [
329     object,
330     uuid(5586a590-8c82-11d5-90f3-0010a4e73d9a),
331     local
332 ]
333 interface nsIWritableVariant : nsIVariant
334 {
335     nsresult GetWritable(bool *aWritable);
336     nsresult SetWritable(bool aWritable);
337     nsresult SetAsInt8(uint8_t aValue);
338     nsresult SetAsInt16(int16_t aValue);
339     nsresult SetAsInt32(int32_t aValue);
340     nsresult SetAsInt64(int64_t aValue);
341     nsresult SetAsUint8(uint8_t aValue);
342     nsresult SetAsUint16(uint16_t aValue);
343     nsresult SetAsUint32(uint32_t aValue);
344     nsresult SetAsUint64(uint64_t aValue);
345     nsresult SetAsFloat(float aValue);
346     nsresult SetAsDouble(double aValue);
347     nsresult SetAsBool(bool aValue);
348     nsresult SetAsChar(char aValue);
349     nsresult SetAsWChar(PRUnichar aValue);
350     nsresult SetAsID(const nsID *aValue);
351     nsresult SetAsAString(const nsAString *aValue);
352     nsresult SetAsDOMString(const nsAString *aValue);
353     nsresult SetAsACString(const nsACString *aValue);
354     nsresult SetAsAUTF8String(const nsACString *aValue);
355     nsresult SetAsString(const char * aValue);
356     nsresult SetAsWString(const PRUnichar * aValue);
357     nsresult SetAsISupports(nsISupports *aValue);
358     nsresult SetAsInterface(const nsIID *iid, void *iface);
359     nsresult SetAsArray(uint16_t type, const nsIID *iid, uint32_t count, void *ptr);
360     nsresult SetAsStringWithSize(uint32_t size, const char *str);
361     nsresult SetAsWStringWithSize(uint32_t size, const PRUnichar *str);
362     nsresult SetAsVoid();
363     nsresult SetAsEmpty();
364     nsresult SetAsEmptyArray();
365     nsresult SetFromVariant(nsIVariant *aValue);
366 }
367
368 [
369     object,
370     uuid(53cdbc97-c2d7-4e30-b2c3-45b2ee79db18),
371     local
372 ]
373 interface nsIInputStream : nsISupports
374 {
375     nsresult Close();
376     nsresult Available(uint64_t *_retval);
377     nsresult Read(char *aBuf, uint32_t aCount, uint32_t *_retval);
378     nsresult ReadSegments(nsresult (*aWriter)(nsIInputStream *aInStream,
379             void *aClosure, const char *aFromSegment, uint32_t aToOffset,
380             uint32_t aCount, uint32_t *aWriteCount),
381             void *aClosure, uint32_t aCount, uint32_t *_retval);
382     nsresult IsNonBlocking(bool *_retval);
383 }
384
385 [
386     object,
387     uuid(395fe045-7d18-4adb-a3fd-af98c8a1af11),
388     local
389 ]
390 interface nsIURI : nsISupports
391 {
392     nsresult GetSpec(nsACString *aSpec);
393     nsresult SetSpec(const nsACString *aSpec);
394     nsresult GetPrePath(nsACString *aPrePath);
395     nsresult GetScheme(nsACString *aScheme);
396     nsresult SetScheme(const nsACString *aScheme);
397     nsresult GetUserPass(nsACString *aUserPass);
398     nsresult SetUserPass(const nsACString *aUserPass);
399     nsresult GetUsername(nsACString *aUsername);
400     nsresult SetUsername(const nsACString *aUsername);
401     nsresult GetPassword(nsACString *aPassword);
402     nsresult SetPassword(const nsACString *aPassword);
403     nsresult GetHostPort(nsACString *aHostPort);
404     nsresult SetHostPort(const nsACString *aHostPort);
405     nsresult GetHost(nsACString *aHost);
406     nsresult SetHost(const nsACString *aHost);
407     nsresult GetPort(int32_t *aPort);
408     nsresult SetPort(int32_t aPort);
409     nsresult GetPath(nsACString *aPath);
410     nsresult SetPath(const nsACString *aPath);
411     nsresult Equals(nsIURI *other, bool *_retval);
412     nsresult SchemeIs(const char *scheme, bool *_retval);
413     nsresult Clone(nsIURI **_retval);
414     nsresult Resolve(const nsACString *relativePath, nsACString *_retval);
415     nsresult GetAsciiSpec(nsACString *aAsciiSpec);
416     nsresult GetAsciiHost(nsACString *aAsciiHost);
417     nsresult GetOriginCharset(nsACString *aOriginCharset);
418     nsresult GetRef(nsACString *aRef);
419     nsresult SetRef(const nsACString *aRef);
420     nsresult EqualsExceptRef(nsIURI *other, bool *_retval);
421     nsresult CloneIgnoringRef(nsIURI **_retval);
422     nsresult GetSpecIgnoringRef(nsACString *aSpecIgnoringRef);
423     nsresult GetHasRef(bool *aHasRef);
424 }
425
426 [
427     object,
428     uuid(1419aa16-f134-4154-9886-00c7c5147a13),
429     local
430 ]
431 interface nsIURL : nsIURI
432 {
433     nsresult GetFilePath(nsACString *aFilePath);
434     nsresult SetFilePath(const nsACString *aFilePath);
435     nsresult GetQuery(nsACString *aQuery);
436     nsresult SetQuery(const nsACString *aQuery);
437     nsresult GetDirectory(nsACString *aDirectory);
438     nsresult SetDirectory(const nsACString *aDirectory);
439     nsresult GetFileName(nsACString *aFileName);
440     nsresult SetFileName(const nsACString *aFileName);
441     nsresult GetFileBaseName(nsACString *aFileBaseName);
442     nsresult SetFileBaseName(const nsACString *aFileBaseName);
443     nsresult GetFileExtension(nsACString *aFileExtension);
444     nsresult SetFileExtension(const nsACString *aFileExtension);
445     nsresult GetCommonBaseSpec(nsIURI *aURIToCompare, nsACString *_retval);
446     nsresult GetRelativeSpec(nsIURI *aURIToCompare, nsACString *_retval);
447 }
448
449 [
450     object,
451     uuid(7750029c-1b0a-414e-8359-a77f24a2a0a6),
452     local
453 ]
454 interface nsIFileURL : nsIURL
455 {
456     nsresult GetFile(nsIFile **aFile);
457     nsresult SetFile(nsIFile *aFile);
458 }
459
460 [
461     object,
462     uuid(321578d0-03c1-4d95-8821-021ac612d18d),
463     local
464 ]
465 interface nsIMutable : nsISupports
466 {
467     nsresult GetMutable(bool *aMutable);
468     nsresult SetMutable(bool aMutable);
469 }
470
471 [
472     object,
473     uuid(babd6cca-ebe7-4329-967c-d6b9e33caa81),
474     local
475 ]
476 interface nsIStandardURL : nsIMutable
477 {
478     nsresult Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI);
479 }
480
481 [
482     object,
483     uuid(ef6bfbd2-fd46-48d8-96b7-9f8f0fd387fe),
484     local
485 ]
486 interface nsIRequest : nsISupports
487 {
488     nsresult GetName(nsACString *aName);
489     nsresult IsPending(bool *_retval);
490     nsresult GetStatus(nsresult *aStatus);
491     nsresult Cancel(nsresult aStatus);
492     nsresult Suspend();
493     nsresult Resume();
494     nsresult GetLoadGroup(nsILoadGroup **aLoadGroup);
495     nsresult SetLoadGroup(nsILoadGroup *aLoadGroup);
496     nsresult GetLoadFlags(nsLoadFlags *aLoadFlags);
497     nsresult SetLoadFlags(nsLoadFlags aLoadFlags);
498 }
499
500 [
501     object,
502     uuid(fd91e2e0-1481-11d3-9333-00104ba0fd40),
503     local
504 ]
505 interface nsIRequestObserver : nsISupports
506 {
507     nsresult OnStartRequest(nsIRequest *aRequest, nsISupports *aContext);
508     nsresult OnStopRequest(nsIRequest *aRequest, nsISupports *aContext, nsresult aStatusCode);
509 }
510
511 [
512     object,
513     uuid(3b4c8a77-76ba-4610-b316-678c73a3b88c),
514     local
515 ]
516 interface nsIStreamListener : nsIRequestObserver
517 {
518     nsresult OnDataAvailable(nsIRequest *aRequest, nsISupports *aContext,
519                              nsIInputStream *aInputStream, uint64_t aOffset, uint32_t aCount);
520 }
521
522 [
523     object,
524     uuid(3de0a31c-feaf-400f-9f1e-4ef71f8b20cc),
525     local
526 ]
527 interface nsILoadGroup : nsIRequest
528 {
529     nsresult GetGroupObserver(nsIRequestObserver **aGroupObserver);
530     nsresult SetGroupObserver(nsIRequestObserver *aGroupObserver);
531     nsresult GetDefaultLoadRequest(nsIRequest **aDefaultLoadRequest);
532     nsresult SetDefaultLoadRequest(nsIRequest *aDefaultLoadRequest);
533     nsresult AddRequest(nsIRequest *aRequest, nsISupports *aContext);
534     nsresult RemoveRequest(nsIRequest *aRequest, nsISupports *aContext, nsresult aStatus);
535     nsresult GetRequests(nsISimpleEnumerator **aRequests);
536     nsresult GetActiveCount(uint32_t *aActiveCount);
537     nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
538     nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
539 }
540
541 [
542     object,
543     uuid(98f3b51b-bb55-4276-a43c-db636f8d77e3),
544     local
545 ]
546 interface nsIChannel : nsIRequest
547 {
548     const UINT LOAD_DOCUMENT_URI            = 1 << 16;
549     const UINT LOAD_RETARGETED_DOCUMENT_URI = 1 << 17;
550     const UINT LOAD_REPLACE                 = 1 << 18;
551     const UINT LOAD_INITIAL_DOCUMENT_URI    = 1 << 19;
552     const UINT LOAD_TARGETED                = 1 << 20;
553     const UINT LOAD_CALL_CONTENT_SNIFFERS   = 1 << 21;
554     const UINT LOAD_CLASSIFY_URI            = 1 << 22;
555     const UINT LOAD_TREAT_APPLICATION_OCTET_STREAM_AS_UNKNOWN = 1 << 23;
556     const UINT LOAD_EXPLICIT_CREDENTIALS    = 1 << 24;
557
558     nsresult GetOriginalURI(nsIURI **aOriginalURI);
559     nsresult SetOriginalURI(nsIURI *aOriginalURI);
560     nsresult GetURI(nsIURI **aURI);
561     nsresult GetOwner(nsISupports **aOwner);
562     nsresult SetOwner(nsISupports *aOwner);
563     nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
564     nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
565     nsresult GetSecurityInfo(nsISupports **aSecurityInfo);
566     nsresult GetContentType(nsACString *aContentType);
567     nsresult SetContentType(const nsACString *aContentType);
568     nsresult GetContentCharset(nsACString *aContentCharset);
569     nsresult SetContentCharset(const nsACString *aContentCharset);
570     nsresult GetContentLength(int32_t *aContentLength);
571     nsresult SetContentLength(int32_t aContentLength);
572     nsresult Open(nsIInputStream **_retval);
573     nsresult AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext);
574     nsresult GetContentDisposition(uint32_t *aContentDisposition);
575     nsresult SetContentDisposition(uint32_t aContentDisposition);
576     nsresult GetContentDispositionFilename(nsAString *aContentDispositionFilename);
577     nsresult SetContentDispositionFilename(const nsAString *aContentDispositionFilename);
578     nsresult GetContentDispositionHeader(nsACString *aContentDispositionHeader);
579 }
580
581 [
582     object,
583     uuid(35412859-b9d9-423c-8866-2d4559fdd2be),
584     local
585 ]
586 interface nsIHttpHeaderVisitor : nsISupports
587 {
588     nsresult VisitHeader(const nsACString *aHeader, const nsACString *aValue);
589 }
590
591 [
592     object,
593     uuid(9277fe09-f0cc-4cd9-bbce-581dd94b0260),
594     local
595 ]
596 interface nsIHttpChannel : nsIChannel
597 {
598     nsresult GetRequestMethod(nsACString *aRequestMethod);
599     nsresult SetRequestMethod(const nsACString *aRequestMethod);
600     nsresult GetReferrer(nsIURI **aReferrer);
601     nsresult SetReferrer(nsIURI *aReferrer);
602     nsresult GetRequestHeader(const nsACString *aHeader, nsACString *_retval);
603     nsresult SetRequestHeader(const nsACString *aHeader, const nsACString *aValue, bool aMerge);
604     nsresult VisitRequestHeaders(nsIHttpHeaderVisitor *aVisitor);
605     nsresult GetAllowPipelining(bool *aAllowPipelining);
606     nsresult SetAllowPipelining(bool aAllowPipelining);
607     nsresult GetRedirectionLimit(uint32_t *aRedirectionLimit);
608     nsresult SetRedirectionLimit(uint32_t aRedirectionLimit);
609     nsresult GetResponseStatus(uint32_t *aResponseStatus);
610     nsresult GetResponseStatusText(nsACString *aResponseStatusText);
611     nsresult GetRequestSucceeded(bool *aRequestSucceeded);
612     nsresult GetResponseHeader(const nsACString *header, nsACString *_retval);
613     nsresult SetResponseHeader(const nsACString *header, const nsACString *value, bool merge);
614     nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor);
615     nsresult IsNoStoreResponse(bool *_retval);
616     nsresult IsNoCacheResponse(bool *_retval);
617 }
618
619 [
620     object,
621     uuid(9363fd96-af59-47e8-bddf-1d5e91acd336),
622     local
623 ]
624 interface nsIHttpChannelInternal : nsISupports
625 {
626     nsresult GetDocumentURI(nsIURI **aDocumentURI);
627     nsresult SetDocumentURI(nsIURI *aDocumentURI);
628     nsresult GetRequestVersion(uint32_t *major, uint32_t *minor);
629     nsresult GetResponseVersion(uint32_t *major, uint32_t *minor);
630     nsresult SetCookie(const char *aCookieHeader);
631     nsresult SetupFallbackChannel(const char *aFallbackKey);
632     nsresult GetForceAllowThirdPartyCookie(bool *aForceAllowThirdPartyCookie);
633     nsresult SetForceAllowThirdPartyCookie(bool aForceAllowThirdPartyCookie);
634     nsresult GetCanceled(bool *aCanceled);
635     nsresult GetChannelIsForDownload(bool *aChannelIsForDownload);
636     nsresult SetChannelIsForDownload(bool aChannelIsForDownload);
637     nsresult GetLocalAddress(nsACString *aLocalAddress);
638     nsresult GetLocalPort(int32_t *aLocalPort);
639     nsresult GetRemoteAddress(nsACString *aRemoteAddress);
640     nsresult GetRemotePort(int32_t *aRemotePort);
641     nsresult SetCacheKeysRedirectChain(void /*nsTArray<nsCString>*/ *cacheKeys);
642     nsresult HTTPUpgrade(const nsACString *aProtocolName, nsIHttpUpgradeListener *aListener);
643     nsresult GetAllowSpdy(bool *aAllowSpdy);
644     nsresult SetAllowSpdy(bool aAllowSpdy);
645 }
646
647 [
648     object,
649     uuid(5cfe15bd-5adb-4a7f-9e55-4f5a67d15794),
650     local
651 ]
652 interface nsIUploadChannel : nsISupports
653 {
654     nsresult SetUploadStream(nsIInputStream *aStream, const nsACString *aContentType,
655                              int64_t aContentLength);
656     nsresult GetUploadStream(nsIInputStream **aUploadStream);
657 }
658
659 [
660     object,
661     uuid(8d171460-a716-41f1-92be-8c659db39b45),
662     local
663 ]
664 interface nsIAsyncVerifyRedirectCallback : nsISupports
665 {
666     nsresult OnRedirectVerifyCallback(nsresult result);
667 }
668
669 [
670     object,
671     uuid(a430d870-df77-4502-9570-d46a8de33154),
672     local
673 ]
674 interface nsIChannelEventSink : nsISupports
675 {
676     cpp_quote("#define REDIRECT_TEMPORARY 1")
677     cpp_quote("#define REDIRECT_PERMANENT 2")
678     cpp_quote("#define REDIRECT_INTERNAL  4")
679
680     nsresult AsyncOnChannelRedirect(nsIChannel *oldChannel, nsIChannel *newChannel, uint32_t flags,
681                                     nsIAsyncVerifyRedirectCallback *callback);
682 }
683
684 [
685     object,
686     uuid(a6cf906d-15b3-11d2-932e-00805f8add32),
687     local
688 ]
689 interface nsIDOMLocation : nsISupports
690 {
691     nsresult GetHash(nsAString *aHash);
692     nsresult SetHash(const nsAString *aHash);
693     nsresult GetHost(nsAString *aHost);
694     nsresult SetHost(const nsAString *aHost);
695     nsresult GetHostname(nsAString *aHostname);
696     nsresult SetHostname(const nsAString *aHostname);
697     nsresult GetHref(nsAString *aHref);
698     nsresult SetHref(const nsAString *aHref);
699     nsresult GetPathname(nsAString *aPathname);
700     nsresult SetPathname(const nsAString *aPathname);
701     nsresult GetPort(nsAString *aPort);
702     nsresult SetPort(const nsAString *aPort);
703     nsresult GetProtocol(nsAString *aProtocol);
704     nsresult SetProtocol(const nsAString *aProtocol);
705     nsresult GetSearch(nsAString *aSearch);
706     nsresult SetSearch(const nsAString *aSearch);
707     nsresult Reload(bool forceget);
708     nsresult Replace(const nsAString *url);
709     nsresult Assign(const nsAString *url);
710     nsresult ToString(nsAString *_retval);
711 }
712
713 [
714     object,
715     uuid(2938307a-9d70-4b63-8afc-0197e82318ad),
716     local
717 ]
718 interface nsIDOMCSSRule : nsISupports
719 {
720     nsresult GetType(uint16_t *aType);
721     nsresult GetCssText(nsAString *aCssText);
722     nsresult SetCssText(const nsAString *aCssText);
723     nsresult GetParentStyleSheet(nsIDOMCSSStyleSheet **aParentStyleSheet);
724     nsresult GetParentRule(nsIDOMCSSRule **aParentRule);
725 }
726
727 [
728     object,
729     uuid(a6cf90be-15b3-11d2-932e-00805f8add32),
730     local
731 ]
732 interface nsIDOMCSSStyleDeclaration : nsISupports
733 {
734     nsresult GetCssText(nsAString *aCssText);
735     nsresult SetCssText(const nsAString *aCssText);
736     nsresult GetPropertyValue(const nsAString *propertyName, nsAString *_retval);
737     nsresult GetPropertyCSSValue(const nsAString *propertyName, nsIDOMCSSValue **_retval);
738     nsresult RemoveProperty(const nsAString *propertyName, nsAString *_retval);
739     nsresult GetPropertyPriority(const nsAString *propertyName, nsAString *_retval);
740     nsresult SetProperty(const nsAString *propertyName, const nsAString *value,
741                          const nsAString *priority);
742     nsresult GetLength(uint32_t *aLength);
743     nsresult Item(uint32_t index, nsAString *_retval);
744     nsresult GetParentRule(nsIDOMCSSRule **aParentRule);
745 }
746
747 [
748     object,
749     uuid(a6cf90c0-15b3-11d2-932e-00805f8add32),
750     local
751 ]
752 interface nsIDOMCSSRuleList : nsISupports
753 {
754     nsresult GetLength(uint32_t *aLength);
755     nsresult Item(uint32_t index, nsIDOMCSSRule **_retval);
756 }
757
758 [
759     object,
760     uuid(a6cf9080-15b3-11d2-932e-00805f8add32),
761     local
762 ]
763 interface nsIDOMStyleSheet : nsISupports
764 {
765     nsresult GetType(nsAString *aType);
766     nsresult GetDisabled(bool *aDisabled);
767     nsresult SetDisabled(bool aDisabled);
768     nsresult GetOwnerNode(nsIDOMNode **aOwnerNode);
769     nsresult GetParentStyleSheet(nsIDOMStyleSheet **aParentStyleSheet);
770     nsresult GetHref(nsAString *aHref);
771     nsresult GetTitle(nsAString *aTitle);
772     nsresult GetMedia(nsIDOMMediaList **aMedia);
773 }
774
775 [
776     object,
777     uuid(a6cf90c2-15b3-11d2-932e-00805f8add32),
778     local
779 ]
780 interface nsIDOMCSSStyleSheet : nsIDOMStyleSheet
781 {
782     nsresult GetOwnerRule(nsIDOMCSSRule **aOwnerRule);
783     nsresult GetCssRules(nsIDOMCSSRuleList **aCssRules);
784     nsresult InsertRule(const nsAString *rule, uint32_t index, uint32_t *_retval);
785     nsresult DeleteRule(uint32_t index);
786 }
787
788 [
789     object,
790     uuid(a6cf9081-15b3-11d2-932e-00805f8add32),
791     local
792 ]
793 interface nsIDOMStyleSheetList : nsISupports
794 {
795     nsresult GetLength(uint32_t *aLength);
796     nsresult Item(uint32_t index, nsIDOMStyleSheet **_retval);
797 }
798
799 [
800     object,
801     uuid(496852ba-e48d-4fa5-982e-e0dc1b475bf1),
802     local
803 ]
804 interface nsIDOMNodeList : nsISupports
805 {
806     nsresult Item(uint32_t index, nsIDOMNode **_retval);
807     nsresult GetLength(uint32_t *aLength);
808     /* Followed by semi-internal API that we don't want to use */
809 }
810
811 [
812     object,
813     uuid(a6cf907b-15b3-11d2-932e-00805f8add32),
814     local
815 ]
816 interface nsIDOMNamedNodeMap : nsISupports
817 {
818     nsresult GetNamedItem(const nsAString *name, nsIDOMNode **_retval);
819     nsresult SetNamedItem(nsIDOMNode *arg, nsIDOMNode **_retval);
820     nsresult RemoveNamedItem(const nsAString *name, nsIDOMNode **_retval);
821     nsresult Item(uint32_t index, nsIDOMNode **_retval);
822     nsresult GetLength(uint32_t *aLength);
823     nsresult GetNamedItemNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMNode **_retval);
824     nsresult SetNamedItemNS(nsIDOMNode *arg, nsIDOMNode **_retval);
825     nsresult RemoveNamedItemNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMNode **_retval);
826 }
827
828 [
829     object,
830     uuid(5e9bcec9-5928-4f77-8a9c-424ef01c20e1),
831     local
832 ]
833 interface nsIDOMNode : nsISupports
834 {
835     enum NSNODETYPE {
836         ELEMENT_NODE = 1,
837         ATTRIBUTE_NODE = 2,
838         TEXT_NODE = 3,
839         CDATA_SELECTION_NODE = 4,
840         ENTITY_REFERENCE_NODE = 5,
841         ENTITY_NODE = 6,
842         PROCESSING_INSTRUCTION_NODE = 7,
843         COMMENT_NODE = 8,
844         DOCUMENT_NODE = 9,
845         DOCUMENT_TYPE_NODE = 10,
846         DOCUMENT_FRAGMENT_NODE = 11,
847         NOTATION_NODE = 12
848     };
849
850     enum {
851         DOCUMENT_POSITION_DISCONNECTED = 1,
852         DOCUMENT_POSITION_PRECEDING = 2,
853         DOCUMENT_POSITION_FOLLOWING = 4,
854         DOCUMENT_POSITION_CONTAINS = 8,
855         DOCUMENT_POSITION_CONTAINED_BY = 16,
856         DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
857     };
858
859     nsresult GetNodeName(nsAString *aNodeName);
860     nsresult GetNodeValue(nsAString *aNodeValue);
861     nsresult SetNodeValue(const nsAString *aNodeValue);
862     nsresult GetNodeType(uint16_t *aNodeType);
863     nsresult GetParentNode(nsIDOMNode **aParentNode);
864     nsresult GetParentElement(nsIDOMElement **aParentElement);
865     nsresult GetChildNodes(nsIDOMNodeList **aChildNodes);
866     nsresult GetFirstChild(nsIDOMNode **aFirstChild);
867     nsresult GetLastChild(nsIDOMNode **aLastChild);
868     nsresult GetPreviousSibling(nsIDOMNode **aPreviousSibling);
869     nsresult GetNextSibling(nsIDOMNode **aNextSibling);
870     nsresult GetAttributes(nsIDOMNamedNodeMap **aAttributes);
871     nsresult GetOwnerDocument(nsIDOMDocument **aOwnerDocument);
872     nsresult InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval);
873     nsresult ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval);
874     nsresult RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval);
875     nsresult AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval);
876     nsresult HasChildNodes(bool *_retval);
877     nsresult CloneNode(bool deep, uint8_t _argc, nsIDOMNode **_retval);
878     nsresult Normalize();
879     nsresult IsSupported(const nsAString *feature, const nsAString *version, bool *_retval);
880     nsresult GetNamespaceURI(nsAString *aNamespaceURI);
881     nsresult GetPrefix(nsAString *aPrefix);
882     nsresult GetLocalName(nsAString *aLocalName);
883     nsresult HasAttributes(bool *_retval);
884     nsresult GetDOMBaseURI(nsAString *aBaseURI);
885     nsresult CompareDocumentPosition(nsIDOMNode *other, uint16_t *_retval);
886     nsresult GetTextContent(nsAString *aTextContent);
887     nsresult SetTextContent(const nsAString *aTextContent);
888     nsresult LookupPrefix(const nsAString *namespaceURI, nsAString *_retval);
889     nsresult IsDefaultNamespace(const nsAString *namespaceURI, bool *_retval);
890     nsresult LookupNamespaceURI(const nsAString *prefix, nsAString *_retval);
891     nsresult IsEqualNode(nsIDOMNode *arg, bool *_retval);
892     nsresult SetUserData(const nsAString *key, nsIVariant *data, nsIDOMUserDataHandler *handler, nsIVariant **_retval);
893     nsresult GetUserData(const nsAString *key, nsIVariant **_retval);
894     nsresult Contains(nsIDOMNode *aOther, bool *_retval);
895
896     nsresult GetMshtmlNode(nsISupports **aMshtmlNode);
897     nsresult SetMshtmlNode(nsISupports *aMshtmlNode);
898 }
899
900 [
901     object,
902     uuid(03da4bc9-1b9a-41dc-a1a4-32414d48d704),
903     local
904 ]
905 interface nsIDOMAttr : nsIDOMNode
906 {
907     nsresult GetName(nsAString *aName);
908     nsresult GetSpecified(bool *aSpecified);
909     nsresult GetValue(nsAString *aValue);
910     nsresult SetValue(const nsAString *aValue);
911     nsresult GetOwnerElement(nsIDOMElement **aOwnerElement);
912     nsresult GetIsId(bool *aIsId);
913 }
914
915 [
916     object,
917     uuid(b2f824c4-d9d3-499b-8d3b-45c8245497c6),
918     local
919 ]
920 interface nsIDOMClientRect : nsISupports
921 {
922     nsresult GetLeft(float *aLeft);
923     nsresult GetTop(float *aTop);
924     nsresult GetRight(float *aRight);
925     nsresult GetBottom(float *aBottom);
926     nsresult GetWidth(float *aWidth);
927     nsresult GetHeight(float *aHeight);
928 }
929
930 [
931     object,
932     uuid(69d44ce2-b544-49a8-bb5f-87804b971ee4),
933     local
934 ]
935 interface nsIDOMElement : nsIDOMNode
936 {
937     nsresult GetTagName(nsAString *aTagName);
938     nsresult GetClassList(nsIDOMDOMTokenList **aClassList);
939     nsresult GetAttribute(const nsAString *name, nsAString *_retval);
940     nsresult GetAttributeNS(const nsAString *namespaceURI, const nsAString *localName, nsAString *_retval);
941     nsresult SetAttribute(const nsAString *name, const nsAString *value);
942     nsresult SetAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName, const nsAString *value);
943     nsresult RemoveAttribute(const nsAString *name);
944     nsresult RemoveAttributeNS(const nsAString *namespaceURI, const nsAString *localName);
945     nsresult HasAttribute(const nsAString *name, bool *_retval);
946     nsresult HasAttributeNS(const nsAString *namespaceURI, const nsAString *localName, bool *_retval);
947     nsresult GetAttributeNode(const nsAString *name, nsIDOMAttr **_retval);
948     nsresult SetAttributeNode(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
949     nsresult RemoveAttributeNode(nsIDOMAttr *oldAttr, nsIDOMAttr **_retval);
950     nsresult GetAttributeNodeNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMAttr **_retval);
951     nsresult SetAttributeNodeNS(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
952     nsresult GetElementsByTagName(const nsAString *name, nsIDOMNodeList **_retval);
953     nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMNodeList **_retval);
954     nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval);
955     nsresult GetChildElements(nsIDOMNodeList **aChildren);
956     nsresult GetFirstElementChild(nsIDOMElement **aFirstElementChild);
957     nsresult GetLastElementChild(nsIDOMElement **aLastElementChild);
958     nsresult GetPreviousElementSibling(nsIDOMElement **aPreviousElementSibling);
959     nsresult GetNextElementSibling(nsIDOMElement **aNextElementSibling);
960     nsresult GetChildElementCount(uint32_t *aChildElementCount);
961     nsresult GetOnmouseenter(JSContext *cx, jsval *aOnmouseenter);
962     nsresult SetOnmouseenter(JSContext *cx, const jsval *aOnmouseenter);
963     nsresult GetOnmouseleave(JSContext *cx, jsval *aOnmouseleave);
964     nsresult SetOnmouseleave(JSContext *cx, const jsval *aOnmouseleave);
965     nsresult GetClientRects(nsIDOMClientRectList **_retval);
966     nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
967     nsresult GetScrollTop(int32_t *aScrollTop);
968     nsresult SetScrollTop(int32_t aScrollTop);
969     nsresult GetScrollLeft(int32_t *aScrollLeft);
970     nsresult SetScrollLeft(int32_t aScrollLeft);
971     nsresult GetScrollWidth(int32_t *aScrollWidth);
972     nsresult GetScrollHeight(int32_t *aScrollHeight);
973     nsresult GetClientTop(int32_t *aClientTop);
974     nsresult GetClientLeft(int32_t *aClientLeft);
975     nsresult GetClientWidth(int32_t *aClientWidth);
976     nsresult GetClientHeight(int32_t *aClientHeight);
977     nsresult GetScrollLeftMax(int32_t *aScrollLeftMax);
978     nsresult GetScrollTopMax(int32_t *aScrollTopMax);
979     nsresult MozMatchesSelector(const nsAString *selector, bool *_retval);
980     nsresult SetCapture(bool retargetToElement);
981     nsresult ReleaseCapture();
982     nsresult MozRequestFullScreen();
983     nsresult MozRequestPointerLock();
984 }
985
986 [
987     object,
988     uuid(99715845-95fc-4a56-aa53-214b65c26e22),
989     local
990 ]
991 interface nsIDOMElementCSSInlineStyle : nsISupports
992 {
993     nsresult GetStyle(nsIDOMCSSStyleDeclaration **aStyle);
994 }
995
996 cpp_quote("#undef GetClassName")
997
998 [
999     object,
1000     uuid(9a677a5b-e6f7-4e2e-9ef9-22c2ac9967b3),
1001     local
1002 ]
1003 interface nsIDOMHTMLElement : nsIDOMElement
1004 {
1005     nsresult GetId(nsAString *aId);
1006     nsresult SetId(const nsAString *aId);
1007     nsresult GetTitle(nsAString *aTitle);
1008     nsresult SetTitle(const nsAString *aTitle);
1009     nsresult GetLang(nsAString *aLang);
1010     nsresult SetLang(const nsAString *aLang);
1011     nsresult GetDir(nsAString *aDir);
1012     nsresult SetDir(const nsAString *aDir);
1013     nsresult GetClassName(nsAString *aClassName);
1014     nsresult SetClassName(const nsAString *aClassName);
1015     nsresult GetDataset(nsIDOMDOMStringMap **aDataset);
1016     nsresult GetItemScope(bool *aItemScope);
1017     nsresult SetItemScope(bool aItemScope);
1018     nsresult GetItemType(nsIVariant **aItemType);
1019     nsresult SetItemType(nsIVariant *aItemType);
1020     nsresult GetItemId(nsAString *aItemId);
1021     nsresult SetItemId(const nsAString *aItemId);
1022     nsresult GetProperties(nsIDOMHTMLPropertiesCollection **aProperties);
1023     nsresult GetItemValue(nsIVariant **aItemValue);
1024     nsresult SetItemValue(nsIVariant *aItemValue);
1025     nsresult GetItemProp(nsIVariant **aItemProp);
1026     nsresult SetItemProp(nsIVariant *aItemProp);
1027     nsresult GetItemRef(nsIVariant **aItemRef);
1028     nsresult SetItemRef(nsIVariant *aItemRef);
1029     nsresult GetHidden(bool *aHidden);
1030     nsresult SetHidden(bool aHidden);
1031     nsresult Click();
1032     nsresult GetTabIndex(int32_t *aTabIndex);
1033     nsresult SetTabIndex(int32_t aTabIndex);
1034     nsresult Focus();
1035     nsresult Blur();
1036     nsresult GetAccessKey(nsAString *aAccessKey);
1037     nsresult SetAccessKey(const nsAString *aAccessKey);
1038     nsresult GetAccessKeyLabel(nsAString *aAccessKeyLabel);
1039     nsresult GetDraggable(bool *aDraggable);
1040     nsresult SetDraggable(bool aDraggable);
1041     nsresult GetContentEditable(nsAString *aContentEditable);
1042     nsresult SetContentEditable(const nsAString *aContentEditable);
1043     nsresult GetIsContentEditable(bool *aIsContentEditable);
1044     nsresult GetContextMenu(nsIDOMHTMLMenuElement **aContextMenu);
1045     nsresult GetSpellcheck(bool *aSpellcheck);
1046     nsresult SetSpellcheck(bool aSpellcheck);
1047     nsresult GetInnerHTML(nsAString *aInnerHTML);
1048     nsresult SetInnerHTML(const nsAString *aInnerHTML);
1049     nsresult GetOuterHTML(nsAString *aInnerHTML);
1050     nsresult SetOuterHTML(const nsAString *aInnerHTML);
1051     nsresult InsertAdjacentHTML(const nsAString *position, const nsAString *text);
1052     nsresult ScrollIntoView(bool top, uint8_t _argc);
1053     nsresult GetOffsetParent(nsIDOMElement * *aOffsetParent);
1054     nsresult GetOffsetTop(int32_t *aOffsetTop);
1055     nsresult GetOffsetLeft(int32_t *aOffsetLeft);
1056     nsresult GetOffsetWidth(int32_t *aOffsetWidth);
1057     nsresult GetOffsetHeight(int32_t *aOffsetHeight);
1058 }
1059
1060 [
1061     object,
1062     uuid(8b38545f-7fa5-47d5-a902-c8ea8e78fb0d),
1063     local
1064 ]
1065 interface nsIDOMHTMLHeadElement : nsIDOMHTMLElement
1066 {
1067 }
1068
1069
1070 [
1071     object,
1072     uuid(db690d8f-3bca-4198-be64-78adb7f38bf8),
1073     local
1074 ]
1075 interface nsIDOMHTMLCollection : nsISupports
1076 {
1077     nsresult GetLength(uint32_t *aLength);
1078     nsresult Item(uint32_t index, nsIDOMNode **_retval);
1079     nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
1080     /* Followed by semi-internal API that we don't want to use */
1081 }
1082
1083 [
1084     object,
1085     uuid(cb75c251-afc7-444f-b2d6-b9635555f3ed),
1086     local
1087 ]
1088 interface nsIDOMCharacterData : nsIDOMNode
1089 {
1090     nsresult GetData(nsAString *aData);
1091     nsresult SetData(const nsAString *aData);
1092     nsresult GetLength(uint32_t *aLength);
1093     nsresult SubstringData(uint32_t offset, uint32_t count, nsAString *_retval);
1094     nsresult AppendData(const nsAString *arg);
1095     nsresult InsertData(uint32_t offset, const nsAString *arg);
1096     nsresult DeleteData(uint32_t offset, uint32_t count);
1097     nsresult ReplaceData(uint32_t offset, uint32_t count, const nsAString *arg);
1098 }
1099
1100 [
1101     object,
1102     uuid(437ed60c-febd-4bd0-892f-cf358adc3c96),
1103     local
1104 ]
1105 interface nsIDOMText : nsIDOMCharacterData
1106 {
1107     nsresult SplitText(uint32_t offset, nsIDOMText **_retval);
1108     nsresult GetWholeText(nsAString *aWholeText);
1109 }
1110
1111 [
1112     object,
1113     uuid(cea49a35-dac9-4c4d-9830-4660abb3b6bc),
1114     local
1115 ]
1116 interface nsIDOMComment : nsIDOMCharacterData
1117 {
1118 }
1119
1120 [
1121     object,
1122     uuid(4a15eb0c-d5bc-4902-9d50-21b12cab47e7),
1123     local
1124 ]
1125 interface nsIDOMDocumentFragment : nsIDOMNode
1126 {
1127 }
1128
1129 [
1130     object,
1131     uuid(b7e90442-74d6-494e-af01-906d95926dec),
1132     local
1133 ]
1134 interface nsIDOMDocument : nsIDOMNode
1135 {
1136     nsresult GetDoctype(nsIDOMDocumentType **aDoctype);
1137     nsresult GetImplementation(nsIDOMDOMImplementation **aImplementation);
1138     nsresult GetDocumentElement(nsIDOMElement **aDocumentElement);
1139     nsresult CreateElement(const nsAString *tagName, nsIDOMElement **_retval);
1140     nsresult CreateDocumentFragment(nsIDOMDocumentFragment **_retval);
1141     nsresult CreateTextNode(const nsAString *data, nsIDOMText **_retval);
1142     nsresult CreateComment(const nsAString *data, nsIDOMComment **_retval);
1143     nsresult CreateCDATASection(const nsAString *data, nsIDOMCDATASection **_retval);
1144     nsresult CreateProcessingInstruction(const nsAString *target, const nsAString *data, nsIDOMProcessingInstruction **_retval);
1145     nsresult CreateAttribute(const nsAString *name, nsIDOMAttr **_retval);
1146     nsresult GetElementsByTagName(const nsAString *tagname, nsIDOMNodeList **_retval);
1147     nsresult ImportNode(nsIDOMNode *importedNode, bool deep, uint8_t _argc, nsIDOMNode **_retval);
1148     nsresult CreateElementNS(const nsAString *namespaceURI, const nsAString *qualifiedName, nsIDOMElement **_retval);
1149     nsresult CreateAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName, nsIDOMAttr **_retval);
1150     nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMNodeList **_retval);
1151     nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
1152     nsresult GetInputEncoding(nsAString *aInputEncoding);
1153     nsresult GetDocumentURI(nsAString *aDocumentURI);
1154     nsresult AdoptNode(nsIDOMNode *source, nsIDOMNode **_retval);
1155     nsresult CreateRange(nsIDOMRange **_retval);
1156     nsresult CreateNodeIterator(nsIDOMNode *root, uint32_t whatToShow, nsIDOMNodeFilter *filter, uint8_t _argc,
1157             nsIDOMNodeIterator **_retval);
1158     nsresult CreateTreeWalker(nsIDOMNode *root, uint32_t whatToShow, nsIDOMNodeFilter *filter, uint8_t _argc,
1159             nsIDOMTreeWalker **_retval);
1160     cpp_quote("#undef CreateEvent")
1161     nsresult CreateEvent(const nsAString *eventType, nsIDOMEvent **_retval);
1162     nsresult GetDefaultView(nsIDOMWindow **aDefaultView);
1163     nsresult GetCharacterSet(nsAString *aCharacterSet);
1164     nsresult GetDir(nsAString *aDir);
1165     nsresult SetDir(const nsAString *aDir);
1166     nsresult GetLocation(nsIDOMLocation **aLocation);
1167     nsresult GetTitle(nsAString *aTitle);
1168     nsresult SetTitle(const nsAString *aTitle);
1169     nsresult GetReadyState(nsAString *aReadyState);
1170     nsresult GetLastModified(nsAString *aLastModified);
1171     nsresult GetReferrer(nsAString *aReferrer);
1172     nsresult HasFocus(bool *_retval);
1173     nsresult GetActiveElement(nsIDOMElement **aActiveElement);
1174     nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval);
1175     nsresult GetStyleSheets(nsIDOMStyleSheetList **aStyleSheets);
1176     nsresult GetPreferredStyleSheetSet(nsAString *aPreferredStyleSheetSet);
1177     nsresult GetSelectedStyleSheetSet(nsAString *aSelectedStyleSheetSet);
1178     nsresult SetSelectedStyleSheetSet(const nsAString *aSelectedStyleSheetSet);
1179     nsresult GetLastStyleSheetSet(nsAString *aLastStyleSheetSet);
1180     nsresult GetStyleSheetSets(nsIDOMDOMStringList **aStyleSheetSets);
1181     nsresult EnableStyleSheetsForSet(const nsAString *name);
1182     nsresult ElementFromPoint(float x, float y, nsIDOMElement **_retval);
1183     nsresult GetContentType(nsAString *aContentType);
1184     nsresult GetMozSyntheticDocument(bool *aMozSyntheticDocument);
1185     nsresult GetCurrentScript(nsIDOMElement **aCurrentScript);
1186     nsresult ReleaseCapture();
1187     nsresult MozSetImageElement(const nsAString *aImageElementId, nsIDOMElement *aImageElement);
1188     nsresult GetMozFullScreenElement(nsIDOMElement **aMozFullScreenElement);
1189     nsresult MozCancelFullScreen();
1190     nsresult GetMozFullScreen(bool *aMozFullScreen);
1191     nsresult GetMozFullScreenEnabled(bool *aMozFullScreenEnabled);
1192     nsresult GetMozPointerLockElement(nsIDOMElement **aMozPointerLockElement);
1193     nsresult MozExitPointerLock();
1194     nsresult GetOnreadystatechange(JSContext* cx, jsval aOnreadystatechange);
1195     nsresult SetOnreadystatechange(JSContext* cx, const jsval *aOnreadystatechange);
1196     nsresult GetOnmouseenter(JSContext* cx, jsval *aOnmouseenter);
1197     nsresult SetOnmouseenter(JSContext* cx, const jsval *aOnmouseenter);
1198     nsresult GetOnmouseleave(JSContext* cx, jsval *aOnmouseleave) = 0;
1199     nsresult SetOnmouseleave(JSContext* cx, const jsval *aOnmouseleave);
1200     nsresult GetHidden(bool *aHidden);
1201     nsresult GetMozHidden(bool *aMozHidden);
1202     nsresult GetVisibilityState(nsAString *aVisibilityState);
1203     nsresult GetMozVisibilityState(nsAString *aMozVisibilityState);
1204 }
1205
1206 [
1207     object,
1208     uuid(ecae54c6-2ab9-4167-b0ef-61960aadbb68),
1209     local
1210 ]
1211 interface nsIDOMHTMLDocument : nsIDOMDocument
1212 {
1213     nsresult GetURL(nsAString *aURL);
1214     nsresult GetDomain(nsAString *aDomain);
1215     nsresult SetDomain(const nsAString *aDomain);
1216     nsresult GetCookie(nsAString *aCookie);
1217     nsresult SetCookie(const nsAString *aCookie);
1218     nsresult GetCompatMode(nsAString *aCompatMode);
1219     nsresult GetHead(nsIDOMHTMLHeadElement **aHead);
1220     nsresult GetBody(nsIDOMHTMLElement **aBody);
1221     nsresult SetBody(nsIDOMHTMLElement *aBody);
1222     nsresult GetImages(nsIDOMHTMLCollection **aImages);
1223     nsresult GetEmbeds(nsIDOMHTMLCollection **aEmbeds);
1224     nsresult GetPlugins(nsIDOMHTMLCollection **aPlugins);
1225     nsresult GetLinks(nsIDOMHTMLCollection **aLinks);
1226     nsresult GetForms(nsIDOMHTMLCollection **aForms);
1227     nsresult GetScripts(nsIDOMHTMLCollection **aScripts);
1228     nsresult GetElementsByName(const nsAString *elementName, nsIDOMNodeList **_retval);
1229     nsresult GetItems(const nsAString *types, nsIDOMNodeList **_retval);
1230     nsresult Open(const nsAString *aContentTypeOrUrl, const nsAString *aReplaceOrName, const nsAString *aFeatures,
1231             JSContext *cx, uint8_t _argc, nsISupports **_retval);
1232     nsresult Close();
1233     nsresult Write(const nsAString *text, JSContext *cx);
1234     nsresult Writeln(const nsAString *text, JSContext *cx);
1235     nsresult GetDesignMode(nsAString *aDesignMode);
1236     nsresult SetDesignMode(const nsAString *aDesignMode);
1237     nsresult ExecCommand(const nsAString *commandID, bool doShowUI, const nsAString *value, bool *_retval);
1238     nsresult QueryCommandEnabled(const nsAString *commandID, bool *_retval);
1239     nsresult QueryCommandIndeterm(const nsAString *commandID, bool *_retval);
1240     nsresult QueryCommandState(const nsAString *commandID, bool *_retval);
1241     nsresult QueryCommandSupported(const nsAString *commandID, bool *_retval);
1242     nsresult QueryCommandValue(const nsAString *commandID, nsAString *_retval);
1243     nsresult GetFgColor(nsAString *aFgColor);
1244     nsresult SetFgColor(const nsAString *aFgColor);
1245     nsresult GetBgColor(nsAString *aBgColor);
1246     nsresult SetBgColor(const nsAString *aBgColor);
1247     nsresult GetLinkColor(nsAString *aLinkColor);
1248     nsresult SetLinkColor(const nsAString *aLinkColor);
1249     nsresult GetVlinkColor(nsAString *aVlinkColor);
1250     nsresult SetVlinkColor(const nsAString *aVlinkColor);
1251     nsresult GetAlinkColor(nsAString *aAlinkColor);
1252     nsresult SetAlinkColor(const nsAString *aAlinkColor);
1253     nsresult GetAnchors(nsIDOMHTMLCollection **aAnchors);
1254     nsresult GetApplets(nsIDOMHTMLCollection **aApplets);
1255     nsresult Clear();
1256     nsresult GetSelection(nsISelection **_retval);
1257     nsresult CaptureEvents(int32_t eventFlags);
1258     nsresult ReleaseEvents(int32_t eventFlags);
1259     nsresult RouteEvent(nsIDOMEvent *evt);
1260 }
1261
1262 [
1263     object,
1264     uuid(1f94055c-42e7-4a30-96a1-6a804f1c2d1e),
1265     local
1266 ]
1267 interface nsIDOMRange : nsISupports
1268 {
1269     enum {
1270         NS_START_TO_START,
1271         NS_START_TO_END,
1272         NS_END_TO_END,
1273         NS_END_TO_START
1274     };
1275
1276     nsresult GetStartContainer(nsIDOMNode **aStartContainer);
1277     nsresult GetStartOffset(int32_t *aStartOffset);
1278     nsresult GetEndContainer(nsIDOMNode **aEndContainer);
1279     nsresult GetEndOffset(int32_t *aEndOffset);
1280     nsresult GetCollapsed(bool *aCollapsed);
1281     nsresult GetCommonAncestorContainer(nsIDOMNode **aCommonAncestorContainer);
1282     nsresult SetStart(nsIDOMNode *refNode, int32_t offset);
1283     nsresult SetEnd(nsIDOMNode *refNode, int32_t offset);
1284     nsresult SetStartBefore(nsIDOMNode *refNode);
1285     nsresult SetStartAfter(nsIDOMNode *refNode);
1286     nsresult SetEndBefore(nsIDOMNode *refNode);
1287     nsresult SetEndAfter(nsIDOMNode *refNode);
1288     nsresult Collapse(bool toStart);
1289     nsresult SelectNode(nsIDOMNode *refNode);
1290     nsresult SelectNodeContents(nsIDOMNode *refNode);
1291     nsresult CompareBoundaryPoints(uint16_t how, nsIDOMRange *sourceRange, int16_t *_retval);
1292     nsresult DeleteContents();
1293     nsresult ExtractContents(nsIDOMDocumentFragment **_retval);
1294     nsresult CloneContents(nsIDOMDocumentFragment **_retval);
1295     nsresult InsertNode(nsIDOMNode *newNode);
1296     nsresult SurroundContents(nsIDOMNode *newParent);
1297     nsresult CloneRange(nsIDOMRange **_retval);
1298     nsresult ToString(nsAString *_retval);
1299     nsresult Detach();
1300     nsresult CreateContextualFragment([in] const nsAString *fragment, [out] nsIDOMDocumentFragment **_retval);
1301     nsresult IsPointInRange([in] nsIDOMNode *parent, [in] int32_t offset, [out] bool *_retval);
1302     nsresult ComparePoint([in] nsIDOMNode *parent, [in] int32_t offset, [out] int16_t *_retval);
1303     nsresult IntersectsNode(nsIDOMNode *node, bool *_retval);
1304     nsresult GetClientRects(nsIDOMClientRectList **_retval);
1305     nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
1306 }
1307
1308 [
1309     object,
1310     uuid(12cf5a4d-fffb-4f2f-9cec-c65195661d76),
1311     local
1312 ]
1313 interface nsISelection : nsISupports
1314 {
1315     nsresult GetAnchorNode(nsIDOMNode **aAnchorNode);
1316     nsresult GetAnchorOffset(int32_t *aAnchorOffset);
1317     nsresult GetFocusNode(nsIDOMNode **aFocusNode);
1318     nsresult GetFocusOffset(int32_t *aFocusOffset);
1319     nsresult GetIsCollapsed(bool *aIsCollapsed);
1320     bool /* don't use */ Collapsed();
1321     nsresult GetRangeCount(int32_t *aRangeCount);
1322     nsresult GetRangeAt(int32_t index, nsIDOMRange **_retval);
1323     nsresult Collapse(nsIDOMNode *parentNode, int32_t offset);
1324     nsresult CollapseNative(nsINode *parentNode, int32_t offset);
1325     nsresult Extend(nsIDOMNode *parentNode, int32_t offset);
1326     nsresult ExtendNative(nsINode *parentNode, int32_t offset);
1327     nsresult CollapseToStart();
1328     nsresult CollapseToEnd();
1329     nsresult ContainsNode(nsIDOMNode *node, bool entirelyContained, bool *_retval);
1330     nsresult SelectAllChildren(nsIDOMNode *parentNode);
1331     nsresult AddRange(nsIDOMRange *range);
1332     nsresult RemoveRange(nsIDOMRange *range);
1333     nsresult RemoveAllRanges();
1334     nsresult DeleteFromDocument();
1335     nsresult SelectionLanguageChange(bool langRTL);
1336     nsresult ToString(nsAString *_retval);
1337     nsresult Modify(const nsAString *alter, const nsAString *direction, const nsAString *granularity);
1338 }
1339
1340 [
1341     object,
1342     uuid(a6cf906f-15b3-11d2-932e-00805f8add32),
1343     local
1344 ]
1345 interface nsIDOMWindowCollection : nsISupports
1346 {
1347     nsresult GetLength(uint32_t *aLength);
1348     nsresult Item(uint32_t index, nsIDOMWindow **_retval);
1349     nsresult NamedItem(const nsAString *name, nsIDOMWindow **_retval);
1350 }
1351
1352 [
1353     object,
1354     uuid(7afa38e6-45a1-4f0b-ae84-997669d14059),
1355     local
1356 ]
1357 interface nsIDOMWindow : nsISupports
1358 {
1359     nsresult GetWindow(nsIDOMWindow **aWindow);
1360     nsresult GetSelf(nsIDOMWindow **aSelf);
1361     nsresult GetDocument(nsIDOMDocument **aDocument);
1362     nsresult GetName(nsAString *aName);
1363     nsresult SetName(const nsAString *aName);
1364     nsresult GetLocation(nsIDOMLocation **aLocation);
1365     nsresult GetHistory(nsIDOMHistory **aHistory);
1366     nsresult GetLocationbar(nsIDOMBarProp **aLocationbar);
1367     nsresult GetMenubar(nsIDOMBarProp **aMenubar);
1368     nsresult GetPersonalbar(nsIDOMBarProp **aPersonalbar);
1369     nsresult GetScrollbars(nsIDOMBarProp **aScrollbars);
1370     nsresult GetStatusbar(nsIDOMBarProp **aStatusbar);
1371     nsresult GetToolbar(nsIDOMBarProp **aToolbar);
1372     nsresult GetStatus(nsAString *aStatus);
1373     nsresult SetStatus(const nsAString *aStatus);
1374     nsresult Close();
1375     nsresult Stop();
1376     nsresult Focus();
1377     nsresult Blur();
1378     nsresult GetLength(uint32_t *aLength);
1379     nsresult GetScriptableTop(nsIDOMWindow **aTop);
1380     nsresult GetRealTop(nsIDOMWindow **aTop);
1381     nsresult GetScriptableParent(nsIDOMWindow **aParent);
1382     nsresult GetRealParent(nsIDOMWindow **aParent);
1383     nsresult GetOpener(nsIDOMWindow **aOpener);
1384     nsresult SetOpener(nsIDOMWindow *aOpener);
1385     nsresult GetScriptableFrameElement(nsIDOMElement **aFrameElement);
1386     nsresult GetRealFrameElement(nsIDOMElement **aFrameElement);
1387     nsresult GetNavigator(nsIDOMNavigator **aNavigator);
1388     nsresult GetApplicationCache(nsIDOMOfflineResourceList **aApplicationCache);
1389     nsresult Alert(const nsAString *text);
1390     nsresult Confirm(const nsAString *text, bool *_retval);
1391     nsresult Prompt(const nsAString *aMessage, const nsAString *aInitial, nsAString *_retval);
1392     nsresult Print();
1393     nsresult ShowModalDialog(const nsAString *aURI, nsIVariant *aArgs, const nsAString *aOptions, nsIVariant **_retval);
1394     nsresult PostMessageMoz(const long /*jsval*/ *message, const nsAString *targetOrigin, JSContext *cx);
1395     nsresult Atob(const nsAString *aAsciiString, nsAString *_retval);
1396     nsresult Btoa(const nsAString *aBase64Data, nsAString *_retval);
1397     nsresult GetSessionStorage(nsIDOMStorage **aSessionStorage);
1398     nsresult GetLocalStorage(nsIDOMStorage **aLocalStorage);
1399     nsresult GetSelection(nsISelection **_retval);
1400     nsresult MatchMedia(const nsAString *media_query_list, nsIDOMMediaQueryList **_retval);
1401     nsresult GetScreen(nsIDOMScreen **aScreen);
1402     nsresult GetInnerWidth(int32_t *aInnerWidth);
1403     nsresult SetInnerWidth(int32_t aInnerWidth);
1404     nsresult GetInnerHeight(int32_t *aInnerHeight);
1405     nsresult SetInnerHeight(int32_t aInnerHeight);
1406     nsresult GetScrollX(int32_t *aScrollX);
1407     nsresult GetPageXOffset(int32_t *aPageXOffset);
1408     nsresult GetScrollY(int32_t *aScrollY);
1409     nsresult GetPageYOffset(int32_t *aPageYOffset);
1410     nsresult Scroll(int32_t xScroll, int32_t yScroll);
1411     nsresult ScrollTo(int32_t xScroll, int32_t yScroll);
1412     nsresult ScrollBy(int32_t xScrollDif, int32_t yScrollDif);
1413     nsresult GetScreenX(int32_t *aScreenX);
1414     nsresult SetScreenX(int32_t aScreenX);
1415     nsresult GetScreenY(int32_t *aScreenY);
1416     nsresult SetScreenY(int32_t aScreenY);
1417     nsresult GetOuterWidth(int32_t *aOuterWidth);
1418     nsresult SetOuterWidth(int32_t aOuterWidth);
1419     nsresult GetOuterHeight(int32_t *aOuterHeight);
1420     nsresult SetOuterHeight(int32_t aOuterHeight);
1421     nsresult GetComputedStyle(nsIDOMElement *elt, const nsAString *pseudoElt, nsIDOMCSSStyleDeclaration **_retval);
1422     nsresult GetWindowRoot(nsIDOMEventTarget **aWindowRoot);
1423     nsresult GetFrames(nsIDOMWindowCollection **aFrames);
1424     nsresult GetTextZoom(float *aTextZoom);
1425     nsresult SetTextZoom(float aTextZoom);
1426     nsresult ScrollByLines(int32_t numLines);
1427     nsresult ScrollByPages(int32_t numPages);
1428     nsresult SizeToContent();
1429     nsresult GetContent(nsIDOMWindow **aContent);
1430     nsresult GetPrompter(nsIPrompt **aPrompter);
1431     nsresult GetClosed(bool *aClosed);
1432     nsresult GetCrypto(nsIDOMCrypto **aCrypto);
1433     nsresult GetPkcs11(nsIDOMPkcs11 **aPkcs11);
1434     nsresult GetControllers(nsIControllers **aControllers);
1435     nsresult GetDefaultStatus(nsAString *aDefaultStatus);
1436     nsresult SetDefaultStatus(const nsAString *aDefaultStatus);
1437     nsresult GetMozInnerScreenX(float *aMozInnerScreenX);
1438     nsresult GetMozInnerScreenY(float *aMozInnerScreenY);
1439     nsresult GetDevicePixelRatio(float *aDevicePixelRatio);
1440     nsresult GetScrollMaxX(int32_t *aScrollMaxX);
1441     nsresult GetScrollMaxY(int32_t *aScrollMaxY);
1442     nsresult GetFullScreen(bool *aFullScreen);
1443     nsresult SetFullScreen(bool aFullScreen);
1444     nsresult Back();
1445     nsresult Forward();
1446     nsresult Home();
1447     nsresult MoveTo(int32_t xPos, int32_t yPos);
1448     nsresult MoveBy(int32_t xDif, int32_t yDif);
1449     nsresult ResizeTo(int32_t width, int32_t height);
1450     nsresult ResizeBy(int32_t widthDif, int32_t heightDif);
1451     nsresult Open(const nsAString *url, const nsAString *name, const nsAString *options, nsIDOMWindow **_retval);
1452     nsresult OpenDialog(const nsAString *url, const nsAString *name, const nsAString *options, nsISupports *aExtraArgument,
1453             nsIDOMWindow **_retval);
1454     nsresult UpdateCommands(const nsAString *action);
1455     nsresult Find(const nsAString *str, bool caseSensitive, bool backwards, bool wrapAround, bool wholeWord,
1456             bool searchInFrames, bool showDialog, bool *_retval);
1457     nsresult GetMozPaintCount(uint64_t *aMozPaintCount);
1458     nsresult MozRequestAnimationFrame(nsIFrameRequestCallback *aCallback, int32_t *_retval);
1459     nsresult MozCancelAnimationFrame(int32_t aHandle);
1460     nsresult MozCancelRequestAnimationFrame(int32_t aHandle);
1461     nsresult GetMozAnimationStartTime(int64_t *aMozAnimationStartTime);
1462     nsresult GetURL(nsIDOMMozURLProperty **aURL);
1463     nsresult GetOnafterprint(JSContext *cx, jsval *aOnafterprint);
1464     nsresult SetOnafterprint(JSContext *cx, const jsval *aOnafterprint);
1465     nsresult GetOnbeforeprint(JSContext *cx, jsval *aOnbeforeprint);
1466     nsresult SetOnbeforeprint(JSContext *cx, const jsval *aOnbeforeprint);
1467     nsresult GetOnbeforeunload(JSContext *cx, jsval *aOnbeforeunload);
1468     nsresult SetOnbeforeunload(JSContext *cx, const jsval *aOnbeforeunload);
1469     nsresult GetOnhashchange(JSContext *cx, jsval *aOnhashchange);
1470     nsresult SetOnhashchange(JSContext *cx, const jsval *aOnhashchange);
1471     nsresult GetOnmessage(JSContext *cx, jsval *aOnmessage);
1472     nsresult SetOnmessage(JSContext *cx, const jsval *aOnmessage);
1473     nsresult GetOnoffline(JSContext *cx, jsval *aOnoffline);
1474     nsresult SetOnoffline(JSContext *cx, const jsval *aOnoffline);
1475     nsresult GetOnonline(JSContext *cx, jsval *aOnonline);
1476     nsresult SetOnonline(JSContext *cx, const jsval *aOnonline);
1477     nsresult GetOnpopstate(JSContext *cx, jsval *aOnpopstate);
1478     nsresult SetOnpopstate(JSContext *cx, const jsval *aOnpopstate);
1479     nsresult GetOnpagehide(JSContext *cx, jsval *aOnpagehide);
1480     nsresult SetOnpagehide(JSContext *cx, const jsval *aOnpagehide);
1481     nsresult GetOnpageshow(JSContext *cx, jsval *aOnpageshow);
1482     nsresult SetOnpageshow(JSContext *cx, const jsval *aOnpageshow);
1483     nsresult GetOnresize(JSContext *cx, jsval *aOnresize);
1484     nsresult SetOnresize(JSContext *cx, const jsval *aOnresize);
1485     nsresult GetOnunload(JSContext *cx, jsval *aOnunload);
1486     nsresult SetOnunload(JSContext *cx, const jsval *aOnunload);
1487     nsresult GetOndevicemotion(JSContext *cx, jsval *aOndevicemotion);
1488     nsresult SetOndevicemotion(JSContext *cx, const jsval *aOndevicemotion);
1489     nsresult GetOndeviceorientation(JSContext *cx, jsval *aOndeviceorientation);
1490     nsresult SetOndeviceorientation(JSContext *cx, const jsval *aOndeviceorientation);
1491     nsresult GetOndeviceproximity(JSContext* cx, jsval *aOndeviceproximity);
1492     nsresult SetOndeviceproximity(JSContext* cx, const jsval *aOndeviceproximity);
1493     nsresult GetOnuserproximity(JSContext* cx, jsval *aOndeviceproximity);
1494     nsresult SetOnuserproximity(JSContext* cx, const jsval *aOndeviceproximity);
1495     nsresult GetOndevicelight(JSContext* cx, jsval *aOndevicelight);
1496     nsresult SetOndevicelight(JSContext* cx, const jsval *aOndevicelight);
1497     nsresult GetOnmouseenter(JSContext* cx, jsval *aOnmouseenter);
1498     nsresult SetOnmouseenter(JSContext* cx, const jsval *aOnmouseenter);
1499     nsresult GetOnmouseleave(JSContext* cx, jsval *aOnmouseleave);
1500     nsresult SetOnmouseleave(JSContext* cx, const jsval *aOnmouseleave);
1501 }
1502
1503 [
1504     object,
1505     uuid(d8f00c8b-d317-4df2-a9bf-4a1e6f19f945),
1506     local
1507 ]
1508 interface nsIDOMHTMLBodyElement : nsIDOMHTMLElement
1509 {
1510     nsresult GetALink(nsAString *aALink);
1511     nsresult SetALink(const nsAString *aALink);
1512     nsresult GetBackground(nsAString *aBackground);
1513     nsresult SetBackground(const nsAString *aBackground);
1514     nsresult GetBgColor(nsAString *aBgColor);
1515     nsresult SetBgColor(const nsAString *aBgColor);
1516     nsresult GetLink(nsAString *aLink);
1517     nsresult SetLink(const nsAString *aLink);
1518     nsresult GetText(nsAString *aText);
1519     nsresult SetText(const nsAString *aText);
1520     nsresult GetVLink(nsAString *aVLink);
1521     nsresult SetVLink(const nsAString *aVLink);
1522     nsresult GetOnafterprint(JSContext *cx, jsval *aOnafterprint);
1523     nsresult SetOnafterprint(JSContext *cx, const jsval *aOnafterprint);
1524     nsresult GetOnbeforeprint(JSContext *cx, jsval *aOnbeforeprint);
1525     nsresult SetOnbeforeprint(JSContext *cx, const jsval *aOnbeforeprint);
1526     nsresult GetOnbeforeunload(JSContext *cx, jsval *aOnbeforeunload);
1527     nsresult SetOnbeforeunload(JSContext *cx, const jsval *aOnbeforeunload);
1528     nsresult GetOnhashchange(JSContext *cx, jsval *aOnhashchange);
1529     nsresult SetOnhashchange(JSContext *cx, const jsval *aOnhashchange);
1530     nsresult GetOnmessage(JSContext *cx, jsval *aOnmessage);
1531     nsresult SetOnmessage(JSContext *cx, const jsval *aOnmessage);
1532     nsresult GetOnoffline(JSContext *cx, jsval *aOnoffline);
1533     nsresult SetOnoffline(JSContext *cx, const jsval *aOnoffline);
1534     nsresult GetOnonline(JSContext *cx, jsval *aOnonline);
1535     nsresult SetOnonline(JSContext *cx, const jsval *aOnonline);
1536     nsresult GetOnpagehide(JSContext *cx, jsval *aOnpagehide);
1537     nsresult SetOnpagehide(JSContext *cx, const jsval *aOnpagehide);
1538     nsresult GetOnpageshow(JSContext *cx, jsval *aOnpageshow);
1539     nsresult SetOnpageshow(JSContext *cx, const jsval *aOnpageshow);
1540     nsresult GetOnpopstate(JSContext *cx, jsval *aOnpopstate);
1541     nsresult SetOnpopstate(JSContext *cx, const jsval *aOnpopstate);
1542     nsresult GetOnresize(JSContext *cx, jsval *aOnresize);
1543     nsresult SetOnresize(JSContext *cx, const jsval *aOnresize);
1544     nsresult GetOnunload(JSContext *cx, jsval *aOnunload);
1545     nsresult SetOnunload(JSContext *cx, const jsval *aOnunload);
1546 }
1547
1548 [
1549     object,
1550     uuid(59c0dc07-d784-410b-8b5e-c26baf7cb8a6),
1551     local
1552 ]
1553 interface nsIDOMHTMLFormElement : nsIDOMHTMLElement
1554 {
1555     nsresult GetAcceptCharset(nsAString *aAcceptCharset);
1556     nsresult SetAcceptCharset(const nsAString *aAcceptCharset);
1557     nsresult GetAction(nsAString *aAction);
1558     nsresult SetAction(const nsAString *aAction);
1559     nsresult GetAutocomplete(nsAString *aAutocomplete);
1560     nsresult SetAutocomplete(const nsAString *aAutocomplete);
1561     nsresult GetEnctype(nsAString *aEnctype);
1562     nsresult SetEnctype(const nsAString *aEnctype);
1563     nsresult GetEncoding(nsAString *aEncoding);
1564     nsresult SetEncoding(const nsAString *aEncoding);
1565     nsresult GetMethod(nsAString *aMethod);
1566     nsresult SetMethod(const nsAString *aMethod);
1567     nsresult GetName(nsAString *aName);
1568     nsresult SetName(const nsAString *aName);
1569     nsresult GetNoValidate(bool *aNoValidate);
1570     nsresult SetNoValidate(bool aNoValidate);
1571     nsresult GetTarget(nsAString *aTarget);
1572     nsresult SetTarget(const nsAString *aTarget);
1573     nsresult GetElements(nsIDOMHTMLCollection **aElements);
1574     nsresult GetLength(int32_t *aLength);
1575     nsresult Submit();
1576     nsresult Reset();
1577     nsresult CheckValidity(bool *_retval);
1578 }
1579
1580 [
1581     object,
1582     uuid(e59a4df5-0904-414d-9203-9af2790698ea),
1583     local
1584 ]
1585 interface nsIDOMHTMLInputElement : nsIDOMHTMLElement
1586 {
1587     nsresult GetAccept(nsAString *aAccept);
1588     nsresult SetAccept(const nsAString *aAccept);
1589     nsresult GetAlt(nsAString *aAlt);
1590     nsresult SetAlt(const nsAString *aAlt);
1591     nsresult GetAutocomplete(nsAString *aAutocomplete);
1592     nsresult SetAutocomplete(const nsAString *aAutocomplete);
1593     nsresult GetAutofocus(bool *aAutofocus);
1594     nsresult SetAutofocus(bool aAutofocus);
1595     nsresult GetDefaultChecked(bool *aDefaultChecked);
1596     nsresult SetDefaultChecked(bool aDefaultChecked);
1597     nsresult GetChecked(bool *aChecked);
1598     nsresult SetChecked(bool aChecked);
1599     nsresult GetDisabled(bool *aDisabled);
1600     nsresult SetDisabled(bool aDisabled);
1601     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1602     nsresult GetFormAction(nsAString *aFormAction);
1603     nsresult SetFormAction(const nsAString *aFormAction);
1604     nsresult GetFormEnctype(nsAString *aFormEnctype);
1605     nsresult SetFormEnctype(const nsAString *aFormEnctype);
1606     nsresult GetFormMethod(nsAString *aFormMethod);
1607     nsresult SetFormMethod(const nsAString *aFormMethod);
1608     nsresult GetFormNoValidate(bool *aFormNoValidate);
1609     nsresult SetFormNoValidate(bool aFormNoValidate);
1610     nsresult GetFormTarget(nsAString *aFormTarget);
1611     nsresult SetFormTarget(const nsAString *aFormTarget);
1612     nsresult GetFiles(nsIDOMFileList **aFiles);
1613     nsresult GetHeight(uint32_t *aHeight);
1614     nsresult SetHeight(uint32_t aHeight);
1615     nsresult GetIndeterminate(bool *aIndeterminate);
1616     nsresult SetIndeterminate(bool aIndeterminate);
1617     nsresult GetList(nsIDOMHTMLElement **aList);
1618     nsresult GetMax(nsAString *aMax);
1619     nsresult SetMax(const nsAString *aMax);
1620     nsresult GetMaxLength(int32_t *aMaxLength);
1621     nsresult SetMaxLength(int32_t aMaxLength);
1622     nsresult GetMin(nsAString *aMin);
1623     nsresult SetMin(const nsAString *aMin);
1624     nsresult GetMultiple(bool *aMultiple);
1625     nsresult SetMultiple(bool aMultiple);
1626     nsresult GetName(nsAString *aName);
1627     nsresult SetName(const nsAString *aName);
1628     nsresult GetPattern(nsAString *aPattern);
1629     nsresult SetPattern(const nsAString *aPattern);
1630     nsresult GetPlaceholder(nsAString *aPlaceholder);
1631     nsresult SetPlaceholder(const nsAString *aPlaceholder);
1632     nsresult GetReadOnly(bool *aReadOnly);
1633     nsresult SetReadOnly(bool aReadOnly);
1634     nsresult GetRequired(bool *aRequired);
1635     nsresult SetRequired(bool aRequired);
1636     nsresult GetStep(nsAString *aStep);
1637     nsresult SetStep(const nsAString *aStep);
1638     nsresult GetAlign(nsAString *aAlign);
1639     nsresult SetAlign(const nsAString *aAlign);
1640     nsresult GetSize(uint32_t *aSize);
1641     nsresult SetSize(uint32_t aSize);
1642     nsresult GetWidth(uint32_t *aWidth);
1643     nsresult SetWidth(uint32_t aWidth);
1644     nsresult GetSrc(nsAString *aSrc);
1645     nsresult SetSrc(const nsAString *aSrc);
1646     nsresult GetType(nsAString *aType);
1647     nsresult SetType(const nsAString *aType);
1648     nsresult GetDefaultValue(nsAString *aDefaultValue);
1649     nsresult SetDefaultValue(const nsAString *aDefaultValue);
1650     nsresult GetValue(nsAString *aValue);
1651     nsresult SetValue(const nsAString *aValue);
1652     nsresult GetValueAsNumber(double *aValueAsNumber);
1653     nsresult SetValueAsNumber(double aValueAsNumber);
1654     nsresult StepDown(int32_t n, uint8_t _argc);
1655     nsresult StepUp(int32_t n, uint8_t _argc);
1656     nsresult GetWillValidate(bool *aWillValidate);
1657     nsresult GetValidity(nsIDOMValidityState **aValidity);
1658     nsresult GetValidationMessage(nsAString *aValidationMessage);
1659     nsresult CheckValidity(bool *_retval);
1660     nsresult SetCustomValidity(const nsAString *error);
1661     nsresult Select();
1662     nsresult GetSelectionStart(int32_t *aSelectionStart);
1663     nsresult SetSelectionStart(int32_t aSelectionStart);
1664     nsresult GetSelectionEnd(int32_t *aSelectionEnd);
1665     nsresult SetSelectionEnd(int32_t aSelectionEnd);
1666     nsresult SetSelectionRange(int32_t selectionStart, int32_t selectionEnd, const nsAString *direction);
1667     nsresult GetSelectionDirection(nsAString *aSelectionDirection);
1668     nsresult SetSelectionDirection(const nsAString *aSelectionDirection);
1669     nsresult GetUseMap(nsAString *aUseMap);
1670     nsresult SetUseMap(const nsAString *aUseMap);
1671     nsresult GetControllers(nsIControllers **aControllers);
1672     nsresult GetTextLength(int32_t *aTextLength);
1673     nsresult MozGetFileNameArray(uint32_t *aLength, PRUnichar ***aFileNames);
1674     nsresult MozSetFileNameArray(const PRUnichar **aFileNames, uint32_t aLength);
1675     nsresult MozIsTextField(bool aExcludePassword, bool *_retval);
1676 }
1677
1678 [
1679     object,
1680     uuid(68a5d794-39bf-4b00-aefe-754b9e8f7ec6),
1681     local
1682 ]
1683 interface nsIDOMHTMLOptionElement : nsIDOMHTMLElement
1684 {
1685     nsresult GetDisabled(bool *aDisabled);
1686     nsresult SetDisabled(bool aDisabled);
1687     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1688     nsresult GetLabel(nsAString *aLabel);
1689     nsresult SetLabel(const nsAString *aLabel);
1690     nsresult GetDefaultSelected(bool *aDefaultSelected);
1691     nsresult SetDefaultSelected(bool aDefaultSelected);
1692     nsresult GetSelected(bool *aSelected);
1693     nsresult SetSelected(bool aSelected);
1694     nsresult GetValue(nsAString *aValue);
1695     nsresult SetValue(const nsAString *aValue);
1696     nsresult GetText(nsAString *aText);
1697     nsresult SetText(const nsAString *aText);
1698     nsresult GetIndex(int32_t *aIndex);
1699 }
1700
1701 [
1702     object,
1703     uuid(8e40d4d7-c204-4192-802a-0b5602e9c669),
1704     local
1705 ]
1706 interface nsIDOMHTMLButtonElement : nsIDOMHTMLElement
1707 {
1708     nsresult GetAutofocus(bool *aAutofocus);
1709     nsresult SetAutofocus(bool aAutofocus);
1710     nsresult GetDisabled(bool *aDisabled);
1711     nsresult SetDisabled(bool aDisabled);
1712     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1713     nsresult GetFormAction(nsAString *aFormAction);
1714     nsresult SetFormAction(const nsAString *aFormAction);
1715     nsresult GetFormEnctype(nsAString *aFormEnctype);
1716     nsresult SetFormEnctype(const nsAString *aFormEnctype);
1717     nsresult GetFormMethod(nsAString *aFormMethod);
1718     nsresult SetFormMethod(const nsAString *aFormMethod);
1719     nsresult GetFormNoValidate(bool *aFormNoValidate);
1720     nsresult SetFormNoValidate(bool aFormNoValidate);
1721     nsresult GetFormTarget(nsAString *aFormTarget);
1722     nsresult SetFormTarget(const nsAString *aFormTarget);
1723     nsresult GetName(nsAString *aName);
1724     nsresult SetName(const nsAString *aName);
1725     nsresult GetType(nsAString *aType);
1726     nsresult SetType(const nsAString *aType);
1727     nsresult GetValue(nsAString *aValue);
1728     nsresult SetValue(const nsAString *aValue);
1729     nsresult GetWillValidate(bool *aWillValidate);
1730     nsresult GetValidity(nsIDOMValidityState **aValidity);
1731     nsresult GetValidationMessage(nsAString *aValidationMessage);
1732     nsresult CheckValidity(bool *_retval);
1733     nsresult SetCustomValidity(const nsAString *error);
1734 }
1735
1736 [
1737     object,
1738     uuid(429b041b-06df-486c-9a3a-a1d901cc76a2),
1739     local
1740 ]
1741 interface nsIDOMHTMLOptionsCollection : nsISupports
1742 {
1743     typedef int nsWrapperCache;
1744
1745     nsresult GetLength(uint32_t *aLength);
1746     nsresult SetLength(uint32_t aLength);
1747     nsresult Item(uint32_t index, nsIDOMNode **_retval);
1748     nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
1749     nsISupports* __cdecl GetNamedItem(const nsAString *name, nsWrapperCache **cache);
1750     nsresult GetSelectedIndex(int32_t *aSelectedIndex);
1751     nsresult SetSelectedIndex(int32_t aSelectedIndex);
1752     nsresult SetOption(uint32_t index, nsIDOMHTMLOptionElement *option);
1753     nsresult GetSelect(nsIDOMHTMLSelectElement **aSelect);
1754     nsresult Add(nsIDOMHTMLOptionElement *option, nsIVariant *before);
1755     nsresult Remove(int32_t index);
1756 }
1757
1758 [
1759     object,
1760     uuid(e85194cf-56e6-44a6-92d9-0096c9d2536e),
1761     local
1762 ]
1763 interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement
1764 {
1765     nsresult GetAutofocus(bool *aAutofocus);
1766     nsresult SetAutofocus(bool aAutofocus);
1767     nsresult GetDisabled(bool *aDisabled);
1768     nsresult SetDisabled(bool aDisabled);
1769     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1770     nsresult GetMultiple(bool *aMultiple);
1771     nsresult SetMultiple(bool aMultiple);
1772     nsresult GetName(nsAString *aName);
1773     nsresult SetName(const nsAString *aName);
1774     nsresult GetSize(uint32_t *aSize);
1775     nsresult SetSize(uint32_t aSize);
1776     nsresult GetType(nsAString *aType);
1777     nsresult GetOptions(nsIDOMHTMLOptionsCollection **aOptions);
1778     nsresult GetLength(uint32_t *aLength);
1779     nsresult SetLength(uint32_t aLength);
1780     nsresult Item(uint32_t index, nsIDOMNode **_retval);
1781     nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
1782     nsresult Add(nsIDOMHTMLElement *element, nsIVariant *before);
1783     nsresult Remove(int32_t index);
1784     nsresult GetSelectedIndex(int32_t *aSelectedIndex);
1785     nsresult SetSelectedIndex(int32_t aSelectedIndex);
1786     nsresult GetValue(nsAString *aValue);
1787     nsresult SetValue(const nsAString *aValue);
1788     nsresult GetWillValidate(bool *aWillValidate);
1789     nsresult GetValidity(nsIDOMValidityState **aValidity);
1790     nsresult GetValidationMessage(nsAString *aValidationMessage);
1791     nsresult CheckValidity(bool *_retval);
1792     nsresult SetCustomValidity(const nsAString *error);
1793     nsresult GetRequired(bool *aRequired);
1794     nsresult SetRequired(bool aRequired);
1795 }
1796
1797 [
1798     object,
1799     uuid(2a395065-2d92-48c1-ac00-643de9ca681b),
1800     local
1801 ]
1802 interface nsIDOMHTMLTextAreaElement : nsIDOMHTMLElement
1803 {
1804     nsresult GetAutofocus(bool *aAutofocus);
1805     nsresult SetAutofocus(bool aAutofocus);
1806     nsresult GetCols(uint32_t *aCols);
1807     nsresult SetCols(uint32_t aCols);
1808     nsresult GetDisabled(bool *aDisabled);
1809     nsresult SetDisabled(bool aDisabled);
1810     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1811     nsresult GetMaxLength(int32_t *aMaxLength);
1812     nsresult SetMaxLength(int32_t aMaxLength);
1813     nsresult GetName(nsAString *aName);
1814     nsresult SetName(const nsAString *aName);
1815     nsresult GetPlaceholder(nsAString *aPlaceholder);
1816     nsresult SetPlaceholder(const nsAString *aPlaceholder);
1817     nsresult GetReadOnly(bool *aReadOnly);
1818     nsresult SetReadOnly(bool aReadOnly);
1819     nsresult GetRequired(bool *aRequired);
1820     nsresult SetRequired(bool aRequired);
1821     nsresult GetRows(uint32_t *aRows);
1822     nsresult SetRows(uint32_t aRows);
1823     nsresult GetWrap(nsAString *aWrap);
1824     nsresult SetWrap(const nsAString *aWrap);
1825     nsresult GetType(nsAString *aType);
1826     nsresult GetDefaultValue(nsAString *aDefaultValue);
1827     nsresult SetDefaultValue(const nsAString *aDefaultValue);
1828     nsresult GetValue(nsAString *aValue);
1829     nsresult SetValue(const nsAString *aValue);
1830     nsresult GetTextLength(int32_t *aTextLength);
1831     nsresult GetWillValidate(bool *aWillValidate);
1832     nsresult GetValidity(nsIDOMValidityState **aValidity);
1833     nsresult GetValidationMessage(nsAString *aValidationMessage);
1834     nsresult CheckValidity(bool *_retval);
1835     nsresult SetCustomValidity(const nsAString *error);
1836     nsresult Select();
1837     nsresult GetSelectionStart(int32_t *aSelectionStart);
1838     nsresult SetSelectionStart(int32_t aSelectionStart);
1839     nsresult GetSelectionEnd(int32_t *aSelectionEnd);
1840     nsresult SetSelectionEnd(int32_t aSelectionEnd);
1841     nsresult SetSelectionRange(int32_t selectionStart, int32_t selectionEnd, const nsAString *direction);
1842     nsresult GetSelectionDirection(nsAString *aSelectionDirection);
1843     nsresult SetSelectionDirection(const nsAString *aSelectionDirection);
1844     nsresult GetControllers(nsIControllers **aControllers);
1845 }
1846
1847 [
1848     object,
1849     uuid(e2f548f6-9955-4820-a9e6-3a9fd43c7111),
1850     local
1851 ]
1852 interface nsIDOMHTMLScriptElement : nsIDOMHTMLElement
1853 {
1854     nsresult GetSrc(nsAString *aSrc);
1855     nsresult SetSrc(const nsAString *aSrc);
1856     nsresult GetAsync(bool *aAsync);
1857     nsresult SetAsync(bool aAsync);
1858     nsresult GetDefer(bool *aDefer);
1859     nsresult SetDefer(bool aDefer);
1860     nsresult GetType(nsAString *aType);
1861     nsresult SetType(const nsAString *aType);
1862     nsresult GetCharset(nsAString *aCharset);
1863     nsresult SetCharset(const nsAString *aCharset);
1864     nsresult GetText(nsAString *aText);
1865     nsresult SetText(const nsAString *aText);
1866     nsresult GetHtmlFor(nsAString *aHtmlFor);
1867     nsresult SetHtmlFor(const nsAString *aHtmlFor);
1868     nsresult GetEvent(nsAString *aEvent);
1869     nsresult SetEvent(const nsAString *aEvent);
1870     nsresult GetCrossOrigin(nsAString *aCrossOrigin);
1871     nsresult SetCrossOrigin(const nsAString *aCrossOrigin);
1872 }
1873
1874 [
1875     object,
1876     uuid(76cf0381-19fd-442d-bb18-c794fd8b5c25),
1877     local
1878 ]
1879 interface nsIDOMHTMLImageElement : nsIDOMHTMLElement
1880 {
1881     nsresult GetAlt(nsAString *aAlt);
1882     nsresult SetAlt(const nsAString *aAlt);
1883     nsresult GetSrc(nsAString *aSrc);
1884     nsresult SetSrc(const nsAString *aSrc);
1885     nsresult GetCrossOrigin(nsAString *aCrossOrigin);
1886     nsresult SetCrossOrigin(const nsAString *aCrossOrigin);
1887     nsresult GetUseMap(nsAString *aUseMap);
1888     nsresult SetUseMap(const nsAString *aUseMap);
1889     nsresult GetIsMap(bool *aIsMap);
1890     nsresult SetIsMap(bool aIsMap);
1891     nsresult GetWidth(uint32_t *aWidth);
1892     nsresult SetWidth(uint32_t aWidth);
1893     nsresult GetHeight(uint32_t *aHeight);
1894     nsresult SetHeight(uint32_t aHeight);
1895     nsresult GetNaturalWidth(uint32_t *aNaturalWidth);
1896     nsresult GetNaturalHeight(uint32_t *aNaturalHeight);
1897     nsresult GetComplete(bool *aComplete);
1898     nsresult GetName(nsAString *aName);
1899     nsresult SetName(const nsAString *aName);
1900     nsresult GetAlign(nsAString *aAlign);
1901     nsresult SetAlign(const nsAString *aAlign);
1902     nsresult GetBorder(nsAString *aBorder);
1903     nsresult SetBorder(const nsAString *aBorder);
1904     nsresult GetHspace(int32_t *aHspace);
1905     nsresult SetHspace(int32_t aHspace);
1906     nsresult GetLongDesc(nsAString *aLongDesc);
1907     nsresult SetLongDesc(const nsAString *aLongDesc);
1908     nsresult GetVspace(int32_t *aVspace);
1909     nsresult SetVspace(int32_t aVspace);
1910     nsresult GetLowsrc(nsAString *aLowsrc);
1911     nsresult SetLowsrc(const nsAString *aLowsrc);
1912     nsresult GetX(int32_t *aX);
1913     nsresult GetY(int32_t *aY);
1914 }
1915
1916 [
1917     object,
1918     uuid(68f49f8f-5ffd-44eb-a59f-d2b3f4817299),
1919     local
1920 ]
1921 interface nsIDOMHTMLAnchorElement : nsIDOMHTMLElement
1922 {
1923     nsresult GetHref(nsAString *aHref);
1924     nsresult SetHref(const nsAString *aHref);
1925     nsresult GetTarget(nsAString *aTarget);
1926     nsresult SetTarget(const nsAString *aTarget);
1927     nsresult GetPing(nsAString *aPing);
1928     nsresult SetPing(const nsAString *aPing);
1929     nsresult GetRel(nsAString *aRel);
1930     nsresult SetRel(const nsAString *aRel);
1931     nsresult GetHreflang(nsAString *aHreflang);
1932     nsresult SetHreflang(const nsAString *aHreflang);
1933     nsresult GetType(nsAString *aType);
1934     nsresult SetType(const nsAString *aType);
1935     nsresult GetText(nsAString *aText);
1936     nsresult SetText(const nsAString *aText);
1937     nsresult GetProtocol(nsAString *aProtocol);
1938     nsresult SetProtocol(const nsAString *aProtocol);
1939     nsresult GetHost(nsAString *aHost);
1940     nsresult SetHost(const nsAString *aHost);
1941     nsresult GetHostname(nsAString *aHostname);
1942     nsresult SetHostname(const nsAString *aHostname);
1943     nsresult GetPort(nsAString *aPort);
1944     nsresult SetPort(const nsAString *aPort);
1945     nsresult GetPathname(nsAString *aPathname);
1946     nsresult SetPathname(const nsAString *aPathname);
1947     nsresult GetSearch(nsAString *aSearch);
1948     nsresult SetSearch(const nsAString *aSearch);
1949     nsresult GetHash(nsAString *aHash);
1950     nsresult SetHash(const nsAString *aHash);
1951     nsresult GetCharset(nsAString *aCharset);
1952     nsresult SetCharset(const nsAString *aCharset);
1953     nsresult GetCoords(nsAString *aCoords);
1954     nsresult SetCoords(const nsAString *aCoords);
1955     nsresult GetName(nsAString *aName);
1956     nsresult SetName(const nsAString *aName);
1957     nsresult GetRev(nsAString *aRev);
1958     nsresult SetRev(const nsAString *aRev);
1959     nsresult GetShape(nsAString *aShape);
1960     nsresult SetShape(const nsAString *aShape);
1961     nsresult ToString(nsAString *_retval);
1962 }
1963
1964 [
1965     object,
1966     uuid(5b639ece-7b49-4507-9d38-550beb71955b),
1967     local
1968 ]
1969 interface nsIDOMHTMLLinkElement : nsIDOMHTMLElement
1970 {
1971     nsresult GetDisabled(bool *aDisabled);
1972     nsresult SetDisabled(bool aDisabled);
1973     nsresult GetCharset(nsAString *aCharset);
1974     nsresult SetCharset(const nsAString *aCharset);
1975     nsresult GetHref(nsAString *aHref);
1976     nsresult SetHref(const nsAString *aHref);
1977     nsresult GetHreflang(nsAString *aHreflang);
1978     nsresult SetHreflang(const nsAString *aHreflang);
1979     nsresult GetMedia(nsAString *aMedia);
1980     nsresult SetMedia(const nsAString *aMedia);
1981     nsresult GetRel(nsAString *aRel);
1982     nsresult SetRel(const nsAString *aRel);
1983     nsresult GetRev(nsAString *aRev);
1984     nsresult SetRev(const nsAString *aRev);
1985     nsresult GetTarget(nsAString *aTarget);
1986     nsresult SetTarget(const nsAString *aTarget);
1987     nsresult GetType(nsAString *aType);
1988     nsresult SetType(const nsAString *aType);
1989     nsresult GetCrossOrigin(nsAString *aCrossOrigin);
1990     nsresult SetCrossOrigin(const nsAString *aCrossOrigin);
1991 }
1992
1993 [
1994     object,
1995     uuid(ae50de74-bc26-402e-85dc-a980f506b655),
1996     local
1997 ]
1998 interface nsIDOMHTMLTableElement : nsIDOMHTMLElement
1999 {
2000     nsresult GetCaption(nsIDOMHTMLTableCaptionElement **aCaption);
2001     nsresult SetCaption(nsIDOMHTMLTableCaptionElement *aCaption);
2002     nsresult GetTHead(nsIDOMHTMLTableSectionElement **aTHead);
2003     nsresult SetTHead(nsIDOMHTMLTableSectionElement *aTHead);
2004     nsresult GetTFoot(nsIDOMHTMLTableSectionElement **aTFoot);
2005     nsresult SetTFoot(nsIDOMHTMLTableSectionElement *aTFoot);
2006     nsresult GetRows(nsIDOMHTMLCollection **aRows);
2007     nsresult GetTBodies(nsIDOMHTMLCollection **aTBodies);
2008     nsresult GetAlign(nsAString *aAlign);
2009     nsresult SetAlign(const nsAString *aAlign);
2010     nsresult GetBgColor(nsAString *aBgColor);
2011     nsresult SetBgColor(const nsAString *aBgColor);
2012     nsresult GetBorder(nsAString *aBorder);
2013     nsresult SetBorder(const nsAString *aBorder);
2014     nsresult GetCellPadding(nsAString *aCellPadding);
2015     nsresult SetCellPadding(const nsAString *aCellPadding);
2016     nsresult GetCellSpacing(nsAString *aCellSpacing);
2017     nsresult SetCellSpacing(const nsAString *aCellSpacing);
2018     nsresult GetFrame(nsAString *aFrame);
2019     nsresult SetFrame(const nsAString *aFrame);
2020     nsresult GetRules(nsAString *aRules);
2021     nsresult SetRules(const nsAString *aRules);
2022     nsresult GetSummary(nsAString *aSummary);
2023     nsresult SetSummary(const nsAString *aSummary);
2024     nsresult GetWidth(nsAString *aWidth);
2025     nsresult SetWidth(const nsAString *aWidth);
2026     nsresult CreateTHead(nsIDOMHTMLElement **_retval);
2027     nsresult DeleteTHead();
2028     nsresult CreateTFoot(nsIDOMHTMLElement **_retval);
2029     nsresult DeleteTFoot();
2030     nsresult CreateCaption(nsIDOMHTMLElement **_retval);
2031     nsresult DeleteCaption();
2032     nsresult InsertRow(int32_t index, nsIDOMHTMLElement **_retval);
2033     nsresult DeleteRow(int32_t index);
2034 }
2035
2036 [
2037     object,
2038     uuid(0ac4a382-4f97-4143-a3b3-de0a54978c67),
2039     local
2040 ]
2041 interface nsIDOMHTMLTableRowElement : nsIDOMHTMLElement
2042 {
2043     nsresult GetRowIndex(int32_t *aRowIndex);
2044     nsresult GetSectionRowIndex(int32_t *aSectionRowIndex);
2045     nsresult GetCells(nsIDOMHTMLCollection **aCells);
2046     nsresult GetAlign(nsAString *aAlign);
2047     nsresult SetAlign(const nsAString *aAlign);
2048     nsresult GetBgColor(nsAString *aBgColor);
2049     nsresult SetBgColor(const nsAString *aBgColor);
2050     nsresult GetCh(nsAString *aCh);
2051     nsresult SetCh(const nsAString *aCh);
2052     nsresult GetChOff(nsAString *aChOff);
2053     nsresult SetChOff(const nsAString *aChOff);
2054     nsresult GetVAlign(nsAString *aVAlign);
2055     nsresult SetVAlign(const nsAString *aVAlign);
2056     nsresult InsertCell(int32_t index, nsIDOMHTMLElement **_retval);
2057     nsresult DeleteCell(int32_t index);
2058 }
2059
2060 [
2061     object,
2062     uuid(a7bd1e34-3969-47ae-8c1d-2970132ba925),
2063     local
2064 ]
2065 interface nsIDOMHTMLIFrameElement : nsIDOMHTMLElement
2066 {
2067     nsresult GetAlign(nsAString *aAlign);
2068     nsresult SetAlign(const nsAString *aAlign);
2069     nsresult GetFrameBorder(nsAString *aFrameBorder);
2070     nsresult SetFrameBorder(const nsAString *aFrameBorder);
2071     nsresult GetHeight(nsAString *aHeight);
2072     nsresult SetHeight(const nsAString *aHeight);
2073     nsresult GetLongDesc(nsAString *aLongDesc);
2074     nsresult SetLongDesc(const nsAString *aLongDesc);
2075     nsresult GetMarginHeight(nsAString *aMarginHeight);
2076     nsresult SetMarginHeight(const nsAString *aMarginHeight);
2077     nsresult GetMarginWidth(nsAString *aMarginWidth);
2078     nsresult SetMarginWidth(const nsAString *aMarginWidth);
2079     nsresult GetName(nsAString *aName);
2080     nsresult SetName(const nsAString *aName);
2081     nsresult GetScrolling(nsAString *aScrolling);
2082     nsresult SetScrolling(const nsAString *aScrolling);
2083     nsresult GetSrc(nsAString *aSrc);
2084     nsresult SetSrc(const nsAString *aSrc);
2085     nsresult GetWidth(nsAString *aWidth);
2086     nsresult SetWidth(const nsAString *aWidth);
2087     nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2088     nsresult GetContentWindow(nsIDOMWindow **aContentWindow);
2089     nsresult GetSandbox(nsAString *aSandbox);
2090     nsresult SetSandbox(const nsAString *aSandbox);
2091     nsresult GetAllowFullScreen(bool *aAllowFullScreen);
2092     nsresult SetAllowFullScreen(bool aAllowFullScreen);
2093 }
2094
2095 [
2096     object,
2097     uuid(2aa7855a-0667-47c3-af1e-9101002816c1),
2098     local
2099 ]
2100 interface nsIDOMHTMLFrameElement : nsIDOMHTMLElement
2101 {
2102     nsresult GetFrameBorder(nsAString *aFrameBorder);
2103     nsresult SetFrameBorder(const nsAString *aFrameBorder);
2104     nsresult GetLongDesc(nsAString *aLongDesc);
2105     nsresult SetLongDesc(const nsAString *aLongDesc);
2106     nsresult GetMarginHeight(nsAString *aMarginHeight);
2107     nsresult SetMarginHeight(const nsAString *aMarginHeight);
2108     nsresult GetMarginWidth(nsAString *aMarginWidth);
2109     nsresult SetMarginWidth(const nsAString *aMarginWidth);
2110     nsresult GetName(nsAString *aName);
2111     nsresult SetName(const nsAString *aName);
2112     nsresult GetNoResize(bool *aNoResize);
2113     nsresult SetNoResize(bool aNoResize);
2114     nsresult GetScrolling(nsAString *aScrolling);
2115     nsresult SetScrolling(const nsAString *aScrolling);
2116     nsresult GetSrc(nsAString *aSrc);
2117     nsresult SetSrc(const nsAString *aSrc);
2118     nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2119     nsresult GetContentWindow(nsIDOMWindow **aContentWindow);
2120 }
2121
2122 [
2123     object,
2124     uuid(a70595dd-68a5-41f5-ab52-73a47d98bd78),
2125     local
2126 ]
2127 interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement
2128 {
2129     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
2130     nsresult GetCode(nsAString *aCode);
2131     nsresult SetCode(const nsAString *aCode);
2132     nsresult GetAlign(nsAString *aAlign);
2133     nsresult SetAlign(const nsAString *aAlign);
2134     nsresult GetArchive(nsAString *aArchive);
2135     nsresult SetArchive(const nsAString *aArchive);
2136     nsresult GetBorder(nsAString *aBorder);
2137     nsresult SetBorder(const nsAString *aBorder);
2138     nsresult GetCodeBase(nsAString *aCodeBase);
2139     nsresult SetCodeBase(const nsAString *aCodeBase);
2140     nsresult GetCodeType(nsAString *aCodeType);
2141     nsresult SetCodeType(const nsAString *aCodeType);
2142     nsresult GetData(nsAString *aData);
2143     nsresult SetData(const nsAString *aData);
2144     nsresult GetDeclare(bool *aDeclare);
2145     nsresult SetDeclare(bool aDeclare);
2146     nsresult GetHeight(nsAString *aHeight);
2147     nsresult SetHeight(const nsAString *aHeight);
2148     nsresult GetHspace(int32_t *aHspace);
2149     nsresult SetHspace(int32_t aHspace);
2150     nsresult GetName(nsAString *aName);
2151     nsresult SetName(const nsAString *aName);
2152     nsresult GetStandby(nsAString *aStandby);
2153     nsresult SetStandby(const nsAString *aStandby);
2154     nsresult GetType(nsAString *aType);
2155     nsresult SetType(const nsAString *aType);
2156     nsresult GetUseMap(nsAString *aUseMap);
2157     nsresult SetUseMap(const nsAString *aUseMap);
2158     nsresult GetVspace(int32_t *aVspace);
2159     nsresult SetVspace(int32_t aVspace);
2160     nsresult GetWidth(nsAString *aWidth);
2161     nsresult SetWidth(const nsAString *aWidth);
2162     nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2163     nsresult GetWillValidate(bool *aWillValidate);
2164     nsresult GetValidity(nsIDOMValidityState **aValidity);
2165     nsresult GetValidationMessage(nsAString *aValidationMessage);
2166     nsresult CheckValidity(bool *_retval);
2167     nsresult SetCustomValidity(const nsAString *error);
2168 }
2169
2170 [
2171     object,
2172     uuid(1fbec0f8-c7cF-4dc8-84be-247985a65e07),
2173     local
2174 ]
2175 interface nsIDOMHTMLParamElement : nsIDOMHTMLElement
2176 {
2177     nsresult GetName(nsAString *aName);
2178     nsresult SetName(const nsAString *aName);
2179     nsresult GetType(nsAString *aType);
2180     nsresult SetType(const nsAString *aType);
2181     nsresult GetValue(nsAString *aValue);
2182     nsresult SetValue(const nsAString *aValue);
2183     nsresult GetValueType(nsAString *aValueType);
2184     nsresult SetValueType(const nsAString *aValueType);
2185 }
2186
2187 [
2188     object,
2189     uuid(830d9170-f8eb-4749-b721-16d60d6b0f1b),
2190     local
2191 ]
2192 interface nsIDOMHTMLStyleElement : nsIDOMHTMLElement
2193 {
2194     nsresult GetDisabled(bool *aDisabled);
2195     nsresult SetDisabled(bool aDisabled);
2196     nsresult GetMedia(nsAString *aMedia);
2197     nsresult SetMedia(const nsAString *aMedia);
2198     nsresult GetType(nsAString *aType);
2199     nsresult SetType(const nsAString *aType);
2200     nsresult GetDOMStyleSheet(nsIDOMStyleSheet **aDOMStyleSheet);
2201 }
2202
2203 [
2204     object,
2205     uuid(7cebc153-168a-416c-ba5a-56a8c2ddb2ec),
2206     local
2207 ]
2208 interface nsIDOMNodeSelector : nsISupports
2209 {
2210     nsresult QuerySelector(const nsAString *selectors, nsIDOMElement **_retval);
2211     nsresult QuerySelectorAll(const nsAString *selectors, nsIDOMNodeList **_retval);
2212 }
2213
2214 [
2215     object,
2216     uuid(94928ab3-8b63-11d3-989d-001083010e9b),
2217     local
2218 ]
2219 interface nsIURIContentListener : nsISupports
2220 {
2221     nsresult OnStartURIOpen(nsIURI *aURI, bool *_retval);
2222     nsresult DoContent(const char *aContentType, bool aIsContentPreferred, nsIRequest *aRequest,
2223         nsIStreamListener **aContentHandler, bool *_retval);
2224     nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, bool *_retval);
2225     nsresult CanHandleContent(const char *aContentType, bool aIsContentPreferred,
2226         char **aDesiredContentType, bool *_retval);
2227     nsresult GetLoadCookie(nsISupports **aLoadCookie);
2228     nsresult SetLoadCookie(nsISupports *aLoadCookie);
2229     nsresult GetParentContentListener(nsIURIContentListener **aParentContentListener);
2230     nsresult SetParentContentListener(nsIURIContentListener *aParentContentListener);
2231 }
2232
2233 [
2234     object,
2235     uuid(44b78386-1dd2-11b2-9ad2-e4eee2ca1916),
2236     local
2237 ]
2238 interface nsITooltipListener : nsISupports
2239 {
2240     nsresult OnShowTooltip(int32_t aXCoords, int32_t aYCoords, const PRUnichar *aTipText);
2241     nsresult OnHideTooltip();
2242 }
2243
2244 [
2245     object,
2246     uuid(33e9d001-caab-4ba9-8961-54902f197202),
2247     local
2248 ]
2249 interface nsIWebBrowser : nsISupports
2250 {
2251     nsresult AddWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
2252     nsresult RemoveWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
2253     nsresult GetContainerWindow(nsIWebBrowserChrome **aContainerWindow);
2254     nsresult SetContainerWindow(nsIWebBrowserChrome *aContainerWindow);
2255     nsresult GetParentURIContentListener(nsIURIContentListener **aParentURIContentListener);
2256     nsresult SetParentURIContentListener(nsIURIContentListener *aParentURIContentListener);
2257     nsresult GetContentDOMWindow(nsIDOMWindow **aContentDOMWindow);
2258     nsresult GetIsActive(bool *aIsActive);
2259     nsresult SetIsActive(bool aIsActive);
2260 }
2261
2262 cpp_quote("#define SETUP_ALLOW_JAVASCRIPT  2")
2263 cpp_quote("#define SETUP_IS_CHROME_WRAPPER 7")
2264 cpp_quote("#define SETUP_DISABLE_NOSCRIPT  16")
2265
2266 [
2267     object,
2268     uuid(f15398a0-8018-11d3-af70-00a024ffc08c),
2269     local
2270 ]
2271 interface nsIWebBrowserSetup : nsISupports
2272 {
2273     nsresult SetProperty(uint32_t aId, uint32_t aValue);
2274 }
2275
2276 typedef void* nativeWindow;
2277
2278 [
2279     object,
2280     uuid(9da319f3-eee6-4504-81a5-6a19cf6215bf),
2281     local
2282 ]
2283 interface nsIBaseWindow : nsISupports
2284 {
2285     nsresult InitWindow(nativeWindow parentNativeWindow, nsIWidget *parentWidget, int32_t x,
2286             int32_t y, int32_t cx, int32_t cy);
2287     nsresult Create();
2288     nsresult Destroy();
2289     nsresult SetPosition(int32_t x, int32_t y);
2290     nsresult GetPosition(int32_t *x, int32_t *y);
2291     nsresult SetSize(int32_t cx, int32_t cy, bool fRepaint);
2292     nsresult GetSize(int32_t *cx, int32_t *cy);
2293     nsresult SetPositionAndSize(int32_t x, int32_t y, int32_t cx, int32_t cy, bool fRepaint);
2294     nsresult GetPositionAndSize(int32_t *x, int32_t *y, int32_t *cx, int32_t *cy);
2295     nsresult Repaint(bool force);
2296     nsresult GetParentWidget(nsIWidget **aParentWidget);
2297     nsresult SetParentWidget(nsIWidget *aParentWidget);
2298     nsresult GetParentNativeWindow(nativeWindow *aParentNativeWindow);
2299     nsresult SetParentNativeWindow(nativeWindow aParentNativeWindow);
2300     nsresult GetNativeHandle(nsAString *aNativeHandle);
2301     nsresult GetVisibility(bool *aVisibility);
2302     nsresult SetVisibility(bool aVisibility);
2303     nsresult GetEnabled(bool *aEnabled);
2304     nsresult SetEnabled(bool aEnabled);
2305     nsresult GetMainWidget(nsIWidget **aMainWidget);
2306     nsresult GetUnscaledDevicePixelsPerCSSPixel(double *aUnscaledDevicePixelsPerCSSPixel);
2307     nsresult SetFocus();
2308     nsresult GetTitle(PRUnichar **aTitle);
2309     nsresult SetTitle(const PRUnichar *aTitle);
2310 }
2311
2312 [
2313     object,
2314     uuid(f5d9e7b0-d930-11d3-b057-00a024ffc08c),
2315     local
2316 ]
2317 interface nsIWebNavigation : nsISupports
2318 {
2319     const UINT LOAD_FLAGS_MASK                    =  0xffff;
2320     const UINT LOAD_FLAGS_NONE                    =       0;
2321     const UINT LOAD_FLAGS_IS_REFRESH              =  0x0010;
2322     const UINT LOAD_FLAGS_IS_LINK                 =  0x0020;
2323     const UINT LOAD_FLAGS_BYPASS_HISTORY          =  0x0040;
2324     const UINT LOAD_FLAGS_REPLACE_HISTORY         =  0x0080;
2325     const UINT LOAD_FLAGS_BYPASS_CACHE            =  0x0100;
2326     const UINT LOAD_FLAGS_BYPASS_PROXY            =  0x0200;
2327     const UINT LOAD_FLAGS_CHARSET_CHANGE          =  0x0400;
2328     const UINT LOAD_FLAGS_STOP_CONTENT            =  0x0800;
2329     const UINT LOAD_FLAGS_FROM_EXTERNAL           =  0x1000;
2330     const UINT LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP =  0x2000;
2331     const UINT LOAD_FLAGS_FIRST_LOAD              =  0x4000;
2332     const UINT LOAD_FLAGS_ALLOW_POPUPS            =  0x8000;
2333     const UINT LOAD_FLAGS_BYPASS_CLASSIFIER       = 0x10000;
2334     const UINT LOAD_FLAGS_FORCE_ALLOW_COOKIES     = 0x20000;
2335     const UINT LOAD_FLAGS_DISALLOW_INHERIT_OWNER  = 0x40000;
2336     const UINT LOAD_FLAGS_URI_IS_UTF8             = 0x80000;
2337
2338     nsresult GetCanGoBack(bool *aCanGoBack);
2339     nsresult GetCanGoForward(bool *aCanGoForward);
2340     nsresult GoBack();
2341     nsresult GoForward();
2342     nsresult GotoIndex(int32_t index);
2343     nsresult LoadURI(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer,
2344             nsIInputStream *aPostData, nsIInputStream *aHeaders);
2345     nsresult Reload(uint32_t aReloadFlags);
2346     nsresult Stop(uint32_t aStopFlags);
2347     nsresult GetDocument(nsIDOMDocument **aDocument);
2348     nsresult GetCurrentURI(nsIURI **aCurrentURI);
2349     nsresult GetReferringURI(nsIURI **aReferringURI);
2350     nsresult GetSessionHistory(nsISHistory **aSessionHistory);
2351     nsresult SetSessionHistory(nsISHistory *aSessionHistory);
2352 }
2353
2354 [
2355     object,
2356     uuid(570f39d0-efd0-11d3-b093-00a024ffc08c),
2357     local
2358 ]
2359 interface nsIWebProgress : nsISupports
2360 {
2361     nsresult AddProgressListener(nsIWebProgressListener *aListener, uint32_t aNotifyMask);
2362     nsresult RemoveProgressListener(nsIWebProgressListener *aListener);
2363     nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow);
2364     nsresult GetIsLoadingDocument(bool *aIsLoadingDocument);
2365 }
2366
2367 [
2368     object,
2369     uuid(4404c94b-0506-4255-9e3c-4582dba6cfbb),
2370     local
2371 ]
2372 interface nsIPrintSettings : nsISupports
2373 {
2374     typedef struct { char dummy; } nsIntMargin;
2375
2376     nsresult SetPrintOptions(int32_t aType, bool aTurnOnOff);
2377     nsresult GetPrintOptions(int32_t aType, bool *_retval);
2378     nsresult GetPrintOptionsBits(int32_t *_retval);
2379     nsresult GetEffectivePageSize(double *aWidth, double *aHeight);
2380     nsresult Clone(nsIPrintSettings **_retval);
2381     nsresult Assign(nsIPrintSettings *aPS);
2382     nsresult GetPrintSession(nsIPrintSession **aPrintSession);
2383     nsresult SetPrintSession(nsIPrintSession *aPrintSession);
2384     nsresult GetStartPageRange(int32_t *aStartPageRange);
2385     nsresult SetStartPageRange(int32_t aStartPageRange);
2386     nsresult GetEndPageRange(int32_t *aEndPageRange);
2387     nsresult SetEndPageRange(int32_t aEndPageRange);
2388     nsresult GetEdgeTop(double *aEdgeTop);
2389     nsresult SetEdgeTop(double aEdgeTop);
2390     nsresult GetEdgeLeft(double *aEdgeLeft);
2391     nsresult SetEdgeLeft(double aEdgeLeft);
2392     nsresult GetEdgeBottom(double *aEdgeBottom);
2393     nsresult SetEdgeBottom(double aEdgeBottom);
2394     nsresult GetEdgeRight(double *aEdgeRight);
2395     nsresult SetEdgeRight(double aEdgeRight);
2396     nsresult GetMarginTop(double *aMarginTop);
2397     nsresult SetMarginTop(double aMarginTop);
2398     nsresult GetMarginLeft(double *aMarginLeft);
2399     nsresult SetMarginLeft(double aMarginLeft);
2400     nsresult GetMarginBottom(double *aMarginBottom);
2401     nsresult SetMarginBottom(double aMarginBottom);
2402     nsresult GetMarginRight(double *aMarginRight);
2403     nsresult SetMarginRight(double aMarginRight);
2404     nsresult GetUnwriteableMarginTop(double *aUnwriteableMarginTop);
2405     nsresult SetUnwriteableMarginTop(double aUnwriteableMarginTop);
2406     nsresult GetUnwriteableMarginLeft(double *aUnwriteableMarginLeft);
2407     nsresult SetUnwriteableMarginLeft(double aUnwriteableMarginLeft);
2408     nsresult GetUnwriteableMarginBottom(double *aUnwriteableMarginBottom);
2409     nsresult SetUnwriteableMarginBottom(double aUnwriteableMarginBottom);
2410     nsresult GetUnwriteableMarginRight(double *aUnwriteableMarginRight);
2411     nsresult SetUnwriteableMarginRight(double aUnwriteableMarginRight);
2412     nsresult GetScaling(double *aScaling);
2413     nsresult SetScaling(double aScaling);
2414     nsresult GetPrintBGColors(bool *aPrintBGColors);
2415     nsresult SetPrintBGColors(bool aPrintBGColors);
2416     nsresult GetPrintBGImages(bool *aPrintBGImages);
2417     nsresult SetPrintBGImages(bool aPrintBGImages);
2418     nsresult GetPrintRange(int16_t *aPrintRange);
2419     nsresult SetPrintRange(int16_t aPrintRange);
2420     nsresult GetTitle(PRUnichar **aTitle);
2421     nsresult SetTitle(const PRUnichar *aTitle);
2422     nsresult GetDocURL(PRUnichar **aDocURL);
2423     nsresult SetDocURL(const PRUnichar *aDocURL);
2424     nsresult GetHeaderStrLeft(PRUnichar **aHeaderStrLeft);
2425     nsresult SetHeaderStrLeft(const PRUnichar *aHeaderStrLeft);
2426     nsresult GetHeaderStrCenter(PRUnichar **aHeaderStrCenter);
2427     nsresult SetHeaderStrCenter(const PRUnichar *aHeaderStrCenter);
2428     nsresult GetHeaderStrRight(PRUnichar **aHeaderStrRight);
2429     nsresult SetHeaderStrRight(const PRUnichar *aHeaderStrRight);
2430     nsresult GetFooterStrLeft(PRUnichar **aFooterStrLeft);
2431     nsresult SetFooterStrLeft(const PRUnichar *aFooterStrLeft);
2432     nsresult GetFooterStrCenter(PRUnichar **aFooterStrCenter);
2433     nsresult SetFooterStrCenter(const PRUnichar *aFooterStrCenter);
2434     nsresult GetFooterStrRight(PRUnichar **aFooterStrRight);
2435     nsresult SetFooterStrRight(const PRUnichar *aFooterStrRight);
2436     nsresult GetHowToEnableFrameUI(int16_t *aHowToEnableFrameUI);
2437     nsresult SetHowToEnableFrameUI(int16_t aHowToEnableFrameUI);
2438     nsresult GetIsCancelled(bool *aIsCancelled);
2439     nsresult SetIsCancelled(bool aIsCancelled);
2440     nsresult GetPrintFrameTypeUsage(int16_t *aPrintFrameTypeUsage);
2441     nsresult SetPrintFrameTypeUsage(int16_t aPrintFrameTypeUsage);
2442     nsresult GetPrintFrameType(int16_t *aPrintFrameType);
2443     nsresult SetPrintFrameType(int16_t aPrintFrameType);
2444     nsresult GetPrintSilent(bool *aPrintSilent);
2445     nsresult SetPrintSilent(bool aPrintSilent);
2446     nsresult GetShrinkToFit(bool *aShrinkToFit);
2447     nsresult SetShrinkToFit(bool aShrinkToFit);
2448     nsresult GetShowPrintProgress(bool *aShowPrintProgress);
2449     nsresult SetShowPrintProgress(bool aShowPrintProgress);
2450     nsresult GetPaperName(PRUnichar **aPaperName);
2451     nsresult SetPaperName(const PRUnichar *aPaperName);
2452     nsresult GetPaperSizeType(int16_t *aPaperSizeType);
2453     nsresult SetPaperSizeType(int16_t aPaperSizeType);
2454     nsresult GetPaperData(int16_t *aPaperData);
2455     nsresult SetPaperData(int16_t aPaperData);
2456     nsresult GetPaperWidth(double *aPaperWidth);
2457     nsresult SetPaperWidth(double aPaperWidth);
2458     nsresult GetPaperHeight(double *aPaperHeight);
2459     nsresult SetPaperHeight(double aPaperHeight);
2460     nsresult GetPaperSizeUnit(int16_t *aPaperSizeUnit);
2461     nsresult SetPaperSizeUnit(int16_t aPaperSizeUnit);
2462     nsresult GetPlexName(PRUnichar **aPlexName);
2463     nsresult SetPlexName(const PRUnichar *aPlexName);
2464     nsresult GetColorspace(PRUnichar **aColorspace);
2465     nsresult SetColorspace(const PRUnichar *aColorspace);
2466     nsresult GetResolutionName(PRUnichar **aResolutionName);
2467     nsresult SetResolutionName(const PRUnichar aResolutionName);
2468     nsresult GetDownloadFonts(bool *aDownloadFonts);
2469     nsresult SetDownloadFonts(bool aDownloadFonts);
2470     nsresult GetPrintReversed(bool *aPrintReversed);
2471     nsresult SetPrintReversed(bool aPrintReversed);
2472     nsresult GetPrintInColor(bool *aPrintInColor);
2473     nsresult SetPrintInColor(bool aPrintInColor);
2474     nsresult GetOrientation(int32_t *aOrientation);
2475     nsresult SetOrientation(int32_t aOrientation);
2476     nsresult GetPrintCommand(PRUnichar **aPrintCommand);
2477     nsresult SetPrintCommand(const PRUnichar *aPrintCommand);
2478     nsresult GetNumCopies(int32_t *aNumCopies);
2479     nsresult SetNumCopies(int32_t aNumCopies);
2480     nsresult GetPrinterName(PRUnichar **aPrinterName);
2481     nsresult SetPrinterName(const PRUnichar *aPrinterName);
2482     nsresult GetPrintToFile(bool *aPrintToFile);
2483     nsresult SetPrintToFile(bool aPrintToFile);
2484     nsresult GetToFileName(PRUnichar **aToFileName);
2485     nsresult SetToFileName(const PRUnichar *aToFileName);
2486     nsresult GetOutputFormat(int16_t *aOutputFormat);
2487     nsresult SetOutputFormat(int16_t aOutputFormat);
2488     nsresult GetPrintPageDelay(int32_t *aPrintPageDelay);
2489     nsresult SetPrintPageDelay(int32_t aPrintPageDelay);
2490     nsresult GetIsInitializedFromPrinter(bool *aIsInitializedFromPrinter);
2491     nsresult SetIsInitializedFromPrinter(bool aIsInitializedFromPrinter);
2492     nsresult GetIsInitializedFromPrefs(bool *aIsInitializedFromPrefs);
2493     nsresult SetIsInitializedFromPrefs(bool aIsInitializedFromPrefs);
2494     nsresult SetMarginInTwips(nsIntMargin *aMargin);
2495     nsresult SetEdgeInTwips(nsIntMargin *aEdge);
2496     nsresult GetMarginInTwips(nsIntMargin *aMargin);
2497     nsresult GetEdgeInTwips(nsIntMargin *aEdge);
2498     nsresult SetupSilentPrinting();
2499     nsresult SetUnwriteableMarginInTwips(nsIntMargin *aEdge);
2500     nsresult GetUnwriteableMarginInTwips(nsIntMargin *aEdge);
2501     nsresult GetPageRanges(void * /*nsTArray<int32_t>&*/ aPages);
2502 }
2503
2504 [
2505     object,
2506     uuid(9a7ca4b0-fbba-11d4-a869-00105a183419),
2507     local
2508 ]
2509 interface nsIWebBrowserPrint : nsISupports
2510 {
2511     nsresult GetGlobalPrintSettings(nsIPrintSettings **aGlobalPrintSettings);
2512     nsresult GetCurrentPrintSettings(nsIPrintSettings **aCurrentPrintSettings);
2513     nsresult GetCurrentChildDOMWindow(nsIDOMWindow **aCurrentChildDOMWindow);
2514     nsresult GetDoingPrint(bool *aDoingPrint);
2515     nsresult GetDoingPrintPreview(bool *aDoingPrintPreview);
2516     nsresult GetIsFramesetDocument(bool *aIsFramesetDocument);
2517     nsresult GetIsFramesetFrameSelected(bool *aIsFramesetFrameSelected);
2518     nsresult GetIsIFrameSelected(bool *aIsIFrameSelected);
2519     nsresult GetIsRangeSelection(bool *aIsRangeSelection);
2520     nsresult GetPrintPreviewNumPages(int32_t *aPrintPreviewNumPages);
2521     nsresult Print(nsIPrintSettings *aThePrintSettings, nsIWebProgressListener *aWPListener);
2522     nsresult PrintPreview(nsIPrintSettings *aThePrintSettings, nsIDOMWindow *aChildDOMWin,
2523                           nsIWebProgressListener *aWPListener);
2524     nsresult PrintPreviewNavigate(int16_t aNavType, int32_t aPageNum);
2525     nsresult Cancel();
2526     nsresult EnumerateDocumentNames(uint32_t *aCount, PRUnichar ***aResult);
2527     nsresult ExitPrintPreview();
2528 }
2529
2530 [
2531     object,
2532     uuid(919e792a-6490-40b8-bba5-f9e9ad5640c8),
2533     local
2534 ]
2535 interface nsIScrollable : nsISupports
2536 {
2537     enum {
2538         ScrollOrientation_X = 1,
2539         ScrollOrientation_Y = 2
2540     };
2541
2542     enum {
2543         Scrollbar_Auto   = 1,
2544         Scrollbar_Never  = 2,
2545         Scrollbar_Always = 3
2546     };
2547
2548     nsresult GetCurScrollPos(int32_t scrollOrientation, int32_t *curPos);
2549     nsresult SetCurScrollPos(int32_t scrollOrientation, int32_t curPos);
2550     nsresult SetCurScrollPosEx(int32_t curHorizontalPos, int32_t curVerticalPos);
2551     nsresult GetScrollRange(int32_t scrollOrientation, int32_t *minPos, int32_t *maxPos);
2552     nsresult SetScrollRange(int32_t scrollOrientation, int32_t minPos, int32_t maxPos);
2553     nsresult SetScrollRangeEx(int32_t minHorizontalPos, int32_t maxHorizontalPos,
2554             int32_t minVerticalPos, int32_t maxVerticalPos);
2555     nsresult GetDefaultScrollbarPreferences(int32_t scrollOrientation, int32_t *scrollbarPref);
2556     nsresult SetDefaultScrollbarPreferences(int32_t scrollOrientation, int32_t scrollbarPref);
2557     nsresult GetScrollbarVisibility(bool *verticalVisible, bool *horizontalVisible);
2558 }
2559
2560 [
2561     object,
2562     uuid(272a5020-64f5-485c-a8c4-44b2882ae0a2),
2563     local
2564 ]
2565 interface nsIFile : nsISupports
2566 {
2567     typedef struct {
2568         /* Currently not needed */
2569         char dummy;
2570     } PRFileDesc, PRLibrary, widl_FILE;
2571 #define FILE widl_FILE
2572
2573     nsresult Append(const nsAString *node);
2574     nsresult AppendNative(const nsAString *node);
2575     nsresult Normalize();
2576     nsresult Create(uint32_t type, uint32_t permission);
2577     nsresult GetLeafName(nsAString *aLeafName);
2578     nsresult SetLeafName(const nsAString *aLeafName);
2579     nsresult GetNativeLeafName(nsAString *aLeafName);
2580     nsresult SetNativeLeafName(const nsAString *aLeafName);
2581     nsresult CopyTo(nsIFile *newParentDir, const nsAString *newName);
2582     nsresult CopyToNative(nsIFile *newParentDir, const nsAString *newName);
2583     nsresult CopyToFollowingLinks(nsIFile *newParentDir, const nsAString *newName);
2584     nsresult CopyToFollowingLinksNative(nsIFile *newParentDir, const nsAString *newName);
2585     nsresult MoveTo(nsIFile *newParentDir, const nsAString *newName);
2586     nsresult MoveToNative(nsIFile *newParentDir, const nsAString *newName);
2587     nsresult Remove(bool recursive);
2588     nsresult GetPermissions(uint32_t *aPermissions);
2589     nsresult SetPermissions(uint32_t pPermissions);
2590     nsresult GetPermissionsOfLink(uint32_t *aPermissions);
2591     nsresult SetPermissionsOfLink(uint32_t pPermissions);
2592     nsresult GetLastModifiedTime(PRTime *aLastModifiedTime);
2593     nsresult SetLastModifiedTime(PRTime aLastModifiedTime);
2594     nsresult GetLastModifiedTimeOfLink(PRTime *aLastModifiedTimeOfLink);
2595     nsresult SetLastModifiedTimeOfLink(PRTime aLastModifiedTimeOfLink);
2596     nsresult GetFileSize(int64_t *aFileSize);
2597     nsresult SetFileSize(int64_t aFileSize);
2598     nsresult GetFileSizeOfLink(int64_t *aFileSizeOfLink);
2599     nsresult GetTarget(nsAString *aTarget);
2600     nsresult GetNativeTarget(nsACString *aNativeTarget);
2601     nsresult GetPath(nsAString *aPath);
2602     nsresult GetNativePath(nsACString *aNativePath);
2603     nsresult Exists(bool *_retval);
2604     nsresult IsWritable(bool *_retval);
2605     nsresult IsReadable(bool *_retval);
2606     nsresult IsExecutable(bool *_retval);
2607     nsresult IsHidden(bool *_retval);
2608     nsresult IsDirectory(bool *_retval);
2609     nsresult IsFile(bool *_retval);
2610     nsresult IsSymlink(bool *_retval);
2611     nsresult IsSpecial(bool *_retval);
2612     nsresult CreateUnique(uint32_t type, uint32_t permission);
2613     nsresult Clone(nsIFile **_retval);
2614     nsresult Equals(nsIFile *inFile, bool *_retval);
2615     nsresult Contains(nsIFile *inFile, bool recir, bool *_retval);
2616     nsresult GetParent(nsIFile **aParent);
2617     nsresult GetDirectoryEntries(nsISimpleEnumerator **aDirectoryEntries);
2618     nsresult InitWithPath(const nsAString *filePath);
2619     nsresult InitWithNativePath(const nsACString *filePath);
2620     nsresult InitWithFile(nsIFile *aFile);
2621     nsresult GetFollowLinks(bool *aFollowLinks);
2622     nsresult SetFollowLinks(bool aFollowLinks);
2623     nsresult OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval);
2624     nsresult OpenANSIFileDesc(const char *mode, FILE **_retval);
2625     nsresult Load(PRLibrary **_retval);
2626     nsresult GetDiskSpaceAvailable(int64_t *aDiskSpaceAvailable);
2627     nsresult AppendRelativePath(const nsAString *relativeFilePath);
2628     nsresult AppendRelativeNativePath(const nsACString *relativeFilePath);
2629     nsresult GetPersistentDescriptor(nsACString *aPersistentDescriptor);
2630     nsresult SetPersistentDescriptor(const nsACString *aPersistentDescriptor);
2631     nsresult Reveal();
2632     nsresult Launch();
2633     nsresult GetRelativeDescriptor(nsIFile *fromFile, nsACString *_retval);
2634     nsresult SetRelativeDescriptor(nsIFile *fromFile, const nsACString *relativeDesc);
2635 }
2636
2637 [
2638     object,
2639     uuid(1d940426-5fe5-42c3-84ae-a300f2d9ebd5),
2640     local
2641 ]
2642 interface nsIComponentManager : nsISupports
2643 {
2644     nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, void **result);
2645     nsresult GetClassObjectByContractID(const char *aContractID, nsIIDRef aIID, void **result);
2646     nsresult CreateInstance(nsCIDRef aClass, nsISupports *aDelegate, nsIIDRef aIID,
2647             void **result);
2648     nsresult CreateInstanceByContractID(const char *aContractID, nsISupports *aDelegate,
2649             nsIIDRef aIID, void **result);
2650     nsresult AddBootstrappedManifestLocation(nsIFile *aLocation);
2651     nsresult RemoveBootstrappedManifestLocation(nsIFile *aLocation);
2652 }
2653
2654 [
2655     object,
2656     uuid(7df46a54-d8b0-448e-903c-4341a1b2499c),
2657     local
2658 ]
2659 interface nsIPrefBranch : nsISupports
2660 {
2661     nsresult GetRoot(char **aRoot);
2662     nsresult GetPrefType(const char *aPrefName, int32_t *_retval);
2663     nsresult GetBoolPref(const char *aPrefName, bool *_retval);
2664     nsresult SetBoolPref(const char *aPrefName, bool aValue);
2665     nsresult GetFloatPref(const char *aPrefName, float *_retval);
2666     nsresult GetCharPref(const char *aPrefName, char **_retval);
2667     nsresult SetCharPref(const char *aPrefName, const char *aValue);
2668     nsresult GetIntPref(const char *aPrefName, int32_t *_retval);
2669     nsresult SetIntPref(const char *aPrefName, int32_t aValue);
2670     nsresult GetComplexValue(const char *aPrefName, const nsIID *aType, void **aValue);
2671     nsresult SetComplexValue(const char *aPrefName, const nsIID *aType, nsISupports *aValue);
2672     nsresult ClearUserPref(const char *aPrefName);
2673     nsresult LockPref(const char *aPrefName);
2674     nsresult PrefHasUserValue(const char *aPrefName, bool *_retval);
2675     nsresult PrefIsLocked(const char *aPrefName, bool *_retval);
2676     nsresult UnlockPref(const char *aPrefName);
2677     nsresult DeleteBranch(const char *aStartingAt);
2678     nsresult GetChildList(const char *aStartingAt, uint32_t *aCount, char ***aChildArray);
2679     nsresult ResetBranch(const char *aStartingAt);
2680     nsresult AddObserver(const char *aDomain, nsIObserver *aObserver, bool aHoldWeak);
2681     nsresult RemoveObserver(const char *aDomain, nsIObserver *aObserver);
2682 }
2683
2684 [
2685     object,
2686     uuid(bbf8cab0-d43a-11d3-8cc2-00609792278c),
2687     local
2688 ]
2689 interface nsIDirectoryServiceProvider : nsISupports
2690 {
2691     nsresult GetFile(const char *prop, bool *persistent, nsIFile **_retval);
2692 }
2693
2694 [
2695     object,
2696     uuid(2f977d4b-5485-11d4-87e2-0010a4e75ef2),
2697     local
2698 ]
2699 interface nsIDirectoryServiceProvider2 : nsIDirectoryServiceProvider
2700 {
2701     nsresult GetFiles(const char *prop, nsISimpleEnumerator **_retval);
2702 }
2703
2704 [
2705     object,
2706     uuid(15fd6940-8ea7-11d3-93ad-00104ba0fd40),
2707     local
2708 ]
2709 interface nsIProtocolHandler : nsISupports
2710 {
2711     nsresult GetScheme(nsACString *aScheme);
2712     nsresult GetDefaultPort(int32_t *aDefaultPort);
2713     nsresult GetProtocolFlags(uint32_t *aProtocolFlags);
2714     nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset,
2715                     nsIURI *aBaseURI, nsIURI **_retval);
2716     nsresult NewChannel(nsIURI *aURI, nsIChannel **_retval);
2717     nsresult AllowPort(int32_t port, const char *scheme, bool *_retval);
2718 }
2719
2720 [
2721     object,
2722     uuid(0e61f3b2-34d7-4c79-bfdc-4860bc7341b7),
2723     local
2724 ]
2725 interface nsIExternalProtocolHandler : nsIProtocolHandler
2726 {
2727     nsresult ExternalAppExistsForScheme(const nsACString *scheme, bool *_retval);
2728 }
2729
2730 [
2731     object,
2732     uuid(bddeda3f-9020-4d12-8c70-984ee9f7935e),
2733     local
2734 ]
2735 interface nsIIOService : nsISupports
2736 {
2737     nsresult GetProtocolHandler(const char *aScheme, nsIProtocolHandler **_retval);
2738     nsresult GetProtocolFlags(const char *aScheme, uint32_t *_retval);
2739     nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
2740                     nsIURI **_retval);
2741     nsresult NewFileURI(nsIFile *aFile, nsIURI **_retval);
2742     nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval);
2743     nsresult NewChannel(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
2744                         nsIChannel **_retval);
2745     nsresult GetOffline(bool *aOffline);
2746     nsresult SetOffline(bool aOffline);
2747     nsresult AllowPort(int32_t aPort, const char *aScheme, bool *_retval);
2748     nsresult ExtractScheme(const nsACString *urlString, nsACString *_retval);
2749 }
2750
2751 [
2752     object,
2753     uuid(ca68c485-9db3-4c12-82a6-4fab7948e2d5),
2754     local,
2755 ]
2756 interface nsINetUtil : nsISupports
2757 {
2758     nsresult ParseContentType(const nsACString *aTypeHeader, nsACString *aCharset,
2759             bool *aHadCharset, nsACString *_retval);
2760     nsresult ProtocolHasFlags(nsIURI *aURI, uint32_t aFlag, bool *_retval);
2761     nsresult URIChainHasFlags(nsIURI *aURI, uint32_t aFlags, bool *_retval);
2762     nsresult ToImmutableURI(nsIURI *aURI, nsIURI **_retval);
2763     nsresult NewSimpleNestedURI(nsIURI *aURI, nsIURI **_retval);
2764     nsresult EscapeString(const nsACString *aString, uint32_t aEscapeType, nsACString *_retval);
2765     nsresult EscapeURL(const nsACString *aStr, uint32_t aFlags, nsACString *_retval);
2766     nsresult UnescapeString(const nsACString *aStr, uint32_t aFlags, nsACString *_retval);
2767     nsresult ExtractCharsetFromContentType(const nsACString *aTypeHeader, nsACString *aCharset,
2768             int32_t *aCharsetStart, int32_t *aCharsetEnd, bool *_retval);
2769 }
2770
2771 [
2772     object,
2773     uuid(9c5d3c58-1dd1-11b2-a1c9-f3699284657a),
2774     local
2775 ]
2776 interface nsIWebBrowserFocus : nsISupports
2777 {
2778     nsresult Activate();
2779     nsresult Deactivate();
2780     nsresult SetFocusAtFirstElement();
2781     nsresult SetFocusAtLastElement();
2782     nsresult GetFocusedWindow(nsIDOMWindow **aFocusedWindow);
2783     nsresult SetFocusedWindow(nsIDOMWindow *aFocusedWindow);
2784     nsresult GetFocusedElement(nsIDOMElement **aFocusedElement);
2785     nsresult SetFocusedElement(nsIDOMElement *aFocusedElement);
2786 }
2787
2788 [
2789     object,
2790     uuid(e8c414c4-dc38-4ba3-ab4e-ec4cbbe22907),
2791     local
2792 ]
2793 interface nsIWebBrowserChrome : nsISupports
2794 {
2795     nsresult SetStatus(uint32_t statusType, const PRUnichar *status);
2796     nsresult GetWebBrowser(nsIWebBrowser **aWebBrowser);
2797     nsresult SetWebBrowser(nsIWebBrowser *aWebBrowser);
2798     nsresult GetChromeFlags(uint32_t *aChromeFlags);
2799     nsresult SetChromeFlags(uint32_t aChromeFlags);
2800     nsresult DestroyBrowserWindow();
2801     nsresult SizeBrowserTo(int32_t aCX, int32_t aCY);
2802     nsresult ShowAsModal();
2803     nsresult IsWindowModal(bool *_retval);
2804     nsresult ExitModalEventLoop(nsresult aStatus);
2805 }
2806
2807 [
2808     object,
2809     uuid(df31c120-ded6-11d1-bd85-00805f8ae3f4),
2810     local
2811 ]
2812 interface nsIDOMEventListener : nsISupports
2813 {
2814     nsresult HandleEvent(nsIDOMEvent *event);
2815 }
2816
2817 [
2818     object,
2819     uuid(8e375931-298d-4d0a-9cb4-5668f0cdc5a8),
2820     local
2821 ]
2822 interface nsIDOMEventTarget : nsISupports
2823 {
2824     nsresult AddEventListener(const nsAString *type, nsIDOMEventListener *listener, bool useCapture, bool wantsUntrusted, uint8_t _argc);
2825     nsresult AddSystemEventListener(const nsAString *type, nsIDOMEventListener *listener, bool aUseCapture, bool aWantsUntrusted, uint8_t _argc);
2826     nsresult RemoveEventListener(const nsAString *type, nsIDOMEventListener *listener, bool useCapture);
2827     nsresult RemoveSystemEventListener(const nsAString *type, nsIDOMEventListener *listener, bool aUseCapture);
2828     nsresult DispatchEvent(nsIDOMEvent *evt, bool *_retval);
2829
2830     /* Followed by methods we should try to avoid using */
2831 }
2832
2833 [
2834     object,
2835     uuid(270c945b-8a65-4170-bc0b-4ec1443cd39f),
2836     local
2837 ]
2838 interface nsIDOMEvent : nsISupports
2839 {
2840     nsresult GetType(nsAString *aType);
2841     nsresult GetTarget(nsIDOMEventTarget **aTarget);
2842     nsresult GetCurrentTarget(nsIDOMEventTarget **aCurrentTarget);
2843     nsresult GetEventPhase(uint16_t *aEventPhase);
2844     nsresult GetBubbles(bool *aBubbles);
2845     nsresult GetCancelable(bool *aCancelable);
2846     nsresult GetTimeStamp(DOMTimeStamp *aTimeStamp);
2847     nsresult StopPropagation();
2848     nsresult PreventDefault();
2849     nsresult InitEvent(const nsAString *eventTypeArg, bool canBubbleArg, bool cancelableArg);
2850     nsresult GetDefaultPrevented(bool *aDefaultPrevented);
2851     nsresult StopImmediatePropagation();
2852     nsresult GetOriginalTarget(nsIDOMEventTarget **aOriginalTarget);
2853     nsresult GetExplicitOriginalTarget(nsIDOMEventTarget * *aExplicitOriginalTarget);
2854     nsresult PreventBubble();
2855     nsresult PreventCapture();
2856     nsresult GetPreventDefault(bool *_retval);
2857     nsresult GetIsTrusted(bool *aIsTrusted);
2858     nsresult DuplicatePrivateData();
2859     nsresult SetTarget(nsIDOMEventTarget *aTarget);
2860     bool IsDispatchStopped();
2861     /*nsEvent*/ void *GetInternalNSEvent();
2862     nsresult SetTrusted(bool aTrusted);
2863     void Serialize(/*IPC::Message*/ void *aMsg, bool aSerializeInterfaceType);
2864     bool Deserialize(const /*IPC::Message*/ void *aMsg, void **aIter);
2865 }
2866
2867 [
2868     object,
2869     uuid(ed36f965-173c-4101-a615-63b44f51ed90),
2870     local
2871 ]
2872 interface nsIDOMWindowUtils : nsISupports
2873 {
2874     nsresult GetImageAnimationMode(uint16_t *aImageAnimationMode);
2875     nsresult SetImageAnimationMode(uint16_t aImageAnimationMode);
2876     nsresult GetDocCharsetIsForced(bool *aDocCharsetIsForced);
2877     nsresult GetCursorType(int16_t *_retval);
2878     nsresult GetDocumentMetadata(const nsAString *aName, nsAString *_retval);
2879     nsresult Redraw(uint32_t aCount, uint32_t *_retval);
2880     nsresult SetCSSViewport(float aWidthPx, float aHeightPx);
2881     nsresult GetViewportInfo(uint32_t aDisplayWidth, uint32_t aDisplayHeight, double *aDefaultZoom, bool *aAllowZoom,
2882            double *aMinZoom, double *aMaxZoom, uint32_t *aWidth, uint32_t *aHeight, bool *aAutoSize);
2883     nsresult SetDisplayPortForElement(float aXPx, float aYPx, float aWidthPx, float aHeightPx, nsIDOMElement *aElement);
2884     nsresult SetResolution(float aXResolution, float aYResolution);
2885     nsresult GetIsFirstPaint(bool *aIsFirstPaint);
2886     nsresult SetIsFirstPaint(bool aIsFirstPaint);
2887     nsresult SendMouseEvent(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2888            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg);
2889     nsresult SendTouchEvent(const nsAString *aType, uint32_t *aIdentifiers, int32_t *aXs, int32_t *aYs,
2890            uint32_t *aRxs, uint32_t *aRys, float *aRotationAngles, float *aForces, uint32_t count, int32_t aModifiers,
2891            bool aIgnoreRootScrollFrame, bool *_retval);
2892     nsresult SendMouseEventToWindow(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2893            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg);
2894     nsresult SendWheelEvent(float aX, float aY, double aDeltaX, double aDeltaY, double aDeltaZ, uint32_t aDeltaMode,
2895            int32_t aModifiers, int32_t aLineOrPageDeltaX, int32_t aLineOrPageDeltaY, uint32_t aOptions);
2896     nsresult SendKeyEvent(const nsAString *aType, int32_t aKeyCode, int32_t aCharCode, int32_t aModifiers,
2897            uint32_t aAdditionalFlags, bool *_retval);
2898     nsresult SendNativeKeyEvent(int32_t aNativeKeyboardLayout, int32_t aNativeKeyCode, int32_t aModifierFlags,
2899            const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters);
2900     nsresult SendNativeMouseEvent(int32_t aScreenX, int32_t aScreenY, int32_t aNativeMessage, int32_t aModifierFlags,
2901            nsIDOMElement *aElement);
2902     nsresult SendNativeMouseScrollEvent(int32_t aScreenX, int32_t aScreenY, uint32_t aNativeMessage, double aDeltaX,
2903            double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement);
2904     nsresult ActivateNativeMenuItemAt(const nsAString *indexString);
2905     nsresult ForceUpdateNativeMenuAt(const nsAString *indexString);
2906     nsresult Focus(nsIDOMElement *aElement);
2907     nsresult GarbageCollect(nsICycleCollectorListener *aListener, int32_t aExtraForgetSkippableCalls);
2908     nsresult CycleCollect(nsICycleCollectorListener *aListener, int32_t aExtraForgetSkippableCalls);
2909     nsresult SendSimpleGestureEvent(const nsAString *aType, float aX, float aY, uint32_t aDirection, double aDelta,
2910            int32_t aModifiers, uint32_t aClickCount);
2911     nsresult ElementFromPoint(float aX, float aY, bool aIgnoreRootScrollFrame, bool aFlushLayout, nsIDOMElement **_retval);
2912     nsresult NodesFromRect(float aX, float aY, float aTopSize, float aRightSize, float aBottomSize, float aLeftSize,
2913            bool aIgnoreRootScrollFrame, bool aFlushLayout, nsIDOMNodeList **_retval);
2914     nsresult CompareCanvases(nsIDOMHTMLCanvasElement *aCanvas1, nsIDOMHTMLCanvasElement *aCanvas2,
2915            uint32_t *aMaxDifference, uint32_t *_retval);
2916     nsresult GetIsMozAfterPaintPending(bool *aIsMozAfterPaintPending);
2917     nsresult SuppressEventHandling(bool aSuppress);
2918     nsresult ClearMozAfterPaintEvents();
2919     nsresult DisableNonTestMouseEvents(bool aDisable);
2920     nsresult GetScrollXY(bool aFlushLayout, int32_t *aScrollX, int32_t *aScrollY);
2921     nsresult GetRootBounds(nsIDOMClientRect **_retval);
2922     nsresult GetIMEIsOpen(bool *aIMEIsOpen);
2923     nsresult GetIMEStatus(uint32_t *aIMEStatus);
2924     nsresult GetScreenPixelsPerCSSPixel(float *aScreenPixelsPerCSSPixel);
2925     nsresult GetFullZoom(float *aFullZoom);
2926     nsresult DispatchDOMEventViaPresShell(nsIDOMNode *aTarget, nsIDOMEvent *aEvent, bool aTrusted, bool *_retval);
2927     nsresult GetClassName(const /*JS::Value*/ void *aObject, JSContext *cx, char **_retval);
2928     nsresult SendContentCommandEvent(const nsAString *aType, nsITransferable *aTransferable);
2929     nsresult SendCompositionEvent(const nsAString *aType, const nsAString *aData, const nsAString *aLocale);
2930     nsresult SendTextEvent(const nsAString *aCompositionString, int32_t aFirstClauseLength, uint32_t aFirstClauseAttr,
2931            int32_t aSecondClauseLength, uint32_t aSecondClauseAttr, int32_t aThirdClauseLength, uint32_t aThirdClauseAttr,
2932            int32_t aCaretStart, int32_t aCaretLength);
2933     nsresult SendQueryContentEvent(uint32_t aType, uint32_t aOffset, uint32_t aLength, int32_t aX, int32_t aY,
2934            nsIQueryContentEventResult **_retval);
2935     nsresult RemoteFrameFullscreenChanged(nsIDOMElement *aFrameElement, const nsAString *aNewOrigin);
2936     nsresult RemoteFrameFullscreenReverted();
2937     nsresult ExitFullscreen();
2938     nsresult SendSelectionSetEvent(uint32_t aOffset, uint32_t aLength, bool aReverse, bool *_retval);
2939     nsresult SelectAtPoint(float aX, float aY, uint32_t aSelectBehavior, bool *_retval);
2940     nsresult GetVisitedDependentComputedStyle(nsIDOMElement *aElement, const nsAString *aPseudoElement,
2941            const nsAString *aPropertyName, nsAString *_retval);
2942     nsresult GetParent(const /*JS::Value*/ void *obj, JSContext *cx, /*JS::Value*/ void *_retval);
2943     nsresult GetOuterWindowID(uint64_t *aOuterWindowID);
2944     nsresult GetCurrentInnerWindowID(uint64_t *aCurrentInnerWindowID);
2945     nsresult EnterModalState();
2946     nsresult LeaveModalState();
2947     nsresult EnterModalStateWithWindow(nsIDOMWindow **_retval);
2948     nsresult LeaveModalStateWithWindow(nsIDOMWindow *aWindow);
2949     nsresult IsInModalState(bool *_retval);
2950     nsresult SuspendTimeouts();
2951     nsresult ResumeTimeouts();
2952     nsresult GetLayerManagerType(nsAString *aLayerManagerType);
2953     nsresult StartFrameTimeRecording();
2954     nsresult StopFrameTimeRecording(uint32_t *frameCount, float **frameTime);
2955     nsresult BeginTabSwitch();
2956     nsresult GetDisplayDPI(float *aDisplayDPI);
2957     nsresult GetOuterWindowWithId(uint64_t aOuterWindowID, nsIDOMWindow **_retval);
2958     nsresult RenderDocument(const void /*nsRect*/ *aRect, uint32_t aFlags, int /*nscolor*/ aBackgroundColor,
2959            void /*gfxContext*/ *aThebesContext);
2960     nsresult AdvanceTimeAndRefresh(int64_t aMilliseconds);
2961     nsresult RestoreNormalRefresh();
2962     nsresult ComputeAnimationDistance(nsIDOMElement *element, const nsAString *property, const nsAString *value1,
2963            const nsAString *value2, double *_retval);
2964     nsresult WrapDOMFile(nsIFile *aFile, nsIDOMFile **_retval);
2965     nsresult GetFocusedInputType(char **aFocusedInputType);
2966     nsresult FindElementWithViewId(long /*nsViewID*/ aId, nsIDOMElement **_retval);
2967     nsresult LeafLayersPartitionWindow(bool *_retval);
2968     nsresult GetMayHaveTouchEventListeners(bool *aMayHaveTouchEventListeners);
2969     nsresult CheckAndClearPaintedState(nsIDOMElement *aElement, bool *_retval);
2970     nsresult GetFile(const nsAString *aName, const /*JS::Value*/ void *aBlobParts, const /*JS::Value*/ void *aParameters,
2971            JSContext* cx, uint8_t _argc, nsIDOMFile **_retval);
2972     nsresult GetBlob(const /*JS::Value*/ void *aBlobParts, const /*JS::Value*/ void *aParameters, JSContext *cx,
2973            uint8_t _argc, nsIDOMBlob * _retval);
2974     nsresult GetFileId(const /*JS::Value*/ void *aFile, JSContext *cx, int64_t *_retval);
2975     nsresult GetFileReferences(const nsAString *aDatabaseName, int64_t aId, int32_t *aRefCnt, int32_t *aDBRefCnt,
2976            int32_t *aSliceRefCnt, bool *_retval);
2977     nsresult IsIncrementalGCEnabled(JSContext *cx, bool *_retval);
2978     nsresult StartPCCountProfiling(JSContext *cx);
2979     nsresult StopPCCountProfiling(JSContext *cx);
2980     nsresult PurgePCCounts(JSContext *cx);
2981     nsresult GetPCCountScriptCount(JSContext *cx, int32_t *_retval);
2982     nsresult GetPCCountScriptSummary(int32_t script, JSContext *cx, nsAString *_retval);
2983     nsresult GetPCCountScriptContents(int32_t script, JSContext *cx, nsAString *_retval);
2984     nsresult GetPaintingSuppressed(bool *aPaintingSuppressed);
2985     nsresult GetPlugins(JSContext *cx, /*JS::Value*/ void *aPlugins);
2986     nsresult SetScrollPositionClampingScrollPortSize(float aWidth, float aHeight);
2987     nsresult PreventFurtherDialogs();
2988     nsresult LoadSheet(nsIURI *sheetURI, uint32_t type);
2989     nsresult RemoveSheet(nsIURI *sheetURI, uint32_t type);
2990     nsresult GetIsHandlingUserInput(bool *aIsHandlingUserInput);
2991     nsresult AllowScriptsToClose();
2992 }
2993
2994 cpp_quote("#define CONTEXT_NONE              0x00")
2995 cpp_quote("#define CONTEXT_LINK              0x01")
2996 cpp_quote("#define CONTEXT_IMAGE             0x02")
2997 cpp_quote("#define CONTEXT_DOCUMENT          0x04")
2998 cpp_quote("#define CONTEXT_TEXT              0x08")
2999 cpp_quote("#define CONTEXT_INPUT             0x10")
3000 cpp_quote("#define CONTEXT_BACKGROUND_IMAGE  0x20")
3001
3002 [
3003     object,
3004     uuid(3478b6b0-3875-11d4-94ef-0020183bf181),
3005     local
3006 ]
3007 interface nsIContextMenuListener : nsISupports
3008 {
3009     nsresult OnShowContextMenu(uint32_t aContextFlags, nsIDOMEvent *aEvent, nsIDOMNode *aNode);
3010 }
3011
3012 [
3013     object,
3014     uuid(415453e6-132a-4902-9a99-cc480f0311b6),
3015     local
3016 ]
3017 interface nsIDOMUIEvent : nsIDOMEvent
3018 {
3019     nsresult GetView(nsIDOMWindow **aView);
3020     nsresult GetDetail(int32_t *aDetail);
3021     nsresult InitUIEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3022             nsIDOMWindow *viewArg, int32_t detailArg);
3023     nsresult GetLayerX(int32_t *aLayerX);
3024     nsresult GetLayerY(int32_t *aLayerY);
3025     nsresult GetPageX(int32_t *aPageX);
3026     nsresult GetPageY(int32_t *aPageY);
3027     nsresult GetWhich(uint32_t *aWhich);
3028     nsresult GetRangeParent(nsIDOMNode **aRangeParent);
3029     nsresult GetRangeOffset(int32_t *aRangeOffset);
3030     nsresult GetCancelBubble(bool *aCancelBubble);
3031     nsresult SetCancelBubble(bool aCancelBubble);
3032     nsresult GetIsChar(bool *aIsChar);
3033 }
3034
3035 [
3036     object,
3037     uuid(796c3436-5f89-4145-be3a-49808c09fdc6),
3038     local
3039 ]
3040 interface nsIDOMMouseEvent : nsIDOMUIEvent
3041 {
3042     nsresult GetScreenX(int32_t *aScreenX);
3043     nsresult GetScreenY(int32_t *aScreenY);
3044     nsresult GetMozMovementX(int32_t *aMozMovementX);
3045     nsresult GetMozMovementY(int32_t *aMozMovementY);
3046     nsresult GetClientX(int32_t *aClientX);
3047     nsresult GetClientY(int32_t *aClientY);
3048     nsresult GetCtrlKey(bool *aCtrlKey);
3049     nsresult GetShiftKey(bool *aShiftKey);
3050     nsresult GetAltKey(bool *aAltKey);
3051     nsresult GetMetaKey(bool *aMetaKey);
3052     nsresult GetButton(uint16_t *aButton);
3053     nsresult GetButtons(uint16_t *aButtons);
3054     nsresult GetRelatedTarget(nsIDOMEventTarget **aRelatedTarget);
3055     nsresult InitMouseEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3056             nsIDOMWindow *viewArg, int32_t detailArg, int32_t screenXArg, int32_t screenYArg,
3057             int32_t clientXArg, int32_t clientYArg, bool ctrlKeyArg, bool altKeyArg,
3058             bool shiftKeyArg, bool metaKeyArg, uint16_t buttonArg,
3059             nsIDOMEventTarget *relatedTargetArg);
3060     nsresult GetMozPressure(float *aMozPressure);
3061     nsresult GetMozInputSource(uint16_t *aMozInputSource);
3062     nsresult InitNSMouseEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3063             nsIDOMWindow *viewArg, int32_t detailArg, int32_t screenXArg, int32_t screenYArg,
3064             int32_t clientXArg, int32_t clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg,
3065             bool metaKeyArg, uint16_t buttonArg, nsIDOMEventTarget *relatedTargetArg, float pressure,
3066             uint16_t inputSourceArg);
3067     nsresult GetModifierState(const nsAString *keyArg, bool *_retval);
3068 }
3069
3070 [
3071     object,
3072     uuid(5d116380-8432-48cb-a717-200f04c39d2f),
3073     local
3074 ]
3075 interface nsIDOMKeyEvent : nsIDOMUIEvent
3076 {
3077     nsresult GetCharCode(uint32_t *aCharCode);
3078     nsresult GetKeyCode(uint32_t *aKeyCode);
3079     nsresult GetAltKey(bool *aAltKey);
3080     nsresult GetCtrlKey(bool *aCtrlKey);
3081     nsresult GetShiftKey(bool *aShiftKey);
3082     nsresult GetMetaKey(bool *aMetaKey);
3083     nsresult InitKeyEvent(const nsAString *typeArg, bool canBubbleArg,
3084             bool cancelableArg, nsIDOMWindow *viewArg, bool ctrlKeyArg,
3085             bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, uint32_t keyCodeArg,
3086             uint32_t charCodeArg);
3087     nsresult GetModifierState(const nsAString *keyArg, bool *_retval);
3088     nsresult GetLocation(uint32_t *aLocation);
3089 }
3090
3091 [
3092     object,
3093     uuid(0b976267-4aaa-4f36-a2d4-27b5ca8d73bb),
3094     local
3095 ]
3096 interface nsIEmbeddingSiteWindow : nsISupports
3097 {
3098     nsresult SetDimensions(uint32_t flags, int32_t x, int32_t y, int32_t cx, int32_t cy);
3099     nsresult GetDimensions(uint32_t flags, int32_t *x, int32_t *y, int32_t *cx, int32_t *cy);
3100     nsresult SetFocus();
3101     nsresult GetVisibility(bool *aVisibility);
3102     nsresult SetVisibility(bool aVisibility);
3103     nsresult GetTitle(PRUnichar **aTitle);
3104     nsresult SetTitle(const PRUnichar *aTitle);
3105     nsresult GetSiteWindow(void **aSiteWindow);
3106     nsresult Blur();
3107 }
3108
3109 [
3110     object,
3111     uuid(2417cbfe-65ad-48a6-b4b6-eb84db174392),
3112     local
3113 ]
3114 interface nsIComponentRegistrar : nsISupports
3115 {
3116     nsresult AutoRegister(nsIFile *aSpec);
3117     nsresult AutoUnregister(nsIFile *aSpec);
3118     nsresult RegisterFactory(const nsCID *aClass, const char *aClassName,
3119             const char *aContractID, nsIFactory *aFactory);
3120     nsresult UnregisterFactory(const nsCID *aClass, nsIFactory *aFactory);
3121     nsresult RegisterFactoryLocation(const nsCID *aClass, const char *aClassName,
3122             const char *aContractID, nsIFile *aFile, const char *aLoaderStr,
3123             const char *aType);
3124     nsresult UnregisterFactoryLocation(const nsCID *aClass, nsIFile *aFile);
3125     nsresult IsCIDRegistered(const nsCID *aClass, bool *_retval);
3126     nsresult IsContractIDRegistered(const char *aContractID, bool *_retval);
3127     nsresult EnumerateCIDs(nsISimpleEnumerator **_retval);
3128     nsresult EnumerateContractIDs(nsISimpleEnumerator **_retval);
3129     nsresult CIDToContractID(const nsCID *aClass, char **_retval);
3130     nsresult ContractIDToCID(const char *aContractID, nsCID **_retval);
3131 }
3132
3133 [
3134     object,
3135     uuid(1630c61a-325e-49ca-8759-a31b16c47aa5),
3136     local
3137 ]
3138 interface nsIPromptService : nsISupports
3139 {
3140     nsresult Alert(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3141             const PRUnichar *aText);
3142     nsresult AlertCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3143             const PRUnichar *aText, const PRUnichar *aCheckMsg, bool *aCheckState);
3144     nsresult Confirm(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3145             const PRUnichar *aText, bool *_retval);
3146     nsresult ConfirmCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3147             const PRUnichar *aText, const PRUnichar *aCheckMsg, bool *aCheckState,
3148             bool *_retval);
3149     nsresult ConfirmEx(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3150             const PRUnichar *aText, uint32_t aButtonFlags, const PRUnichar *aButton0Title,
3151             const PRUnichar *aButton1Title, const PRUnichar *aButton2Title,
3152             const PRUnichar *aCheckMsg, bool *aCheckState, int32_t *_retval);
3153     nsresult Prompt(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3154             const PRUnichar *aText, PRUnichar **aValue, const PRUnichar *aCheckMsg,
3155             bool *aCheckState, bool *_retval);
3156     nsresult PromptUsernameAndPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3157             const PRUnichar *aText, PRUnichar **aUsername, PRUnichar **aPassword,
3158             const PRUnichar *aCheckMsg, bool *aCheckState, bool *_retval);
3159     nsresult PromptPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3160             const PRUnichar *aText, PRUnichar **aPassword, const PRUnichar *aCheckMsg,
3161             bool *aCheckState, bool *_retval);
3162     nsresult Select(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3163             const PRUnichar *aText, uint32_t aCount, const PRUnichar **aSelectList,
3164             int32_t *aOutSelection, bool *_retval);
3165 }
3166
3167 [
3168     object,
3169     uuid(b128a1e6-44f3-4331-8fbe-5af360ff21ee),
3170     local
3171 ]
3172 interface nsITooltipTextProvider : nsISupports
3173 {
3174     nsresult GetNodeText(nsIDOMNode *aNode, PRUnichar **aText, bool *_retval);
3175 }
3176
3177 [
3178     object,
3179     uuid(24f3f4da-18a4-448d-876d-7360fefac029),
3180     local
3181 ]
3182 interface nsIEditingSession : nsISupports
3183 {
3184     nsresult GetEditorStatus(uint32_t *aEditorStatus);
3185     nsresult MakeWindowEditable(nsIDOMWindow *window, const char *aEditorType,
3186             bool doAfterUriLoad, bool aMakeWholeDocumentEditable, bool aInteractive);
3187     nsresult WindowIsEditable(nsIDOMWindow *window, bool *_retval);
3188     nsresult GetEditorForWindow(nsIDOMWindow *window, nsIEditor **_retval);
3189     nsresult SetupEditorOnWindow(nsIDOMWindow *window);
3190     nsresult TearDownEditorOnWindow(nsIDOMWindow *window);
3191     nsresult SetEditorOnControllers(nsIDOMWindow *aWindow, nsIEditor *aEditor);
3192     nsresult DisableJSAndPlugins(nsIDOMWindow *aWindow);
3193     nsresult RestoreJSAndPlugins(nsIDOMWindow *aWindow);
3194     nsresult DetachFromWindow(nsIDOMWindow *aWindow);
3195     nsresult ReattachToWindow(nsIDOMWindow *aWindow);
3196     nsresult GetJsAndPluginsDisabled(bool *aJsAndPluginsDisabled);
3197 }
3198
3199 [
3200     object,
3201     uuid(83f892cf-7ed3-490e-967a-62640f3158e1),
3202     local
3203 ]
3204 interface nsICommandParams : nsISupports
3205 {
3206     nsresult GetValueType(const char *name, int16_t *_retval);
3207     nsresult GetBooleanValue(const char *name, bool *_retval);
3208     nsresult GetLongValue(const char *name, int32_t *_retval);
3209     nsresult GetDoubleValue(const char *name, double *_retval);
3210     nsresult GetStringValue(const char *name, nsAString *_retval);
3211     nsresult GetCStringValue(const char *name, char **_retval);
3212     nsresult GetISupportsValue(const char *name, nsISupports **_retval);
3213     nsresult SetBooleanValue(const char *name, bool value);
3214     nsresult SetLongValue(const char *name, int32_t value);
3215     nsresult SetDoubleValue(const char *name, double value);
3216     nsresult SetStringValue(const char *name, const nsAString *value);
3217     nsresult SetCStringValue(const char *name, const char *value);
3218     nsresult SetISupportsValue(const char *name, nsISupports *value);
3219     nsresult RemoveValue(const char *name);
3220     nsresult HasMoreElements(bool *_retval);
3221     nsresult First();
3222     nsresult GetNext(char **_retval);
3223 }
3224
3225 [
3226     object,
3227     uuid(080d2001-f91e-11d4-a73c-f9242928207c),
3228     local
3229 ]
3230 interface nsICommandManager : nsISupports
3231 {
3232     nsresult AddCommandObserver(nsIObserver *aCommandObserver, const char *aCommandToObserve);
3233     nsresult RemoveCommandObserver(nsIObserver *aCommandObserver, const char *aCommandObserved);
3234     nsresult IsCommandSupported(const char *aCommandName, nsIDOMWindow *aTargetWindow, bool *_retval);
3235     nsresult IsCommandEnabled(const char *aCommandName, nsIDOMWindow *aTargetWindow, bool *_retval);
3236     nsresult GetCommandState(const char *aCommandName, nsIDOMWindow *aTargetWindow,
3237             nsICommandParams *aCommandParams);
3238     nsresult DoCommand(const char *aCommandName, nsICommandParams *aCommandParams,
3239             nsIDOMWindow *aTargetWindow);
3240 }
3241
3242 [
3243     object,
3244     uuid(47b82b60-a36f-4167-8072-6f421151ed50),
3245     local
3246 ]
3247 interface nsIControllerContext : nsISupports
3248 {
3249     nsresult Init(nsIControllerCommandTable *aCommandTable);
3250     nsresult SetCommandContext(nsISupports *aCommandContext);
3251 }
3252
3253 [
3254     object,
3255     uuid(d5b61b82-1da4-11d3-bf87-00105a1b0627),
3256     local
3257 ]
3258 interface nsIController : nsISupports
3259 {
3260     nsresult IsCommandEnabled(const char *command, bool *_retval);
3261     nsresult SupportsCommand(const char *command, bool *_retval);
3262     nsresult DoCommand(const char *command);
3263     nsresult OnEvent(const char *eventName);
3264 }
3265
3266 [
3267     object,
3268     uuid(e2985850-81ca-4b5d-b0f3-e395d50d8564),
3269     local
3270 ]
3271 interface nsIContent : nsISupports
3272 {
3273     /* This is not a real interface declaration. It's too internal for us. */
3274 }
3275
3276 [
3277     object,
3278     uuid(0e1324c9-c997-447e-bcd9-a657802991e4),
3279     local
3280 ]
3281 interface nsIDocument : nsISupports
3282 {
3283     /* This is not a real interface declaration. It's too internal for us. */
3284 }
3285
3286 [
3287     object,
3288     uuid(b1ee32f2-b8c4-49b9-93df-b6fab5d54688),
3289     local
3290 ]
3291 interface nsIContentSerializer : nsISupports
3292 {
3293     nsresult Init(uint32_t flags, uint32_t aWrapColumn, const char *aCharSet, bool aIsCopying,
3294             bool aIsWholeDocument);
3295     nsresult AppendText(nsIContent *aText, int32_t aStartOffset, int32_t aEndOffset, nsAString *aStr);
3296     nsresult AppendCDATASection(nsIContent *aCDATASection, int32_t aStartOffset,
3297             int32_t aEndOffset, nsAString *aStr);
3298     nsresult AppendProcessingInstruction(nsIContent *aPI, int32_t aStartOffset,
3299             int32_t aEndOffset, nsAString *aStr);
3300     nsresult AppendComment(nsIContent *aComment, int32_t aStartOffset, int32_t aEndOffset,
3301             nsAString *aStr);
3302     nsresult AppendDoctype(nsIContent *aDoctype, nsAString *aStr);
3303     nsresult AppendElementStart(nsIContent *aElement, nsIContent *aOriginalElement,
3304                                 nsAString *aStr);
3305     nsresult AppendElementEnd(nsIContent *aElement, nsAString *aStr);
3306     nsresult Flush(nsAString *aStr);
3307     nsresult AppendDocumentStart(nsIDocument *aDocument, nsAString *aStr);
3308 }
3309
3310 [
3311     object,
3312     uuid(12efa18c-920a-47cd-94a1-4052f245f76c),
3313     local
3314 ]
3315 interface nsIEditor  : nsISupports
3316 {
3317     typedef void *nsIContentPtr;
3318
3319     nsresult GetSelection([out] nsISelection *_retval);
3320     nsresult Init([in] nsIDOMDocument *doc, [in] nsIContentPtr aRoot, [in] nsISelectionController *aSelCon, [in] uint32_t aFlags);
3321     nsresult SetAttributeOrEquivalent([in] nsIDOMElement *element, [in] const nsAString *sourceAttrName, [in] const nsAString *sourceAttrValue, [in] bool aSuppressTransaction);
3322     nsresult RemoveAttributeOrEquivalent([in] nsIDOMElement *element, [in] const nsAString *sourceAttrName, [in] bool aSuppressTransaction);
3323     nsresult PostCreate();
3324     nsresult PreDestroy();
3325     nsresult GetFlags([out] uint32_t *_retval);
3326     nsresult SetFlags([in] uint32_t val);
3327     nsresult GetContentsMIMEType([out] char **_retval);
3328     nsresult SetContentsMIMEType([in] const char *val);
3329     nsresult GetIsDocumentEditable([out] bool *_retval);
3330     nsresult GetIsSelectionEditable(bool *aIsSelectionEditable);
3331     nsresult GetDocument([out] nsIDOMDocument **_retval);
3332     nsresult GetRootElement([out] nsIDOMElement **_retval);
3333     nsresult GetSelectionController([out] nsISelectionController **_retval);
3334     nsresult DeleteSelection(int16_t action, int16_t aStripWrappers);
3335     nsresult GetDocumentIsEmpty([out] bool *_retval);
3336     nsresult GetDocumentModified([out] bool *_retval);
3337     nsresult GetDocumentCharacterSet([out] nsACString *_retval);
3338     nsresult SetDocumentCharacterSet([in] const nsACString *val);
3339     nsresult ResetModificationCount();
3340     nsresult GetModificationCount([out] int32_t *_retval);
3341     nsresult IncrementModificationCount([in] int32_t aModCount);
3342     nsresult GetTransactionManager([out] nsITransactionManager **_retval);
3343     nsresult SetTransactionManager(nsITransactionManager *aTransactionManager);
3344     nsresult DoTransaction([in] nsITransaction *txn);
3345     nsresult EnableUndo([in] bool enable);
3346     nsresult GetNumberOfUndoItems(int32_t *aNumberOfUndoItems);
3347     nsresult GetNumberOfRedoItems(int32_t *aNumberOfRedoItems);
3348     nsresult Undo([in] uint32_t count);
3349     nsresult CanUndo([out] bool *isEnabled, [out] bool *canUndo);
3350     nsresult Redo([in] uint32_t count);
3351     nsresult CanRedo([out] bool *isEnabled, [out] bool *canRedo);
3352     nsresult BeginTransaction();
3353     nsresult EndTransaction();
3354     nsresult BeginPlaceHolderTransaction([in] nsIAtom *name);
3355     nsresult EndPlaceHolderTransaction();
3356     nsresult ShouldTxnSetSelection([out] bool *_retval);
3357     nsresult SetShouldTxnSetSelection([in] bool should);
3358     nsresult GetInlineSpellChecker([out] nsIInlineSpellChecker **_retval);
3359     nsresult SyncRealTimeSpell();
3360     nsresult SetSpellcheckUserOverride(bool enable);
3361     nsresult Cut();
3362     nsresult CanCut([out] bool *_retval);
3363     nsresult Copy();
3364     nsresult CanCopy([out] bool *_retval);
3365     nsresult Paste([in] int32_t aSelectionType);
3366     nsresult PasteTransferable(nsITransferable *aTransferable);
3367     nsresult CanPaste([in] int32_t aSelectionType, [out] bool *_retval);
3368     nsresult CanPasteTransferable(nsITransferable *aTransferable, bool *_retval);
3369     nsresult SelectAll();
3370     nsresult BeginningOfDocument();
3371     nsresult EndOfDocument();
3372     nsresult SetAttribute([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [in] const nsAString *attvalue);
3373     nsresult GetAttributeValue([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [out] nsAString *resultValue, bool *_retval);
3374     nsresult RemoveAttribute([in] nsIDOMElement *aElement, [in] const nsAString *aAttribute);
3375     nsresult CloneAttribute([in] const nsAString *aAttribute, [in] nsIDOMNode *aDestNode, [in] nsIDOMNode *aSourceNode);
3376     nsresult CloneAttributes([in] nsIDOMNode *destNode, [in] nsIDOMNode *sourceNode);
3377     nsresult CreateNode([in] const nsAString *tag, [in] nsIDOMNode *parent, [in] int32_t position, [out] nsIDOMNode **_retval);
3378     nsresult InsertNode([in] nsIDOMNode *node, [in] nsIDOMNode *parent, [in] int32_t aPosition);
3379     nsresult SplitNode([in] nsIDOMNode *existingRightNode, [in] int32_t offset, [out] nsIDOMNode **newLeftNode);
3380     nsresult JoinNodes([in] nsIDOMNode *leftNode, [in] nsIDOMNode *rightNode, [in] nsIDOMNode *parent);
3381     nsresult DeleteNode([in] nsIDOMNode *child);
3382     bool OutputsMozDirty();
3383     nsresult MarkNodeDirty([in] nsIDOMNode *node);
3384     nsresult SwitchTextDirection();
3385     nsresult OutputToString([in] nsAString formatType, [in] uint32_t flags, [out] nsAString *_retval);
3386     nsresult OutputToStream([in] nsIOutputStream *aStream, [in] nsAString *formatType, [in] nsACString *charsetOverride, [in] uint32_t flags);
3387     nsresult SetEditorObserver(void /* EditActionListener*/ *observer);
3388     nsresult RemoveEditorObserver();
3389     nsresult AddEditActionListener([in] nsIEditActionListener *listener);
3390     nsresult RemoveEditActionListener([in] nsIEditActionListener *listener);
3391     nsresult AddDocumentStateListener([in] nsIDocumentStateListener *listener);
3392     nsresult RemoveDocumentStateListener([in] nsIDocumentStateListener *listener);
3393     nsresult DumpContentTree();
3394     nsresult DebugDumpContent();
3395     nsresult DebugUnitTests([out] int32_t *outNumTests, [out] int32_t *outNumTestsFailed);
3396     bool IsModifiableNode(nsIDOMNode *aNode);
3397     nsresult GetLastKeypressEventTrusted(bool *aLastKeypressEventTrusted);
3398     nsresult SetSuppressDispatchingInputEvent(bool aSuppressDispatchingInputEvent);
3399 }
3400
3401 [
3402     object,
3403     uuid(833f30de-94c7-4630-a852-2300ef329d7b),
3404     local
3405 ]
3406 interface nsIHTMLEditor : nsISupports
3407 {
3408     nsresult AddDefaultProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3409     nsresult RemoveDefaultProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3410     nsresult RemoveAllDefaultProperties();
3411     nsresult SetInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3412     nsresult GetInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue, [out] bool *aFirst, [out] bool *aAny, [out] bool *aAll);
3413     nsresult GetInlinePropertyWithAttrValue([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue, [out] bool *aFirst, [out] bool *aAny, [out] bool *aAll, [out] nsAString *_retval);
3414     nsresult RemoveAllInlineProperties();
3415     nsresult RemoveInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute);
3416     nsresult IncreaseFontSize();
3417     nsresult DecreaseFontSize();
3418     nsresult NodeIsBlock([in] nsIDOMNode *node, bool *_retval);
3419     nsresult InsertHTML([in] nsAString *aInputString);
3420     nsresult PasteNoFormatting([in] int32_t aSelectionType);
3421     nsresult RebuildDocumentFromSource([in] nsAString *aSourceString);
3422     nsresult InsertHTMLWithContext([in] nsAString *aInputString, [in] nsAString *aContextStr, [in] nsAString *aInfoStr, [in] nsAString *aFlavor, [in] nsIDOMDocument *aSourceDoc, [in] nsIDOMNode *aDestinationNode, [in] int32_t aDestinationOffset, [in] bool aDeleteSelection);
3423     nsresult InsertElementAtSelection([in] nsIDOMElement *aElement, [in] bool aDeleteSelection);
3424     nsresult SetDocumentTitle([in] nsAString *aTitle);
3425     nsresult UpdateBaseURL();
3426     nsresult SelectElement([in] nsIDOMElement *aElement);
3427     nsresult SetCaretAfterElement([in] nsIDOMElement *aElement);
3428     nsresult SetParagraphFormat([in] nsAString *aParagraphFormat);
3429     nsresult GetParagraphState([out] bool *aMixed, [out] nsAString *_retval);
3430     nsresult GetFontFaceState([out] bool *aMixed, [out] nsAString *_retval);
3431     nsresult GetFontColorState([out] bool *aMixed, [out] nsAString *_retval);
3432     nsresult GetBackgroundColorState([out] bool *aMixed, [out] nsAString *_retval);
3433     nsresult GetHighlightColorState([out] bool *aMixed, [out] nsAString *_retval);
3434     nsresult GetListState([out] bool *aMixed, [out] bool *aOL, [out] bool *aUL, [out] bool *aDL);
3435     nsresult GetListItemState([out] bool *aMixed, [out] bool *aLI, [out] bool *aDT, [out] bool *aDD);
3436     nsresult GetAlignment([out] bool *aMixed, [out] int16_t *aAlign);
3437     nsresult GetIndentState([out] bool *aCanIndent, [out] bool *aCanOutdent);
3438     nsresult MakeOrChangeList([in] nsAString *aListType, [in] bool entireList, [in] nsAString *aBulletType);
3439     nsresult RemoveList([in] nsAString *aListType);
3440     nsresult Indent([in] nsAString *aIndent);
3441     nsresult Align([in] nsAString *aAlign);
3442     nsresult GetElementOrParentByTagName([in] nsAString *aTagName, [in] nsIDOMNode *aNode, [out] nsIDOMElement **_retval);
3443     nsresult GetSelectedElement([in] nsAString *aTagName, [out] nsIDOMElement **_retval);
3444     nsresult GetHeadContentsAsHTML([out] nsAString *_retval);
3445     nsresult ReplaceHeadContentsWithHTML([in] nsAString *aSourceToInsert);
3446     nsresult CreateElementWithDefaults([in] nsAString *aTagName, [out] nsIDOMElement **_retval);
3447     nsresult InsertLinkAroundSelection([in] nsIDOMElement *aAnchorElement);
3448     nsresult SetBackgroundColor([in] nsAString *aColor);
3449     nsresult SetBodyAttribute([in] nsAString *aAttr, [in] nsAString *aValue);
3450     nsresult GetLinkedObjects([out] nsISupportsArray **_retval);
3451     nsresult GetIsCSSEnabled([out] bool *_retval);
3452     nsresult SetIsCSSEnabled([in] bool prb);
3453     nsresult AddInsertionListener([in] nsIContentFilter *inFilter);
3454     nsresult RemoveInsertionListener([in] nsIContentFilter *inFilter);
3455     nsresult CreateAnonymousElement([in] nsAString *aTag, [in] nsIDOMNode *aParentNode, [in] nsAString *aAnonClass, [in] bool aIsCreatedHidden, [out] nsIDOMElement **_retval);
3456     nsresult GetSelectionContainer([out] nsIDOMElement **_retval);
3457     nsresult CheckSelectionStateForAnonymousButtons([in] nsISelection *aSelection);
3458     nsresult IsAnonymousElement([in] nsIDOMElement *aElement, [out] bool *_retval);
3459     nsresult GetReturnInParagraphCreatesNewParagraph([out] bool *_retval);
3460     nsresult SetReturnInParagraphCreatesNewParagraph([in] bool prb);
3461     nsresult BreakIsVisible(nsIDOMNode *aNode, bool *_retval);
3462     void /*Element*/ *GetActiveEditingHost();
3463 }
3464
3465 [
3466     object,
3467     uuid(318ce516-3f7a-41f6-8f3d-3661650f7a46),
3468     local
3469 ]
3470 interface nsIDocShell : nsISupports
3471 {
3472     nsresult LoadURI(nsIURI *uri, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags, bool firstParty);
3473     nsresult LoadStream(nsIInputStream *aStream, nsIURI *aURI, const nsACString *aContentType,
3474             const nsACString *aContentCharset, nsIDocShellLoadInfo *aLoadInfo);
3475     nsresult InternalLoad(nsIURI *aURI, nsIURI *aReferrer, nsISupports *aOwner, uint32_t aFlags, const PRUnichar *aWindowTarget,
3476             const char *aTypeHint, nsIInputStream *aPostDataStream, nsIInputStream *aHeadersStream, uint32_t aLoadFlags,
3477             nsISHEntry *aSHEntry, bool firstParty, nsIDocShell **aDocShell, nsIRequest **aRequest);
3478     nsresult AddState(nsIVariant *aData, const nsAString *aTitle, const nsAString *aURL, bool aReplace, JSContext *cx);
3479     nsresult CreateLoadInfo(nsIDocShellLoadInfo **loadInfo);
3480     nsresult PrepareForNewContentModel();
3481     nsresult SetCurrentURI(nsIURI *aURI);
3482     nsresult FirePageHideNotification(bool isUnload);
3483     nsresult GetPresContext(void /*nsPresContext*/ **aPresContext);
3484     nsresult GetPresShell(nsIPresShell **aPresShell);
3485     nsresult GetEldestPresShell(nsIPresShell **aEldestPresShell);
3486     nsresult GetContentViewer(nsIContentViewer **aContentViewer);
3487     nsresult GetChromeEventHandler(nsIDOMEventTarget **aChromeEventHandler);
3488     nsresult SetChromeEventHandler(nsIDOMEventTarget *aChromeEventHandler);
3489     nsresult GetAllowPlugins(bool *aAllowPlugins);
3490     nsresult SetAllowPlugins(bool aAllowPlugins);
3491     nsresult GetAllowJavascript(bool *aAllowJavascript);
3492     nsresult SetAllowJavascript(bool aAllowJavascript);
3493     nsresult GetDisableNoScript(bool *aDisableNoScript);
3494     nsresult SetDisableNoScript(bool aDisableNoScript);
3495     nsresult GetAllowMetaRedirects(bool *aAllowMetaRedirects);
3496     nsresult SetAllowMetaRedirects(bool aAllowMetaRedirects);
3497     nsresult GetAllowSubframes(bool *aAllowSubframes);
3498     nsresult SetAllowSubframes(bool aAllowSubframes);
3499     nsresult GetAllowImages(bool *aAllowImages);
3500     nsresult SetAllowImages(bool aAllowImages);
3501     nsresult GetAllowDNSPrefetch(bool *aAllowDNSPrefetch);
3502     nsresult SetAllowDNSPrefetch(bool aAllowDNSPrefetch);
3503     nsresult GetAllowWindowControl(bool *aAllowWindowControl);
3504     nsresult SetAllowWindowControl(bool aAllowWindowControl);
3505     nsresult GetDocShellEnumerator(int32_t aItemType, int32_t aDirection, nsISimpleEnumerator **_retval);
3506     nsresult GetAppType(uint32_t *aAppType);
3507     nsresult SetAppType(uint32_t aAppType);
3508     nsresult GetAllowAuth(bool *aAllowAuth);
3509     nsresult SetAllowAuth(bool aAllowAuth);
3510     nsresult GetZoom(float *aZoom);
3511     nsresult SetZoom(float aZoom);
3512     nsresult GetMarginWidth(int32_t *aMarginWidth);
3513     nsresult SetMarginWidth(int32_t aMarginWidth);
3514     nsresult GetMarginHeight(int32_t *aMarginHeight);
3515     nsresult SetMarginHeight(int32_t aMarginHeight);
3516     nsresult TabToTreeOwner(bool forward, bool *tookFocus);
3517     nsresult GetBusyFlags(uint32_t *aBusyFlags);
3518     nsresult GetLoadType(uint32_t *aLoadType);
3519     nsresult SetLoadType(uint32_t aLoadType);
3520     nsresult IsBeingDestroyed(bool *_retval);
3521     nsresult GetIsExecutingOnLoadHandler(bool *aIsExecutingOnLoadHandler);
3522     nsresult GetLayoutHistoryState(nsILayoutHistoryState **aLayoutHistoryState);
3523     nsresult SetLayoutHistoryState(nsILayoutHistoryState *aLayoutHistoryState);
3524     nsresult GetShouldSaveLayoutState(bool *aShouldSaveLayoutState);
3525     nsresult GetSecurityUI(nsISecureBrowserUI **aSecurityUI);
3526     nsresult SetSecurityUI(nsISecureBrowserUI *aSecurityUI);
3527     nsresult SuspendRefreshURIs();
3528     nsresult ResumeRefreshURIs();
3529     nsresult BeginRestore(nsIContentViewer *viewer, bool top);
3530     nsresult FinishRestore();
3531     nsresult GetRestoringDocument(bool *aRestoringDocument);
3532     nsresult GetUseErrorPages(bool *aUseErrorPages);
3533     nsresult SetUseErrorPages(bool aUseErrorPages);
3534     nsresult GetPreviousTransIndex(int32_t *aPreviousTransIndex);
3535     nsresult GetLoadedTransIndex(int32_t *aLoadedTransIndex);
3536     nsresult HistoryPurged(int32_t numEntries);
3537     nsresult GetSessionStorageForPrincipal(nsIPrincipal *principal, const nsAString *documentURI,
3538             bool create, nsIDOMStorage **_retval);
3539     nsresult AddSessionStorage(nsIPrincipal *principal, nsIDOMStorage *storage);
3540     nsresult CloneSessionStoragesTo(nsIDocShell *docShell);
3541     nsresult ClearSessionStorages();
3542     nsresult GetCurrentDocumentChannel(nsIChannel **aCurrentDocumentChannel);
3543     nsresult SetChildOffset(uint32_t offset);
3544     nsresult GetIsInUnload(bool *aIsInUnload);
3545     nsresult GetChannelIsUnsafe(bool *aChannelIsUnsafe);
3546     void DetachEditorFromWindow();
3547     nsresult GetIsOffScreenBrowser(bool *aIsOffScreenBrowser);
3548     nsresult SetIsOffScreenBrowser(bool aIsOffScreenBrowser);
3549     nsresult GetPrintPreview(nsIWebBrowserPrint **aPrintPreview);
3550     nsresult GetCanExecuteScripts(bool *aCanExecuteScripts);
3551     nsresult GetIsActive(bool *aIsActive);
3552     nsresult SetIsActive(bool aIsActive);
3553     nsresult GetHistoryID(uint64_t *aHistoryID);
3554     nsresult GetIsAppTab(bool *aIsAppTab);
3555     nsresult SetIsAppTab(bool aIsAppTab);
3556     nsresult CreateAboutBlankContentViewer(nsIPrincipal *aPrincipal);
3557     nsresult GetCharset(char **aCharset);
3558     nsresult SetCharset(const char * aCharset);
3559     nsresult GetForcedCharset(nsIAtom **aForcedCharset);
3560     nsresult SetForcedCharset(nsIAtom *aForcedCharset);
3561     nsresult GetParentCharset(nsIAtom **aParentCharset);
3562     nsresult SetParentCharset(nsIAtom *aParentCharset);
3563     nsresult GetParentCharsetSource(int32_t *aParentCharsetSource);
3564     nsresult SetParentCharsetSource(int32_t aParentCharsetSource);
3565     nsresult AddWeakPrivacyTransitionObserver(nsIPrivacyTransitionObserver *obs);
3566     nsresult GetIsBrowserElement(bool *aIsBrowserElement);
3567     nsresult GetIsApp(bool *aIsApp);
3568     nsresult GetIsBrowserOrApp(bool *aIsBrowserOrApp);
3569     nsresult GetIsInBrowserElement(bool *aIsInBrowserElement);
3570     nsresult GetIsInBrowserOrApp(bool *aIsInBrowserOrApp);
3571     nsresult SetIsApp(uint32_t ownAppId);
3572     nsresult SetIsBrowserInsideApp(uint32_t containingAppId);
3573     nsresult GetAppId(uint32_t *aAppId);
3574     nsresult GetSameTypeParentIgnoreBrowserAndAppBoundaries(nsIDocShell **_retval);
3575     nsresult GetAsyncPanZoomEnabled(bool *aAsyncPanZoomEnabled);
3576     nsresult GetSandboxFlags(uint32_t *aSandboxFlags);
3577     nsresult SetSandboxFlags(uint32_t aSandboxFlags);
3578     bool PluginsAllowedInCurrentDoc();
3579     nsresult GetFullscreenAllowed(bool *aFullscreenAllowed);
3580     nsresult SetFullscreenAllowed(bool allowed);
3581 }
3582
3583 [
3584     object,
3585     uuid(16fe5e3e-eadc-4312-9d44-b6bedd6b5474),
3586     local
3587 ]
3588 interface nsIMutationObserver : nsISupports
3589 {
3590     void CharacterDataWillChange(nsIDocument *aDocument, nsIContent *aContent,
3591                                  void /*CharacterDataChangeInfo*/ *aInfo);
3592     void CharacterDataChanged(nsIDocument *aDocument, nsIContent *aContent,
3593                               void /*CharacterDataChangeInfo*/ *aInfo);
3594     void AttributeWillChange(nsIDocument *aDocument, nsIContent *aContent, int32_t aNameSpaceID,
3595                              nsIAtom *aAttribute, int32_t aModType);
3596     void AttributeChanged(nsIDocument *aDocument, nsIContent *aContent, int32_t aNameSpaceID,
3597                           nsIAtom *aAttribute, int32_t aModType);
3598     void AttributeSetToCurrentValue(nsIDocument *aDocument, /*mozilla::dom::Element*/ void *aElement,
3599                                     int32_t aNameSpaceID, nsIAtom *aAttribute);
3600     void ContentAppended(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aFirstNewContent,
3601                          int32_t aNewIndexInContainer);
3602     void ContentInserted(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
3603                          int32_t aIndexInContainer);
3604     void ContentRemoved(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
3605                         int32_t aIndexInContainer, nsIContent *aPreviousSibling);
3606     void NodeWillBeDestroyed(const nsINode *aNode);
3607     void ParentChainChanged(nsIContent *aContent);
3608 }
3609
3610 [
3611     object,
3612     uuid(2c4ad90a-740e-4212-ba3f-feacda4b929e),
3613     local
3614 ]
3615 interface nsIParser : nsISupports
3616 {
3617     typedef int nsDTDMode;
3618     typedef int eParserCommands;
3619
3620     /* From nsParserBase: */
3621     bool IsParserEnabled();
3622     nsresult GetChannel(nsIChannel **aChannel);
3623
3624     void SetContentSink(nsIContentSink *aSink);
3625     nsIContentSink *GetContentSink();
3626     void GetCommand(nsACString *aCommand);
3627     void SetCommand2(const char *aCommand);
3628     void SetCommand(eParserCommands aParserCommand);
3629     void SetDocumentCharset(const nsACString *aCharset, int32_t aSource);
3630     void GetDocumentCharset(nsACString *oCharset, int32_t *oSource);
3631     nsresult GetDTD(nsIDTD **aDTD);
3632     nsIStreamListener *GetStreamListener();
3633     nsresult ContinueInterruptedParsing();
3634     void BlockParser();
3635     void UnblockParser();
3636     void ContinueInterruptedParsingAsync();
3637     bool IsComplete();
3638     nsresult Parse(nsIURI *aURL, nsIRequestObserver *aListener, void *aKey, nsDTDMode aMode);
3639     nsresult Terminate();
3640     nsresult ParseFragment(const nsAString *aSourceBuffer, void /*nsTArray<nsString>*/ *aTagStack);
3641     nsresult BuildModel();
3642     nsresult CancelParsingEvents();
3643     void Reset();
3644     bool IsInsertionPointDefined();
3645     void BeginEvaluatingParserInsertedScript();
3646     void EndEvaluatingParserInsertedScript();
3647     void MarkAsNotScriptCreated(const char *aCommand);
3648     bool IsScriptCreated();
3649 }
3650
3651 [
3652     object,
3653     uuid(900bc4bc-8b6c-4cba-82fa-568a80fffd3e),
3654     local
3655 ]
3656 interface nsIDocumentObserver : nsIMutationObserver
3657 {
3658     typedef uint32_t nsUpdateType;
3659
3660     typedef struct {
3661         uint64_t mStates;
3662     } nsEventStates;
3663
3664     void BeginUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
3665     void EndUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
3666     void BeginLoad(nsIDocument *aDocument);
3667     void EndLoad(nsIDocument *aDocument);
3668     void ContentStatesChanged(nsIDocument *aDocument, nsIContent *aContent, nsEventStates *aStateMask);
3669     void DocumentStatesChanged(nsIDocument *aDocument, nsEventStates *aStateMask);
3670     void StyleSheetAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, bool aDocumentSheet);
3671     void StyleSheetRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, bool aDocumentSheet);
3672     void StyleSheetApplicableStateChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet,
3673                                           bool aApplicable);
3674     void StyleRuleChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aOldStyleRule,
3675                           nsIStyleRule *aNewStyleRule);
3676     void StyleRuleAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
3677     void StyleRuleRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
3678     void BindToDocument(nsIDocument *aDocument, nsIContent *aContent);
3679     void AttemptToExecuteScript(nsIContent *aContent, nsIParser *aParser, bool *aBlock);
3680 }
3681
3682 [
3683     object,
3684     uuid(c61eac14-5f7a-4481-965e-7eaa6effa85f),
3685     local
3686 ]
3687 interface nsCycleCollectionISupports {}
3688
3689 [
3690     object,
3691     uuid(3682dd99-8560-44f4-9b8f-ccce9d7b96fb),
3692     local
3693 ]
3694 interface nsIContentUtils : nsISupports
3695 {
3696     bool IsSafeToRunScript();
3697     nsresult AddDocumentObserver(nsIDocument *aDocument, nsIDocumentObserver *aObserver);
3698     nsresult RemoveDocumentObserver(nsIDocument *aDocument, nsIDocumentObserver *aObserver);
3699     nsresult AddMutationObserver(nsINode *aNode, nsIMutationObserver *aObserver);
3700     nsresult RemoveMutationObserver(nsINode *aNode, nsIMutationObserver *aObserver);
3701     nsresult AddScriptRunner(nsIRunnable *aRunnable);
3702     JSContext *GetContextFromDocument(nsIDocument *aDocument);
3703 }
3704
3705 [
3706     object,
3707     uuid(8f672000-bab9-4c60-aaaf-2673c4e2a4c6),
3708     local
3709 ]
3710 interface nsIPluginInstance : nsISupports
3711 {
3712     nsresult GetDOMElement(nsIDOMElement **aDOMElement);
3713 }