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