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