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