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