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