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