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