xref: /reactos/dll/win32/mshtml/nsiface.idl (revision b09b5584)
1/*
2 * Copyright 2005-2012 Jacek Caban for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/*
20 * NOTE:
21 * This file is not a typical idl file. Interfaces in this file are XPCOM
22 * interfaces (NOT MSCOM!), but we generate the header file with WIDL
23 * compatible with XPCOM, usable in C code.
24 */
25
26#pragma makedep header
27
28cpp_quote("#define GECKO_VERSION \"2.40\"")
29cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION")
30
31import "wtypes.idl";
32
33cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
34cpp_quote("#undef GetForm")
35cpp_quote("#undef SetPort")
36cpp_quote("#undef GetClassName")
37cpp_quote("#endif")
38
39typedef HRESULT nsresult;
40typedef ULONG nsrefcnt;
41
42typedef IID nsID;
43typedef IID nsIID;
44typedef nsIID nsCID;
45typedef REFIID nsIIDRef;
46typedef nsIIDRef nsCIDRef;
47
48typedef WCHAR PRUnichar;
49
50/*
51 * Mozilla uses stdint.h types for its headers. Following defines make this IDL file
52 * more similar to original declarations. Note that it's only a widl trick, we can't
53 * use stdint.h types in C.
54 */
55#define int16_t short
56#define int32_t LONG
57#define int64_t INT64
58
59#define uint8_t UINT8
60#define uint16_t UINT16
61#define uint32_t UINT32
62#define uint64_t UINT64
63
64#define char16_t PRUnichar
65
66typedef uint64_t DOMTimeStamp;
67typedef uint32_t nsLoadFlags;
68typedef int64_t PRTime;
69
70/* Similar trick to stdint.h types for C++ bool type */
71typedef unsigned char cpp_bool;
72#define bool cpp_bool
73
74typedef struct {
75    void *v;
76    void *d1;
77    uint32_t d2;
78    void *d3;
79} nsCStringContainer;
80
81typedef struct {
82    void *v;
83    void *d1;
84    uint32_t d2;
85    void *d3;
86} nsStringContainer;
87
88typedef nsCStringContainer nsACString;
89typedef nsStringContainer nsAString;
90
91interface nsIWebBrowserChrome;
92interface nsILoadGroup;
93interface nsIDOMNode;
94interface nsIDOMAttr;
95interface nsIDOMDocument;
96interface nsIDOMEvent;
97interface nsIEditor;
98interface nsISelectionController;
99interface nsITransactionManager;
100interface nsITransaction;
101interface nsIInlineSpellChecker;
102interface nsIOutputStream;
103interface nsIEditorObserver;
104interface nsIEditActionListener;
105interface nsIDocumentStateListener;
106interface nsIDOMCSSStyleSheet;
107interface nsIDOMDocumentView;
108interface nsIDOMWindow;
109interface nsIDOMElement;
110interface nsIDOMRange;
111interface nsIDOMEventTarget;
112interface nsISelection;
113interface nsIDOMHTMLSelectElement;
114interface nsIFile;
115interface nsIDocShell;
116
117interface IMoniker;
118
119[
120    object,
121    uuid(00000000-0000-0000-c000-000000000046),
122    local
123]
124interface nsISupports
125{
126    nsresult QueryInterface(nsIIDRef riid, void **result);
127    nsrefcnt AddRef();
128    nsrefcnt Release();
129}
130
131/* Currently we don't need a full declaration of these interfaces */
132typedef nsISupports nsISHistory;
133typedef nsISupports nsIWidget;
134typedef nsISupports nsIPrompt;
135typedef nsISupports nsIAuthPrompt;
136typedef nsISupports nsIDOMDocumentType;
137typedef nsISupports nsIDOMDOMImplementation;
138typedef nsISupports nsIDOMCDATASection;
139typedef nsISupports nsIDOMProcessingInstruction;
140typedef nsISupports nsIDOMEntityReference;
141typedef nsISupports nsIWebProgressListener;
142typedef nsISupports nsIDOMCSSValue;
143typedef nsISupports nsIPrintSession;
144typedef nsISupports nsIControllerCommandTable;
145typedef nsISupports nsIPrincipal;
146typedef nsISupports nsIAtom;
147typedef nsISupports nsISupportsArray;
148typedef nsISupports nsIContentFilter;
149typedef nsISupports nsIDOMMediaList;
150typedef nsISupports nsIDOMHTMLTableSectionElement;
151typedef nsISupports nsIDOMClientRectList;
152typedef nsISupports nsINode;
153typedef nsISupports nsIStyleSheet;
154typedef nsISupports nsIStyleRule;
155typedef nsISupports nsIDOMUserDataHandler;
156typedef nsISupports nsISHEntry;
157typedef nsISupports nsIPresShell;
158typedef nsISupports nsIDocumentCharsetInfo;
159typedef nsISupports nsILayoutHistoryState;
160typedef nsISupports nsISecureBrowserUI;
161typedef nsISupports nsIDOMStorage;
162typedef nsISupports nsIDOMDOMTokenList;
163typedef nsISupports nsITransferable;
164typedef nsISupports nsIDOMFileList;
165typedef nsISupports nsIDOMFile;
166typedef nsISupports nsIControllers;
167typedef nsISupports nsIDOMValidityState;
168typedef nsISupports nsIPluginInstanceOwner;
169typedef nsISupports nsIPluginStreamListener;
170typedef nsISupports nsIContentSink;
171typedef nsISupports nsIParserFilter;
172typedef nsISupports nsIDTD;
173typedef nsISupports nsIObserver;
174typedef nsISupports nsIDOMNodeFilter;
175typedef nsISupports nsIDOMNodeIterator;
176typedef nsISupports nsIDOMTreeWalker;
177typedef nsISupports nsIHttpUpgradeListener;
178typedef nsISupports nsIDOMOfflineResourceList;
179typedef nsISupports nsIDOMNavigator;
180typedef nsISupports nsIDOMScreen;
181typedef nsISupports nsIAnimationFrameListener;
182typedef nsISupports nsIDOMStorageList;
183typedef nsISupports nsILocalFile;
184typedef nsISupports nsIDOMHTMLMenuElement;
185typedef nsISupports nsIDOMCaretPosition;
186typedef nsISupports nsIFrameRequestCallback;
187typedef nsISupports nsICycleCollectorListener;
188typedef nsISupports nsIDOMHTMLCanvasElement;
189typedef nsISupports nsIQueryContentEventResult;
190typedef nsISupports nsIDOMBlob;
191typedef nsISupports nsIPrivacyTransitionObserver;
192typedef nsISupports nsIDOMHTMLPropertiesCollection;
193typedef nsISupports mozIDOMApplication;
194typedef nsISupports nsILoadGroupConnectionInfo;
195typedef nsISupports nsIDOMCrypto;
196typedef nsISupports nsIDOMPkcs11;
197typedef nsISupports nsIDocShellTreeOwner;
198typedef nsISupports nsIArray;
199typedef nsISupports nsILoadInfo;
200typedef nsISupports nsIContentSecurityPolicy;
201typedef nsISupports nsIXMLHttpRequestUpload;
202typedef nsISupports nsIClassInfo;
203typedef nsISupports nsILoadContext;
204typedef nsISupports nsIDomainPolicy;
205typedef nsISupports nsIScriptContext;
206typedef nsISupports nsIObjectInputStream;
207typedef nsISupports nsIObjectOutputStream;
208
209typedef void *JSContext;
210typedef void *JSObject;
211typedef uint64_t jsval;
212
213[
214    object,
215    uuid(8bb35ed9-e332-462d-9155-4a002ab5c958),
216    local
217]
218interface nsIServiceManager : nsISupports
219{
220    nsresult GetService(nsCIDRef aClass, nsIIDRef aIID, void **result);
221    nsresult GetServiceByContractID(const char *aContractID, nsIIDRef aIID, void **result);
222    nsresult IsServiceInstantiated(nsCIDRef aClass, nsIIDRef aIID, BOOL *_retval);
223    nsresult IsServiceInstantiatedByContractID(const char *aContractID, nsIIDRef aIID, BOOL *_retval);
224}
225
226[
227    object,
228    uuid(00000001-0000-0000-c000-000000000046),
229    local
230]
231interface nsIFactory : nsISupports
232{
233    nsresult CreateInstance(nsISupports *aOuter, const nsIID *iid, void **result);
234    nsresult LockFactory(bool lock);
235}
236
237[
238    object,
239    uuid(9188bc85-f92e-11d2-81ef-0060083a0bcf),
240    local
241]
242interface nsIWeakReference : nsISupports
243{
244    nsresult QueryReferent(const nsIID *riid, void **result);
245}
246
247[
248    object,
249    uuid(9188bc86-f92e-11d2-81ef-0060083a0bcf),
250    local
251]
252interface nsISupportsWeakReference : nsISupports
253{
254    nsresult GetWeakReference(nsIWeakReference **_retval);
255}
256
257[
258    object,
259    uuid(033a1470-8b2a-11d3-af88-00a024ffc08c),
260    local
261]
262interface nsIInterfaceRequestor : nsISupports
263{
264    nsresult GetInterface(const nsIID *riid, void **result);
265}
266
267[
268    object,
269    uuid(4a2abaf0-6886-11d3-9382-00104ba0fd40),
270    local
271]
272interface nsIRunnable : nsISupports
273{
274    nsresult Run();
275}
276
277[
278    object,
279    uuid(d1899240-f9d2-11d2-bdd6-000064657374),
280    local
281]
282interface nsISimpleEnumerator : nsISupports
283{
284    nsresult HasMoreElements(bool *_retval);
285    nsresult GetNext(nsISupports **_retval);
286}
287
288[
289    object,
290    uuid(81e4c2de-acac-4ad6-901a-b5fb1b851a0d),
291    local
292]
293interface nsIVariant : nsISupports
294{
295    nsresult GetDataType(uint16_t *aDataType);
296    nsresult GetAsInt8(uint8_t *_retval);
297    nsresult GetAsInt16(int16_t *_retval);
298    nsresult GetAsInt32(int32_t *_retval);
299    nsresult GetAsInt64(int64_t *_retval);
300    nsresult GetAsUint8(uint8_t *_retval);
301    nsresult GetAsUint16(uint16_t *_retval);
302    nsresult GetAsUint32(uint32_t *_retval);
303    nsresult GetAsUint64(uint64_t *_retval);
304    nsresult GetAsFloat(float *_retval);
305    nsresult GetAsDouble(double *_retval);
306    nsresult GetAsBool(bool *_retval);
307    nsresult GetAsChar(char *_retval);
308    nsresult GetAsWChar(PRUnichar *_retval);
309    nsresult GetAsID(nsID *retval);
310    nsresult GetAsAString(nsAString *_retval);
311    nsresult GetAsDOMString(nsAString *_retval);
312    nsresult GetAsACString(nsACString *_retval);
313    nsresult GetAsAUTF8String(nsACString *_retval);
314    nsresult GetAsString(char * *_retval);
315    nsresult GetAsWString(PRUnichar * *_retval);
316    nsresult GetAsISupports(nsISupports * *_retval);
317    nsresult GetAsJSVal(long /*jsval*/ *_retval);
318    nsresult GetAsInterface(nsIID **iid, void **iface);
319    nsresult GetAsArray(uint16_t *type, nsIID *iid, uint32_t *count, void **ptr);
320    nsresult GetAsStringWithSize(uint32_t *size, char **str);
321    nsresult GetAsWStringWithSize(uint32_t *size, PRUnichar **str);
322}
323
324[
325    object,
326    uuid(5586a590-8c82-11d5-90f3-0010a4e73d9a),
327    local
328]
329interface nsIWritableVariant : nsIVariant
330{
331    nsresult GetWritable(bool *aWritable);
332    nsresult SetWritable(bool aWritable);
333    nsresult SetAsInt8(uint8_t aValue);
334    nsresult SetAsInt16(int16_t aValue);
335    nsresult SetAsInt32(int32_t aValue);
336    nsresult SetAsInt64(int64_t aValue);
337    nsresult SetAsUint8(uint8_t aValue);
338    nsresult SetAsUint16(uint16_t aValue);
339    nsresult SetAsUint32(uint32_t aValue);
340    nsresult SetAsUint64(uint64_t aValue);
341    nsresult SetAsFloat(float aValue);
342    nsresult SetAsDouble(double aValue);
343    nsresult SetAsBool(bool aValue);
344    nsresult SetAsChar(char aValue);
345    nsresult SetAsWChar(PRUnichar aValue);
346    nsresult SetAsID(const nsID *aValue);
347    nsresult SetAsAString(const nsAString *aValue);
348    nsresult SetAsDOMString(const nsAString *aValue);
349    nsresult SetAsACString(const nsACString *aValue);
350    nsresult SetAsAUTF8String(const nsACString *aValue);
351    nsresult SetAsString(const char * aValue);
352    nsresult SetAsWString(const PRUnichar * aValue);
353    nsresult SetAsISupports(nsISupports *aValue);
354    nsresult SetAsInterface(const nsIID *iid, void *iface);
355    nsresult SetAsArray(uint16_t type, const nsIID *iid, uint32_t count, void *ptr);
356    nsresult SetAsStringWithSize(uint32_t size, const char *str);
357    nsresult SetAsWStringWithSize(uint32_t size, const PRUnichar *str);
358    nsresult SetAsVoid();
359    nsresult SetAsEmpty();
360    nsresult SetAsEmptyArray();
361    nsresult SetFromVariant(nsIVariant *aValue);
362}
363
364[
365    object,
366    uuid(53cdbc97-c2d7-4e30-b2c3-45b2ee79db18),
367    local
368]
369interface nsIInputStream : nsISupports
370{
371    nsresult Close();
372    nsresult Available(uint64_t *_retval);
373    nsresult Read(char *aBuf, uint32_t aCount, uint32_t *_retval);
374    nsresult ReadSegments(nsresult (*aWriter)(nsIInputStream *aInStream,
375            void *aClosure, const char *aFromSegment, uint32_t aToOffset,
376            uint32_t aCount, uint32_t *aWriteCount),
377            void *aClosure, uint32_t aCount, uint32_t *_retval);
378    nsresult IsNonBlocking(bool *_retval);
379}
380
381[
382    object,
383    uuid(8429d350-1040-4661-8b71-f2a6ba455980),
384    local
385]
386interface nsISeekableStream : nsISupports
387{
388    enum {
389        NS_SEEK_SET = 0,
390        NS_SEEK_CUR = 1,
391        NS_SEEK_END = 2
392    };
393
394    nsresult Seek(int32_t whence, int64_t offset);
395    nsresult Tell(int64_t *_retval);
396    nsresult SetEOF();
397}
398
399[
400    object,
401    uuid(395fe045-7d18-4adb-a3fd-af98c8a1af11),
402    local
403]
404interface nsIURI : nsISupports
405{
406    nsresult GetSpec(nsACString *aSpec);
407    nsresult SetSpec(const nsACString *aSpec);
408    nsresult GetPrePath(nsACString *aPrePath);
409    nsresult GetScheme(nsACString *aScheme);
410    nsresult SetScheme(const nsACString *aScheme);
411    nsresult GetUserPass(nsACString *aUserPass);
412    nsresult SetUserPass(const nsACString *aUserPass);
413    nsresult GetUsername(nsACString *aUsername);
414    nsresult SetUsername(const nsACString *aUsername);
415    nsresult GetPassword(nsACString *aPassword);
416    nsresult SetPassword(const nsACString *aPassword);
417    nsresult GetHostPort(nsACString *aHostPort);
418    nsresult SetHostPort(const nsACString *aHostPort);
419    nsresult GetHost(nsACString *aHost);
420    nsresult SetHost(const nsACString *aHost);
421    nsresult GetPort(int32_t *aPort);
422    nsresult SetPort(int32_t aPort);
423    nsresult GetPath(nsACString *aPath);
424    nsresult SetPath(const nsACString *aPath);
425    nsresult Equals(nsIURI *other, bool *_retval);
426    nsresult SchemeIs(const char *scheme, bool *_retval);
427    nsresult Clone(nsIURI **_retval);
428    nsresult Resolve(const nsACString *relativePath, nsACString *_retval);
429    nsresult GetAsciiSpec(nsACString *aAsciiSpec);
430    nsresult GetAsciiHost(nsACString *aAsciiHost);
431    nsresult GetOriginCharset(nsACString *aOriginCharset);
432    nsresult GetRef(nsACString *aRef);
433    nsresult SetRef(const nsACString *aRef);
434    nsresult EqualsExceptRef(nsIURI *other, bool *_retval);
435    nsresult CloneIgnoringRef(nsIURI **_retval);
436    nsresult GetSpecIgnoringRef(nsACString *aSpecIgnoringRef);
437    nsresult GetHasRef(bool *aHasRef);
438}
439
440[
441    object,
442    uuid(1419aa16-f134-4154-9886-00c7c5147a13),
443    local
444]
445interface nsIURL : nsIURI
446{
447    nsresult GetFilePath(nsACString *aFilePath);
448    nsresult SetFilePath(const nsACString *aFilePath);
449    nsresult GetQuery(nsACString *aQuery);
450    nsresult SetQuery(const nsACString *aQuery);
451    nsresult GetDirectory(nsACString *aDirectory);
452    nsresult SetDirectory(const nsACString *aDirectory);
453    nsresult GetFileName(nsACString *aFileName);
454    nsresult SetFileName(const nsACString *aFileName);
455    nsresult GetFileBaseName(nsACString *aFileBaseName);
456    nsresult SetFileBaseName(const nsACString *aFileBaseName);
457    nsresult GetFileExtension(nsACString *aFileExtension);
458    nsresult SetFileExtension(const nsACString *aFileExtension);
459    nsresult GetCommonBaseSpec(nsIURI *aURIToCompare, nsACString *_retval);
460    nsresult GetRelativeSpec(nsIURI *aURIToCompare, nsACString *_retval);
461}
462
463[
464    object,
465    uuid(7750029c-1b0a-414e-8359-a77f24a2a0a6),
466    local
467]
468interface nsIFileURL : nsIURL
469{
470    nsresult GetFile(nsIFile **aFile);
471    nsresult SetFile(nsIFile *aFile);
472}
473
474[
475    object,
476    uuid(321578d0-03c1-4d95-8821-021ac612d18d),
477    local
478]
479interface nsIMutable : nsISupports
480{
481    nsresult GetMutable(bool *aMutable);
482    nsresult SetMutable(bool aMutable);
483}
484
485[
486    object,
487    uuid(babd6cca-ebe7-4329-967c-d6b9e33caa81),
488    local
489]
490interface nsIStandardURL : nsIMutable
491{
492    nsresult Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI);
493}
494
495[
496    object,
497    uuid(ef6bfbd2-fd46-48d8-96b7-9f8f0fd387fe),
498    local
499]
500interface nsIRequest : nsISupports
501{
502    nsresult GetName(nsACString *aName);
503    nsresult IsPending(bool *_retval);
504    nsresult GetStatus(nsresult *aStatus);
505    nsresult Cancel(nsresult aStatus);
506    nsresult Suspend();
507    nsresult Resume();
508    nsresult GetLoadGroup(nsILoadGroup **aLoadGroup);
509    nsresult SetLoadGroup(nsILoadGroup *aLoadGroup);
510    nsresult GetLoadFlags(nsLoadFlags *aLoadFlags);
511    nsresult SetLoadFlags(nsLoadFlags aLoadFlags);
512}
513
514[
515    object,
516    uuid(fd91e2e0-1481-11d3-9333-00104ba0fd40),
517    local
518]
519interface nsIRequestObserver : nsISupports
520{
521    nsresult OnStartRequest(nsIRequest *aRequest, nsISupports *aContext);
522    nsresult OnStopRequest(nsIRequest *aRequest, nsISupports *aContext, nsresult aStatusCode);
523}
524
525[
526    object,
527    uuid(3b4c8a77-76ba-4610-b316-678c73a3b88c),
528    local
529]
530interface nsIStreamListener : nsIRequestObserver
531{
532    nsresult OnDataAvailable(nsIRequest *aRequest, nsISupports *aContext,
533                             nsIInputStream *aInputStream, uint64_t aOffset, uint32_t aCount);
534}
535
536[
537    object,
538    uuid(afb57ac2-bce5-4ee3-bb34-385089a9ba5c),
539    local
540]
541interface nsILoadGroup : nsIRequest
542{
543    nsresult GetGroupObserver(nsIRequestObserver **aGroupObserver);
544    nsresult SetGroupObserver(nsIRequestObserver *aGroupObserver);
545    nsresult GetDefaultLoadRequest(nsIRequest **aDefaultLoadRequest);
546    nsresult SetDefaultLoadRequest(nsIRequest *aDefaultLoadRequest);
547    nsresult AddRequest(nsIRequest *aRequest, nsISupports *aContext);
548    nsresult RemoveRequest(nsIRequest *aRequest, nsISupports *aContext, nsresult aStatus);
549    nsresult GetRequests(nsISimpleEnumerator **aRequests);
550    nsresult GetActiveCount(uint32_t *aActiveCount);
551    nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
552    nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
553    nsresult GetConnectionInfo(nsILoadGroupConnectionInfo **aConnectionInfo);
554    nsresult GetDefaultLoadFlags(nsLoadFlags *aDefaultLoadFlags);
555    nsresult SetDefaultLoadFlags(nsLoadFlags aDefaultLoadFlags);
556}
557
558[
559    object,
560    uuid(1bc48693-c45d-45f4-8ab1-46e323037fe1),
561    local
562]
563interface nsIChannel : nsIRequest
564{
565    const UINT LOAD_DOCUMENT_URI            = 1 << 16;
566    const UINT LOAD_RETARGETED_DOCUMENT_URI = 1 << 17;
567    const UINT LOAD_REPLACE                 = 1 << 18;
568    const UINT LOAD_INITIAL_DOCUMENT_URI    = 1 << 19;
569    const UINT LOAD_TARGETED                = 1 << 20;
570    const UINT LOAD_CALL_CONTENT_SNIFFERS   = 1 << 21;
571    const UINT LOAD_CLASSIFY_URI            = 1 << 22;
572    const UINT LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE = 1 << 23;
573    const UINT LOAD_EXPLICIT_CREDENTIALS    = 1 << 24;
574
575    nsresult GetOriginalURI(nsIURI **aOriginalURI);
576    nsresult SetOriginalURI(nsIURI *aOriginalURI);
577    nsresult GetURI(nsIURI **aURI);
578    nsresult GetOwner(nsISupports **aOwner);
579    nsresult SetOwner(nsISupports *aOwner);
580    nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
581    nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
582    nsresult GetSecurityInfo(nsISupports **aSecurityInfo);
583    nsresult GetContentType(nsACString *aContentType);
584    nsresult SetContentType(const nsACString *aContentType);
585    nsresult GetContentCharset(nsACString *aContentCharset);
586    nsresult SetContentCharset(const nsACString *aContentCharset);
587    nsresult GetContentLength(int64_t *aContentLength);
588    nsresult SetContentLength(int64_t aContentLength);
589    nsresult Open(nsIInputStream **_retval);
590    nsresult AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext);
591    nsresult GetContentDisposition(uint32_t *aContentDisposition);
592    nsresult SetContentDisposition(uint32_t aContentDisposition);
593    nsresult GetContentDispositionFilename(nsAString *aContentDispositionFilename);
594    nsresult SetContentDispositionFilename(const nsAString *aContentDispositionFilename);
595    nsresult GetContentDispositionHeader(nsACString *aContentDispositionHeader);
596    nsresult GetLoadInfo(nsILoadInfo **aLoadInfo);
597    nsresult SetLoadInfo(nsILoadInfo *aLoadInfo);
598}
599
600[
601    object,
602    uuid(35412859-b9d9-423c-8866-2d4559fdd2be),
603    local
604]
605interface nsIHttpHeaderVisitor : nsISupports
606{
607    nsresult VisitHeader(const nsACString *aHeader, const nsACString *aValue);
608}
609
610[
611    object,
612    uuid(86ad7e1f-3a64-4e0f-a104-395ebecd7d5c),
613    local
614]
615interface nsIHttpChannel : nsIChannel
616{
617    nsresult GetRequestMethod(nsACString *aRequestMethod);
618    nsresult SetRequestMethod(const nsACString *aRequestMethod);
619    nsresult GetReferrer(nsIURI **aReferrer);
620    nsresult SetReferrer(nsIURI *aReferrer);
621    nsresult GetReferrerPolicy(uint32_t *aReferrerPolicy);
622    nsresult SetReferrerWithPolicy(nsIURI *referrer, uint32_t referrerPolicy);
623    nsresult GetRequestHeader(const nsACString *aHeader, nsACString *_retval);
624    nsresult SetRequestHeader(const nsACString *aHeader, const nsACString *aValue, bool aMerge);
625    nsresult VisitRequestHeaders(nsIHttpHeaderVisitor *aVisitor);
626    nsresult GetAllowPipelining(bool *aAllowPipelining);
627    nsresult SetAllowPipelining(bool aAllowPipelining);
628    nsresult GetAllowSTS(bool *aAllowSTS);
629    nsresult SetAllowSTS(bool aAllowSTS);
630    nsresult GetRedirectionLimit(uint32_t *aRedirectionLimit);
631    nsresult SetRedirectionLimit(uint32_t aRedirectionLimit);
632    nsresult GetResponseStatus(uint32_t *aResponseStatus);
633    nsresult GetResponseStatusText(nsACString *aResponseStatusText);
634    nsresult GetRequestSucceeded(bool *aRequestSucceeded);
635    nsresult GetResponseHeader(const nsACString *header, nsACString *_retval);
636    nsresult SetResponseHeader(const nsACString *header, const nsACString *value, bool merge);
637    nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor);
638    nsresult IsNoStoreResponse(bool *_retval);
639    nsresult IsNoCacheResponse(bool *_retval);
640    nsresult IsPrivateResponse(bool *_retval);
641    nsresult RedirectTo(nsIURI *aNewURI);
642}
643
644[
645    object,
646    uuid(26833ec7-4555-4f23-9281-3a12d4b76db1),
647    local
648]
649interface nsIHttpChannelInternal : nsISupports
650{
651    nsresult GetDocumentURI(nsIURI **aDocumentURI);
652    nsresult SetDocumentURI(nsIURI *aDocumentURI);
653    nsresult GetRequestVersion(uint32_t *major, uint32_t *minor);
654    nsresult GetResponseVersion(uint32_t *major, uint32_t *minor);
655    nsresult TakeAllSecurityMessages(void /*securityMessagesArray*/ *aMessages);
656    nsresult SetCookie(const char *aCookieHeader);
657    nsresult SetupFallbackChannel(const char *aFallbackKey);
658    nsresult GetForceAllowThirdPartyCookie(bool *aForceAllowThirdPartyCookie);
659    nsresult SetForceAllowThirdPartyCookie(bool aForceAllowThirdPartyCookie);
660    nsresult GetCanceled(bool *aCanceled);
661    nsresult GetChannelIsForDownload(bool *aChannelIsForDownload);
662    nsresult SetChannelIsForDownload(bool aChannelIsForDownload);
663    nsresult GetLocalAddress(nsACString *aLocalAddress);
664    nsresult GetLocalPort(int32_t *aLocalPort);
665    nsresult GetRemoteAddress(nsACString *aRemoteAddress);
666    nsresult GetRemotePort(int32_t *aRemotePort);
667    nsresult SetCacheKeysRedirectChain(void /*nsTArray<nsCString>*/ *cacheKeys);
668    nsresult HTTPUpgrade(const nsACString *aProtocolName, nsIHttpUpgradeListener *aListener);
669    nsresult GetAllowSpdy(bool *aAllowSpdy);
670    nsresult SetAllowSpdy(bool aAllowSpdy);
671    nsresult GetResponseTimeoutEnabled(bool *aResponseTimeoutEnabled);
672    nsresult SetResponseTimeoutEnabled(bool aResponseTimeoutEnabled);
673    nsresult GetApiRedirectToURI(nsIURI **aApiRedirectToURI);
674    nsresult GetAllowAltSvc(bool *aAllowAltSvc);
675    nsresult SetAllowAltSvc(bool aAllowAltSvc);
676    nsresult AddRedirect(nsIPrincipal *aPrincipal);
677    nsresult GetLastModifiedTime(PRTime *aLastModifiedTime);
678    nsresult ForceNoIntercept();
679    nsresult GetCorsIncludeCredentials(bool *aCorsIncludeCredentials);
680    nsresult SetCorsIncludeCredentials(bool aCorsIncludeCredentials);
681    nsresult GetCorsMode(uint32_t *aCorsMode);
682    nsresult SetCorsMode(uint32_t aCorsMode);
683    nsresult GetTopWindowURI(nsIURI **aTopWindowURI);
684    nsresult GetNetworkInterfaceId(nsACString *aNetworkInterfaceId);
685    nsresult SetNetworkInterfaceId(const nsACString *aNetworkInterfaceId);
686    nsresult ContinueBeginConnect();
687    nsresult GetProxyURI(nsIURI **aProxyURI);
688}
689
690[
691    object,
692    uuid(5cfe15bd-5adb-4a7f-9e55-4f5a67d15794),
693    local
694]
695interface nsIUploadChannel : nsISupports
696{
697    nsresult SetUploadStream(nsIInputStream *aStream, const nsACString *aContentType,
698                             int64_t aContentLength);
699    nsresult GetUploadStream(nsIInputStream **aUploadStream);
700}
701
702[
703    object,
704    uuid(8d171460-a716-41f1-92be-8c659db39b45),
705    local
706]
707interface nsIAsyncVerifyRedirectCallback : nsISupports
708{
709    nsresult OnRedirectVerifyCallback(nsresult result);
710}
711
712[
713    object,
714    uuid(0197720d-37ed-4e75-8956-d0d296e4d8a6),
715    local
716]
717interface nsIChannelEventSink : nsISupports
718{
719    const UINT REDIRECT_TEMPORARY = 1;
720    const UINT REDIRECT_PERMANENT = 2;
721    const UINT REDIRECT_INTERNAL  = 4;
722    const UINT REDIRECT_STS_UPGRADE = 8;
723
724    nsresult AsyncOnChannelRedirect(nsIChannel *oldChannel, nsIChannel *newChannel, uint32_t flags,
725                                    nsIAsyncVerifyRedirectCallback *callback);
726}
727
728[
729    object,
730    uuid(79de76e5-994e-4f6b-81aa-42d9adb6e67e),
731    local
732]
733interface nsIDOMLocation : nsISupports
734{
735    nsresult GetHash(nsAString *aHash);
736    nsresult SetHash(const nsAString *aHash);
737    nsresult GetHost(nsAString *aHost);
738    nsresult SetHost(const nsAString *aHost);
739    nsresult GetHostname(nsAString *aHostname);
740    nsresult SetHostname(const nsAString *aHostname);
741    nsresult GetHref(nsAString *aHref);
742    nsresult SetHref(const nsAString *aHref);
743    nsresult GetPathname(nsAString *aPathname);
744    nsresult SetPathname(const nsAString *aPathname);
745    nsresult GetPort(nsAString *aPort);
746    nsresult SetPort(const nsAString *aPort);
747    nsresult GetProtocol(nsAString *aProtocol);
748    nsresult SetProtocol(const nsAString *aProtocol);
749    nsresult GetSearch(nsAString *aSearch);
750    nsresult SetSearch(const nsAString *aSearch);
751    nsresult GetOrigin(nsAString *aOrigin);
752    nsresult Reload(bool forceget);
753    nsresult Replace(const nsAString *url);
754    nsresult Assign(const nsAString *url);
755    nsresult ToString(nsAString *_retval);
756    nsresult ValueOf(nsIDOMLocation **_retval);
757}
758
759[
760    object,
761    uuid(4d6b3bad-f53c-4585-82f6-62982e27ede8),
762    local
763]
764interface nsIDOMCSSRule : nsISupports
765{
766    nsresult GetType(uint16_t *aType);
767    nsresult GetCssText(nsAString *aCssText);
768    nsresult SetCssText(const nsAString *aCssText);
769    nsresult GetParentStyleSheet(nsIDOMCSSStyleSheet **aParentStyleSheet);
770    nsresult GetParentRule(nsIDOMCSSRule **aParentRule);
771    int /* thiscall mozilla::css::Rule */ GetCSSRule();
772}
773
774[
775    object,
776    uuid(a6cf90be-15b3-11d2-932e-00805f8add32),
777    local
778]
779interface nsIDOMCSSStyleDeclaration : nsISupports
780{
781    nsresult GetCssText(nsAString *aCssText);
782    nsresult SetCssText(const nsAString *aCssText);
783    nsresult GetPropertyValue(const nsAString *propertyName, nsAString *_retval);
784    nsresult GetPropertyCSSValue(const nsAString *propertyName, nsIDOMCSSValue **_retval);
785    nsresult RemoveProperty(const nsAString *propertyName, nsAString *_retval);
786    nsresult GetPropertyPriority(const nsAString *propertyName, nsAString *_retval);
787    nsresult SetProperty(const nsAString *propertyName, const nsAString *value,
788                         const nsAString *priority);
789    nsresult GetLength(uint32_t *aLength);
790    nsresult Item(uint32_t index, nsAString *_retval);
791    nsresult GetParentRule(nsIDOMCSSRule **aParentRule);
792}
793
794[
795    object,
796    uuid(a6cf90c0-15b3-11d2-932e-00805f8add32),
797    local
798]
799interface nsIDOMCSSRuleList : nsISupports
800{
801    nsresult GetLength(uint32_t *aLength);
802    nsresult Item(uint32_t index, nsIDOMCSSRule **_retval);
803}
804
805[
806    object,
807    uuid(a6cf9080-15b3-11d2-932e-00805f8add32),
808    local
809]
810interface nsIDOMStyleSheet : nsISupports
811{
812    nsresult GetType(nsAString *aType);
813    nsresult GetDisabled(bool *aDisabled);
814    nsresult SetDisabled(bool aDisabled);
815    nsresult GetOwnerNode(nsIDOMNode **aOwnerNode);
816    nsresult GetParentStyleSheet(nsIDOMStyleSheet **aParentStyleSheet);
817    nsresult GetHref(nsAString *aHref);
818    nsresult GetTitle(nsAString *aTitle);
819    nsresult GetMedia(nsIDOMMediaList **aMedia);
820}
821
822[
823    object,
824    uuid(a6cf90c2-15b3-11d2-932e-00805f8add32),
825    local
826]
827interface nsIDOMCSSStyleSheet : nsIDOMStyleSheet
828{
829    nsresult GetOwnerRule(nsIDOMCSSRule **aOwnerRule);
830    nsresult GetCssRules(nsIDOMCSSRuleList **aCssRules);
831    nsresult InsertRule(const nsAString *rule, uint32_t index, uint32_t *_retval);
832    nsresult DeleteRule(uint32_t index);
833}
834
835[
836    object,
837    uuid(0e424250-ac2a-4fe2-bccd-a45824af090e),
838    local
839]
840interface nsIDOMStyleSheetList : nsISupports
841{
842    nsresult GetLength(uint32_t *aLength);
843    nsresult Item(uint32_t index, nsIDOMStyleSheet **_retval);
844}
845
846[
847    object,
848    uuid(450cf0ba-de90-4f86-85bf-e10cc8b8713f),
849    local
850]
851interface nsIDOMNodeList : nsISupports
852{
853    nsresult Item(uint32_t index, nsIDOMNode **_retval);
854    nsresult GetLength(uint32_t *aLength);
855}
856
857[
858    object,
859    uuid(bb07f567-5b37-4172-92aa-7d00ceed4809),
860    local
861]
862interface nsIDOMHTMLCollection : nsISupports
863{
864    nsresult GetLength(uint32_t *aLength);
865    nsresult Item(uint32_t index, nsIDOMNode **_retval);
866    nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
867}
868
869[
870    object,
871    uuid(cb5564cd-26ec-418f-a6d6-1d57cd2c971c),
872    local
873]
874interface nsIDOMMozNamedAttrMap : nsISupports
875{
876    nsresult GetNamedItem(const nsAString *name, nsIDOMAttr **_retval);
877    nsresult SetNamedItem(nsIDOMAttr *arg, nsIDOMAttr **_retval);
878    nsresult RemoveNamedItem(const nsAString *name, nsIDOMAttr **_retval);
879    nsresult Item(uint32_t index, nsIDOMAttr **_retval);
880    nsresult GetLength(uint32_t *aLength);
881    nsresult GetNamedItemNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMAttr **_retval);
882    nsresult SetNamedItemNS(nsIDOMAttr *arg, nsIDOMAttr **_retval);
883    nsresult RemoveNamedItemNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMAttr **_retval);
884}
885
886[
887    object,
888    uuid(cc35b412-009b-46a3-9be0-76448f12548d),
889    local
890]
891interface nsIDOMNode : nsISupports
892{
893    enum NSNODETYPE {
894        ELEMENT_NODE = 1,
895        ATTRIBUTE_NODE = 2,
896        TEXT_NODE = 3,
897        CDATA_SELECTION_NODE = 4,
898        ENTITY_REFERENCE_NODE = 5,
899        ENTITY_NODE = 6,
900        PROCESSING_INSTRUCTION_NODE = 7,
901        COMMENT_NODE = 8,
902        DOCUMENT_NODE = 9,
903        DOCUMENT_TYPE_NODE = 10,
904        DOCUMENT_FRAGMENT_NODE = 11,
905        NOTATION_NODE = 12
906    };
907
908    enum {
909        DOCUMENT_POSITION_DISCONNECTED = 1,
910        DOCUMENT_POSITION_PRECEDING = 2,
911        DOCUMENT_POSITION_FOLLOWING = 4,
912        DOCUMENT_POSITION_CONTAINS = 8,
913        DOCUMENT_POSITION_CONTAINED_BY = 16,
914        DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
915    };
916
917    nsresult GetNodeName(nsAString *aNodeName);
918    nsresult GetNodeValue(nsAString *aNodeValue);
919    nsresult SetNodeValue(const nsAString *aNodeValue);
920    nsresult GetNodeType(uint16_t *aNodeType);
921    nsresult GetParentNode(nsIDOMNode **aParentNode);
922    nsresult GetParentElement(nsIDOMElement **aParentElement);
923    nsresult GetChildNodes(nsIDOMNodeList **aChildNodes);
924    nsresult GetFirstChild(nsIDOMNode **aFirstChild);
925    nsresult GetLastChild(nsIDOMNode **aLastChild);
926    nsresult GetPreviousSibling(nsIDOMNode **aPreviousSibling);
927    nsresult GetNextSibling(nsIDOMNode **aNextSibling);
928    nsresult GetOwnerDocument(nsIDOMDocument **aOwnerDocument);
929    nsresult InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval);
930    nsresult ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval);
931    nsresult RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval);
932    nsresult AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval);
933    nsresult HasChildNodes(bool *_retval);
934    nsresult CloneNode(bool deep, uint8_t _argc, nsIDOMNode **_retval);
935    nsresult Normalize();
936    nsresult GetNamespaceURI(nsAString *aNamespaceURI);
937    nsresult GetPrefix(nsAString *aPrefix);
938    nsresult GetLocalName(nsAString *aLocalName);
939    nsresult UnusedPlaceholder(bool *_retval);
940    nsresult GetDOMBaseURI(nsAString *aBaseURI);
941    nsresult CompareDocumentPosition(nsIDOMNode *other, uint16_t *_retval);
942    nsresult GetTextContent(nsAString *aTextContent);
943    nsresult SetTextContent(const nsAString *aTextContent);
944    nsresult LookupPrefix(const nsAString *namespaceURI, nsAString *_retval);
945    nsresult IsDefaultNamespace(const nsAString *namespaceURI, bool *_retval);
946    nsresult LookupNamespaceURI(const nsAString *prefix, nsAString *_retval);
947    nsresult IsEqualNode(nsIDOMNode *arg, bool *_retval);
948    nsresult SetUserData(const nsAString *key, nsIVariant *data, nsIVariant **_retval);
949    nsresult GetUserData(const nsAString *key, nsIVariant **_retval);
950    nsresult Contains(nsIDOMNode *aOther, bool *_retval);
951
952    nsresult GetMshtmlNode(nsISupports **aMshtmlNode);
953    nsresult SetMshtmlNode(nsISupports *aMshtmlNode);
954}
955
956[
957    object,
958    uuid(7db491e8-a3a3-4432-ad67-e6c33e24ac6d),
959    local
960]
961interface nsIDOMAttr : nsIDOMNode
962{
963    nsresult GetName(nsAString *aName);
964    nsresult GetSpecified(bool *aSpecified);
965    nsresult GetValue(nsAString *aValue);
966    nsresult SetValue(const nsAString *aValue);
967    nsresult GetOwnerElement(nsIDOMElement **aOwnerElement);
968    nsresult GetIsId(bool *aIsId);
969}
970
971[
972    object,
973    uuid(b2f824c4-d9d3-499b-8d3b-45c8245497c6),
974    local
975]
976interface nsIDOMClientRect : nsISupports
977{
978    nsresult GetLeft(float *aLeft);
979    nsresult GetTop(float *aTop);
980    nsresult GetRight(float *aRight);
981    nsresult GetBottom(float *aBottom);
982    nsresult GetWidth(float *aWidth);
983    nsresult GetHeight(float *aHeight);
984}
985
986[
987    object,
988    uuid(6289999b-1008-4269-b42a-413ec5a9d3f4),
989    local
990]
991interface nsIDOMElement : nsIDOMNode
992{
993    nsresult GetTagName(nsAString *aTagName);
994    nsresult GetId(nsAString *aId);
995    nsresult SetId(const nsAString *aId);
996    nsresult GetClassName(nsAString *aClassName);
997    nsresult SetClassName(const nsAString *aClassName) ;
998    nsresult GetClassList(nsISupports **aClassList);
999    nsresult GetAttributes(nsIDOMMozNamedAttrMap **aAttributes);
1000    nsresult GetAttribute(const nsAString *name, nsAString *_retval);
1001    nsresult GetAttributeNS(const nsAString *namespaceURI, const nsAString *localName, nsAString *_retval);
1002    nsresult SetAttribute(const nsAString *name, const nsAString *value);
1003    nsresult SetAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName, const nsAString *value);
1004    nsresult RemoveAttribute(const nsAString *name);
1005    nsresult RemoveAttributeNS(const nsAString *namespaceURI, const nsAString *localName);
1006    nsresult HasAttribute(const nsAString *name, bool *_retval);
1007    nsresult HasAttributeNS(const nsAString *namespaceURI, const nsAString *localName, bool *_retval);
1008    nsresult HasAttributes(bool *_retval);
1009    nsresult GetAttributeNode(const nsAString *name, nsIDOMAttr **_retval);
1010    nsresult SetAttributeNode(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
1011    nsresult RemoveAttributeNode(nsIDOMAttr *oldAttr, nsIDOMAttr **_retval);
1012    nsresult GetAttributeNodeNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMAttr **_retval);
1013    nsresult SetAttributeNodeNS(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
1014    nsresult GetElementsByTagName(const nsAString *name, nsIDOMHTMLCollection **_retval);
1015    nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMHTMLCollection **_retval);
1016    nsresult GetElementsByClassName(const nsAString *classes, nsIDOMHTMLCollection **_retval);
1017    nsresult GetChildElements(nsIDOMNodeList **aChildren);
1018    nsresult GetFirstElementChild(nsIDOMElement **aFirstElementChild);
1019    nsresult GetLastElementChild(nsIDOMElement **aLastElementChild);
1020    nsresult GetPreviousElementSibling(nsIDOMElement **aPreviousElementSibling);
1021    nsresult GetNextElementSibling(nsIDOMElement **aNextElementSibling);
1022    nsresult GetChildElementCount(uint32_t *aChildElementCount);
1023    nsresult Remove();
1024    nsresult GetClientRects(nsIDOMClientRectList **_retval);
1025    nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
1026    nsresult GetScrollTop(int32_t *aScrollTop);
1027    nsresult SetScrollTop(int32_t aScrollTop);
1028    nsresult GetScrollLeft(int32_t *aScrollLeft);
1029    nsresult SetScrollLeft(int32_t aScrollLeft);
1030    nsresult GetScrollWidth(int32_t *aScrollWidth);
1031    nsresult GetScrollHeight(int32_t *aScrollHeight);
1032    nsresult GetClientTop(int32_t *aClientTop);
1033    nsresult GetClientLeft(int32_t *aClientLeft);
1034    nsresult GetClientWidth(int32_t *aClientWidth);
1035    nsresult GetClientHeight(int32_t *aClientHeight);
1036    nsresult GetScrollLeftMax(int32_t *aScrollLeftMax);
1037    nsresult GetScrollTopMax(int32_t *aScrollTopMax);
1038    nsresult MozMatchesSelector(const nsAString *selector, bool *_retval);
1039    nsresult SetCapture(bool retargetToElement);
1040    nsresult ReleaseCapture();
1041    nsresult MozRequestFullScreen();
1042    nsresult MozRequestPointerLock();
1043    nsresult QuerySelector(const nsAString *selectors, nsIDOMElement **_retval);
1044    nsresult QuerySelectorAll(const nsAString *selectors, nsIDOMNodeList **_retval);
1045}
1046
1047[
1048    object,
1049    uuid(99715845-95fc-4a56-aa53-214b65c26e22),
1050    local
1051]
1052interface nsIDOMElementCSSInlineStyle : nsISupports
1053{
1054    nsresult GetStyle(nsIDOMCSSStyleDeclaration **aStyle);
1055}
1056
1057[
1058    object,
1059    uuid(b0c42392-d0e7-4f6a-beb5-a698ce648945),
1060    local
1061]
1062interface nsIDOMHTMLElement : nsIDOMElement
1063{
1064    nsresult GetTitle(nsAString *aTitle);
1065    nsresult SetTitle(const nsAString *aTitle);
1066    nsresult GetLang(nsAString *aLang);
1067    nsresult SetLang(const nsAString *aLang);
1068    nsresult GetDir(nsAString *aDir);
1069    nsresult SetDir(const nsAString *aDir);
1070    nsresult GetDataset(nsISupports **aDataset);
1071    nsresult GetItemScope(bool *aItemScope);
1072    nsresult SetItemScope(bool aItemScope);
1073    nsresult GetItemType(nsIVariant **aItemType);
1074    nsresult SetItemType(nsIVariant *aItemType);
1075    nsresult GetItemId(nsAString *aItemId);
1076    nsresult SetItemId(const nsAString *aItemId);
1077    nsresult GetProperties(nsISupports **aProperties);
1078    nsresult GetItemValue(nsIVariant **aItemValue);
1079    nsresult SetItemValue(nsIVariant *aItemValue);
1080    nsresult GetItemProp(nsIVariant **aItemProp);
1081    nsresult SetItemProp(nsIVariant *aItemProp);
1082    nsresult GetItemRef(nsIVariant **aItemRef);
1083    nsresult SetItemRef(nsIVariant *aItemRef);
1084    nsresult GetHidden(bool *aHidden);
1085    nsresult SetHidden(bool aHidden);
1086    nsresult Click();
1087    nsresult GetTabIndex(int32_t *aTabIndex);
1088    nsresult SetTabIndex(int32_t aTabIndex);
1089    nsresult Focus();
1090    nsresult Blur();
1091    nsresult GetAccessKey(nsAString *aAccessKey);
1092    nsresult SetAccessKey(const nsAString *aAccessKey);
1093    nsresult GetAccessKeyLabel(nsAString *aAccessKeyLabel);
1094    nsresult GetDraggable(bool *aDraggable);
1095    nsresult SetDraggable(bool aDraggable);
1096    nsresult GetContentEditable(nsAString *aContentEditable);
1097    nsresult SetContentEditable(const nsAString *aContentEditable);
1098    nsresult GetIsContentEditable(bool *aIsContentEditable);
1099    nsresult GetContextMenu(nsIDOMHTMLMenuElement **aContextMenu);
1100    nsresult GetSpellcheck(bool *aSpellcheck);
1101    nsresult SetSpellcheck(bool aSpellcheck);
1102    nsresult GetInnerHTML(nsAString *aInnerHTML);
1103    nsresult SetInnerHTML(const nsAString *aInnerHTML);
1104    nsresult GetOuterHTML(nsAString *aInnerHTML);
1105    nsresult SetOuterHTML(const nsAString *aInnerHTML);
1106    nsresult InsertAdjacentHTML(const nsAString *position, const nsAString *text);
1107    nsresult ScrollIntoView(bool top, uint8_t _argc);
1108    nsresult GetOffsetParent(nsIDOMElement * *aOffsetParent);
1109    nsresult GetOffsetTop(int32_t *aOffsetTop);
1110    nsresult GetOffsetLeft(int32_t *aOffsetLeft);
1111    nsresult GetOffsetWidth(int32_t *aOffsetWidth);
1112    nsresult GetOffsetHeight(int32_t *aOffsetHeight);
1113}
1114
1115[
1116    object,
1117    uuid(59b80014-00f5-412d-846f-725494122d42),
1118    local
1119]
1120interface nsIDOMHTMLHeadElement : nsISupports
1121{
1122}
1123
1124[
1125    object,
1126    uuid(4109a2d2-e7af-445d-bb72-c7c9b875f35e),
1127    local
1128]
1129interface nsIDOMCharacterData : nsIDOMNode
1130{
1131    nsresult GetData(nsAString *aData);
1132    nsresult SetData(const nsAString *aData);
1133    nsresult GetLength(uint32_t *aLength);
1134    nsresult SubstringData(uint32_t offset, uint32_t count, nsAString *_retval);
1135    nsresult AppendData(const nsAString *arg);
1136    nsresult InsertData(uint32_t offset, const nsAString *arg);
1137    nsresult DeleteData(uint32_t offset, uint32_t count);
1138    nsresult ReplaceData(uint32_t offset, uint32_t count, const nsAString *arg);
1139    nsresult Remove();
1140}
1141
1142[
1143    object,
1144    uuid(67273994-6aff-4091-9de9-b788a249f783),
1145    local
1146]
1147interface nsIDOMText : nsIDOMCharacterData
1148{
1149    nsresult SplitText(uint32_t offset, nsIDOMText **_retval);
1150    nsresult GetWholeText(nsAString *aWholeText);
1151}
1152
1153[
1154    object,
1155    uuid(e7866ff8-b7fc-494f-87c0-fb017d8a4d30),
1156    local
1157]
1158interface nsIDOMComment : nsIDOMCharacterData
1159{
1160}
1161
1162[
1163    object,
1164    uuid(48eb8d72-95bb-402e-a8fc-f2b187abcbdb),
1165    local
1166]
1167interface nsIDOMDocumentFragment : nsIDOMNode
1168{
1169    nsresult QuerySelector(const nsAString *selectors, nsIDOMElement **_retval);
1170    nsresult QuerySelectorAll(const nsAString *selectors, nsIDOMNodeList **_retval);
1171}
1172
1173[
1174    object,
1175    uuid(35dc5030-dc83-4291-88a2-0906c549788e),
1176    local
1177]
1178interface nsIDOMDocument : nsIDOMNode
1179{
1180    nsresult GetDoctype(nsIDOMDocumentType **aDoctype);
1181    nsresult GetImplementation(nsIDOMDOMImplementation **aImplementation);
1182    nsresult GetDocumentElement(nsIDOMElement **aDocumentElement);
1183    nsresult CreateElement(const nsAString *tagName, nsIDOMElement **_retval);
1184    nsresult CreateDocumentFragment(nsIDOMDocumentFragment **_retval);
1185    nsresult CreateTextNode(const nsAString *data, nsIDOMText **_retval);
1186    nsresult CreateComment(const nsAString *data, nsIDOMComment **_retval);
1187    nsresult CreateCDATASection(const nsAString *data, nsIDOMCDATASection **_retval);
1188    nsresult CreateProcessingInstruction(const nsAString *target, const nsAString *data, nsIDOMProcessingInstruction **_retval);
1189    nsresult CreateAttribute(const nsAString *name, nsIDOMAttr **_retval);
1190    nsresult GetElementsByTagName(const nsAString *tagname, nsIDOMNodeList **_retval);
1191    nsresult ImportNode(nsIDOMNode *importedNode, bool deep, uint8_t _argc, nsIDOMNode **_retval);
1192    nsresult CreateElementNS(const nsAString *namespaceURI, const nsAString *qualifiedName, nsIDOMElement **_retval);
1193    nsresult CreateAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName, nsIDOMAttr **_retval);
1194    nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName, nsIDOMNodeList **_retval);
1195    nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
1196    nsresult GetInputEncoding(nsAString *aInputEncoding);
1197    nsresult GetDocumentURI(nsAString *aDocumentURI);
1198    nsresult GetURL(nsAString *aURL);
1199    nsresult AdoptNode(nsIDOMNode *source, nsIDOMNode **_retval);
1200    nsresult CreateRange(nsIDOMRange **_retval);
1201    nsresult CreateNodeIterator(nsIDOMNode *root, uint32_t whatToShow, nsIDOMNodeFilter *filter, uint8_t _argc,
1202            nsIDOMNodeIterator **_retval);
1203    nsresult CreateTreeWalker(nsIDOMNode *root, uint32_t whatToShow, nsIDOMNodeFilter *filter, uint8_t _argc,
1204            nsIDOMTreeWalker **_retval);
1205    cpp_quote("#undef CreateEvent")
1206    nsresult CreateEvent(const nsAString *eventType, nsIDOMEvent **_retval);
1207    nsresult GetDefaultView(nsIDOMWindow **aDefaultView);
1208    nsresult GetCharacterSet(nsAString *aCharacterSet);
1209    nsresult GetDir(nsAString *aDir);
1210    nsresult SetDir(const nsAString *aDir);
1211    nsresult GetLocation(nsIDOMLocation **aLocation);
1212    nsresult GetTitle(nsAString *aTitle);
1213    nsresult SetTitle(const nsAString *aTitle);
1214    nsresult GetReadyState(nsAString *aReadyState);
1215    nsresult GetLastModified(nsAString *aLastModified);
1216    nsresult GetReferrer(nsAString *aReferrer);
1217    nsresult HasFocus(bool *_retval);
1218    nsresult GetActiveElement(nsIDOMElement **aActiveElement);
1219    nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval);
1220    nsresult GetStyleSheets(nsIDOMStyleSheetList **aStyleSheets);
1221    nsresult GetPreferredStyleSheetSet(nsAString *aPreferredStyleSheetSet);
1222    nsresult GetSelectedStyleSheetSet(nsAString *aSelectedStyleSheetSet);
1223    nsresult SetSelectedStyleSheetSet(const nsAString *aSelectedStyleSheetSet);
1224    nsresult GetLastStyleSheetSet(nsAString *aLastStyleSheetSet);
1225    nsresult GetStyleSheetSets(nsISupports **aStyleSheetSets);
1226    nsresult EnableStyleSheetsForSet(const nsAString *name);
1227    nsresult ElementFromPoint(float x, float y, nsIDOMElement **_retval);
1228    nsresult GetContentType(nsAString *aContentType);
1229    nsresult GetMozSyntheticDocument(bool *aMozSyntheticDocument);
1230    nsresult GetCurrentScript(nsIDOMElement **aCurrentScript);
1231    nsresult ReleaseCapture();
1232    nsresult MozSetImageElement(const nsAString *aImageElementId, nsIDOMElement *aImageElement);
1233    nsresult GetMozFullScreenElement(nsIDOMElement **aMozFullScreenElement);
1234    nsresult MozCancelFullScreen();
1235    nsresult GetMozFullScreen(bool *aMozFullScreen);
1236    nsresult GetMozFullScreenEnabled(bool *aMozFullScreenEnabled);
1237    nsresult GetMozPointerLockElement(nsIDOMElement **aMozPointerLockElement);
1238    nsresult CaretPositionFromPoint(float x, float y, nsISupports **_retval);
1239    nsresult MozExitPointerLock();
1240    nsresult GetHidden(bool *aHidden);
1241    nsresult GetMozHidden(bool *aMozHidden);
1242    nsresult GetVisibilityState(nsAString *aVisibilityState);
1243    nsresult GetMozVisibilityState(nsAString *aMozVisibilityState);
1244    nsresult GetCompatMode(nsAString *aCompatMode);
1245    nsresult QuerySelector(const nsAString *selectors, nsIDOMElement **_retval);
1246    nsresult QuerySelectorAll(const nsAString *selectors, nsIDOMNodeList **_retval);
1247}
1248
1249[
1250    object,
1251    uuid(bd2a0a46-17e4-46ea-9e5d-6a97cf5e3b28),
1252    local
1253]
1254interface nsIDOMHTMLDocument : nsIDOMDocument
1255{
1256    nsresult GetDomain(nsAString *aDomain);
1257    nsresult SetDomain(const nsAString *aDomain);
1258    nsresult GetCookie(nsAString *aCookie);
1259    nsresult SetCookie(const nsAString *aCookie);
1260    nsresult GetHead(nsIDOMHTMLHeadElement **aHead);
1261    nsresult GetBody(nsIDOMHTMLElement **aBody);
1262    nsresult SetBody(nsIDOMHTMLElement *aBody);
1263    nsresult GetImages(nsIDOMHTMLCollection **aImages);
1264    nsresult GetEmbeds(nsIDOMHTMLCollection **aEmbeds);
1265    nsresult GetPlugins(nsIDOMHTMLCollection **aPlugins);
1266    nsresult GetLinks(nsIDOMHTMLCollection **aLinks);
1267    nsresult GetForms(nsIDOMHTMLCollection **aForms);
1268    nsresult GetScripts(nsIDOMHTMLCollection **aScripts);
1269    nsresult GetElementsByName(const nsAString *elementName, nsIDOMNodeList **_retval);
1270    nsresult GetItems(const nsAString *types, nsIDOMNodeList **_retval);
1271    nsresult Open(const nsAString *aContentTypeOrUrl, const nsAString *aReplaceOrName, const nsAString *aFeatures,
1272            JSContext *cx, uint8_t _argc, nsISupports **_retval);
1273    nsresult Close();
1274    nsresult Write(const nsAString *text, JSContext *cx);
1275    nsresult Writeln(const nsAString *text, JSContext *cx);
1276    nsresult GetDesignMode(nsAString *aDesignMode);
1277    nsresult SetDesignMode(const nsAString *aDesignMode);
1278    nsresult ExecCommand(const nsAString *commandID, bool doShowUI, const nsAString *value, bool *_retval);
1279    nsresult QueryCommandEnabled(const nsAString *commandID, bool *_retval);
1280    nsresult QueryCommandIndeterm(const nsAString *commandID, bool *_retval);
1281    nsresult QueryCommandState(const nsAString *commandID, bool *_retval);
1282    nsresult QueryCommandSupported(const nsAString *commandID, bool *_retval);
1283    nsresult QueryCommandValue(const nsAString *commandID, nsAString *_retval);
1284    nsresult GetFgColor(nsAString *aFgColor);
1285    nsresult SetFgColor(const nsAString *aFgColor);
1286    nsresult GetBgColor(nsAString *aBgColor);
1287    nsresult SetBgColor(const nsAString *aBgColor);
1288    nsresult GetLinkColor(nsAString *aLinkColor);
1289    nsresult SetLinkColor(const nsAString *aLinkColor);
1290    nsresult GetVlinkColor(nsAString *aVlinkColor);
1291    nsresult SetVlinkColor(const nsAString *aVlinkColor);
1292    nsresult GetAlinkColor(nsAString *aAlinkColor);
1293    nsresult SetAlinkColor(const nsAString *aAlinkColor);
1294    nsresult GetAnchors(nsIDOMHTMLCollection **aAnchors);
1295    nsresult GetApplets(nsIDOMHTMLCollection **aApplets);
1296    nsresult Clear();
1297    nsresult GetSelection(nsISelection **_retval);
1298    nsresult CaptureEvents();
1299    nsresult ReleaseEvents();
1300}
1301
1302[
1303    object,
1304    uuid(1f94055c-42e7-4a30-96a1-6a804f1c2d1e),
1305    local
1306]
1307interface nsIDOMRange : nsISupports
1308{
1309    enum {
1310        NS_START_TO_START,
1311        NS_START_TO_END,
1312        NS_END_TO_END,
1313        NS_END_TO_START
1314    };
1315
1316    nsresult GetStartContainer(nsIDOMNode **aStartContainer);
1317    nsresult GetStartOffset(int32_t *aStartOffset);
1318    nsresult GetEndContainer(nsIDOMNode **aEndContainer);
1319    nsresult GetEndOffset(int32_t *aEndOffset);
1320    nsresult GetCollapsed(bool *aCollapsed);
1321    nsresult GetCommonAncestorContainer(nsIDOMNode **aCommonAncestorContainer);
1322    nsresult SetStart(nsIDOMNode *refNode, int32_t offset);
1323    nsresult SetEnd(nsIDOMNode *refNode, int32_t offset);
1324    nsresult SetStartBefore(nsIDOMNode *refNode);
1325    nsresult SetStartAfter(nsIDOMNode *refNode);
1326    nsresult SetEndBefore(nsIDOMNode *refNode);
1327    nsresult SetEndAfter(nsIDOMNode *refNode);
1328    nsresult Collapse(bool toStart);
1329    nsresult SelectNode(nsIDOMNode *refNode);
1330    nsresult SelectNodeContents(nsIDOMNode *refNode);
1331    nsresult CompareBoundaryPoints(uint16_t how, nsIDOMRange *sourceRange, int16_t *_retval);
1332    nsresult DeleteContents();
1333    nsresult ExtractContents(nsIDOMDocumentFragment **_retval);
1334    nsresult CloneContents(nsIDOMDocumentFragment **_retval);
1335    nsresult InsertNode(nsIDOMNode *newNode);
1336    nsresult SurroundContents(nsIDOMNode *newParent);
1337    nsresult CloneRange(nsIDOMRange **_retval);
1338    nsresult ToString(nsAString *_retval);
1339    nsresult Detach();
1340    nsresult CreateContextualFragment([in] const nsAString *fragment, [out] nsIDOMDocumentFragment **_retval);
1341    nsresult IsPointInRange([in] nsIDOMNode *parent, [in] int32_t offset, [out] bool *_retval);
1342    nsresult ComparePoint([in] nsIDOMNode *parent, [in] int32_t offset, [out] int16_t *_retval);
1343    nsresult IntersectsNode(nsIDOMNode *node, bool *_retval);
1344    nsresult GetClientRects(nsIDOMClientRectList **_retval);
1345    nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
1346}
1347
1348[
1349    object,
1350    uuid(e0a4d4b3-f34e-44bd-b1f2-4e3bde9b6915),
1351    local
1352]
1353interface nsISelection : nsISupports
1354{
1355    nsresult GetAnchorNode(nsIDOMNode **aAnchorNode);
1356    nsresult GetAnchorOffset(int32_t *aAnchorOffset);
1357    nsresult GetFocusNode(nsIDOMNode **aFocusNode);
1358    nsresult GetFocusOffset(int32_t *aFocusOffset);
1359    nsresult GetIsCollapsed(bool *aIsCollapsed);
1360    bool /* don't use */ Collapsed();
1361    nsresult GetRangeCount(int32_t *aRangeCount);
1362    nsresult GetRangeAt(int32_t index, nsIDOMRange **_retval);
1363    nsresult Collapse(nsIDOMNode *parentNode, int32_t offset);
1364    nsresult CollapseNative(nsINode *parentNode, int32_t offset);
1365    nsresult Extend(nsIDOMNode *parentNode, int32_t offset);
1366    nsresult ExtendNative(nsINode *parentNode, int32_t offset);
1367    nsresult CollapseToStart();
1368    nsresult CollapseToEnd();
1369    nsresult ContainsNode(nsIDOMNode *node, bool entirelyContained, bool *_retval);
1370    nsresult SelectAllChildren(nsIDOMNode *parentNode);
1371    nsresult AddRange(nsIDOMRange *range);
1372    nsresult RemoveRange(nsIDOMRange *range);
1373    nsresult RemoveAllRanges();
1374    nsresult DeleteFromDocument();
1375    nsresult ToString(nsAString *_retval);
1376    nsresult Modify(const nsAString *alter, const nsAString *direction, const nsAString *granularity);
1377}
1378
1379[
1380    object,
1381    uuid(a6cf906f-15b3-11d2-932e-00805f8add32),
1382    local
1383]
1384interface nsIDOMWindowCollection : nsISupports
1385{
1386    nsresult GetLength(uint32_t *aLength);
1387    nsresult Item(uint32_t index, nsIDOMWindow **_retval);
1388    nsresult NamedItem(const nsAString *name, nsIDOMWindow **_retval);
1389}
1390
1391[
1392    object,
1393    uuid(8146f3fc-9fc1-47c5-85ef-95d686e4ca6d),
1394    local
1395]
1396interface nsIDOMWindow : nsISupports
1397{
1398    nsresult GetWindow(nsIDOMWindow **aWindow);
1399    nsresult GetSelf(nsIDOMWindow **aSelf);
1400    nsresult GetDocument(nsIDOMDocument **aDocument);
1401    nsresult GetName(nsAString *aName);
1402    nsresult SetName(const nsAString *aName);
1403    nsresult GetLocation(nsIDOMLocation **aLocation);
1404    nsresult GetHistory(nsISupports **aHistory);
1405    nsresult GetLocationbar(nsISupports **aLocationbar);
1406    nsresult GetMenubar(nsISupports **aMenubar);
1407    nsresult GetPersonalbar(nsISupports **aPersonalbar);
1408    nsresult GetScrollbars(nsISupports **aScrollbars);
1409    nsresult GetStatusbar(nsISupports **aStatusbar);
1410    nsresult GetToolbar(nsISupports **aToolbar);
1411    nsresult GetStatus(nsAString *aStatus);
1412    nsresult SetStatus(const nsAString *aStatus);
1413    nsresult Close();
1414    nsresult Stop();
1415    nsresult Focus();
1416    nsresult Blur();
1417    nsresult GetLength(uint32_t *aLength);
1418    nsresult GetScriptableTop(nsIDOMWindow **aTop);
1419    nsresult GetRealTop(nsIDOMWindow **aTop);
1420    nsresult GetScriptableParent(nsIDOMWindow **aParent);
1421    nsresult GetRealParent(nsIDOMWindow **aParent);
1422    nsresult GetScriptableOpener(JSContext* cx, int /* JS::MutableHandleValue */ aOpener);
1423    nsresult SetScriptableOpener(JSContext* cx, int /* JS::HandleValue */ aOpener);
1424    nsresult GetOpener(nsIDOMWindow **aOpenerWindow);
1425    nsresult SetOpener(nsIDOMWindow *aOpenerWindow);
1426    nsresult GetScriptableFrameElement(nsIDOMElement **aFrameElement);
1427    nsresult GetRealFrameElement(nsIDOMElement **aFrameElement);
1428    nsresult GetNavigator(nsIDOMNavigator **aNavigator);
1429    nsresult GetApplicationCache(nsIDOMOfflineResourceList **aApplicationCache);
1430    nsresult Alert(const nsAString *text);
1431    nsresult Confirm(const nsAString *text, bool *_retval);
1432    nsresult Prompt(const nsAString *aMessage, const nsAString *aInitial, nsAString *_retval);
1433    nsresult Print();
1434    nsresult ShowModalDialog(const nsAString *aURI, nsIVariant *aArgs, const nsAString *aOptions, uint8_t _argc, nsIVariant **_retval);
1435    nsresult PostMessageMoz(const long /*jsval*/ *message, const nsAString *targetOrigin, const /*JS::Value*/ void *transfer, JSContext *cx);
1436    nsresult Atob(const nsAString *aAsciiString, nsAString *_retval);
1437    nsresult Btoa(const nsAString *aBase64Data, nsAString *_retval);
1438    nsresult GetSessionStorage(nsISupports **aSessionStorage);
1439    nsresult GetLocalStorage(nsISupports **aLocalStorage);
1440    nsresult GetIndexedDB(nsISupports **aIndexedDB);
1441    nsresult GetSelection(nsISelection **_retval);
1442    nsresult MatchMedia(const nsAString *media_query_list, nsISupports **_retval);
1443    nsresult GetScreen(nsIDOMScreen **aScreen);
1444    nsresult GetInnerWidth(int32_t *aInnerWidth);
1445    nsresult SetInnerWidth(int32_t aInnerWidth);
1446    nsresult GetInnerHeight(int32_t *aInnerHeight);
1447    nsresult SetInnerHeight(int32_t aInnerHeight);
1448    nsresult GetScrollX(int32_t *aScrollX);
1449    nsresult GetPageXOffset(int32_t *aPageXOffset);
1450    nsresult GetScrollY(int32_t *aScrollY);
1451    nsresult GetPageYOffset(int32_t *aPageYOffset);
1452    nsresult Scroll(int32_t xScroll, int32_t yScroll);
1453    nsresult ScrollTo(int32_t xScroll, int32_t yScroll);
1454    nsresult ScrollBy(int32_t xScrollDif, int32_t yScrollDif);
1455    nsresult GetScreenX(int32_t *aScreenX);
1456    nsresult SetScreenX(int32_t aScreenX);
1457    nsresult GetScreenY(int32_t *aScreenY);
1458    nsresult SetScreenY(int32_t aScreenY);
1459    nsresult GetOuterWidth(int32_t *aOuterWidth);
1460    nsresult SetOuterWidth(int32_t aOuterWidth);
1461    nsresult GetOuterHeight(int32_t *aOuterHeight);
1462    nsresult SetOuterHeight(int32_t aOuterHeight);
1463    nsresult GetComputedStyle(nsIDOMElement *elt, const nsAString *pseudoElt, nsIDOMCSSStyleDeclaration **_retval);
1464    nsresult GetDefaultComputedStyle(nsIDOMElement *elt, const nsAString *pseudoElt, nsIDOMCSSStyleDeclaration **_retval);
1465    nsresult GetWindowRoot(nsIDOMEventTarget **aWindowRoot);
1466    nsresult GetFrames(nsIDOMWindowCollection **aFrames);
1467    nsresult GetTextZoom(float *aTextZoom);
1468    nsresult SetTextZoom(float aTextZoom);
1469    nsresult ScrollByLines(int32_t numLines);
1470    nsresult ScrollByPages(int32_t numPages);
1471    nsresult SizeToContent();
1472    nsresult GetContent(nsIDOMWindow **aContent);
1473    nsresult GetPrompter(nsIPrompt **aPrompter);
1474    nsresult GetClosed(bool *aClosed);
1475    nsresult GetCrypto(nsIDOMCrypto **aCrypto);
1476    nsresult GetControllers(nsIControllers **aControllers);
1477    nsresult GetMozInnerScreenX(float *aMozInnerScreenX);
1478    nsresult GetMozInnerScreenY(float *aMozInnerScreenY);
1479    nsresult GetDevicePixelRatio(float *aDevicePixelRatio);
1480    nsresult GetScrollMaxX(int32_t *aScrollMaxX);
1481    nsresult GetScrollMaxY(int32_t *aScrollMaxY);
1482    nsresult GetFullScreen(bool *aFullScreen);
1483    nsresult SetFullScreen(bool aFullScreen);
1484    nsresult Back();
1485    nsresult Forward();
1486    nsresult Home();
1487    nsresult MoveTo(int32_t xPos, int32_t yPos);
1488    nsresult MoveBy(int32_t xDif, int32_t yDif);
1489    nsresult ResizeTo(int32_t width, int32_t height);
1490    nsresult ResizeBy(int32_t widthDif, int32_t heightDif);
1491    nsresult Open(const nsAString *url, const nsAString *name, const nsAString *options, nsIDOMWindow **_retval);
1492    nsresult OpenDialog(const nsAString *url, const nsAString *name, const nsAString *options, nsISupports *aExtraArgument,
1493            nsIDOMWindow **_retval);
1494    nsresult UpdateCommands(const nsAString *action, nsISelection *sel, int16_t reason);
1495    nsresult Find(const nsAString *str, bool caseSensitive, bool backwards, bool wrapAround, bool wholeWord,
1496            bool searchInFrames, bool showDialog, bool *_retval);
1497    nsresult GetMozPaintCount(uint64_t *aMozPaintCount);
1498    nsresult MozRequestAnimationFrame(nsIFrameRequestCallback *aCallback, int32_t *_retval);
1499    nsresult RequestAnimationFrame(void /*const JS::Value*/ *aCallback, JSContext* cx, int32_t *_retval);
1500    nsresult MozCancelAnimationFrame(int32_t aHandle);
1501    nsresult MozCancelRequestAnimationFrame(int32_t aHandle);
1502    nsresult CancelAnimationFrame(int32_t aHandle);
1503    nsresult GetMozAnimationStartTime(int64_t *aMozAnimationStartTime);
1504    nsresult GetConsole(JSContext *cx, jsval *aConsole);
1505    nsresult SetConsole(JSContext *cx, const jsval *aConsole);
1506}
1507
1508[
1509    object,
1510    uuid(068630db-2c00-43dd-b167-495757a88236),
1511    local
1512]
1513interface nsIDOMHTMLBodyElement : nsISupports
1514{
1515    nsresult GetALink(nsAString *aALink);
1516    nsresult SetALink(const nsAString *aALink);
1517    nsresult GetBackground(nsAString *aBackground);
1518    nsresult SetBackground(const nsAString *aBackground);
1519    nsresult GetBgColor(nsAString *aBgColor);
1520    nsresult SetBgColor(const nsAString *aBgColor);
1521    nsresult GetLink(nsAString *aLink);
1522    nsresult SetLink(const nsAString *aLink);
1523    nsresult GetText(nsAString *aText);
1524    nsresult SetText(const nsAString *aText);
1525    nsresult GetVLink(nsAString *aVLink);
1526    nsresult SetVLink(const nsAString *aVLink);
1527}
1528
1529[
1530    object,
1531    uuid(ad9b2ad0-9d29-43f6-b1a2-a1fd24627e6b),
1532    local
1533]
1534interface nsIDOMHTMLFormElement : nsISupports
1535{
1536    nsresult GetAcceptCharset(nsAString *aAcceptCharset);
1537    nsresult SetAcceptCharset(const nsAString *aAcceptCharset);
1538    nsresult GetAction(nsAString *aAction);
1539    nsresult SetAction(const nsAString *aAction);
1540    nsresult GetAutocomplete(nsAString *aAutocomplete);
1541    nsresult SetAutocomplete(const nsAString *aAutocomplete);
1542    nsresult GetEnctype(nsAString *aEnctype);
1543    nsresult SetEnctype(const nsAString *aEnctype);
1544    nsresult GetEncoding(nsAString *aEncoding);
1545    nsresult SetEncoding(const nsAString *aEncoding);
1546    nsresult GetMethod(nsAString *aMethod);
1547    nsresult SetMethod(const nsAString *aMethod);
1548    nsresult GetName(nsAString *aName);
1549    nsresult SetName(const nsAString *aName);
1550    nsresult GetNoValidate(bool *aNoValidate);
1551    nsresult SetNoValidate(bool aNoValidate);
1552    nsresult GetTarget(nsAString *aTarget);
1553    nsresult SetTarget(const nsAString *aTarget);
1554    nsresult GetElements(nsIDOMHTMLCollection **aElements);
1555    nsresult GetLength(int32_t *aLength);
1556    nsresult Submit();
1557    nsresult Reset();
1558    nsresult CheckValidity(bool *_retval);
1559    nsresult GetFormData(nsIDOMHTMLElement *aOriginatingElement, nsAString *aActionURI, nsIInputStream **aPostDataStream);
1560}
1561
1562[
1563    object,
1564    uuid(64aeda0b-e9b5-4868-a4f9-e4776e32e733),
1565    local
1566]
1567interface nsIDOMHTMLInputElement : nsISupports
1568{
1569    nsresult GetAccept(nsAString *aAccept);
1570    nsresult SetAccept(const nsAString *aAccept);
1571    nsresult GetAlt(nsAString *aAlt);
1572    nsresult SetAlt(const nsAString *aAlt);
1573    nsresult GetAutocomplete(nsAString *aAutocomplete);
1574    nsresult SetAutocomplete(const nsAString *aAutocomplete);
1575    nsresult GetAutofocus(bool *aAutofocus);
1576    nsresult SetAutofocus(bool aAutofocus);
1577    nsresult GetDefaultChecked(bool *aDefaultChecked);
1578    nsresult SetDefaultChecked(bool aDefaultChecked);
1579    nsresult GetChecked(bool *aChecked);
1580    nsresult SetChecked(bool aChecked);
1581    nsresult GetDisabled(bool *aDisabled);
1582    nsresult SetDisabled(bool aDisabled);
1583    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1584    nsresult GetFormAction(nsAString *aFormAction);
1585    nsresult SetFormAction(const nsAString *aFormAction);
1586    nsresult GetFormEnctype(nsAString *aFormEnctype);
1587    nsresult SetFormEnctype(const nsAString *aFormEnctype);
1588    nsresult GetFormMethod(nsAString *aFormMethod);
1589    nsresult SetFormMethod(const nsAString *aFormMethod);
1590    nsresult GetFormNoValidate(bool *aFormNoValidate);
1591    nsresult SetFormNoValidate(bool aFormNoValidate);
1592    nsresult GetFormTarget(nsAString *aFormTarget);
1593    nsresult SetFormTarget(const nsAString *aFormTarget);
1594    nsresult GetFiles(nsIDOMFileList **aFiles);
1595    nsresult GetHeight(uint32_t *aHeight);
1596    nsresult SetHeight(uint32_t aHeight);
1597    nsresult GetIndeterminate(bool *aIndeterminate);
1598    nsresult SetIndeterminate(bool aIndeterminate);
1599    nsresult GetInputMode(nsAString *aInputMode);
1600    nsresult SetInputMode(const nsAString *aInputMode);
1601    nsresult GetList(nsIDOMHTMLElement **aList);
1602    nsresult GetMax(nsAString *aMax);
1603    nsresult SetMax(const nsAString *aMax);
1604    nsresult GetMaxLength(int32_t *aMaxLength);
1605    nsresult SetMaxLength(int32_t aMaxLength);
1606    nsresult GetMin(nsAString *aMin);
1607    nsresult SetMin(const nsAString *aMin);
1608    nsresult GetMultiple(bool *aMultiple);
1609    nsresult SetMultiple(bool aMultiple);
1610    nsresult GetName(nsAString *aName);
1611    nsresult SetName(const nsAString *aName);
1612    nsresult GetPattern(nsAString *aPattern);
1613    nsresult SetPattern(const nsAString *aPattern);
1614    nsresult GetPlaceholder(nsAString *aPlaceholder);
1615    nsresult SetPlaceholder(const nsAString *aPlaceholder);
1616    nsresult GetReadOnly(bool *aReadOnly);
1617    nsresult SetReadOnly(bool aReadOnly);
1618    nsresult GetRequired(bool *aRequired);
1619    nsresult SetRequired(bool aRequired);
1620    nsresult GetStep(nsAString *aStep);
1621    nsresult SetStep(const nsAString *aStep);
1622    nsresult GetAlign(nsAString *aAlign);
1623    nsresult SetAlign(const nsAString *aAlign);
1624    nsresult GetSize(uint32_t *aSize);
1625    nsresult SetSize(uint32_t aSize);
1626    nsresult GetWidth(uint32_t *aWidth);
1627    nsresult SetWidth(uint32_t aWidth);
1628    nsresult GetSrc(nsAString *aSrc);
1629    nsresult SetSrc(const nsAString *aSrc);
1630    nsresult GetType(nsAString *aType);
1631    nsresult SetType(const nsAString *aType);
1632    nsresult GetDefaultValue(nsAString *aDefaultValue);
1633    nsresult SetDefaultValue(const nsAString *aDefaultValue);
1634    nsresult GetValue(nsAString *aValue);
1635    nsresult SetValue(const nsAString *aValue);
1636    nsresult GetValueAsNumber(double *aValueAsNumber);
1637    nsresult SetValueAsNumber(double aValueAsNumber);
1638    nsresult StepDown(int32_t n, uint8_t _argc);
1639    nsresult StepUp(int32_t n, uint8_t _argc);
1640    nsresult GetWillValidate(bool *aWillValidate);
1641    nsresult GetValidity(nsIDOMValidityState **aValidity);
1642    nsresult GetValidationMessage(nsAString *aValidationMessage);
1643    nsresult CheckValidity(bool *_retval);
1644    nsresult SetCustomValidity(const nsAString *error);
1645    nsresult Select();
1646    nsresult GetSelectionStart(int32_t *aSelectionStart);
1647    nsresult SetSelectionStart(int32_t aSelectionStart);
1648    nsresult GetSelectionEnd(int32_t *aSelectionEnd);
1649    nsresult SetSelectionEnd(int32_t aSelectionEnd);
1650    nsresult SetSelectionRange(int32_t selectionStart, int32_t selectionEnd, const nsAString *direction);
1651    nsresult GetSelectionDirection(nsAString *aSelectionDirection);
1652    nsresult SetSelectionDirection(const nsAString *aSelectionDirection);
1653    nsresult GetUseMap(nsAString *aUseMap);
1654    nsresult SetUseMap(const nsAString *aUseMap);
1655    nsresult GetControllers(nsIControllers **aControllers);
1656    nsresult GetTextLength(int32_t *aTextLength);
1657    nsresult MozGetFileNameArray(uint32_t *aLength, PRUnichar ***aFileNames);
1658    nsresult MozSetFileNameArray(const PRUnichar **aFileNames, uint32_t aLength);
1659    nsresult MozIsTextField(bool aExcludePassword, bool *_retval);
1660}
1661
1662[
1663    object,
1664    uuid(c2b3e9ff-6b36-4158-ace3-05a9c5b8e1c1),
1665    local
1666]
1667interface nsIDOMHTMLOptionElement : nsISupports
1668{
1669    nsresult GetDisabled(bool *aDisabled);
1670    nsresult SetDisabled(bool aDisabled);
1671    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1672    nsresult GetLabel(nsAString *aLabel);
1673    nsresult SetLabel(const nsAString *aLabel);
1674    nsresult GetDefaultSelected(bool *aDefaultSelected);
1675    nsresult SetDefaultSelected(bool aDefaultSelected);
1676    nsresult GetSelected(bool *aSelected);
1677    nsresult SetSelected(bool aSelected);
1678    nsresult GetValue(nsAString *aValue);
1679    nsresult SetValue(const nsAString *aValue);
1680    nsresult GetText(nsAString *aText);
1681    nsresult SetText(const nsAString *aText);
1682    nsresult GetIndex(int32_t *aIndex);
1683}
1684
1685[
1686    object,
1687    uuid(44b7a468-7dba-4f0c-9b4e-ee46dc0f26c7),
1688    local
1689]
1690interface nsIDOMHTMLButtonElement : nsISupports
1691{
1692    nsresult GetAutofocus(bool *aAutofocus);
1693    nsresult SetAutofocus(bool aAutofocus);
1694    nsresult GetDisabled(bool *aDisabled);
1695    nsresult SetDisabled(bool aDisabled);
1696    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1697    nsresult GetFormAction(nsAString *aFormAction);
1698    nsresult SetFormAction(const nsAString *aFormAction);
1699    nsresult GetFormEnctype(nsAString *aFormEnctype);
1700    nsresult SetFormEnctype(const nsAString *aFormEnctype);
1701    nsresult GetFormMethod(nsAString *aFormMethod);
1702    nsresult SetFormMethod(const nsAString *aFormMethod);
1703    nsresult GetFormNoValidate(bool *aFormNoValidate);
1704    nsresult SetFormNoValidate(bool aFormNoValidate);
1705    nsresult GetFormTarget(nsAString *aFormTarget);
1706    nsresult SetFormTarget(const nsAString *aFormTarget);
1707    nsresult GetName(nsAString *aName);
1708    nsresult SetName(const nsAString *aName);
1709    nsresult GetType(nsAString *aType);
1710    nsresult SetType(const nsAString *aType);
1711    nsresult GetValue(nsAString *aValue);
1712    nsresult SetValue(const nsAString *aValue);
1713    nsresult GetWillValidate(bool *aWillValidate);
1714    nsresult GetValidity(nsIDOMValidityState **aValidity);
1715    nsresult GetValidationMessage(nsAString *aValidationMessage);
1716    nsresult CheckValidity(bool *_retval);
1717    nsresult SetCustomValidity(const nsAString *error);
1718}
1719
1720[
1721    object,
1722    uuid(4173cc53-30f6-4d12-a770-981ba53164e2),
1723    local
1724]
1725interface nsIDOMHTMLOptionsCollection : nsISupports
1726{
1727    typedef int nsWrapperCache;
1728
1729    nsresult GetLength(uint32_t *aLength);
1730    nsresult SetLength(uint32_t aLength);
1731    nsresult Item(uint32_t index, nsIDOMNode **_retval);
1732    nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
1733    nsresult GetSelectedIndex(int32_t *aSelectedIndex);
1734    nsresult SetSelectedIndex(int32_t aSelectedIndex);
1735    nsresult SetOption(uint32_t index, nsIDOMHTMLOptionElement *option);
1736    nsresult GetSelect(nsIDOMHTMLSelectElement **aSelect);
1737    nsresult Add(nsIDOMHTMLOptionElement *option, nsIVariant *before);
1738    nsresult Remove(int32_t index);
1739}
1740
1741[
1742    object,
1743    uuid(d8914a2d-3556-4b66-911c-a84c4394e7fa),
1744    local
1745]
1746interface nsIDOMHTMLSelectElement : nsISupports
1747{
1748    nsresult GetAutofocus(bool *aAutofocus);
1749    nsresult SetAutofocus(bool aAutofocus);
1750    nsresult GetDisabled(bool *aDisabled);
1751    nsresult SetDisabled(bool aDisabled);
1752    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1753    nsresult GetMultiple(bool *aMultiple);
1754    nsresult SetMultiple(bool aMultiple);
1755    nsresult GetName(nsAString *aName);
1756    nsresult SetName(const nsAString *aName);
1757    nsresult GetSize(uint32_t *aSize);
1758    nsresult SetSize(uint32_t aSize);
1759    nsresult GetType(nsAString *aType);
1760    nsresult GetOptions(nsIDOMHTMLOptionsCollection **aOptions);
1761    nsresult GetLength(uint32_t *aLength);
1762    nsresult SetLength(uint32_t aLength);
1763    nsresult Item(uint32_t index, nsIDOMNode **_retval);
1764    nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
1765    nsresult Add(nsIDOMHTMLElement *element, nsIVariant *before);
1766    nsresult select_Remove(int32_t index);
1767    nsresult GetSelectedOptions(nsIDOMHTMLCollection **aSelectedOptions);
1768    nsresult GetSelectedIndex(int32_t *aSelectedIndex);
1769    nsresult SetSelectedIndex(int32_t aSelectedIndex);
1770    nsresult GetValue(nsAString *aValue);
1771    nsresult SetValue(const nsAString *aValue);
1772    nsresult GetWillValidate(bool *aWillValidate);
1773    nsresult GetValidity(nsIDOMValidityState **aValidity);
1774    nsresult GetValidationMessage(nsAString *aValidationMessage);
1775    nsresult CheckValidity(bool *_retval);
1776    nsresult SetCustomValidity(const nsAString *error);
1777    nsresult GetRequired(bool *aRequired);
1778    nsresult SetRequired(bool aRequired);
1779}
1780
1781[
1782    object,
1783    uuid(7a4aeb2e-fcf3-443e-b002-ca1c8ea322e9),
1784    local
1785]
1786interface nsIDOMHTMLTextAreaElement : nsISupports
1787{
1788    nsresult GetAutofocus(bool *aAutofocus);
1789    nsresult SetAutofocus(bool aAutofocus);
1790    nsresult GetCols(uint32_t *aCols);
1791    nsresult SetCols(uint32_t aCols);
1792    nsresult GetDisabled(bool *aDisabled);
1793    nsresult SetDisabled(bool aDisabled);
1794    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
1795    nsresult GetMaxLength(int32_t *aMaxLength);
1796    nsresult SetMaxLength(int32_t aMaxLength);
1797    nsresult GetName(nsAString *aName);
1798    nsresult SetName(const nsAString *aName);
1799    nsresult GetPlaceholder(nsAString *aPlaceholder);
1800    nsresult SetPlaceholder(const nsAString *aPlaceholder);
1801    nsresult GetReadOnly(bool *aReadOnly);
1802    nsresult SetReadOnly(bool aReadOnly);
1803    nsresult GetRequired(bool *aRequired);
1804    nsresult SetRequired(bool aRequired);
1805    nsresult GetRows(uint32_t *aRows);
1806    nsresult SetRows(uint32_t aRows);
1807    nsresult GetWrap(nsAString *aWrap);
1808    nsresult SetWrap(const nsAString *aWrap);
1809    nsresult GetType(nsAString *aType);
1810    nsresult GetDefaultValue(nsAString *aDefaultValue);
1811    nsresult SetDefaultValue(const nsAString *aDefaultValue);
1812    nsresult GetValue(nsAString *aValue);
1813    nsresult SetValue(const nsAString *aValue);
1814    nsresult GetTextLength(int32_t *aTextLength);
1815    nsresult GetWillValidate(bool *aWillValidate);
1816    nsresult GetValidity(nsIDOMValidityState **aValidity);
1817    nsresult GetValidationMessage(nsAString *aValidationMessage);
1818    nsresult CheckValidity(bool *_retval);
1819    nsresult SetCustomValidity(const nsAString *error);
1820    nsresult Select();
1821    nsresult GetSelectionStart(int32_t *aSelectionStart);
1822    nsresult SetSelectionStart(int32_t aSelectionStart);
1823    nsresult GetSelectionEnd(int32_t *aSelectionEnd);
1824    nsresult SetSelectionEnd(int32_t aSelectionEnd);
1825    nsresult SetSelectionRange(int32_t selectionStart, int32_t selectionEnd, const nsAString *direction);
1826    nsresult GetSelectionDirection(nsAString *aSelectionDirection);
1827    nsresult SetSelectionDirection(const nsAString *aSelectionDirection);
1828    nsresult GetControllers(nsIControllers **aControllers);
1829}
1830
1831[
1832    object,
1833    uuid(fe96dc1c-40e4-4974-9354-e3fce663c3d5),
1834    local
1835]
1836interface nsIDOMHTMLScriptElement : nsISupports
1837{
1838    nsresult GetSrc(nsAString *aSrc);
1839    nsresult SetSrc(const nsAString *aSrc);
1840    nsresult GetAsync(bool *aAsync);
1841    nsresult SetAsync(bool aAsync);
1842    nsresult GetDefer(bool *aDefer);
1843    nsresult SetDefer(bool aDefer);
1844    nsresult GetType(nsAString *aType);
1845    nsresult SetType(const nsAString *aType);
1846    nsresult GetCharset(nsAString *aCharset);
1847    nsresult SetCharset(const nsAString *aCharset);
1848    nsresult GetText(nsAString *aText);
1849    nsresult SetText(const nsAString *aText);
1850    nsresult GetHtmlFor(nsAString *aHtmlFor);
1851    nsresult SetHtmlFor(const nsAString *aHtmlFor);
1852    nsresult GetEvent(nsAString *aEvent);
1853    nsresult SetEvent(const nsAString *aEvent);
1854}
1855
1856[
1857    object,
1858    uuid(ec18e71c-4f5c-4cc3-aa36-5273168644dc),
1859    local
1860]
1861interface nsIDOMHTMLImageElement : nsISupports
1862{
1863    nsresult GetAlt(nsAString *aAlt);
1864    nsresult SetAlt(const nsAString *aAlt);
1865    nsresult GetSrc(nsAString *aSrc);
1866    nsresult SetSrc(const nsAString *aSrc);
1867    nsresult GetSrcset(nsAString *aSrcset);
1868    nsresult SetSrcset(const nsAString *aSrcset) ;
1869    nsresult GetSizes(nsAString *aSizes);
1870    nsresult SetSizes(const nsAString *aSizes);
1871    nsresult GetUseMap(nsAString *aUseMap);
1872    nsresult SetUseMap(const nsAString *aUseMap);
1873    nsresult GetIsMap(bool *aIsMap);
1874    nsresult SetIsMap(bool aIsMap);
1875    nsresult GetWidth(uint32_t *aWidth);
1876    nsresult SetWidth(uint32_t aWidth);
1877    nsresult GetHeight(uint32_t *aHeight);
1878    nsresult SetHeight(uint32_t aHeight);
1879    nsresult GetNaturalWidth(uint32_t *aNaturalWidth);
1880    nsresult GetNaturalHeight(uint32_t *aNaturalHeight);
1881    nsresult GetComplete(bool *aComplete);
1882    nsresult GetName(nsAString *aName);
1883    nsresult SetName(const nsAString *aName);
1884    nsresult GetAlign(nsAString *aAlign);
1885    nsresult SetAlign(const nsAString *aAlign);
1886    nsresult GetBorder(nsAString *aBorder);
1887    nsresult SetBorder(const nsAString *aBorder);
1888    nsresult GetHspace(int32_t *aHspace);
1889    nsresult SetHspace(int32_t aHspace);
1890    nsresult GetLongDesc(nsAString *aLongDesc);
1891    nsresult SetLongDesc(const nsAString *aLongDesc);
1892    nsresult GetVspace(int32_t *aVspace);
1893    nsresult SetVspace(int32_t aVspace);
1894    nsresult GetLowsrc(nsAString *aLowsrc);
1895    nsresult SetLowsrc(const nsAString *aLowsrc);
1896    nsresult GetCurrentSrc(nsAString *aCurrentSrc);
1897    nsresult GetX(int32_t *aX);
1898    nsresult GetY(int32_t *aY);
1899}
1900
1901[
1902    object,
1903    uuid(339c01c8-2d41-4626-b231-eec63f0241b6),
1904    local
1905]
1906interface nsIDOMHTMLAnchorElement : nsISupports
1907{
1908    nsresult GetHref(nsAString *aHref);
1909    nsresult SetHref(const nsAString *aHref);
1910    nsresult GetTarget(nsAString *aTarget);
1911    nsresult SetTarget(const nsAString *aTarget);
1912    nsresult GetPing(nsAString *aPing);
1913    nsresult SetPing(const nsAString *aPing);
1914    nsresult GetDownload(nsAString *aPing);
1915    nsresult SetDownload(const nsAString *aPing);
1916    nsresult GetRel(nsAString *aRel);
1917    nsresult SetRel(const nsAString *aRel);
1918    nsresult GetHreflang(nsAString *aHreflang);
1919    nsresult SetHreflang(const nsAString *aHreflang);
1920    nsresult GetType(nsAString *aType);
1921    nsresult SetType(const nsAString *aType);
1922    nsresult GetText(nsAString *aText);
1923    nsresult SetText(const nsAString *aText);
1924    nsresult GetProtocol(nsAString *aProtocol);
1925    nsresult SetProtocol(const nsAString *aProtocol);
1926    nsresult GetHost(nsAString *aHost);
1927    nsresult SetHost(const nsAString *aHost);
1928    nsresult GetHostname(nsAString *aHostname);
1929    nsresult SetHostname(const nsAString *aHostname);
1930    nsresult GetPort(nsAString *aPort);
1931    nsresult SetPort(const nsAString *aPort);
1932    nsresult GetPathname(nsAString *aPathname);
1933    nsresult SetPathname(const nsAString *aPathname);
1934    nsresult GetSearch(nsAString *aSearch);
1935    nsresult SetSearch(const nsAString *aSearch);
1936    nsresult GetHash(nsAString *aHash);
1937    nsresult SetHash(const nsAString *aHash);
1938    nsresult GetCharset(nsAString *aCharset);
1939    nsresult SetCharset(const nsAString *aCharset);
1940    nsresult GetCoords(nsAString *aCoords);
1941    nsresult SetCoords(const nsAString *aCoords);
1942    nsresult GetName(nsAString *aName);
1943    nsresult SetName(const nsAString *aName);
1944    nsresult GetRev(nsAString *aRev);
1945    nsresult SetRev(const nsAString *aRev);
1946    nsresult GetShape(nsAString *aShape);
1947    nsresult SetShape(const nsAString *aShape);
1948    nsresult ToString(nsAString *_retval);
1949}
1950
1951[
1952    object,
1953    uuid(40c78026-36dc-40ca-9221-de73267e9e99),
1954    local
1955]
1956interface nsIDOMHTMLAreaElement : nsISupports
1957{
1958    nsresult GetAlt(const nsAString *aAlt);
1959    nsresult SetAlt(nsAString *aAlt);
1960    nsresult GetCoords(const nsAString *aCoords);
1961    nsresult SetCoords(nsAString *aCoords);
1962    nsresult GetShape(const nsAString *aShape);
1963    nsresult SetShape(nsAString *aShape);
1964    nsresult GetHref(const nsAString *aHref);
1965    nsresult SetHref(nsAString *aHref);
1966    nsresult GetTarget(const nsAString *aTarget);
1967    nsresult SetTarget(nsAString *aTarget);
1968    nsresult GetPing(const nsAString *aPing);
1969    nsresult SetPing(nsAString *aPing);
1970    nsresult GetDownload(const nsAString *aDownload);
1971    nsresult SetDownload(nsAString *aDownload);
1972    nsresult GetProtocol(const nsAString *aProtocol);
1973    nsresult SetProtocol(nsAString *aProtocol);
1974    nsresult GetHost(const nsAString *aHost);
1975    nsresult SetHost(nsAString *aHost);
1976    nsresult GetPort(const nsAString *aPort);
1977    nsresult SetPort(nsAString *aPort);
1978    nsresult GetPathname(const nsAString *aPathname);
1979    nsresult SetPathname(nsAString *aPathname);
1980    nsresult GetSearch(const nsAString *aSearch);
1981    nsresult SetSearch(nsAString *aSearch);
1982    nsresult GetHash(const nsAString *aHash);
1983    nsresult SetHash(nsAString *aHash);
1984    nsresult GetNoHref(const nsAString *aNoHref);
1985    nsresult SetNoHref(nsAString *aNoHref);
1986    nsresult ToString(nsAString *_retval);
1987}
1988
1989[
1990    object,
1991    uuid(ee50b7ab-0015-4fbe-89e0-e3feacd4ffde),
1992    local
1993]
1994interface nsIDOMHTMLLinkElement : nsISupports
1995{
1996    nsresult GetDisabled(bool *aDisabled);
1997    nsresult SetDisabled(bool aDisabled);
1998    nsresult GetCharset(nsAString *aCharset);
1999    nsresult SetCharset(const nsAString *aCharset);
2000    nsresult GetHref(nsAString *aHref);
2001    nsresult SetHref(const nsAString *aHref);
2002    nsresult GetHreflang(nsAString *aHreflang);
2003    nsresult SetHreflang(const nsAString *aHreflang);
2004    nsresult GetMedia(nsAString *aMedia);
2005    nsresult SetMedia(const nsAString *aMedia);
2006    nsresult GetRel(nsAString *aRel);
2007    nsresult SetRel(const nsAString *aRel);
2008    nsresult GetRev(nsAString *aRev);
2009    nsresult SetRev(const nsAString *aRev);
2010    nsresult GetTarget(nsAString *aTarget);
2011    nsresult SetTarget(const nsAString *aTarget);
2012    nsresult GetType(nsAString *aType);
2013    nsresult SetType(const nsAString *aType);
2014}
2015
2016[
2017    object,
2018    uuid(135a30ee-0374-4ee7-9d36-91736bff5fb1),
2019    local
2020]
2021interface nsIDOMHTMLTableElement : nsISupports
2022{
2023    nsresult GetCaption(nsIDOMHTMLElement **aCaption);
2024    nsresult SetCaption(nsIDOMHTMLElement *aCaption);
2025    nsresult GetTHead(nsIDOMHTMLElement **aTHead);
2026    nsresult SetTHead(nsIDOMHTMLElement *aTHead);
2027    nsresult GetTFoot(nsIDOMHTMLElement **aTFoot);
2028    nsresult SetTFoot(nsIDOMHTMLElement *aTFoot);
2029    nsresult GetRows(nsIDOMHTMLCollection **aRows);
2030    nsresult GetTBodies(nsIDOMHTMLCollection **aTBodies);
2031    nsresult GetAlign(nsAString *aAlign);
2032    nsresult SetAlign(const nsAString *aAlign);
2033    nsresult GetBgColor(nsAString *aBgColor);
2034    nsresult SetBgColor(const nsAString *aBgColor);
2035    nsresult GetBorder(nsAString *aBorder);
2036    nsresult SetBorder(const nsAString *aBorder);
2037    nsresult GetCellPadding(nsAString *aCellPadding);
2038    nsresult SetCellPadding(const nsAString *aCellPadding);
2039    nsresult GetCellSpacing(nsAString *aCellSpacing);
2040    nsresult SetCellSpacing(const nsAString *aCellSpacing);
2041    nsresult GetFrame(nsAString *aFrame);
2042    nsresult SetFrame(const nsAString *aFrame);
2043    nsresult GetRules(nsAString *aRules);
2044    nsresult SetRules(const nsAString *aRules);
2045    nsresult GetSummary(nsAString *aSummary);
2046    nsresult SetSummary(const nsAString *aSummary);
2047    nsresult GetWidth(nsAString *aWidth);
2048    nsresult SetWidth(const nsAString *aWidth);
2049    nsresult CreateTHead(nsIDOMHTMLElement **_retval);
2050    nsresult xpidlDeleteTHead();
2051    nsresult CreateTFoot(nsIDOMHTMLElement **_retval);
2052    nsresult xpidlDeleteTFoot();
2053    nsresult CreateCaption(nsIDOMHTMLElement **_retval);
2054    nsresult xpidlDeleteCaption();
2055    nsresult InsertRow(int32_t index, nsIDOMHTMLElement **_retval);
2056    nsresult DeleteRow(int32_t index);
2057}
2058
2059[
2060    object,
2061    uuid(02094366-0d3d-47e3-949c-89113a9bcc15),
2062    local
2063]
2064interface nsIDOMHTMLTableRowElement : nsISupports
2065{
2066    nsresult GetRowIndex(int32_t *aRowIndex);
2067    nsresult GetSectionRowIndex(int32_t *aSectionRowIndex);
2068    nsresult GetCells(nsIDOMHTMLCollection **aCells);
2069    nsresult GetAlign(nsAString *aAlign);
2070    nsresult SetAlign(const nsAString *aAlign);
2071    nsresult GetBgColor(nsAString *aBgColor);
2072    nsresult SetBgColor(const nsAString *aBgColor);
2073    nsresult GetCh(nsAString *aCh);
2074    nsresult SetCh(const nsAString *aCh);
2075    nsresult GetChOff(nsAString *aChOff);
2076    nsresult SetChOff(const nsAString *aChOff);
2077    nsresult GetVAlign(nsAString *aVAlign);
2078    nsresult SetVAlign(const nsAString *aVAlign);
2079    nsresult InsertCell(int32_t index, nsIDOMHTMLElement * *_retval);
2080    nsresult DeleteCell(int32_t index);
2081}
2082
2083[
2084    object,
2085    uuid(3203c36f-33fd-4628-8c88-77e82d38df1e),
2086    local
2087]
2088interface nsIDOMHTMLTableCellElement : nsISupports
2089{
2090    nsresult GetCellIndex(int32_t *aCellIndex);
2091    nsresult GetAbbr(nsAString *aAbbr);
2092    nsresult SetAbbr(const nsAString *aAbbr);
2093    nsresult GetAlign(nsAString *aAlign);
2094    nsresult SetAlign(const nsAString *aAlign);
2095    nsresult GetAxis(nsAString *aAxis);
2096    nsresult SetAxis(const nsAString *aAxis);
2097    nsresult GetBgColor(nsAString *aBgColor);
2098    nsresult SetBgColor(const nsAString *aBgColor);
2099    nsresult GetCh(nsAString *aCh);
2100    nsresult SetCh(const nsAString *aCh);
2101    nsresult GetChOff(nsAString *aChOff);
2102    nsresult SetChOff(const nsAString *aChOff);
2103    nsresult GetColSpan(int32_t *aColSpan);
2104    nsresult SetColSpan(int32_t aColSpan);
2105    nsresult GetHeaders(nsAString *aHeaders);
2106    nsresult SetHeaders(const nsAString *aHeaders);
2107    nsresult GetHeight(nsAString *aHeight);
2108    nsresult SetHeight(const nsAString *aHeight);
2109    nsresult GetNoWrap(bool *aNoWrap);
2110    nsresult SetNoWrap(bool aNoWrap);
2111    nsresult GetRowSpan(int32_t *aRowSpan);
2112    nsresult SetRowSpan(int32_t aRowSpan);
2113    nsresult GetScope(nsAString *aScope);
2114    nsresult SetScope(const nsAString *aScope);
2115    nsresult GetVAlign(nsAString *aVAlign);
2116    nsresult SetVAlign(const nsAString *aVAlign);
2117    nsresult GetWidth(nsAString *aWidth);
2118    nsresult SetWidth(const nsAString *aWidth);
2119}
2120
2121[
2122    object,
2123    uuid(9fd7b656-1055-4cb2-b8b1-ed13efe24457),
2124    local
2125]
2126interface nsIDOMHTMLIFrameElement : nsISupports
2127{
2128    nsresult GetAlign(nsAString *aAlign);
2129    nsresult SetAlign(const nsAString *aAlign);
2130    nsresult GetFrameBorder(nsAString *aFrameBorder);
2131    nsresult SetFrameBorder(const nsAString *aFrameBorder);
2132    nsresult GetHeight(nsAString *aHeight);
2133    nsresult SetHeight(const nsAString *aHeight);
2134    nsresult GetLongDesc(nsAString *aLongDesc);
2135    nsresult SetLongDesc(const nsAString *aLongDesc);
2136    nsresult GetMarginHeight(nsAString *aMarginHeight);
2137    nsresult SetMarginHeight(const nsAString *aMarginHeight);
2138    nsresult GetMarginWidth(nsAString *aMarginWidth);
2139    nsresult SetMarginWidth(const nsAString *aMarginWidth);
2140    nsresult GetName(nsAString *aName);
2141    nsresult SetName(const nsAString *aName);
2142    nsresult GetScrolling(nsAString *aScrolling);
2143    nsresult SetScrolling(const nsAString *aScrolling);
2144    nsresult GetSrc(nsAString *aSrc);
2145    nsresult SetSrc(const nsAString *aSrc);
2146    nsresult GetSrcdoc(nsAString *aSrcdoc);
2147    nsresult SetSrcdoc(const nsAString *aSrcdoc);
2148    nsresult GetWidth(nsAString *aWidth);
2149    nsresult SetWidth(const nsAString *aWidth);
2150    nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2151    nsresult GetContentWindow(nsIDOMWindow **aContentWindow);
2152    nsresult GetAllowFullscreen(bool *aAllowFullscreen);
2153    nsresult SetAllowFullscreen(bool aAllowFullscreen);
2154}
2155
2156[
2157    object,
2158    uuid(60ab25b9-3246-4f50-b0d4-21e73ba88cd6),
2159    local
2160]
2161interface nsIDOMHTMLFrameElement : nsISupports
2162{
2163    nsresult GetFrameBorder(nsAString *aFrameBorder);
2164    nsresult SetFrameBorder(const nsAString *aFrameBorder);
2165    nsresult GetLongDesc(nsAString *aLongDesc);
2166    nsresult SetLongDesc(const nsAString *aLongDesc);
2167    nsresult GetMarginHeight(nsAString *aMarginHeight);
2168    nsresult SetMarginHeight(const nsAString *aMarginHeight);
2169    nsresult GetMarginWidth(nsAString *aMarginWidth);
2170    nsresult SetMarginWidth(const nsAString *aMarginWidth);
2171    nsresult GetName(nsAString *aName);
2172    nsresult SetName(const nsAString *aName);
2173    nsresult GetNoResize(bool *aNoResize);
2174    nsresult SetNoResize(bool aNoResize);
2175    nsresult GetScrolling(nsAString *aScrolling);
2176    nsresult SetScrolling(const nsAString *aScrolling);
2177    nsresult GetSrc(nsAString *aSrc);
2178    nsresult SetSrc(const nsAString *aSrc);
2179    nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2180    nsresult GetContentWindow(nsIDOMWindow **aContentWindow);
2181}
2182
2183[
2184    object,
2185    uuid(baf443d2-da5d-40c9-be3c-c65a69a25250),
2186    local
2187]
2188interface nsIDOMHTMLObjectElement : nsISupports
2189{
2190    nsresult GetForm(nsIDOMHTMLFormElement **aForm);
2191    nsresult GetCode(nsAString *aCode);
2192    nsresult SetCode(const nsAString *aCode);
2193    nsresult GetAlign(nsAString *aAlign);
2194    nsresult SetAlign(const nsAString *aAlign);
2195    nsresult GetArchive(nsAString *aArchive);
2196    nsresult SetArchive(const nsAString *aArchive);
2197    nsresult GetBorder(nsAString *aBorder);
2198    nsresult SetBorder(const nsAString *aBorder);
2199    nsresult GetCodeBase(nsAString *aCodeBase);
2200    nsresult SetCodeBase(const nsAString *aCodeBase);
2201    nsresult GetCodeType(nsAString *aCodeType);
2202    nsresult SetCodeType(const nsAString *aCodeType);
2203    nsresult GetData(nsAString *aData);
2204    nsresult SetData(const nsAString *aData);
2205    nsresult GetDeclare(bool *aDeclare);
2206    nsresult SetDeclare(bool aDeclare);
2207    nsresult GetHeight(nsAString *aHeight);
2208    nsresult SetHeight(const nsAString *aHeight);
2209    nsresult GetHspace(int32_t *aHspace);
2210    nsresult SetHspace(int32_t aHspace);
2211    nsresult GetName(nsAString *aName);
2212    nsresult SetName(const nsAString *aName);
2213    nsresult GetStandby(nsAString *aStandby);
2214    nsresult SetStandby(const nsAString *aStandby);
2215    nsresult GetType(nsAString *aType);
2216    nsresult SetType(const nsAString *aType);
2217    nsresult GetUseMap(nsAString *aUseMap);
2218    nsresult SetUseMap(const nsAString *aUseMap);
2219    nsresult GetVspace(int32_t *aVspace);
2220    nsresult SetVspace(int32_t aVspace);
2221    nsresult GetWidth(nsAString *aWidth);
2222    nsresult SetWidth(const nsAString *aWidth);
2223    nsresult GetContentDocument(nsIDOMDocument **aContentDocument);
2224    nsresult GetWillValidate(bool *aWillValidate);
2225    nsresult GetValidity(nsIDOMValidityState **aValidity);
2226    nsresult GetValidationMessage(nsAString *aValidationMessage);
2227    nsresult CheckValidity(bool *_retval);
2228    nsresult SetCustomValidity(const nsAString *error);
2229}
2230
2231[
2232    object,
2233    uuid(fa326d22-8739-4eef-a80e-6449bde605d2),
2234    local
2235]
2236interface nsIDOMHTMLStyleElement : nsISupports
2237{
2238    nsresult GetDisabled(bool *aDisabled);
2239    nsresult SetDisabled(bool aDisabled);
2240    nsresult GetMedia(nsAString *aMedia);
2241    nsresult SetMedia(const nsAString *aMedia);
2242    nsresult GetType(nsAString *aType);
2243    nsresult SetType(const nsAString *aType);
2244    nsresult GetScoped(bool *aScoped);
2245    nsresult SetScoped(bool aScoped);
2246    nsresult GetDOMStyleSheet(nsIDOMStyleSheet **aDOMStyleSheet);
2247}
2248
2249[
2250    object,
2251    uuid(10a28f38-32e8-4c63-8aa1-12eaaebc369a),
2252    local
2253]
2254interface nsIURIContentListener : nsISupports
2255{
2256    nsresult OnStartURIOpen(nsIURI *aURI, bool *_retval);
2257    nsresult DoContent(const nsACString *aContentType, bool aIsContentPreferred, nsIRequest *aRequest,
2258        nsIStreamListener **aContentHandler, bool *_retval);
2259    nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, bool *_retval);
2260    nsresult CanHandleContent(const char *aContentType, bool aIsContentPreferred,
2261        char **aDesiredContentType, bool *_retval);
2262    nsresult GetLoadCookie(nsISupports **aLoadCookie);
2263    nsresult SetLoadCookie(nsISupports *aLoadCookie);
2264    nsresult GetParentContentListener(nsIURIContentListener **aParentContentListener);
2265    nsresult SetParentContentListener(nsIURIContentListener *aParentContentListener);
2266}
2267
2268[
2269    object,
2270    uuid(44b78386-1dd2-11b2-9ad2-e4eee2ca1916),
2271    local
2272]
2273interface nsITooltipListener : nsISupports
2274{
2275    nsresult OnShowTooltip(int32_t aXCoords, int32_t aYCoords, const PRUnichar *aTipText);
2276    nsresult OnHideTooltip();
2277}
2278
2279[
2280    object,
2281    uuid(33e9d001-caab-4ba9-8961-54902f197202),
2282    local
2283]
2284interface nsIWebBrowser : nsISupports
2285{
2286    nsresult AddWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
2287    nsresult RemoveWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
2288    nsresult GetContainerWindow(nsIWebBrowserChrome **aContainerWindow);
2289    nsresult SetContainerWindow(nsIWebBrowserChrome *aContainerWindow);
2290    nsresult GetParentURIContentListener(nsIURIContentListener **aParentURIContentListener);
2291    nsresult SetParentURIContentListener(nsIURIContentListener *aParentURIContentListener);
2292    nsresult GetContentDOMWindow(nsIDOMWindow **aContentDOMWindow);
2293    nsresult GetIsActive(bool *aIsActive);
2294    nsresult SetIsActive(bool aIsActive);
2295}
2296
2297cpp_quote("#define SETUP_ALLOW_JAVASCRIPT  2")
2298cpp_quote("#define SETUP_IS_CHROME_WRAPPER 7")
2299cpp_quote("#define SETUP_DISABLE_NOSCRIPT  16")
2300
2301[
2302    object,
2303    uuid(f15398a0-8018-11d3-af70-00a024ffc08c),
2304    local
2305]
2306interface nsIWebBrowserSetup : nsISupports
2307{
2308    nsresult SetProperty(uint32_t aId, uint32_t aValue);
2309}
2310
2311typedef void* nativeWindow;
2312
2313[
2314    object,
2315    uuid(9da319f3-eee6-4504-81a5-6A19cf6215bf),
2316    local
2317]
2318interface nsIBaseWindow : nsISupports
2319{
2320    nsresult InitWindow(nativeWindow parentNativeWindow, nsIWidget *parentWidget, int32_t x,
2321            int32_t y, int32_t cx, int32_t cy);
2322    nsresult Create();
2323    nsresult Destroy();
2324    nsresult SetPosition(int32_t x, int32_t y);
2325    nsresult GetPosition(int32_t *x, int32_t *y);
2326    nsresult SetSize(int32_t cx, int32_t cy, bool fRepaint);
2327    nsresult GetSize(int32_t *cx, int32_t *cy);
2328    nsresult SetPositionAndSize(int32_t x, int32_t y, int32_t cx, int32_t cy, bool fRepaint);
2329    nsresult GetPositionAndSize(int32_t *x, int32_t *y, int32_t *cx, int32_t *cy);
2330    nsresult Repaint(bool force);
2331    nsresult GetParentWidget(nsIWidget **aParentWidget);
2332    nsresult SetParentWidget(nsIWidget *aParentWidget);
2333    nsresult GetParentNativeWindow(nativeWindow *aParentNativeWindow);
2334    nsresult SetParentNativeWindow(nativeWindow aParentNativeWindow);
2335    nsresult GetNativeHandle(nsAString *aNativeHandle);
2336    nsresult GetVisibility(bool *aVisibility);
2337    nsresult SetVisibility(bool aVisibility);
2338    nsresult GetEnabled(bool *aEnabled);
2339    nsresult SetEnabled(bool aEnabled);
2340    nsresult GetMainWidget(nsIWidget **aMainWidget);
2341    nsresult GetUnscaledDevicePixelsPerCSSPixel(double *aUnscaledDevicePixelsPerCSSPixel);
2342    nsresult SetFocus();
2343    nsresult GetTitle(PRUnichar **aTitle);
2344    nsresult SetTitle(const PRUnichar *aTitle);
2345}
2346
2347[
2348    object,
2349    uuid(0e92d522-53a5-4af6-9a24-4eccdcbf4f91),
2350    local
2351]
2352interface nsIWebNavigation : nsISupports
2353{
2354    const UINT LOAD_FLAGS_MASK                    =  0xffff;
2355    const UINT LOAD_FLAGS_NONE                    =       0;
2356    const UINT LOAD_FLAGS_IS_REFRESH              =  0x0010;
2357    const UINT LOAD_FLAGS_IS_LINK                 =  0x0020;
2358    const UINT LOAD_FLAGS_BYPASS_HISTORY          =  0x0040;
2359    const UINT LOAD_FLAGS_REPLACE_HISTORY         =  0x0080;
2360    const UINT LOAD_FLAGS_BYPASS_CACHE            =  0x0100;
2361    const UINT LOAD_FLAGS_BYPASS_PROXY            =  0x0200;
2362    const UINT LOAD_FLAGS_CHARSET_CHANGE          =  0x0400;
2363    const UINT LOAD_FLAGS_STOP_CONTENT            =  0x0800;
2364    const UINT LOAD_FLAGS_FROM_EXTERNAL           =  0x1000;
2365    const UINT LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP =  0x2000;
2366    const UINT LOAD_FLAGS_FIRST_LOAD              =  0x4000;
2367    const UINT LOAD_FLAGS_ALLOW_POPUPS            =  0x8000;
2368    const UINT LOAD_FLAGS_BYPASS_CLASSIFIER       = 0x10000;
2369    const UINT LOAD_FLAGS_FORCE_ALLOW_COOKIES     = 0x20000;
2370    const UINT LOAD_FLAGS_DISALLOW_INHERIT_OWNER  = 0x40000;
2371
2372    nsresult GetCanGoBack(bool *aCanGoBack);
2373    nsresult GetCanGoForward(bool *aCanGoForward);
2374    nsresult GoBack();
2375    nsresult GoForward();
2376    nsresult GotoIndex(int32_t index);
2377    nsresult LoadURI(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer,
2378            nsIInputStream *aPostData, nsIInputStream *aHeaders);
2379    nsresult LoadURIWithOptions(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, uint32_t aReferrerPolicy,
2380            nsIInputStream *aPostData, nsIInputStream *aHeaders, nsIURI *aBaseURI);
2381    nsresult Reload(uint32_t aReloadFlags);
2382    nsresult Stop(uint32_t aStopFlags);
2383    nsresult GetDocument(nsIDOMDocument **aDocument);
2384    nsresult GetCurrentURI(nsIURI **aCurrentURI);
2385    nsresult GetReferringURI(nsIURI **aReferringURI);
2386    nsresult GetSessionHistory(nsISHistory **aSessionHistory);
2387    nsresult SetSessionHistory(nsISHistory *aSessionHistory);
2388}
2389
2390[
2391    object,
2392    uuid(bd0efb3b-1c81-4fb0-b16d-576a2be48a95),
2393    local
2394]
2395interface nsIWebProgress : nsISupports
2396{
2397    nsresult AddProgressListener(nsIWebProgressListener *aListener, uint32_t aNotifyMask);
2398    nsresult RemoveProgressListener(nsIWebProgressListener *aListener);
2399    nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow);
2400    nsresult GetDOMWindowID(uint64_t *aDOMWindowID);
2401    nsresult GetIsTopLevel(bool *aIsTopLevel);
2402    nsresult GetIsLoadingDocument(bool *aIsLoadingDocument);
2403    nsresult GetLoadType(uint32_t *aLoadType);
2404}
2405
2406[
2407    object,
2408    uuid(1bcfc611-8941-4c39-9e06-7116e564a1ce),
2409    local
2410]
2411interface nsIPrintSettings : nsISupports
2412{
2413    typedef struct { char dummy; } nsIntMargin;
2414
2415    nsresult SetPrintOptions(int32_t aType, bool aTurnOnOff);
2416    nsresult GetPrintOptions(int32_t aType, bool *_retval);
2417    nsresult GetPrintOptionsBits(int32_t *_retval);
2418    nsresult GetEffectivePageSize(double *aWidth, double *aHeight);
2419    nsresult Clone(nsIPrintSettings **_retval);
2420    nsresult Assign(nsIPrintSettings *aPS);
2421    nsresult GetPrintSession(nsIPrintSession **aPrintSession);
2422    nsresult SetPrintSession(nsIPrintSession *aPrintSession);
2423    nsresult GetStartPageRange(int32_t *aStartPageRange);
2424    nsresult SetStartPageRange(int32_t aStartPageRange);
2425    nsresult GetEndPageRange(int32_t *aEndPageRange);
2426    nsresult SetEndPageRange(int32_t aEndPageRange);
2427    nsresult GetEdgeTop(double *aEdgeTop);
2428    nsresult SetEdgeTop(double aEdgeTop);
2429    nsresult GetEdgeLeft(double *aEdgeLeft);
2430    nsresult SetEdgeLeft(double aEdgeLeft);
2431    nsresult GetEdgeBottom(double *aEdgeBottom);
2432    nsresult SetEdgeBottom(double aEdgeBottom);
2433    nsresult GetEdgeRight(double *aEdgeRight);
2434    nsresult SetEdgeRight(double aEdgeRight);
2435    nsresult GetMarginTop(double *aMarginTop);
2436    nsresult SetMarginTop(double aMarginTop);
2437    nsresult GetMarginLeft(double *aMarginLeft);
2438    nsresult SetMarginLeft(double aMarginLeft);
2439    nsresult GetMarginBottom(double *aMarginBottom);
2440    nsresult SetMarginBottom(double aMarginBottom);
2441    nsresult GetMarginRight(double *aMarginRight);
2442    nsresult SetMarginRight(double aMarginRight);
2443    nsresult GetUnwriteableMarginTop(double *aUnwriteableMarginTop);
2444    nsresult SetUnwriteableMarginTop(double aUnwriteableMarginTop);
2445    nsresult GetUnwriteableMarginLeft(double *aUnwriteableMarginLeft);
2446    nsresult SetUnwriteableMarginLeft(double aUnwriteableMarginLeft);
2447    nsresult GetUnwriteableMarginBottom(double *aUnwriteableMarginBottom);
2448    nsresult SetUnwriteableMarginBottom(double aUnwriteableMarginBottom);
2449    nsresult GetUnwriteableMarginRight(double *aUnwriteableMarginRight);
2450    nsresult SetUnwriteableMarginRight(double aUnwriteableMarginRight);
2451    nsresult GetScaling(double *aScaling);
2452    nsresult SetScaling(double aScaling);
2453    nsresult GetPrintBGColors(bool *aPrintBGColors);
2454    nsresult SetPrintBGColors(bool aPrintBGColors);
2455    nsresult GetPrintBGImages(bool *aPrintBGImages);
2456    nsresult SetPrintBGImages(bool aPrintBGImages);
2457    nsresult GetPrintRange(int16_t *aPrintRange);
2458    nsresult SetPrintRange(int16_t aPrintRange);
2459    nsresult GetTitle(PRUnichar **aTitle);
2460    nsresult SetTitle(const PRUnichar *aTitle);
2461    nsresult GetDocURL(PRUnichar **aDocURL);
2462    nsresult SetDocURL(const PRUnichar *aDocURL);
2463    nsresult GetHeaderStrLeft(PRUnichar **aHeaderStrLeft);
2464    nsresult SetHeaderStrLeft(const PRUnichar *aHeaderStrLeft);
2465    nsresult GetHeaderStrCenter(PRUnichar **aHeaderStrCenter);
2466    nsresult SetHeaderStrCenter(const PRUnichar *aHeaderStrCenter);
2467    nsresult GetHeaderStrRight(PRUnichar **aHeaderStrRight);
2468    nsresult SetHeaderStrRight(const PRUnichar *aHeaderStrRight);
2469    nsresult GetFooterStrLeft(PRUnichar **aFooterStrLeft);
2470    nsresult SetFooterStrLeft(const PRUnichar *aFooterStrLeft);
2471    nsresult GetFooterStrCenter(PRUnichar **aFooterStrCenter);
2472    nsresult SetFooterStrCenter(const PRUnichar *aFooterStrCenter);
2473    nsresult GetFooterStrRight(PRUnichar **aFooterStrRight);
2474    nsresult SetFooterStrRight(const PRUnichar *aFooterStrRight);
2475    nsresult GetHowToEnableFrameUI(int16_t *aHowToEnableFrameUI);
2476    nsresult SetHowToEnableFrameUI(int16_t aHowToEnableFrameUI);
2477    nsresult GetIsCancelled(bool *aIsCancelled);
2478    nsresult SetIsCancelled(bool aIsCancelled);
2479    nsresult GetPrintFrameTypeUsage(int16_t *aPrintFrameTypeUsage);
2480    nsresult SetPrintFrameTypeUsage(int16_t aPrintFrameTypeUsage);
2481    nsresult GetPrintFrameType(int16_t *aPrintFrameType);
2482    nsresult SetPrintFrameType(int16_t aPrintFrameType);
2483    nsresult GetPrintSilent(bool *aPrintSilent);
2484    nsresult SetPrintSilent(bool aPrintSilent);
2485    nsresult GetShrinkToFit(bool *aShrinkToFit);
2486    nsresult SetShrinkToFit(bool aShrinkToFit);
2487    nsresult GetShowPrintProgress(bool *aShowPrintProgress);
2488    nsresult SetShowPrintProgress(bool aShowPrintProgress);
2489    nsresult GetPaperName(PRUnichar **aPaperName);
2490    nsresult SetPaperName(const PRUnichar *aPaperName);
2491    nsresult GetPaperSizeType(int16_t *aPaperSizeType);
2492    nsresult SetPaperSizeType(int16_t aPaperSizeType);
2493    nsresult GetPaperData(int16_t *aPaperData);
2494    nsresult SetPaperData(int16_t aPaperData);
2495    nsresult GetPaperWidth(double *aPaperWidth);
2496    nsresult SetPaperWidth(double aPaperWidth);
2497    nsresult GetPaperHeight(double *aPaperHeight);
2498    nsresult SetPaperHeight(double aPaperHeight);
2499    nsresult GetPaperSizeUnit(int16_t *aPaperSizeUnit);
2500    nsresult SetPaperSizeUnit(int16_t aPaperSizeUnit);
2501    nsresult GetPlexName(PRUnichar **aPlexName);
2502    nsresult SetPlexName(const PRUnichar *aPlexName);
2503    nsresult GetColorspace(PRUnichar **aColorspace);
2504    nsresult SetColorspace(const PRUnichar *aColorspace);
2505    nsresult GetResolutionName(PRUnichar **aResolutionName);
2506    nsresult SetResolutionName(const PRUnichar aResolutionName);
2507    nsresult GetDownloadFonts(bool *aDownloadFonts);
2508    nsresult SetDownloadFonts(bool aDownloadFonts);
2509    nsresult GetPrintReversed(bool *aPrintReversed);
2510    nsresult SetPrintReversed(bool aPrintReversed);
2511    nsresult GetPrintInColor(bool *aPrintInColor);
2512    nsresult SetPrintInColor(bool aPrintInColor);
2513    nsresult GetOrientation(int32_t *aOrientation);
2514    nsresult SetOrientation(int32_t aOrientation);
2515    nsresult GetPrintCommand(PRUnichar **aPrintCommand);
2516    nsresult SetPrintCommand(const PRUnichar *aPrintCommand);
2517    nsresult GetNumCopies(int32_t *aNumCopies);
2518    nsresult SetNumCopies(int32_t aNumCopies);
2519    nsresult GetPrinterName(PRUnichar **aPrinterName);
2520    nsresult SetPrinterName(const PRUnichar *aPrinterName);
2521    nsresult GetPrintToFile(bool *aPrintToFile);
2522    nsresult SetPrintToFile(bool aPrintToFile);
2523    nsresult GetToFileName(PRUnichar **aToFileName);
2524    nsresult SetToFileName(const PRUnichar *aToFileName);
2525    nsresult GetOutputFormat(int16_t *aOutputFormat);
2526    nsresult SetOutputFormat(int16_t aOutputFormat);
2527    nsresult GetPrintPageDelay(int32_t *aPrintPageDelay);
2528    nsresult SetPrintPageDelay(int32_t aPrintPageDelay);
2529    nsresult GetResolution(int32_t *aResolution) = 0;
2530    nsresult SetResolution(int32_t aResolution) = 0;
2531    nsresult GetDuplex(int32_t *aDuplex);
2532    nsresult SetDuplex(int32_t aDuplex);
2533    nsresult GetIsInitializedFromPrinter(bool *aIsInitializedFromPrinter);
2534    nsresult SetIsInitializedFromPrinter(bool aIsInitializedFromPrinter);
2535    nsresult GetIsInitializedFromPrefs(bool *aIsInitializedFromPrefs);
2536    nsresult SetIsInitializedFromPrefs(bool aIsInitializedFromPrefs);
2537    nsresult GetPersistMarginBoxSettings(bool *aPersistMarginBoxSettings);
2538    nsresult SetPersistMarginBoxSettings(bool aPersistMarginBoxSettings);
2539    nsresult SetMarginInTwips(nsIntMargin *aMargin);
2540    nsresult SetEdgeInTwips(nsIntMargin *aEdge);
2541    nsresult GetMarginInTwips(nsIntMargin *aMargin);
2542    nsresult GetEdgeInTwips(nsIntMargin *aEdge);
2543    nsresult SetupSilentPrinting();
2544    nsresult SetUnwriteableMarginInTwips(nsIntMargin *aEdge);
2545    nsresult GetUnwriteableMarginInTwips(nsIntMargin *aEdge);
2546    nsresult GetPageRanges(void * /*nsTArray<int32_t>*/ aPages);
2547}
2548
2549[
2550    object,
2551    uuid(9a7ca4b0-fbba-11d4-a869-00105a183419),
2552    local
2553]
2554interface nsIWebBrowserPrint : nsISupports
2555{
2556    nsresult GetGlobalPrintSettings(nsIPrintSettings **aGlobalPrintSettings);
2557    nsresult GetCurrentPrintSettings(nsIPrintSettings **aCurrentPrintSettings);
2558    nsresult GetCurrentChildDOMWindow(nsIDOMWindow **aCurrentChildDOMWindow);
2559    nsresult GetDoingPrint(bool *aDoingPrint);
2560    nsresult GetDoingPrintPreview(bool *aDoingPrintPreview);
2561    nsresult GetIsFramesetDocument(bool *aIsFramesetDocument);
2562    nsresult GetIsFramesetFrameSelected(bool *aIsFramesetFrameSelected);
2563    nsresult GetIsIFrameSelected(bool *aIsIFrameSelected);
2564    nsresult GetIsRangeSelection(bool *aIsRangeSelection);
2565    nsresult GetPrintPreviewNumPages(int32_t *aPrintPreviewNumPages);
2566    nsresult Print(nsIPrintSettings *aThePrintSettings, nsIWebProgressListener *aWPListener);
2567    nsresult PrintPreview(nsIPrintSettings *aThePrintSettings, nsIDOMWindow *aChildDOMWin,
2568                          nsIWebProgressListener *aWPListener);
2569    nsresult PrintPreviewNavigate(int16_t aNavType, int32_t aPageNum);
2570    nsresult Cancel();
2571    nsresult EnumerateDocumentNames(uint32_t *aCount, PRUnichar ***aResult);
2572    nsresult ExitPrintPreview();
2573}
2574
2575[
2576    object,
2577    uuid(3507fc93-313e-4a4c-8ca8-4d0ea0f97315),
2578    local
2579]
2580interface nsIScrollable : nsISupports
2581{
2582    enum {
2583        ScrollOrientation_X = 1,
2584        ScrollOrientation_Y = 2
2585    };
2586
2587    enum {
2588        Scrollbar_Auto   = 1,
2589        Scrollbar_Never  = 2,
2590        Scrollbar_Always = 3
2591    };
2592
2593    nsresult GetDefaultScrollbarPreferences(int32_t scrollOrientation, int32_t *_retval);
2594    nsresult SetDefaultScrollbarPreferences(int32_t scrollOrientation, int32_t scrollbarPref);
2595    nsresult GetScrollbarVisibility(bool *verticalVisible, bool *horizontalVisible);
2596}
2597
2598[
2599    object,
2600    uuid(dfb5a307-7ecf-41dd-aee2-f1d623459c44),
2601    local
2602]
2603interface nsIFile : nsISupports
2604{
2605    typedef struct {
2606        /* Currently not needed */
2607        char dummy;
2608    } PRFileDesc, PRLibrary, widl_FILE;
2609#define FILE widl_FILE
2610
2611    nsresult Append(const nsAString *node);
2612    nsresult AppendNative(const nsAString *node);
2613    nsresult Normalize();
2614    nsresult Create(uint32_t type, uint32_t permission);
2615    nsresult GetLeafName(nsAString *aLeafName);
2616    nsresult SetLeafName(const nsAString *aLeafName);
2617    nsresult GetNativeLeafName(nsAString *aLeafName);
2618    nsresult SetNativeLeafName(const nsAString *aLeafName);
2619    nsresult CopyTo(nsIFile *newParentDir, const nsAString *newName);
2620    nsresult CopyToNative(nsIFile *newParentDir, const nsAString *newName);
2621    nsresult CopyToFollowingLinks(nsIFile *newParentDir, const nsAString *newName);
2622    nsresult CopyToFollowingLinksNative(nsIFile *newParentDir, const nsAString *newName);
2623    nsresult MoveTo(nsIFile *newParentDir, const nsAString *newName);
2624    nsresult MoveToNative(nsIFile *newParentDir, const nsAString *newName);
2625    nsresult RenameTo(nsIFile *newParentDir, const nsAString *newName);
2626    nsresult Remove(bool recursive);
2627    nsresult GetPermissions(uint32_t *aPermissions);
2628    nsresult SetPermissions(uint32_t pPermissions);
2629    nsresult GetPermissionsOfLink(uint32_t *aPermissions);
2630    nsresult SetPermissionsOfLink(uint32_t pPermissions);
2631    nsresult GetLastModifiedTime(PRTime *aLastModifiedTime);
2632    nsresult SetLastModifiedTime(PRTime aLastModifiedTime);
2633    nsresult GetLastModifiedTimeOfLink(PRTime *aLastModifiedTimeOfLink);
2634    nsresult SetLastModifiedTimeOfLink(PRTime aLastModifiedTimeOfLink);
2635    nsresult GetFileSize(int64_t *aFileSize);
2636    nsresult SetFileSize(int64_t aFileSize);
2637    nsresult GetFileSizeOfLink(int64_t *aFileSizeOfLink);
2638    nsresult GetTarget(nsAString *aTarget);
2639    nsresult GetNativeTarget(nsACString *aNativeTarget);
2640    nsresult GetPath(nsAString *aPath);
2641    nsresult GetNativePath(nsACString *aNativePath);
2642    nsresult Exists(bool *_retval);
2643    nsresult IsWritable(bool *_retval);
2644    nsresult IsReadable(bool *_retval);
2645    nsresult IsExecutable(bool *_retval);
2646    nsresult IsHidden(bool *_retval);
2647    nsresult IsDirectory(bool *_retval);
2648    nsresult IsFile(bool *_retval);
2649    nsresult IsSymlink(bool *_retval);
2650    nsresult IsSpecial(bool *_retval);
2651    nsresult CreateUnique(uint32_t type, uint32_t permission);
2652    nsresult Clone(nsIFile **_retval);
2653    nsresult Equals(nsIFile *inFile, bool *_retval);
2654    nsresult Contains(nsIFile *inFile, bool *_retval);
2655    nsresult GetParent(nsIFile **aParent);
2656    nsresult GetDirectoryEntries(nsISimpleEnumerator **aDirectoryEntries);
2657    nsresult InitWithPath(const nsAString *filePath);
2658    nsresult InitWithNativePath(const nsACString *filePath);
2659    nsresult InitWithFile(nsIFile *aFile);
2660    nsresult GetFollowLinks(bool *aFollowLinks);
2661    nsresult SetFollowLinks(bool aFollowLinks);
2662    nsresult OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval);
2663    nsresult OpenANSIFileDesc(const char *mode, FILE **_retval);
2664    nsresult Load(PRLibrary **_retval);
2665    nsresult GetDiskSpaceAvailable(int64_t *aDiskSpaceAvailable);
2666    nsresult AppendRelativePath(const nsAString *relativeFilePath);
2667    nsresult AppendRelativeNativePath(const nsACString *relativeFilePath);
2668    nsresult GetPersistentDescriptor(nsACString *aPersistentDescriptor);
2669    nsresult SetPersistentDescriptor(const nsACString *aPersistentDescriptor);
2670    nsresult Reveal();
2671    nsresult Launch();
2672    nsresult GetRelativeDescriptor(nsIFile *fromFile, nsACString *_retval);
2673    nsresult SetRelativeDescriptor(nsIFile *fromFile, const nsACString *relativeDesc);
2674}
2675
2676[
2677    object,
2678    uuid(d604ffc3-1ba3-4f6c-b65f-1ed4199364c3),
2679    local
2680]
2681interface nsIComponentManager : nsISupports
2682{
2683    nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, void **result);
2684    nsresult GetClassObjectByContractID(const char *aContractID, nsIIDRef aIID, void **result);
2685    nsresult CreateInstance(nsCIDRef aClass, nsISupports *aDelegate, nsIIDRef aIID,
2686            void **result);
2687    nsresult CreateInstanceByContractID(const char *aContractID, nsISupports *aDelegate,
2688            nsIIDRef aIID, void **result);
2689    nsresult AddBootstrappedManifestLocation(nsIFile *aLocation);
2690    nsresult RemoveBootstrappedManifestLocation(nsIFile *aLocation);
2691    nsresult GetManifestLocations(nsIArray **_retval);
2692}
2693
2694[
2695    object,
2696    uuid(55d25e49-793f-4727-a69f-de8b15f4b985),
2697    local
2698]
2699interface nsIPrefBranch : nsISupports
2700{
2701    nsresult GetRoot(char **aRoot);
2702    nsresult GetPrefType(const char *aPrefName, int32_t *_retval);
2703    nsresult GetBoolPref(const char *aPrefName, bool *_retval);
2704    nsresult SetBoolPref(const char *aPrefName, bool aValue);
2705    nsresult GetFloatPref(const char *aPrefName, float *_retval);
2706    nsresult GetCharPref(const char *aPrefName, char **_retval);
2707    nsresult SetCharPref(const char *aPrefName, const char *aValue);
2708    nsresult GetIntPref(const char *aPrefName, int32_t *_retval);
2709    nsresult SetIntPref(const char *aPrefName, int32_t aValue);
2710    nsresult GetComplexValue(const char *aPrefName, const nsIID *aType, void **aValue);
2711    nsresult SetComplexValue(const char *aPrefName, const nsIID *aType, nsISupports *aValue);
2712    nsresult ClearUserPref(const char *aPrefName);
2713    nsresult LockPref(const char *aPrefName);
2714    nsresult PrefHasUserValue(const char *aPrefName, bool *_retval);
2715    nsresult PrefIsLocked(const char *aPrefName, bool *_retval);
2716    nsresult UnlockPref(const char *aPrefName);
2717    nsresult DeleteBranch(const char *aStartingAt);
2718    nsresult GetChildList(const char *aStartingAt, uint32_t *aCount, char ***aChildArray);
2719    nsresult ResetBranch(const char *aStartingAt);
2720    nsresult AddObserver(const char *aDomain, nsIObserver *aObserver, bool aHoldWeak);
2721    nsresult RemoveObserver(const char *aDomain, nsIObserver *aObserver);
2722}
2723
2724[
2725    object,
2726    uuid(bbf8cab0-d43a-11d3-8cc2-00609792278c),
2727    local
2728]
2729interface nsIDirectoryServiceProvider : nsISupports
2730{
2731    nsresult GetFile(const char *prop, bool *persistent, nsIFile **_retval);
2732}
2733
2734[
2735    object,
2736    uuid(2f977d4b-5485-11d4-87e2-0010a4e75ef2),
2737    local
2738]
2739interface nsIDirectoryServiceProvider2 : nsIDirectoryServiceProvider
2740{
2741    nsresult GetFiles(const char *prop, nsISimpleEnumerator **_retval);
2742}
2743
2744[
2745    object,
2746    uuid(a7aad716-e72c-435d-82f1-7582dffae661),
2747    local
2748]
2749interface nsIProtocolHandler : nsISupports
2750{
2751    const unsigned long URI_STD = 0;
2752    const unsigned long URI_NORELATIVE = (1<<0);
2753    const unsigned long URI_NOAUTH = (1<<1);
2754    const unsigned long ALLOWS_PROXY = (1<<2);
2755    const unsigned long ALLOWS_PROXY_HTTP = (1<<3);
2756    const unsigned long URI_INHERITS_SECURITY_CONTEXT = (1<<4);
2757    const unsigned long URI_FORBIDS_AUTOMATIC_DOCUMENT_REPLACEMENT = (1<<5);
2758    const unsigned long URI_LOADABLE_BY_ANYONE = (1<<6);
2759    const unsigned long URI_DANGEROUS_TO_LOAD = (1<<7);
2760    const unsigned long URI_IS_UI_RESOURCE = (1<<8);
2761    const unsigned long URI_IS_LOCAL_FILE = (1<<9);
2762    const unsigned long URI_LOADABLE_BY_SUBSUMERS = (1<<10);
2763    const unsigned long URI_DOES_NOT_RETURN_DATA = (1<<11);
2764    const unsigned long URI_IS_LOCAL_RESOURCE = (1<<12);
2765    const unsigned long URI_OPENING_EXECUTES_SCRIPT = (1<<13);
2766    const unsigned long URI_NON_PERSISTABLE = (1<<14);
2767    const unsigned long URI_FORBIDS_COOKIE_ACCESS = (1<<15);
2768    const unsigned long URI_CROSS_ORIGIN_NEEDS_WEBAPPS_PERM = (1<<16);
2769    const unsigned long URI_SYNC_LOAD_IS_OK = (1<<17);
2770    const unsigned long URI_SAFE_TO_LOAD_IN_SECURE_CONTEXT = (1<<18);
2771
2772    nsresult GetScheme(nsACString *aScheme);
2773    nsresult GetDefaultPort(int32_t *aDefaultPort);
2774    nsresult GetProtocolFlags(uint32_t *aProtocolFlags);
2775    nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset,
2776                    nsIURI *aBaseURI, nsIURI **_retval);
2777    nsresult NewChannel2(nsIURI *aURI, nsILoadInfo *aLoadinfo, nsIChannel **_retval);
2778    nsresult NewChannel(nsIURI *aURI, nsIChannel **_retval);
2779    nsresult AllowPort(int32_t port, const char *scheme, bool *_retval);
2780}
2781
2782[
2783    object,
2784    uuid(0e61f3b2-34d7-4c79-bfdc-4860bc7341b7),
2785    local
2786]
2787interface nsIExternalProtocolHandler : nsIProtocolHandler
2788{
2789    nsresult ExternalAppExistsForScheme(const nsACString *scheme, bool *_retval);
2790}
2791
2792[
2793    object,
2794    uuid(4286de5a-b2ea-446f-8f70-e2a461f42694),
2795    local
2796]
2797interface nsIIOService : nsISupports
2798{
2799    nsresult GetProtocolHandler(const char *aScheme, nsIProtocolHandler **_retval);
2800    nsresult GetProtocolFlags(const char *aScheme, uint32_t *_retval);
2801    nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
2802                    nsIURI **_retval);
2803    nsresult NewFileURI(nsIFile *aFile, nsIURI **_retval);
2804    nsresult NewChannelFromURI2(nsIURI *aURI, nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal,
2805            nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, uint32_t aContentPolicyType,
2806            nsIChannel **_retval);
2807    nsresult NewChannelFromURIWithLoadInfo(nsIURI *aURI, nsILoadInfo *aLoadInfo, nsIChannel **_retval);
2808    nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval);
2809    nsresult NewChannel2(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
2810            nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal,
2811            uint32_t aSecurityFlags, uint32_t aContentPolicyType, nsIChannel **_retval);
2812    nsresult NewChannel(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
2813                        nsIChannel **_retval);
2814    nsresult GetOffline(bool *aOffline);
2815    nsresult SetOffline(bool aOffline);
2816    nsresult GetConnectivity(bool *aConnectivity);
2817    nsresult SetAppOffline(uint32_t appId, int32_t state);
2818    nsresult IsAppOffline(uint32_t appId, bool *_retval);
2819    nsresult GetAppOfflineState(uint32_t appId, int32_t *_retval);
2820    nsresult AllowPort(int32_t aPort, const char *aScheme, bool *_retval);
2821    nsresult ExtractScheme(const nsACString *urlString, nsACString *_retval);
2822    nsresult NewLoadInfo(nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal,
2823            nsIDOMNode *aLoadingNode, uint32_t aSecurityFlags, uint32_t aContentPolicyType, nsILoadInfo **_retval);
2824}
2825
2826[
2827    object,
2828    uuid(ca68c485-9db3-4c12-82a6-4fab7948e2d5),
2829    local,
2830]
2831interface nsINetUtil : nsISupports
2832{
2833    nsresult ParseContentType(const nsACString *aTypeHeader, nsACString *aCharset,
2834            bool *aHadCharset, nsACString *_retval);
2835    nsresult ProtocolHasFlags(nsIURI *aURI, uint32_t aFlag, bool *_retval);
2836    nsresult URIChainHasFlags(nsIURI *aURI, uint32_t aFlags, bool *_retval);
2837    nsresult ToImmutableURI(nsIURI *aURI, nsIURI **_retval);
2838    nsresult NewSimpleNestedURI(nsIURI *aURI, nsIURI **_retval);
2839    nsresult EscapeString(const nsACString *aString, uint32_t aEscapeType, nsACString *_retval);
2840    nsresult EscapeURL(const nsACString *aStr, uint32_t aFlags, nsACString *_retval);
2841    nsresult UnescapeString(const nsACString *aStr, uint32_t aFlags, nsACString *_retval);
2842    nsresult ExtractCharsetFromContentType(const nsACString *aTypeHeader, nsACString *aCharset,
2843            int32_t *aCharsetStart, int32_t *aCharsetEnd, bool *_retval);
2844}
2845
2846[
2847    object,
2848    uuid(9c5d3c58-1dd1-11b2-a1c9-f3699284657a),
2849    local
2850]
2851interface nsIWebBrowserFocus : nsISupports
2852{
2853    nsresult Activate();
2854    nsresult Deactivate();
2855    nsresult SetFocusAtFirstElement();
2856    nsresult SetFocusAtLastElement();
2857    nsresult GetFocusedWindow(nsIDOMWindow **aFocusedWindow);
2858    nsresult SetFocusedWindow(nsIDOMWindow *aFocusedWindow);
2859    nsresult GetFocusedElement(nsIDOMElement **aFocusedElement);
2860    nsresult SetFocusedElement(nsIDOMElement *aFocusedElement);
2861}
2862
2863[
2864    object,
2865    uuid(e8c414c4-dc38-4ba3-ab4e-ec4cbbe22907),
2866    local
2867]
2868interface nsIWebBrowserChrome : nsISupports
2869{
2870    nsresult SetStatus(uint32_t statusType, const PRUnichar *status);
2871    nsresult GetWebBrowser(nsIWebBrowser **aWebBrowser);
2872    nsresult SetWebBrowser(nsIWebBrowser *aWebBrowser);
2873    nsresult GetChromeFlags(uint32_t *aChromeFlags);
2874    nsresult SetChromeFlags(uint32_t aChromeFlags);
2875    nsresult DestroyBrowserWindow();
2876    nsresult SizeBrowserTo(int32_t aCX, int32_t aCY);
2877    nsresult ShowAsModal();
2878    nsresult IsWindowModal(bool *_retval);
2879    nsresult ExitModalEventLoop(nsresult aStatus);
2880}
2881
2882[
2883    object,
2884    uuid(df31c120-ded6-11d1-bd85-00805f8ae3f4),
2885    local
2886]
2887interface nsIDOMEventListener : nsISupports
2888{
2889    nsresult HandleEvent(nsIDOMEvent *event);
2890}
2891
2892[
2893    object,
2894    uuid(9a78ac3c-9507-4d00-b2d6-10b508d2ec31),
2895    local
2896]
2897interface nsIDOMEventTarget : nsISupports
2898{
2899    nsresult AddEventListener(const nsAString *type, nsIDOMEventListener *listener, bool useCapture, bool wantsUntrusted, uint8_t _argc);
2900    nsresult AddSystemEventListener(const nsAString *type, nsIDOMEventListener *listener, bool aUseCapture, bool aWantsUntrusted, uint8_t _argc);
2901    nsresult RemoveEventListener(const nsAString *type, nsIDOMEventListener *listener, bool useCapture);
2902    nsresult RemoveSystemEventListener(const nsAString *type, nsIDOMEventListener *listener, bool aUseCapture);
2903    nsresult DispatchEvent(nsIDOMEvent *evt, bool *_retval);
2904
2905    /* Followed by methods we should try to avoid using */
2906}
2907
2908[
2909    object,
2910    uuid(02d54f52-a1f5-4ad2-b560-36f14012935e),
2911    local
2912]
2913interface nsIDOMEvent : nsISupports
2914{
2915    nsresult GetType(nsAString *aType);
2916    nsresult GetTarget(nsIDOMEventTarget **aTarget);
2917    nsresult GetCurrentTarget(nsIDOMEventTarget **aCurrentTarget);
2918    nsresult GetEventPhase(uint16_t *aEventPhase);
2919    nsresult GetBubbles(bool *aBubbles);
2920    nsresult GetCancelable(bool *aCancelable);
2921    nsresult GetTimeStamp(DOMTimeStamp *aTimeStamp);
2922    nsresult StopPropagation();
2923    nsresult PreventDefault();
2924    nsresult InitEvent(const nsAString *eventTypeArg, bool canBubbleArg, bool cancelableArg);
2925    nsresult GetDefaultPrevented(bool *aDefaultPrevented);
2926    nsresult StopImmediatePropagation();
2927    nsresult GetOriginalTarget(nsIDOMEventTarget **aOriginalTarget);
2928    nsresult GetExplicitOriginalTarget(nsIDOMEventTarget * *aExplicitOriginalTarget);
2929    nsresult GetPreventDefault(bool *_retval);
2930    nsresult GetIsTrusted(bool *aIsTrusted);
2931    nsresult DuplicatePrivateData();
2932    nsresult SetTarget(nsIDOMEventTarget *aTarget);
2933    bool IsDispatchStopped();
2934    /*nsEvent*/ void *GetInternalNSEvent();
2935    void SetTrusted(bool aTrusted);
2936    void Serialize(/*IPC::Message*/ void *aMsg, bool aSerializeInterfaceType);
2937    bool Deserialize(const /*IPC::Message*/ void *aMsg, void **aIter);
2938    void SetOwner(void /*mozilla::dom::EventTarget*/ *aOwner);
2939    void /*nsDOMEvent*/ *InternalDOMEvent();
2940}
2941
2942[
2943    object,
2944    uuid(1a75c351-d115-4d51-94df-731dd1723a1f),
2945    local
2946]
2947interface nsIDOMWindowUtils : nsISupports
2948{
2949    nsresult GetImageAnimationMode(uint16_t *aImageAnimationMode);
2950    nsresult SetImageAnimationMode(uint16_t aImageAnimationMode);
2951    nsresult GetDocCharsetIsForced(bool *aDocCharsetIsForced);
2952    nsresult GetCursorType(int16_t *_retval);
2953    nsresult GetDocumentMetadata(const nsAString *aName, nsAString *_retval);
2954    nsresult Redraw(uint32_t aCount, uint32_t *_retval);
2955    nsresult UpdateLayerTree();
2956    nsresult SetCSSViewport(float aWidthPx, float aHeightPx);
2957    nsresult GetViewportInfo(uint32_t aDisplayWidth, uint32_t aDisplayHeight, double *aDefaultZoom, bool *aAllowZoom,
2958            double *aMinZoom, double *aMaxZoom, uint32_t *aWidth, uint32_t *aHeight, bool *aAutoSize);
2959    nsresult SetDisplayPortForElement(float aXPx, float aYPx, float aWidthPx, float aHeightPx,
2960            nsIDOMElement *aElement, uint32_t aPriority);
2961    nsresult SetDisplayPortMarginsForElement(float aLeftMargin, float aTopMargin, float aRightMargin, float aBottomMargin,
2962            uint32_t aAlignmentX, uint32_t aAlignmentY, nsIDOMElement *aElement, uint32_t aPriority);
2963    nsresult SetDisplayPortBaseForElement(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight, nsIDOMElement *aElement);
2964    nsresult SetResolution(float aResolution);
2965    nsresult GetResolution(float *aResolution);
2966    nsresult SetResolutionAndScaleTo(float aResolution);
2967    nsresult GetIsResolutionSet(bool *aIsResolutionSet);
2968    nsresult GetIsFirstPaint(bool *aIsFirstPaint);
2969    nsresult SetIsFirstPaint(bool aIsFirstPaint);
2970    nsresult GetPresShellId(uint32_t *aPresShellId);
2971    nsresult SendMouseEvent(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2972            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg, bool aIsSynthesized,
2973            uint8_t _argc, bool *_retval);
2974    nsresult SendPointerEvent(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2975            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg, int32_t aPointerId,
2976            int32_t aWidth, int32_t aHeight, int32_t tiltX, int32_t tiltY, bool aIsPrimary, bool aIsSynthesized,
2977            uint8_t _argc, bool *_retval);
2978    nsresult SendTouchEvent(const nsAString *aType, uint32_t *aIdentifiers, int32_t *aXs, int32_t *aYs,
2979            uint32_t *aRxs, uint32_t *aRys, float *aRotationAngles, float *aForces, uint32_t count, int32_t aModifiers,
2980            bool aIgnoreRootScrollFrame, bool *_retval);
2981    nsresult SendMouseEventToWindow(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2982            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg, bool aIsSynthesized,
2983            uint8_t _argc);
2984    nsresult SendPointerEventToWindow(const nsAString *aType, float aX, float aY, int32_t aButton, int32_t aClickCount,
2985            int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, uint16_t aInputSourceArg, int32_t aPointerId,
2986            int32_t aWidth, int32_t aHeight, int32_t aTiltX, int32_t aTiltY, bool aIsPrimary, bool aIsSynthesized, uint8_t _argc);
2987    nsresult SendTouchEventToWindow(const nsAString *aType, uint32_t *aIdentifiers, int32_t *aXs, int32_t *aYs, uint32_t *aRxs,
2988            uint32_t *aRys, float *aRotationAngles, float *aForces, uint32_t count, int32_t aModifiers,
2989            bool aIgnoreRootScrollFrame, bool *_retval);
2990    nsresult SendWheelEvent(float aX, float aY, double aDeltaX, double aDeltaY, double aDeltaZ, uint32_t aDeltaMode,
2991           int32_t aModifiers, int32_t aLineOrPageDeltaX, int32_t aLineOrPageDeltaY, uint32_t aOptions);
2992    nsresult SendKeyEvent(const nsAString *aType, int32_t aKeyCode, int32_t aCharCode, int32_t aModifiers,
2993           uint32_t aAdditionalFlags, bool *_retval);
2994    nsresult SendNativeKeyEvent(int32_t aNativeKeyboardLayout, int32_t aNativeKeyCode, int32_t aModifierFlags,
2995           const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters, nsIObserver *aObserver);
2996    nsresult SendNativeMouseEvent(int32_t aScreenX, int32_t aScreenY, int32_t aNativeMessage, int32_t aModifierFlags,
2997           nsIDOMElement *aElement, nsIObserver *aObserver);
2998    nsresult SendNativeMouseScrollEvent(int32_t aScreenX, int32_t aScreenY, uint32_t aNativeMessage, double aDeltaX,
2999           double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement,
3000           nsIObserver *aObserver);
3001    nsresult SendNativeTouchPoint(uint32_t aPointerId, uint32_t aTouchState, int32_t aScreenX, int32_t aScreenY,
3002           double aPressure, uint32_t aOrientation, nsIObserver *aObserver);
3003    nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap, nsIObserver *aObserver);
3004    nsresult ClearNativeTouchSequence(nsIObserver *aObserver);
3005    nsresult ActivateNativeMenuItemAt(const nsAString *indexString);
3006    nsresult ForceUpdateNativeMenuAt(const nsAString *indexString);
3007    nsresult Focus(nsIDOMElement *aElement);
3008    nsresult GarbageCollect(nsICycleCollectorListener *aListener, int32_t aExtraForgetSkippableCalls);
3009    nsresult CycleCollect(nsICycleCollectorListener *aListener, int32_t aExtraForgetSkippableCalls);
3010    nsresult RunNextCollectorTimer();
3011    nsresult SendSimpleGestureEvent(const nsAString *aType, float aX, float aY, uint32_t aDirection, double aDelta,
3012           int32_t aModifiers, uint32_t aClickCount);
3013    nsresult ElementFromPoint(float aX, float aY, bool aIgnoreRootScrollFrame, bool aFlushLayout, nsIDOMElement **_retval);
3014    nsresult NodesFromRect(float aX, float aY, float aTopSize, float aRightSize, float aBottomSize, float aLeftSize,
3015           bool aIgnoreRootScrollFrame, bool aFlushLayout, nsIDOMNodeList **_retval);
3016    nsresult GetTranslationNodes(nsIDOMNode *aRoot, int /*nsITranslationNodeList*/ **_retval);
3017    nsresult CompareCanvases(nsIDOMHTMLCanvasElement *aCanvas1, nsIDOMHTMLCanvasElement *aCanvas2,
3018           uint32_t *aMaxDifference, uint32_t *_retval);
3019    nsresult GetIsMozAfterPaintPending(bool *aIsMozAfterPaintPending);
3020    nsresult SuppressEventHandling(bool aSuppress);
3021    nsresult ClearMozAfterPaintEvents();
3022    nsresult DisableNonTestMouseEvents(bool aDisable);
3023    nsresult GetScrollXY(bool aFlushLayout, int32_t *aScrollX, int32_t *aScrollY);
3024    nsresult GetScrollXYFloat(bool aFlushLayout, float *aScrollX, float *aScrollY);
3025    nsresult GetScrollbarSize(bool aFlushLayout, int32_t *aWidth, int32_t *aHeight);
3026    nsresult GetBoundsWithoutFlushing(nsIDOMElement *aElement, nsIDOMClientRect **_retval);
3027    nsresult GetRootBounds(nsIDOMClientRect **_retval);
3028    nsresult GetIMEIsOpen(bool *aIMEIsOpen);
3029    nsresult GetIMEStatus(uint32_t *aIMEStatus);
3030    nsresult GetScreenPixelsPerCSSPixel(float *aScreenPixelsPerCSSPixel);
3031    nsresult GetFullZoom(float *aFullZoom);
3032    nsresult DispatchDOMEventViaPresShell(nsIDOMNode *aTarget, nsIDOMEvent *aEvent, bool aTrusted, bool *_retval);
3033    nsresult DispatchEventToChromeOnly(nsIDOMEventTarget *aTarget, nsIDOMEvent *aEvent, bool *_retval);
3034    nsresult GetClassName(const /*JS::Value*/ void *aObject, JSContext *cx, char **_retval);
3035    nsresult SendContentCommandEvent(const nsAString *aType, nsITransferable *aTransferable);
3036    nsresult SendQueryContentEvent(uint32_t aType, uint32_t aOffset, uint32_t aLength, int32_t aX, int32_t aY,
3037            uint32_t aAdditionalFlags, nsIQueryContentEventResult **_retval);
3038    nsresult RemoteFrameFullscreenChanged(nsIDOMElement *aFrameElement, const nsAString *aNewOrigin);
3039    nsresult RemoteFrameFullscreenReverted();
3040    nsresult ExitFullscreen();
3041    nsresult SendSelectionSetEvent(uint32_t aOffset, uint32_t aLength, uint32_t aAdditionalFlags, bool *_retval);
3042    nsresult SelectAtPoint(float aX, float aY, uint32_t aSelectBehavior, bool *_retval);
3043    nsresult GetVisitedDependentComputedStyle(nsIDOMElement *aElement, const nsAString *aPseudoElement,
3044           const nsAString *aPropertyName, nsAString *_retval);
3045    nsresult GetOuterWindowID(uint64_t *aOuterWindowID);
3046    nsresult GetCurrentInnerWindowID(uint64_t *aCurrentInnerWindowID);
3047    nsresult EnterModalState();
3048    nsresult LeaveModalState();
3049    nsresult IsInModalState(bool *_retval);
3050    nsresult SetDesktopModeViewport(bool aDesktopModeViewport);
3051    nsresult SuspendTimeouts();
3052    nsresult ResumeTimeouts();
3053    nsresult GetLayerManagerType(nsAString *aLayerManagerType);
3054    nsresult GetLayerManagerRemote(bool *aLayerManagerRemote);
3055    nsresult GetSupportsHardwareH264Decoding(bool *aSupportsHardwareH264Decoding);
3056    nsresult StartFrameTimeRecording(uint32_t *startIndex);
3057    nsresult StopFrameTimeRecording(uint32_t startIndex, uint32_t *frameCount, float **frameIntervals);
3058    nsresult BeginTabSwitch();
3059    nsresult GetDisplayDPI(float *aDisplayDPI);
3060    nsresult GetOuterWindowWithId(uint64_t aOuterWindowID, nsIDOMWindow **_retval);
3061    nsresult GetContainerElement(nsIDOMElement **aContainerElement);
3062    nsresult RenderDocument(const void /*nsRect*/ *aRect, uint32_t aFlags, int /*nscolor*/ aBackgroundColor,
3063           void /*gfxContext*/ *aThebesContext);
3064    nsresult AdvanceTimeAndRefresh(int64_t aMilliseconds);
3065    nsresult RestoreNormalRefresh();
3066    nsresult GetIsTestControllingRefreshes(bool *aIsTestControllingRefreshes);
3067    nsresult SetAsyncScrollOffset(nsIDOMNode *aNode, int32_t aX, int32_t aY);
3068    nsresult ComputeAnimationDistance(nsIDOMElement *element, const nsAString *property, const nsAString *value1,
3069           const nsAString *value2, double *_retval);
3070    nsresult WrapDOMFile(nsIFile *aFile, nsIDOMFile **_retval);
3071    nsresult GetFocusedInputType(char **aFocusedInputType);
3072    nsresult FindElementWithViewId(long /*nsViewID*/ aId, nsIDOMElement **_retval);
3073    nsresult GetViewId(nsIDOMElement *aElement, long /*nsViewID*/ *_retval);
3074    nsresult LeafLayersPartitionWindow(bool *_retval);
3075    nsresult CheckAndClearPaintedState(nsIDOMElement *aElement, bool *_retval);
3076    nsresult IsPartOfOpaqueLayer(nsIDOMElement *aElement, bool *_retval);
3077    nsresult NumberOfAssignedPaintedLayers(nsIDOMElement **aElements, uint32_t count, uint32_t *_retval);
3078    nsresult GetFileId(const /*JS::Value*/ void *aFile, JSContext *cx, int64_t *_retval);
3079    nsresult GetFilePath(void /*JS::HandleValue*/ *aFile, JSContext *cx, nsAString *_retval);
3080    nsresult GetFileReferences(const nsAString *aDatabaseName, int64_t aId, void /*JS::HandleValue*/ *aOptions,
3081           int32_t *aRefCnt, int32_t *aDBRefCnt, int32_t *aSliceRefCnt, JSContext* cx, bool *_retval);
3082    nsresult IsIncrementalGCEnabled(JSContext *cx, bool *_retval);
3083    nsresult StartPCCountProfiling(JSContext *cx);
3084    nsresult StopPCCountProfiling(JSContext *cx);
3085    nsresult PurgePCCounts(JSContext *cx);
3086    nsresult GetPCCountScriptCount(JSContext *cx, int32_t *_retval);
3087    nsresult GetPCCountScriptSummary(int32_t script, JSContext *cx, nsAString *_retval);
3088    nsresult GetPCCountScriptContents(int32_t script, JSContext *cx, nsAString *_retval);
3089    nsresult GetPaintingSuppressed(bool *aPaintingSuppressed);
3090    nsresult GetPlugins(JSContext *cx, /*JS::Value*/ void *aPlugins);
3091    nsresult SetScrollPositionClampingScrollPortSize(float aWidth, float aHeight);
3092    nsresult SetContentDocumentFixedPositionMargins(float aTop, float aRight, float aBottom, float aLeft);
3093    nsresult DisableDialogs();
3094    nsresult EnableDialogs();
3095    nsresult AreDialogsEnabled(bool *_retval);
3096    nsresult LoadSheet(nsIURI *sheetURI, uint32_t type);
3097    nsresult LoadSheetUsingURIString(const nsACString *sheetURI, uint32_t type);
3098    nsresult AddSheet(nsIDOMStyleSheet *sheet, uint32_t type);
3099    nsresult RemoveSheet(nsIURI *sheetURI, uint32_t type);
3100    nsresult  RemoveSheetUsingURIString(const nsACString *sheetURI, uint32_t type);
3101    nsresult GetIsHandlingUserInput(bool *aIsHandlingUserInput);
3102    nsresult AllowScriptsToClose();
3103    nsresult GetIsParentWindowMainWidgetVisible(bool *aIsParentWindowMainWidgetVisible);
3104    nsresult IsNodeDisabledForEvents(nsIDOMNode *aNode, bool *_retval);
3105    nsresult GetPaintFlashing(bool *aPaintFlashing);
3106    nsresult SetPaintFlashing(bool aPaintFlashing);
3107    nsresult RunInStableState(nsIRunnable *runnable);
3108    nsresult RunBeforeNextEvent(nsIRunnable *runnable);
3109    nsresult GetOMTAStyle(nsIDOMElement *aElement, const nsAString *aProperty, nsAString *_retval);
3110    nsresult RequestCompositorProperty(const nsAString *aProperty, float *_retval);
3111    nsresult SetHandlingUserInput(bool aHandlingInput, void /*nsIJSRAIIHelper*/ **_retval);
3112    nsresult GetContentAPZTestData(JSContext *cx, int /*JS::MutableHandleValue*/ _retval);
3113    nsresult GetCompositorAPZTestData(JSContext *cx, void /*JS::MutableHandleValue*/ *_retval);
3114    nsresult PostRestyleSelfEvent(nsIDOMElement *aElement);
3115    nsresult GetAudioMuted(bool *aAudioMuted) ;
3116    nsresult SetAudioMuted(bool aAudioMuted);
3117    nsresult GetAudioVolume(float *aAudioVolume);
3118    nsresult SetAudioVolume(float aAudioVolume);
3119    nsresult XpconnectArgument(nsIDOMWindowUtils *aThis);
3120    nsresult AskPermission(void /*nsIContentPermissionRequest*/ *aRequest);
3121    nsresult GetFramesConstructed(uint64_t *aFramesConstructed);
3122    nsresult GetFramesReflowed(uint64_t *aFramesReflowed);
3123    nsresult SetChromeMargin(int32_t aTop, int32_t aRight, int32_t aBottom, int32_t aLeft);
3124    nsresult GetServiceWorkersTestingEnabled(bool *aServiceWorkersTestingEnabled);
3125    nsresult SetServiceWorkersTestingEnabled(bool aServiceWorkersTestingEnabled);
3126}
3127
3128cpp_quote("#define CONTEXT_NONE              0x00")
3129cpp_quote("#define CONTEXT_LINK              0x01")
3130cpp_quote("#define CONTEXT_IMAGE             0x02")
3131cpp_quote("#define CONTEXT_DOCUMENT          0x04")
3132cpp_quote("#define CONTEXT_TEXT              0x08")
3133cpp_quote("#define CONTEXT_INPUT             0x10")
3134cpp_quote("#define CONTEXT_BACKGROUND_IMAGE  0x20")
3135
3136[
3137    object,
3138    uuid(3478b6b0-3875-11d4-94ef-0020183bf181),
3139    local
3140]
3141interface nsIContextMenuListener : nsISupports
3142{
3143    nsresult OnShowContextMenu(uint32_t aContextFlags, nsIDOMEvent *aEvent, nsIDOMNode *aNode);
3144}
3145
3146[
3147    object,
3148    uuid(d73852f8-7bd6-477d-8233-117dbf83860b),
3149    local
3150]
3151interface nsIDOMUIEvent : nsIDOMEvent
3152{
3153    nsresult GetView(nsIDOMWindow **aView);
3154    nsresult GetDetail(int32_t *aDetail);
3155    nsresult InitUIEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3156            nsIDOMWindow *viewArg, int32_t detailArg);
3157    nsresult GetLayerX(int32_t *aLayerX);
3158    nsresult GetLayerY(int32_t *aLayerY);
3159    nsresult GetPageX(int32_t *aPageX);
3160    nsresult GetPageY(int32_t *aPageY);
3161    nsresult GetWhich(uint32_t *aWhich);
3162    nsresult GetRangeParent(nsIDOMNode **aRangeParent);
3163    nsresult GetRangeOffset(int32_t *aRangeOffset);
3164    nsresult GetCancelBubble(bool *aCancelBubble);
3165    nsresult SetCancelBubble(bool aCancelBubble);
3166    nsresult GetIsChar(bool *aIsChar);
3167}
3168
3169[
3170    object,
3171    uuid(df068636-9a5b-11e3-b71f-2c27d728e7f9),
3172    local
3173]
3174interface nsIDOMMouseEvent : nsIDOMUIEvent
3175{
3176    nsresult GetScreenX(int32_t *aScreenX);
3177    nsresult GetScreenY(int32_t *aScreenY);
3178    nsresult GetMozMovementX(int32_t *aMozMovementX);
3179    nsresult GetMozMovementY(int32_t *aMozMovementY);
3180    nsresult GetClientX(int32_t *aClientX);
3181    nsresult GetClientY(int32_t *aClientY);
3182    nsresult GetCtrlKey(bool *aCtrlKey);
3183    nsresult GetShiftKey(bool *aShiftKey);
3184    nsresult GetAltKey(bool *aAltKey);
3185    nsresult GetMetaKey(bool *aMetaKey);
3186    nsresult GetButton(int16_t *aButton);
3187    nsresult GetButtons(uint16_t *aButtons);
3188    nsresult GetRelatedTarget(nsIDOMEventTarget **aRelatedTarget);
3189    nsresult InitMouseEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3190            nsIDOMWindow *viewArg, int32_t detailArg, int32_t screenXArg, int32_t screenYArg,
3191            int32_t clientXArg, int32_t clientYArg, bool ctrlKeyArg, bool altKeyArg,
3192            bool shiftKeyArg, bool metaKeyArg, uint16_t buttonArg,
3193            nsIDOMEventTarget *relatedTargetArg);
3194    nsresult GetMozPressure(float *aMozPressure);
3195    nsresult GetMozInputSource(uint16_t *aMozInputSource);
3196    nsresult InitNSMouseEvent(const nsAString *typeArg, bool canBubbleArg, bool cancelableArg,
3197            nsIDOMWindow *viewArg, int32_t detailArg, int32_t screenXArg, int32_t screenYArg,
3198            int32_t clientXArg, int32_t clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg,
3199            bool metaKeyArg, uint16_t buttonArg, nsIDOMEventTarget *relatedTargetArg, float pressure,
3200            uint16_t inputSourceArg);
3201    nsresult GetModifierState(const nsAString *keyArg, bool *_retval);
3202}
3203
3204[
3205    object,
3206    uuid(d2b3e35f-8627-4732-a92d-cda54c8f8054),
3207    local
3208]
3209interface nsIDOMKeyEvent : nsIDOMUIEvent
3210{
3211    nsresult GetCharCode(uint32_t *aCharCode);
3212    nsresult GetKeyCode(uint32_t *aKeyCode);
3213    nsresult GetAltKey(bool *aAltKey);
3214    nsresult GetCtrlKey(bool *aCtrlKey);
3215    nsresult GetShiftKey(bool *aShiftKey);
3216    nsresult GetMetaKey(bool *aMetaKey);
3217    nsresult InitKeyEvent(const nsAString *typeArg, bool canBubbleArg,
3218            bool cancelableArg, nsIDOMWindow *viewArg, bool ctrlKeyArg,
3219            bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, uint32_t keyCodeArg,
3220            uint32_t charCodeArg);
3221    nsresult GetModifierState(const nsAString *keyArg, bool *_retval);
3222    nsresult GetLocation(uint32_t *aLocation);
3223    nsresult GetRepeat(bool *aRepeat);
3224    nsresult GetKey(nsAString *aKey);
3225}
3226
3227[
3228    object,
3229    uuid(0b976267-4aaa-4f36-a2d4-27b5ca8d73bb),
3230    local
3231]
3232interface nsIEmbeddingSiteWindow : nsISupports
3233{
3234    nsresult SetDimensions(uint32_t flags, int32_t x, int32_t y, int32_t cx, int32_t cy);
3235    nsresult GetDimensions(uint32_t flags, int32_t *x, int32_t *y, int32_t *cx, int32_t *cy);
3236    nsresult SetFocus();
3237    nsresult GetVisibility(bool *aVisibility);
3238    nsresult SetVisibility(bool aVisibility);
3239    nsresult GetTitle(PRUnichar **aTitle);
3240    nsresult SetTitle(const PRUnichar *aTitle);
3241    nsresult GetSiteWindow(void **aSiteWindow);
3242    nsresult Blur();
3243}
3244
3245[
3246    object,
3247    uuid(2417cbfe-65ad-48a6-b4b6-eb84db174392),
3248    local
3249]
3250interface nsIComponentRegistrar : nsISupports
3251{
3252    nsresult AutoRegister(nsIFile *aSpec);
3253    nsresult AutoUnregister(nsIFile *aSpec);
3254    nsresult RegisterFactory(const nsCID *aClass, const char *aClassName,
3255            const char *aContractID, nsIFactory *aFactory);
3256    nsresult UnregisterFactory(const nsCID *aClass, nsIFactory *aFactory);
3257    nsresult RegisterFactoryLocation(const nsCID *aClass, const char *aClassName,
3258            const char *aContractID, nsIFile *aFile, const char *aLoaderStr,
3259            const char *aType);
3260    nsresult UnregisterFactoryLocation(const nsCID *aClass, nsIFile *aFile);
3261    nsresult IsCIDRegistered(const nsCID *aClass, bool *_retval);
3262    nsresult IsContractIDRegistered(const char *aContractID, bool *_retval);
3263    nsresult EnumerateCIDs(nsISimpleEnumerator **_retval);
3264    nsresult EnumerateContractIDs(nsISimpleEnumerator **_retval);
3265    nsresult CIDToContractID(const nsCID *aClass, char **_retval);
3266    nsresult ContractIDToCID(const char *aContractID, nsCID **_retval);
3267}
3268
3269[
3270    object,
3271    uuid(1630c61a-325e-49ca-8759-a31b16c47aa5),
3272    local
3273]
3274interface nsIPromptService : nsISupports
3275{
3276    nsresult Alert(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3277            const PRUnichar *aText);
3278    nsresult AlertCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3279            const PRUnichar *aText, const PRUnichar *aCheckMsg, bool *aCheckState);
3280    nsresult Confirm(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3281            const PRUnichar *aText, bool *_retval);
3282    nsresult ConfirmCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3283            const PRUnichar *aText, const PRUnichar *aCheckMsg, bool *aCheckState,
3284            bool *_retval);
3285    nsresult ConfirmEx(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3286            const PRUnichar *aText, uint32_t aButtonFlags, const PRUnichar *aButton0Title,
3287            const PRUnichar *aButton1Title, const PRUnichar *aButton2Title,
3288            const PRUnichar *aCheckMsg, bool *aCheckState, int32_t *_retval);
3289    nsresult Prompt(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3290            const PRUnichar *aText, PRUnichar **aValue, const PRUnichar *aCheckMsg,
3291            bool *aCheckState, bool *_retval);
3292    nsresult PromptUsernameAndPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3293            const PRUnichar *aText, PRUnichar **aUsername, PRUnichar **aPassword,
3294            const PRUnichar *aCheckMsg, bool *aCheckState, bool *_retval);
3295    nsresult PromptPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3296            const PRUnichar *aText, PRUnichar **aPassword, const PRUnichar *aCheckMsg,
3297            bool *aCheckState, bool *_retval);
3298    nsresult Select(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
3299            const PRUnichar *aText, uint32_t aCount, const PRUnichar **aSelectList,
3300            int32_t *aOutSelection, bool *_retval);
3301}
3302
3303[
3304    object,
3305    uuid(b128a1e6-44f3-4331-8fbe-5af360ff21ee),
3306    local
3307]
3308interface nsITooltipTextProvider : nsISupports
3309{
3310    nsresult GetNodeText(nsIDOMNode *aNode, PRUnichar **aText, bool *_retval);
3311}
3312
3313[
3314    object,
3315    uuid(24f3f4da-18a4-448d-876d-7360fefac029),
3316    local
3317]
3318interface nsIEditingSession : nsISupports
3319{
3320    nsresult GetEditorStatus(uint32_t *aEditorStatus);
3321    nsresult MakeWindowEditable(nsIDOMWindow *window, const char *aEditorType,
3322            bool doAfterUriLoad, bool aMakeWholeDocumentEditable, bool aInteractive);
3323    nsresult WindowIsEditable(nsIDOMWindow *window, bool *_retval);
3324    nsresult GetEditorForWindow(nsIDOMWindow *window, nsIEditor **_retval);
3325    nsresult SetupEditorOnWindow(nsIDOMWindow *window);
3326    nsresult TearDownEditorOnWindow(nsIDOMWindow *window);
3327    nsresult SetEditorOnControllers(nsIDOMWindow *aWindow, nsIEditor *aEditor);
3328    nsresult DisableJSAndPlugins(nsIDOMWindow *aWindow);
3329    nsresult RestoreJSAndPlugins(nsIDOMWindow *aWindow);
3330    nsresult DetachFromWindow(nsIDOMWindow *aWindow);
3331    nsresult ReattachToWindow(nsIDOMWindow *aWindow);
3332    nsresult GetJsAndPluginsDisabled(bool *aJsAndPluginsDisabled);
3333}
3334
3335[
3336    object,
3337    uuid(b1fdf3c4-74e3-4f7d-a14d-2b76bcf53482),
3338    local
3339]
3340interface nsICommandParams : nsISupports
3341{
3342    nsresult GetValueType(const char *name, int16_t *_retval);
3343    nsresult GetBooleanValue(const char *name, bool *_retval);
3344    nsresult GetLongValue(const char *name, int32_t *_retval);
3345    nsresult GetDoubleValue(const char *name, double *_retval);
3346    nsresult GetStringValue(const char *name, nsAString *_retval);
3347    nsresult GetCStringValue(const char *name, char **_retval);
3348    nsresult GetISupportsValue(const char *name, nsISupports **_retval);
3349    nsresult SetBooleanValue(const char *name, bool value);
3350    nsresult SetLongValue(const char *name, int32_t value);
3351    nsresult SetDoubleValue(const char *name, double value);
3352    nsresult SetStringValue(const char *name, const nsAString *value);
3353    nsresult SetCStringValue(const char *name, const char *value);
3354    nsresult SetISupportsValue(const char *name, nsISupports *value);
3355    nsresult RemoveValue(const char *name);
3356}
3357
3358[
3359    object,
3360    uuid(080d2001-f91e-11d4-a73c-f9242928207c),
3361    local
3362]
3363interface nsICommandManager : nsISupports
3364{
3365    nsresult AddCommandObserver(nsIObserver *aCommandObserver, const char *aCommandToObserve);
3366    nsresult RemoveCommandObserver(nsIObserver *aCommandObserver, const char *aCommandObserved);
3367    nsresult IsCommandSupported(const char *aCommandName, nsIDOMWindow *aTargetWindow, bool *_retval);
3368    nsresult IsCommandEnabled(const char *aCommandName, nsIDOMWindow *aTargetWindow, bool *_retval);
3369    nsresult GetCommandState(const char *aCommandName, nsIDOMWindow *aTargetWindow,
3370            nsICommandParams *aCommandParams);
3371    nsresult DoCommand(const char *aCommandName, nsICommandParams *aCommandParams,
3372            nsIDOMWindow *aTargetWindow);
3373}
3374
3375[
3376    object,
3377    uuid(3275b2cd-af6d-429a-80d7-f0c5120342ac),
3378    local
3379]
3380interface nsICategoryManager : nsISupports
3381{
3382    nsresult GetCategoryEntry(const char *aCategory, const char *aEntry, char **_retval);
3383    nsresult AddCategoryEntry(const char *aCategory, const char *aEntry, const char *aValue, bool aPersist,
3384            bool aReplace, char **_retval);
3385    nsresult DeleteCategoryEntry(const char *aCategory, const char *aEntry, bool aPersist);
3386    nsresult DeleteCategory(const char *aCategory);
3387    nsresult EnumerateCategory(const char *aCategory, nsISimpleEnumerator **_retval);
3388    nsresult EnumerateCategories(nsISimpleEnumerator **_retval);
3389}
3390
3391[
3392    object,
3393    uuid(47b82b60-a36f-4167-8072-6f421151ed50),
3394    local
3395]
3396interface nsIControllerContext : nsISupports
3397{
3398    nsresult Init(nsIControllerCommandTable *aCommandTable);
3399    nsresult SetCommandContext(nsISupports *aCommandContext);
3400}
3401
3402[
3403    object,
3404    uuid(d5b61b82-1da4-11d3-bf87-00105a1b0627),
3405    local
3406]
3407interface nsIController : nsISupports
3408{
3409    nsresult IsCommandEnabled(const char *command, bool *_retval);
3410    nsresult SupportsCommand(const char *command, bool *_retval);
3411    nsresult DoCommand(const char *command);
3412    nsresult OnEvent(const char *eventName);
3413}
3414
3415[
3416    object,
3417    uuid(70f7e9ea-a9bf-48cc-ad9d-8acaeed29b68),
3418    local
3419]
3420interface nsIContent : nsISupports
3421{
3422    /* This is not a real interface declaration. It's too internal for us. */
3423}
3424
3425[
3426    object,
3427    uuid(0b78eabe-8b94-4ea1-9331-5d48e83ada95),
3428    local
3429]
3430interface nsIDocument : nsISupports
3431{
3432    /* This is not a real interface declaration. It's too internal for us. */
3433}
3434
3435[
3436    object,
3437    uuid(b1ee32f2-b8c4-49b9-93df-b6fab5d54688),
3438    local
3439]
3440interface nsIContentSerializer : nsISupports
3441{
3442    nsresult Init(uint32_t flags, uint32_t aWrapColumn, const char *aCharSet, bool aIsCopying,
3443            bool aIsWholeDocument);
3444    nsresult AppendText(nsIContent *aText, int32_t aStartOffset, int32_t aEndOffset, nsAString *aStr);
3445    nsresult AppendCDATASection(nsIContent *aCDATASection, int32_t aStartOffset,
3446            int32_t aEndOffset, nsAString *aStr);
3447    nsresult AppendProcessingInstruction(nsIContent *aPI, int32_t aStartOffset,
3448            int32_t aEndOffset, nsAString *aStr);
3449    nsresult AppendComment(nsIContent *aComment, int32_t aStartOffset, int32_t aEndOffset,
3450            nsAString *aStr);
3451    nsresult AppendDoctype(nsIContent *aDoctype, nsAString *aStr);
3452    nsresult AppendElementStart(nsIContent *aElement, nsIContent *aOriginalElement,
3453                                nsAString *aStr);
3454    nsresult AppendElementEnd(nsIContent *aElement, nsAString *aStr);
3455    nsresult Flush(nsAString *aStr);
3456    nsresult AppendDocumentStart(nsIDocument *aDocument, nsAString *aStr);
3457}
3458
3459[
3460    object,
3461    uuid(094be624-f0bf-400f-89e2-6a84baab9474),
3462    local
3463]
3464interface nsIEditor  : nsISupports
3465{
3466    nsresult GetSelection([out] nsISelection *_retval);
3467    nsresult FinalizeSelection();
3468    nsresult Init([in] nsIDOMDocument *doc, nsIContent *aRoot, nsISelectionController *aSelCon, uint32_t aFlags, nsAString *initialValue);
3469    nsresult SetAttributeOrEquivalent([in] nsIDOMElement *element, [in] const nsAString *sourceAttrName, [in] const nsAString *sourceAttrValue, [in] bool aSuppressTransaction);
3470    nsresult RemoveAttributeOrEquivalent([in] nsIDOMElement *element, [in] const nsAString *sourceAttrName, [in] bool aSuppressTransaction);
3471    nsresult PostCreate();
3472    nsresult PreDestroy();
3473    nsresult GetFlags([out] uint32_t *_retval);
3474    nsresult SetFlags([in] uint32_t val);
3475    nsresult GetContentsMIMEType([out] char **_retval);
3476    nsresult SetContentsMIMEType([in] const char *val);
3477    nsresult GetIsDocumentEditable([out] bool *_retval);
3478    nsresult GetIsSelectionEditable(bool *aIsSelectionEditable);
3479    nsresult GetDocument([out] nsIDOMDocument **_retval);
3480    nsresult GetRootElement([out] nsIDOMElement **_retval);
3481    nsresult GetSelectionController([out] nsISelectionController **_retval);
3482    nsresult DeleteSelection(int16_t action, int16_t aStripWrappers);
3483    nsresult GetDocumentIsEmpty([out] bool *_retval);
3484    nsresult GetDocumentModified([out] bool *_retval);
3485    nsresult GetDocumentCharacterSet([out] nsACString *_retval);
3486    nsresult SetDocumentCharacterSet([in] const nsACString *val);
3487    nsresult ResetModificationCount();
3488    nsresult GetModificationCount([out] int32_t *_retval);
3489    nsresult IncrementModificationCount([in] int32_t aModCount);
3490    nsresult GetTransactionManager([out] nsITransactionManager **_retval);
3491    nsresult SetTransactionManager(nsITransactionManager *aTransactionManager);
3492    nsresult DoTransaction([in] nsITransaction *txn);
3493    nsresult EnableUndo([in] bool enable);
3494    nsresult GetNumberOfUndoItems(int32_t *aNumberOfUndoItems);
3495    nsresult GetNumberOfRedoItems(int32_t *aNumberOfRedoItems);
3496    nsresult Undo([in] uint32_t count);
3497    nsresult CanUndo([out] bool *isEnabled, [out] bool *canUndo);
3498    nsresult Redo([in] uint32_t count);
3499    nsresult CanRedo([out] bool *isEnabled, [out] bool *canRedo);
3500    nsresult BeginTransaction();
3501    nsresult EndTransaction();
3502    nsresult BeginPlaceHolderTransaction([in] nsIAtom *name);
3503    nsresult EndPlaceHolderTransaction();
3504    nsresult ShouldTxnSetSelection([out] bool *_retval);
3505    nsresult SetShouldTxnSetSelection([in] bool should);
3506    nsresult GetInlineSpellChecker([out] nsIInlineSpellChecker **_retval);
3507    nsresult SyncRealTimeSpell();
3508    nsresult SetSpellcheckUserOverride(bool enable);
3509    nsresult Cut();
3510    nsresult CanCut([out] bool *_retval);
3511    nsresult Copy();
3512    nsresult CanCopy([out] bool *_retval);
3513    nsresult CanDelete(bool *_retval);
3514    nsresult Paste([in] int32_t aSelectionType);
3515    nsresult PasteTransferable(nsITransferable *aTransferable);
3516    nsresult CanPaste([in] int32_t aSelectionType, [out] bool *_retval);
3517    nsresult CanPasteTransferable(nsITransferable *aTransferable, bool *_retval);
3518    nsresult SelectAll();
3519    nsresult BeginningOfDocument();
3520    nsresult EndOfDocument();
3521    nsresult SetAttribute([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [in] const nsAString *attvalue);
3522    nsresult GetAttributeValue([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [out] nsAString *resultValue, bool *_retval);
3523    nsresult RemoveAttribute([in] nsIDOMElement *aElement, [in] const nsAString *aAttribute);
3524    nsresult CloneAttribute([in] const nsAString *aAttribute, [in] nsIDOMNode *aDestNode, [in] nsIDOMNode *aSourceNode);
3525    nsresult CloneAttributes([in] nsIDOMNode *destNode, [in] nsIDOMNode *sourceNode);
3526    nsresult CreateNode([in] const nsAString *tag, [in] nsIDOMNode *parent, [in] int32_t position, [out] nsIDOMNode **_retval);
3527    nsresult InsertNode([in] nsIDOMNode *node, [in] nsIDOMNode *parent, [in] int32_t aPosition);
3528    nsresult SplitNode([in] nsIDOMNode *existingRightNode, [in] int32_t offset, [out] nsIDOMNode **newLeftNode);
3529    nsresult JoinNodes([in] nsIDOMNode *leftNode, [in] nsIDOMNode *rightNode, [in] nsIDOMNode *parent);
3530    nsresult DeleteNode([in] nsIDOMNode *child);
3531    bool OutputsMozDirty();
3532    nsresult MarkNodeDirty([in] nsIDOMNode *node);
3533    nsresult SwitchTextDirection();
3534    nsresult OutputToString([in] nsAString formatType, [in] uint32_t flags, [out] nsAString *_retval);
3535    nsresult OutputToStream([in] nsIOutputStream *aStream, [in] nsAString *formatType, [in] nsACString *charsetOverride, [in] uint32_t flags);
3536    nsresult AddEditorObserver(nsIEditorObserver *observer);
3537    nsresult RemoveEditorObserver(nsIEditorObserver *observer);
3538    nsresult AddEditActionListener([in] nsIEditActionListener *listener);
3539    nsresult RemoveEditActionListener([in] nsIEditActionListener *listener);
3540    nsresult AddDocumentStateListener([in] nsIDocumentStateListener *listener);
3541    nsresult RemoveDocumentStateListener([in] nsIDocumentStateListener *listener);
3542    nsresult DumpContentTree();
3543    nsresult DebugDumpContent();
3544    nsresult DebugUnitTests([out] int32_t *outNumTests, [out] int32_t *outNumTestsFailed);
3545    bool IsModifiableNode(nsIDOMNode *aNode);
3546    nsresult GetSuppressDispatchingInputEvent(bool *aSuppressDispatchingInputEvent);
3547    nsresult SetSuppressDispatchingInputEvent(bool aSuppressDispatchingInputEvent);
3548    nsresult GetIsInEditAction(bool *aIsInEditAction);
3549}
3550
3551[
3552    object,
3553    uuid(87ee993e-985f-4a43-a974-0d9512da2fb0),
3554    local
3555]
3556interface nsIHTMLEditor : nsISupports
3557{
3558    nsresult AddDefaultProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3559    nsresult RemoveDefaultProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3560    nsresult RemoveAllDefaultProperties();
3561    nsresult SetInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue);
3562    nsresult GetInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue, [out] bool *aFirst, [out] bool *aAny, [out] bool *aAll);
3563    nsresult GetInlinePropertyWithAttrValue([in] nsIAtom *aProperty, [in] nsAString *aAttribute, [in] nsAString *aValue, [out] bool *aFirst, [out] bool *aAny, [out] bool *aAll, [out] nsAString *_retval);
3564    nsresult RemoveAllInlineProperties();
3565    nsresult RemoveInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute);
3566    nsresult IncreaseFontSize();
3567    nsresult DecreaseFontSize();
3568    nsresult NodeIsBlock([in] nsIDOMNode *node, bool *_retval);
3569    nsresult InsertHTML([in] nsAString *aInputString);
3570    nsresult PasteNoFormatting([in] int32_t aSelectionType);
3571    nsresult RebuildDocumentFromSource([in] nsAString *aSourceString);
3572    nsresult InsertHTMLWithContext([in] nsAString *aInputString, [in] nsAString *aContextStr, [in] nsAString *aInfoStr, [in] nsAString *aFlavor, [in] nsIDOMDocument *aSourceDoc, [in] nsIDOMNode *aDestinationNode, [in] int32_t aDestinationOffset, [in] bool aDeleteSelection);
3573    nsresult InsertElementAtSelection([in] nsIDOMElement *aElement, [in] bool aDeleteSelection);
3574    nsresult SetDocumentTitle([in] nsAString *aTitle);
3575    nsresult UpdateBaseURL();
3576    nsresult SelectElement([in] nsIDOMElement *aElement);
3577    nsresult SetCaretAfterElement([in] nsIDOMElement *aElement);
3578    nsresult SetParagraphFormat([in] nsAString *aParagraphFormat);
3579    nsresult GetParagraphState([out] bool *aMixed, [out] nsAString *_retval);
3580    nsresult GetFontFaceState([out] bool *aMixed, [out] nsAString *_retval);
3581    nsresult GetFontColorState([out] bool *aMixed, [out] nsAString *_retval);
3582    nsresult GetBackgroundColorState([out] bool *aMixed, [out] nsAString *_retval);
3583    nsresult GetHighlightColorState([out] bool *aMixed, [out] nsAString *_retval);
3584    nsresult GetListState([out] bool *aMixed, [out] bool *aOL, [out] bool *aUL, [out] bool *aDL);
3585    nsresult GetListItemState([out] bool *aMixed, [out] bool *aLI, [out] bool *aDT, [out] bool *aDD);
3586    nsresult GetAlignment([out] bool *aMixed, [out] int16_t *aAlign);
3587    nsresult GetIndentState([out] bool *aCanIndent, [out] bool *aCanOutdent);
3588    nsresult MakeOrChangeList([in] nsAString *aListType, [in] bool entireList, [in] nsAString *aBulletType);
3589    nsresult RemoveList([in] nsAString *aListType);
3590    nsresult Indent([in] nsAString *aIndent);
3591    nsresult Align([in] nsAString *aAlign);
3592    nsresult GetElementOrParentByTagName([in] nsAString *aTagName, [in] nsIDOMNode *aNode, [out] nsIDOMElement **_retval);
3593    nsresult GetSelectedElement([in] nsAString *aTagName, [out] nsIDOMElement **_retval);
3594    nsresult GetHeadContentsAsHTML([out] nsAString *_retval);
3595    nsresult ReplaceHeadContentsWithHTML([in] nsAString *aSourceToInsert);
3596    nsresult CreateElementWithDefaults([in] nsAString *aTagName, [out] nsIDOMElement **_retval);
3597    nsresult InsertLinkAroundSelection([in] nsIDOMElement *aAnchorElement);
3598    nsresult SetBackgroundColor([in] nsAString *aColor);
3599    nsresult SetBodyAttribute([in] nsAString *aAttr, [in] nsAString *aValue);
3600    nsresult GetLinkedObjects([out] nsISupportsArray **_retval);
3601    nsresult GetIsCSSEnabled([out] bool *_retval);
3602    nsresult SetIsCSSEnabled([in] bool prb);
3603    nsresult AddInsertionListener([in] nsIContentFilter *inFilter);
3604    nsresult RemoveInsertionListener([in] nsIContentFilter *inFilter);
3605    nsresult CreateAnonymousElement([in] nsAString *aTag, [in] nsIDOMNode *aParentNode, [in] nsAString *aAnonClass, [in] bool aIsCreatedHidden, [out] nsIDOMElement **_retval);
3606    nsresult GetSelectionContainer([out] nsIDOMElement **_retval);
3607    nsresult CheckSelectionStateForAnonymousButtons([in] nsISelection *aSelection);
3608    nsresult IsAnonymousElement([in] nsIDOMElement *aElement, [out] bool *_retval);
3609    nsresult GetReturnInParagraphCreatesNewParagraph([out] bool *_retval);
3610    nsresult SetReturnInParagraphCreatesNewParagraph([in] bool prb);
3611    void /*Element*/ *GetActiveEditingHost();
3612}
3613
3614[
3615    object,
3616    uuid(b8100c90-73be-11d2-92a5-00105a1b0d64),
3617    local
3618]
3619interface nsIClipboardCommands : nsISupports
3620{
3621    nsresult CanCutSelection(bool *_retval);
3622    nsresult CanCopySelection(bool *_retval);
3623    nsresult CanCopyLinkLocation(bool *_retval);
3624    nsresult CanCopyImageLocation(bool *_retval);
3625    nsresult CanCopyImageContents(bool *_retval);
3626    nsresult CanPaste(bool *_retval);
3627    nsresult CutSelection();
3628    nsresult CopySelection();
3629    nsresult CopyLinkLocation();
3630    nsresult CopyImageLocation();
3631    nsresult CopyImageContents();
3632    nsresult Paste();
3633    nsresult SelectAll();
3634    nsresult SelectNone();
3635}
3636
3637[
3638    object,
3639    uuid(edb99640-8378-4106-8673-e701a086eb1c),
3640    local
3641]
3642interface nsIDocShellTreeItem : nsISupports
3643{
3644    nsresult GetName(nsAString *aName);
3645    nsresult SetName(const nsAString *aName);
3646    nsresult NameEquals(const PRUnichar *name, bool *_retval);
3647    nsresult GetItemType(int32_t *aItemType);
3648    nsresult SetItemType(int32_t aItemType);
3649    int32_t ItemType();
3650    nsresult GetParent(nsIDocShellTreeItem **aParent);
3651    nsresult GetSameTypeParent(nsIDocShellTreeItem **aSameTypeParent);
3652    nsresult GetRootTreeItem(nsIDocShellTreeItem **aRootTreeItem);
3653    nsresult GetSameTypeRootTreeItem(nsIDocShellTreeItem **aSameTypeRootTreeItem);
3654    nsresult FindItemWithName(const PRUnichar *name, nsISupports *aRequestor, nsIDocShellTreeItem *aOriginalRequestor,
3655            nsIDocShellTreeItem **_retval);
3656    nsresult GetTreeOwner(nsIDocShellTreeOwner **aTreeOwner);
3657    nsresult SetTreeOwner(nsIDocShellTreeOwner *treeOwner);
3658    nsresult GetChildCount(int32_t *aChildCount);
3659    nsresult AddChild(nsIDocShellTreeItem *child);
3660    nsresult RemoveChild(nsIDocShellTreeItem *child);
3661    nsresult GetChildAt(int32_t index, nsIDocShellTreeItem **_retval);
3662    nsresult FindChildWithName(const PRUnichar *aName, bool aRecurse, bool aSameType, nsIDocShellTreeItem *aRequestor,
3663            nsIDocShellTreeItem *aOriginalRequestor, nsIDocShellTreeItem **_retval);
3664    nsIDocument /* thiscall */ *GetDocument();
3665    void /* thiscall nsPIDOMWindow */ *GetWindow();
3666}
3667
3668[
3669    object,
3670    uuid(702e0a92-7d63-490e-b5ee-d247e6bd4588),
3671    local
3672]
3673interface nsIContentViewer : nsISupports
3674{
3675    nsresult Init(nsIWidget *aParentWidget, const void /*nsIntRect*/ *aBounds);
3676    nsresult GetContainer(nsIDocShell **aContainer);
3677    nsresult SetContainer(nsIDocShell *aContainer);
3678    void /* thiscall */ LoadStart(nsIDocument *aDoc);
3679    nsresult LoadComplete(nsresult aStatus);
3680    nsresult PermitUnload(bool aCallerClosesWindow, bool *_retval);
3681    nsresult GetInPermitUnload(bool *aInPermitUnload);
3682    nsresult /* thiscall */ PermitUnloadInternal(bool aCallerClosesWindow, bool *aShouldPrompt, bool *_retval);
3683    nsresult GetBeforeUnloadFiring(bool *aBeforeUnloadFiring);
3684    nsresult ResetCloseWindow();
3685    nsresult PageHide(bool isUnload);
3686    nsresult Close(nsISHEntry *historyEntry);
3687    nsresult Destroy();
3688    nsresult Stop();
3689    nsresult GetDOMDocument(nsIDOMDocument **aDOMDocument);
3690    nsresult SetDOMDocument(nsIDOMDocument *aDOMDocument);
3691    void /* thiscall nsresult_(nsIDocument *) */ GetDocument();
3692    nsresult GetBounds(void /*nsIntRect*/ *aBounds);
3693    nsresult SetBounds(const void /*nsIntRect*/ *aBounds);
3694    nsresult GetPreviousViewer(nsIContentViewer **aPreviousViewer);
3695    nsresult SetPreviousViewer(nsIContentViewer *aPreviousViewer);
3696    nsresult Move(int32_t aX, int32_t aY);
3697    nsresult Show();
3698    nsresult Hide();
3699    nsresult GetSticky(bool *aSticky);
3700    nsresult SetSticky(bool aSticky);
3701    nsresult RequestWindowClose(bool *_retval);
3702    nsresult Open(nsISupports *aState, nsISHEntry *aSHEntry);
3703    nsresult ClearHistoryEntry();
3704    nsresult SetPageMode(bool aPageMode, nsIPrintSettings *aPrintSettings);
3705    nsresult GetHistoryEntry(nsISHEntry **aHistoryEntry);
3706    nsresult GetIsTabModalPromptAllowed(bool *aIsTabModalPromptAllowed);
3707    nsresult GetIsHidden(bool *aIsHidden);
3708    nsresult SetIsHidden(bool aIsHidden);
3709    nsresult GetPresShell(nsIPresShell **aPresShell);
3710    nsresult GetPresContext(void /*nsPresContext*/ **aPresContext);
3711    nsresult SetDocumentInternal(nsIDocument *aDocument, bool aForceReuseInnerWindow);
3712    void /* thiscall nsView */ *FindContainerView(void);
3713    void /* thiscall */ SetNavigationTiming(void /*nsDOMNavigationTiming*/ *aTiming);
3714    nsresult ScrollToNode(nsIDOMNode *node);
3715    nsresult GetTextZoom(float *aTextZoom);
3716    nsresult SetTextZoom(float aTextZoom);
3717    nsresult GetFullZoom(float *aFullZoom);
3718    nsresult SetFullZoom(float aFullZoom);
3719    nsresult GetAuthorStyleDisabled(bool *aAuthorStyleDisabled);
3720    nsresult SetAuthorStyleDisabled(bool aAuthorStyleDisabled);
3721    nsresult GetForceCharacterSet(nsACString *aForceCharacterSet);
3722    nsresult SetForceCharacterSet(const nsACString *aForceCharacterSet);
3723    nsresult GetHintCharacterSet(nsACString *aHintCharacterSet);
3724    nsresult SetHintCharacterSet(const nsACString *aHintCharacterSet);
3725    nsresult GetHintCharacterSetSource(int32_t *aHintCharacterSetSource);
3726    nsresult SetHintCharacterSetSource(int32_t aHintCharacterSetSource);
3727    nsresult GetContentSize(int32_t *width, int32_t *height);
3728    nsresult GetMinFontSize(int32_t *aMinFontSize);
3729    nsresult SetMinFontSize(int32_t aMinFontSize);
3730    nsresult AppendSubtree(void /*nsTArray<nsCOMPtr<nsIContentViewer> >*/ *array);
3731    nsresult ChangeMaxLineBoxWidth(int32_t maxLineBoxWidth);
3732    nsresult PausePainting();
3733    nsresult ResumePainting();
3734    nsresult EmulateMedium(const nsAString *aMediaType);
3735    nsresult StopEmulatingMedium();
3736}
3737
3738[
3739    object,
3740    uuid(c63e9d64-490d-48bf-8013-b5d8ee4dbc25),
3741    local
3742]
3743interface nsIDocShellLoadInfo : nsISupports
3744{
3745    typedef int32_t nsDocShellInfoLoadType;
3746    typedef uint32_t nsDocShellInfoReferrerPolicy;
3747
3748    nsresult GetReferrer(nsIURI **aReferrer);
3749    nsresult SetReferrer(nsIURI *aReferrer);
3750    nsresult GetOwner(nsISupports **aOwner);
3751    nsresult SetOwner(nsISupports *aOwner);
3752    nsresult GetInheritOwner(bool *aInheritOwner);
3753    nsresult SetInheritOwner(bool aInheritOwner);
3754    nsresult GetOwnerIsExplicit(bool *aOwnerIsExplicit);
3755    nsresult SetOwnerIsExplicit(bool aOwnerIsExplicit);
3756    nsresult GetLoadType(nsDocShellInfoLoadType *aLoadType);
3757    nsresult SetLoadType(nsDocShellInfoLoadType aLoadType);
3758    nsresult GetSHEntry(nsISHEntry **aSHEntry);
3759    nsresult SetSHEntry(nsISHEntry *aSHEntry);
3760    nsresult GetTarget(char16_t **aTarget);
3761    nsresult SetTarget(const char16_t * aTarget);
3762    nsresult GetPostDataStream(nsIInputStream **aPostDataStream);
3763    nsresult SetPostDataStream(nsIInputStream *aPostDataStream);
3764    nsresult GetHeadersStream(nsIInputStream * *aHeadersStream);
3765    nsresult SetHeadersStream(nsIInputStream *aHeadersStream);
3766    nsresult GetSendReferrer(bool *aSendReferrer);
3767    nsresult SetSendReferrer(bool aSendReferrer);
3768    nsresult GetReferrerPolicy(nsDocShellInfoReferrerPolicy *aReferrerPolicy);
3769    nsresult SetReferrerPolicy(nsDocShellInfoReferrerPolicy aReferrerPolicy);
3770    nsresult GetIsSrcdocLoad(bool *aIsSrcdocLoad);
3771    nsresult GetSrcdocData(nsAString *aSrcdocData);
3772    nsresult SetSrcdocData(const nsAString *aSrcdocData);
3773    nsresult GetSourceDocShell(nsIDocShell * *aSourceDocShell);
3774    nsresult SetSourceDocShell(nsIDocShell *aSourceDocShell);
3775    nsresult GetBaseURI(nsIURI **aBaseURI);
3776    nsresult SetBaseURI(nsIURI *aBaseURI);
3777}
3778
3779[
3780    object,
3781    uuid(696b32a1-3cf1-4909-b501-474b25fc7954),
3782    local
3783]
3784interface nsIDocShell : nsIDocShellTreeItem
3785{
3786    nsresult LoadURI(nsIURI *uri, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags, bool firstParty);
3787    nsresult LoadStream(nsIInputStream *aStream, nsIURI *aURI, const nsACString *aContentType,
3788            const nsACString *aContentCharset, nsIDocShellLoadInfo *aLoadInfo);
3789    nsresult InternalLoad(nsIURI *aURI, nsIURI *aReferrer, uint32_t aReferrerPolicy, nsISupports *aOwner,
3790            uint32_t aFlags, const PRUnichar *aWindowTarget, const char *aTypeHint, nsACString *aFileName,
3791            nsIInputStream *aPostDataStream, nsIInputStream *aHeadersStream, uint32_t aLoadFlags,
3792            nsISHEntry *aSHEntry, bool firstParty, const nsAString *aSrcdoc, nsIDocShell *aSourceDocShell,
3793            nsIURI *aBaseURI, nsIDocShell **aDocShell, nsIRequest **aRequest);
3794    nsresult AddState(jsval *aData, const nsAString *aTitle, const nsAString *aURL, bool aReplace, JSContext *cx);
3795    nsresult CreateLoadInfo(nsIDocShellLoadInfo **loadInfo);
3796    nsresult PrepareForNewContentModel();
3797    nsresult SetCurrentURI(nsIURI *aURI);
3798    nsresult FirePageHideNotification(bool isUnload);
3799    nsresult GetPresContext(void /*nsPresContext*/ **aPresContext);
3800    nsIPresShell *GetPresShell();
3801    nsresult GetEldestPresShell(nsIPresShell **aEldestPresShell);
3802    nsresult GetContentViewer(nsIContentViewer **aContentViewer);
3803    nsresult GetChromeEventHandler(nsIDOMEventTarget **aChromeEventHandler);
3804    nsresult SetChromeEventHandler(nsIDOMEventTarget *aChromeEventHandler);
3805    nsresult GetAllowPlugins(bool *aAllowPlugins);
3806    nsresult SetAllowPlugins(bool aAllowPlugins);
3807    nsresult GetAllowJavascript(bool *aAllowJavascript);
3808    nsresult SetAllowJavascript(bool aAllowJavascript);
3809    nsresult GetDisableNoScript(bool *aDisableNoScript);
3810    nsresult SetDisableNoScript(bool aDisableNoScript);
3811    nsresult GetAllowMetaRedirects(bool *aAllowMetaRedirects);
3812    nsresult SetAllowMetaRedirects(bool aAllowMetaRedirects);
3813    nsresult GetAllowSubframes(bool *aAllowSubframes);
3814    nsresult SetAllowSubframes(bool aAllowSubframes);
3815    nsresult GetAllowImages(bool *aAllowImages);
3816    nsresult SetAllowImages(bool aAllowImages);
3817    nsresult GetAllowMedia(bool *aAllowMedia);
3818    nsresult SetAllowMedia(bool aAllowMedia);
3819    nsresult GetAllowDNSPrefetch(bool *aAllowDNSPrefetch);
3820    nsresult SetAllowDNSPrefetch(bool aAllowDNSPrefetch);
3821    nsresult GetAllowWindowControl(bool *aAllowWindowControl);
3822    nsresult SetAllowWindowControl(bool aAllowWindowControl);
3823    nsresult GetAllowContentRetargeting(bool *aAllowContentRetargeting);
3824    nsresult SetAllowContentRetargeting(bool aAllowContentRetargeting);
3825    nsresult GetAllowContentRetargetingOnChildren(bool *aAllowContentRetargetingOnChildren);
3826    nsresult SetAllowContentRetargetingOnChildren(bool aAllowContentRetargetingOnChildren);
3827    nsresult GetDocShellEnumerator(int32_t aItemType, int32_t aDirection, nsISimpleEnumerator **_retval);
3828    nsresult GetAppType(uint32_t *aAppType);
3829    nsresult SetAppType(uint32_t aAppType);
3830    nsresult GetAllowAuth(bool *aAllowAuth);
3831    nsresult SetAllowAuth(bool aAllowAuth);
3832    nsresult GetZoom(float *aZoom);
3833    nsresult SetZoom(float aZoom);
3834    nsresult GetMarginWidth(int32_t *aMarginWidth);
3835    nsresult SetMarginWidth(int32_t aMarginWidth);
3836    nsresult GetMarginHeight(int32_t *aMarginHeight);
3837    nsresult SetMarginHeight(int32_t aMarginHeight);
3838    nsresult TabToTreeOwner(bool forward, bool *tookFocus);
3839    nsresult GetBusyFlags(uint32_t *aBusyFlags);
3840    nsresult GetLoadType(uint32_t *aLoadType);
3841    nsresult SetLoadType(uint32_t aLoadType);
3842    nsresult GetDefaultLoadFlags(nsLoadFlags *aDefaultLoadFlags);
3843    nsresult SetDefaultLoadFlags(nsLoadFlags aDefaultLoadFlags);
3844    nsresult IsBeingDestroyed(bool *_retval);
3845    nsresult GetIsExecutingOnLoadHandler(bool *aIsExecutingOnLoadHandler);
3846    nsresult GetLayoutHistoryState(nsILayoutHistoryState **aLayoutHistoryState);
3847    nsresult SetLayoutHistoryState(nsILayoutHistoryState *aLayoutHistoryState);
3848    nsresult GetShouldSaveLayoutState(bool *aShouldSaveLayoutState);
3849    nsresult GetSecurityUI(nsISecureBrowserUI **aSecurityUI);
3850    nsresult SetSecurityUI(nsISecureBrowserUI *aSecurityUI);
3851    nsresult SuspendRefreshURIs();
3852    nsresult ResumeRefreshURIs();
3853    nsresult BeginRestore(nsIContentViewer *viewer, bool top);
3854    nsresult FinishRestore();
3855    nsresult GetRestoringDocument(bool *aRestoringDocument);
3856    nsresult GetUseErrorPages(bool *aUseErrorPages);
3857    nsresult SetUseErrorPages(bool aUseErrorPages);
3858    nsresult DisplayLoadError(nsresult aError, nsIURI *aURI, const PRUnichar *aURL, nsIChannel *aFailedChannel);
3859    nsresult GetFailedChannel(nsIChannel **aFailedChannel);
3860    nsresult GetPreviousTransIndex(int32_t *aPreviousTransIndex);
3861    nsresult GetLoadedTransIndex(int32_t *aLoadedTransIndex);
3862    nsresult HistoryPurged(int32_t numEntries);
3863    nsresult GetSessionStorageForPrincipal(nsIPrincipal *principal, const nsAString *documentURI,
3864            bool create, nsIDOMStorage **_retval);
3865    nsresult AddSessionStorage(nsIPrincipal *principal, nsIDOMStorage *storage);
3866    nsresult GetCurrentDocumentChannel(nsIChannel **aCurrentDocumentChannel);
3867    nsresult SetChildOffset(uint32_t offset);
3868    nsresult GetIsInUnload(bool *aIsInUnload);
3869    nsresult GetChannelIsUnsafe(bool *aChannelIsUnsafe);
3870    nsresult GetHasMixedActiveContentLoaded(bool *aHasMixedActiveContentLoaded);
3871    nsresult GetHasMixedActiveContentBlocked(bool *aHasMixedActiveContentBlocked);
3872    nsresult GetHasMixedDisplayContentLoaded(bool *aHasMixedDisplayContentLoaded);
3873    nsresult GetHasMixedDisplayContentBlocked(bool *aHasMixedDisplayContentBlocked);
3874    nsresult GetHasTrackingContentBlocked(bool *aHasTrackingContentBlocked);
3875    nsresult GetHasTrackingContentLoaded(bool *aHasTrackingContentLoaded);
3876    void DetachEditorFromWindow();
3877    nsresult GetIsOffScreenBrowser(bool *aIsOffScreenBrowser);
3878    nsresult SetIsOffScreenBrowser(bool aIsOffScreenBrowser);
3879    nsresult GetPrintPreview(nsIWebBrowserPrint **aPrintPreview);
3880    nsresult GetCanExecuteScripts(bool *aCanExecuteScripts);
3881    nsresult GetIsActive(bool *aIsActive);
3882    nsresult SetIsActive(bool aIsActive);
3883    nsresult SetIsPrerendered(bool prerendered);
3884    nsresult GetIsPrerendered(bool *aIsPrerendered);
3885    nsresult GetHistoryID(uint64_t *aHistoryID);
3886    nsresult GetIsAppTab(bool *aIsAppTab);
3887    nsresult SetIsAppTab(bool aIsAppTab);
3888    nsresult CreateAboutBlankContentViewer(nsIPrincipal *aPrincipal);
3889    nsresult GetCharset(nsACString *aCharset);
3890    nsresult SetCharset(nsACString *aCharset);
3891    nsresult GatherCharsetMenuTelemetry();
3892    nsresult GetForcedCharset(nsIAtom **aForcedCharset);
3893    nsresult SetForcedCharset(nsIAtom *aForcedCharset);
3894    void SetParentCharset(const nsACString *parentCharset, int32_t parentCharsetSource, nsIPrincipal *parentCharsetPrincipal);
3895    void GetParentCharset(nsACString *parentCharset, int32_t *parentCharsetSource, nsIPrincipal **parentCharsetPrincipal);
3896    nsresult GetRecordProfileTimelineMarkers(bool *aRecordProfileTimelineMarkers);
3897    nsresult SetRecordProfileTimelineMarkers(bool aRecordProfileTimelineMarkers);
3898    nsresult Now(int /* DOMHighResTimeStamp */ *_retval);
3899    nsresult PopProfileTimelineMarkers(JSContext *cx, void /*JS::MutableHandleValue*/ *_retval);
3900    nsresult AddWeakPrivacyTransitionObserver(nsIPrivacyTransitionObserver *obs);
3901    nsresult AddWeakReflowObserver(nsISupports /*nsIReflowObserver*/ *obs);
3902    nsresult RemoveWeakReflowObserver(nsISupports /*nsIReflowObserver*/ *obs);
3903    nsresult NotifyReflowObservers(bool interruptible, int /*DOMHighResTimeStamp*/ start, int /*DOMHighResTimeStamp*/ end);
3904    nsresult AddWeakScrollObserver(void /*nsIScrollObserver*/ *obs);
3905    nsresult RemoveWeakScrollObserver(void /*nsIScrollObserver*/ *obs);
3906    nsresult NotifyScrollObservers();
3907    nsresult GetIsBrowserElement(bool *aIsBrowserElement);
3908    nsresult GetIsApp(bool *aIsApp);
3909    nsresult GetIsBrowserOrApp(bool *aIsBrowserOrApp);
3910    nsresult GetIsInBrowserElement(bool *aIsInBrowserElement);
3911    nsresult GetIsInBrowserOrApp(bool *aIsInBrowserOrApp);
3912    nsresult SetIsApp(uint32_t ownAppId);
3913    nsresult SetIsBrowserInsideApp(uint32_t containingAppId);
3914    nsresult GetAppId(uint32_t *aAppId);
3915    nsresult GetAppManifestURL(nsAString *aAppManifestURL);
3916    nsresult GetSameTypeParentIgnoreBrowserAndAppBoundaries(nsIDocShell **_retval);
3917    nsresult GetAsyncPanZoomEnabled(bool *aAsyncPanZoomEnabled);
3918    nsresult GetSandboxFlags(uint32_t *aSandboxFlags);
3919    nsresult SetSandboxFlags(uint32_t aSandboxFlags);
3920    nsresult GetOnePermittedSandboxedNavigator(nsIDocShell **aOnePermittedSandboxedNavigator);
3921    nsresult SetOnePermittedSandboxedNavigator(nsIDocShell *aOnePermittedSandboxedNavigator);
3922    bool IsSandboxedFrom(nsIDocShell *aTargetDocShell);
3923    nsresult GetMixedContentChannel(nsIChannel **aMixedContentChannel);
3924    nsresult SetMixedContentChannel(nsIChannel *aMixedContentChannel);
3925    nsresult GetAllowMixedContentAndConnectionData(bool *rootHasSecureConnection, bool *allowMixedContent, bool *isRootDocShell);
3926    bool PluginsAllowedInCurrentDoc();
3927    nsresult GetFullscreenAllowed(bool *aFullscreenAllowed);
3928    nsresult SetFullscreenAllowed(bool allowed);
3929    nsresult GetAffectPrivateSessionLifetime(bool *aAffectPrivateSessionLifetime);
3930    nsresult SetAffectPrivateSessionLifetime(bool aAffectPrivateSessionLifetime);
3931    nsresult GetMayEnableCharacterEncodingMenu(bool *aMayEnableCharacterEncodingMenu);
3932    nsresult GetEditor(nsIEditor **aEditor);
3933    nsresult SetEditor(nsIEditor *aEditor);
3934    nsresult GetEditable(bool *aEditable);
3935    nsresult GetHasEditingSession(bool *aHasEditingSession);
3936    nsresult MakeEditable(bool inWaitForUriLoad);
3937    nsresult GetChildSHEntry(int32_t aChildOffset, nsISHEntry **_retval);
3938    nsresult AddChildSHEntry(nsISHEntry *aCloneReference, nsISHEntry *aHistoryEntry, int32_t aChildOffset, uint32_t aLoadType, bool aCloneChildren);
3939    nsresult GetUseGlobalHistory(bool *aUseGlobalHistory);
3940    nsresult SetUseGlobalHistory(bool aUseGlobalHistory);
3941    nsresult RemoveFromSessionHistory();
3942    nsresult GetCreatedDynamically(bool *aCreatedDynamically);
3943    nsresult SetCreatedDynamically(bool aCreatedDynamically);
3944    nsresult GetCurrentSHEntry(nsISHEntry **aEntry, bool *_retval);
3945    nsresult IsCommandEnabled(const char *command, bool *_retval);
3946    nsresult DoCommand(const char *command);
3947    bool IsInvisible();
3948    void SetInvisible(bool aIsInvisibleDochsell);
3949    void /*nsIScriptGlobalObject*/ *GetScriptGlobalObject();
3950    nsresult GetDeviceSizeIsPageSize(bool *aDeviceSizeIsPageSize);
3951    nsresult SetDeviceSizeIsPageSize(bool aDeviceSizeIsPageSize);
3952    void /* thiscall */ SetOpener(void /*nsITabParent*/ *aOpener);
3953    void /* thiscall nsITabParent */ *GetOpener();
3954    void /*mozilla::dom::URLSearchParams */ *GetURLSearchParams();
3955    void /* thiscall */ NotifyJSRunToCompletionStart(const char *aReason, const char16_t *functionName,
3956            const char16_t *fileName, uint32_t lineNumber);
3957    void /* thiscall */ NotifyJSRunToCompletionStop();
3958    nsresult GetHasLoadedNonBlankURI(bool *aHasLoadedNonBlankURI);
3959    nsresult GetPaymentRequestId(nsAString *aPaymentRequestId);
3960    nsresult SetPaymentRequestId(const nsAString *aPaymentRequestId);
3961    nsresult GetWindowDraggingAllowed(bool *aWindowDraggingAllowed);
3962    nsresult SetWindowDraggingAllowed(bool aWindowDraggingAllowed);
3963}
3964
3965[
3966    object,
3967    uuid(16fe5e3e-eadc-4312-9d44-b6bedd6b5474),
3968    local
3969]
3970interface nsIMutationObserver : nsISupports
3971{
3972    void CharacterDataWillChange(nsIDocument *aDocument, nsIContent *aContent,
3973                                 void /*CharacterDataChangeInfo*/ *aInfo);
3974    void CharacterDataChanged(nsIDocument *aDocument, nsIContent *aContent,
3975                              void /*CharacterDataChangeInfo*/ *aInfo);
3976    void AttributeWillChange(nsIDocument *aDocument, nsIContent *aContent, int32_t aNameSpaceID,
3977                             nsIAtom *aAttribute, int32_t aModType);
3978    void AttributeChanged(nsIDocument *aDocument, nsIContent *aContent, int32_t aNameSpaceID,
3979                          nsIAtom *aAttribute, int32_t aModType);
3980    void AttributeSetToCurrentValue(nsIDocument *aDocument, /*mozilla::dom::Element*/ void *aElement,
3981                                    int32_t aNameSpaceID, nsIAtom *aAttribute);
3982    void ContentAppended(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aFirstNewContent,
3983                         int32_t aNewIndexInContainer);
3984    void ContentInserted(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
3985                         int32_t aIndexInContainer);
3986    void ContentRemoved(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
3987                        int32_t aIndexInContainer, nsIContent *aPreviousSibling);
3988    void NodeWillBeDestroyed(const nsINode *aNode);
3989    void ParentChainChanged(nsIContent *aContent);
3990}
3991
3992[
3993    object,
3994    uuid(2c4ad90a-740e-4212-ba3f-feacda4b929e),
3995    local
3996]
3997interface nsIParser : nsISupports
3998{
3999    typedef int nsDTDMode;
4000    typedef int eParserCommands;
4001
4002    /* From nsParserBase: */
4003    bool IsParserEnabled();
4004    nsresult GetChannel(nsIChannel **aChannel);
4005
4006    void SetContentSink(nsIContentSink *aSink);
4007    nsIContentSink *GetContentSink();
4008    void GetCommand(nsACString *aCommand);
4009    void SetCommand2(const char *aCommand);
4010    void SetCommand(eParserCommands aParserCommand);
4011    void SetDocumentCharset(const nsACString *aCharset, int32_t aSource);
4012    void GetDocumentCharset(nsACString *oCharset, int32_t *oSource);
4013    /* nsresult GetChannel(nsIChannel **aChannel); in nsParserBase */
4014    nsresult GetDTD(nsIDTD **aDTD);
4015    nsIStreamListener *GetStreamListener();
4016    nsresult ContinueInterruptedParsing();
4017    void BlockParser();
4018    void UnblockParser();
4019    void ContinueInterruptedParsingAsync();
4020    /* bool IsParserEnabled(); in nsParserBase */
4021    bool IsComplete();
4022    nsresult Parse(nsIURI *aURL, nsIRequestObserver *aListener, void *aKey, nsDTDMode aMode);
4023    nsresult Terminate();
4024    nsresult ParseFragment(const nsAString *aSourceBuffer, void /*nsTArray<nsString>*/ *aTagStack);
4025    nsresult BuildModel();
4026    nsresult CancelParsingEvents();
4027    void Reset();
4028    bool IsInsertionPointDefined();
4029    void BeginEvaluatingParserInsertedScript();
4030    void EndEvaluatingParserInsertedScript();
4031    void MarkAsNotScriptCreated(const char *aCommand);
4032    bool IsScriptCreated();
4033}
4034
4035[
4036    object,
4037    uuid(900bc4bc-8b6c-4cba-82fa-568a80fffd3e),
4038    local
4039]
4040interface nsIDocumentObserver : nsIMutationObserver
4041{
4042    typedef uint32_t nsUpdateType;
4043
4044    typedef struct {
4045        uint64_t mStates;
4046    } EventStates;
4047
4048    void BeginUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
4049    void EndUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
4050    void BeginLoad(nsIDocument *aDocument);
4051    void EndLoad(nsIDocument *aDocument);
4052    void ContentStatesChanged(nsIDocument *aDocument, nsIContent *aContent, EventStates aStateMask);
4053    void DocumentStatesChanged(nsIDocument *aDocument, EventStates aStateMask);
4054    void StyleSheetAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, bool aDocumentSheet);
4055    void StyleSheetRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, bool aDocumentSheet);
4056    void StyleSheetApplicableStateChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet,
4057                                          bool aApplicable);
4058    void StyleRuleChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aOldStyleRule,
4059                          nsIStyleRule *aNewStyleRule);
4060    void StyleRuleAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
4061    void StyleRuleRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
4062    void BindToDocument(nsIDocument *aDocument, nsIContent *aContent);
4063    void AttemptToExecuteScript(nsIContent *aContent, nsIParser *aParser, bool *aBlock);
4064}
4065
4066[
4067    object,
4068    uuid(3682dd99-8560-44f4-9b8f-ccce9d7b96fb),
4069    local
4070]
4071interface nsIContentUtils : nsISupports
4072{
4073    bool IsSafeToRunScript();
4074    nsresult AddDocumentObserver(nsIDocument *aDocument, nsIDocumentObserver *aObserver);
4075    nsresult RemoveDocumentObserver(nsIDocument *aDocument, nsIDocumentObserver *aObserver);
4076    nsresult AddMutationObserver(nsINode *aNode, nsIMutationObserver *aObserver);
4077    nsresult RemoveMutationObserver(nsINode *aNode, nsIMutationObserver *aObserver);
4078    nsresult AddScriptRunner(nsIRunnable *aRunnable);
4079    JSContext *GetContextFromDocument(nsIDocument *aDocument);
4080}
4081
4082[
4083    object,
4084    uuid(8f672000-bab9-4c60-aaaf-2673c4e2a4c6),
4085    local
4086]
4087interface nsIPluginInstance : nsISupports
4088{
4089    nsresult GetDOMElement(nsIDOMElement **aDOMElement);
4090}
4091
4092[
4093    object,
4094    uuid(11afa8be-d997-4e07-a6a3-6f872ec3ee7f),
4095    local
4096]
4097interface nsIGlobalObject : nsISupports
4098{
4099}
4100
4101[
4102    object,
4103    uuid(6f54214c-7175-498d-9d2d-0429e38c2869),
4104    local
4105]
4106interface nsIXMLHttpRequest : nsISupports
4107{
4108    nsresult GetChannel(nsIChannel **aChannel);
4109    nsresult GetResponseXML(nsIDOMDocument **aResponseXML);
4110    nsresult GetResponseText(nsAString *aResponseText);
4111    nsresult GetResponseType(nsAString *aResponseType);
4112    nsresult SetResponseType(const nsAString *aResponseType);
4113    nsresult GetResponse(JSContext*cx, int /*JS::MutableHandleValue*/ aResponse);
4114    nsresult GetStatus(uint32_t *aStatus);
4115    nsresult GetStatusText(nsACString *aStatusText);
4116    nsresult SlowAbort();
4117    nsresult GetAllResponseHeaders(nsACString *_retval);
4118    nsresult GetResponseHeader(const nsACString *header, nsACString *_retval);
4119    nsresult Open(const nsACString *method, const nsACString *url, bool async, const nsAString *user, const nsAString *password, uint8_t _argc);
4120    nsresult Send(nsIVariant *body);
4121    nsresult SetRequestHeader(const nsACString *header, const nsACString *value);
4122    nsresult GetTimeout(uint32_t *aTimeout);
4123    nsresult SetTimeout(uint32_t aTimeout);
4124    nsresult GetReadyState(uint16_t *aReadyState);
4125    nsresult SlowOverrideMimeType(const nsAString *mimetype);
4126    nsresult GetMozBackgroundRequest(bool *aMozBackgroundRequest);
4127    nsresult SetMozBackgroundRequest(bool aMozBackgroundRequest);
4128    nsresult GetWithCredentials(bool *aWithCredentials);
4129    nsresult SetWithCredentials(bool aWithCredentials);
4130    nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI, nsILoadGroup *loadGroup);
4131    nsresult GetUpload(nsIXMLHttpRequestUpload **aUpload);
4132    nsresult GetOnreadystatechange(JSContext*cx, int /*JS::MutableHandleValue*/ aOnreadystatechange);
4133    nsresult SetOnreadystatechange(JSContext*cx, int /*JS::HandleValue*/ aOnreadystatechange);
4134    nsresult GetMozAnon(bool *aMozAnon);
4135    nsresult GetMozSystem(bool *aMozSystem);
4136}
4137
4138[
4139    object,
4140    uuid(ba602ca6-dc7a-457e-a57a-ee5b343fd863),
4141    local
4142]
4143interface nsIScriptSecurityManager : nsISupports {
4144    nsresult CanCreateWrapper(JSContext *aJSContext, const nsIID *aIID, nsISupports *aObj, nsIClassInfo *aClassInfo);
4145    nsresult CanCreateInstance(JSContext *aJSContext, const nsCID *aCID);
4146    nsresult CanGetService(JSContext *aJSContext, const nsCID *aCID);
4147    nsresult CheckLoadURIFromScript(JSContext *cx, nsIURI *uri);
4148    nsresult CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags);
4149    nsresult CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString *uri, uint32_t flags);
4150    nsresult ScriptAllowed(JSObject *aGlobal);
4151    nsresult GetSystemPrincipal(nsIPrincipal **_retval);
4152    nsresult GetSimpleCodebasePrincipal(nsIURI *aURI, nsIPrincipal **_retval);
4153    nsresult GetAppCodebasePrincipal(nsIURI *uri, uint32_t appId, bool inMozBrowser, nsIPrincipal **_retval);
4154    nsresult GetLoadContextCodebasePrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval);
4155    nsresult GetDocShellCodebasePrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval);
4156    nsresult GetNoAppCodebasePrincipal(nsIURI *uri, nsIPrincipal **_retval);
4157    nsresult GetCodebasePrincipal(nsIURI *uri, nsIPrincipal **_retval);
4158    nsresult CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError);
4159    nsresult GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval);
4160    nsresult GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval);
4161    nsresult IsSystemPrincipal(nsIPrincipal *aPrincipal, bool *_retval);
4162    nsresult GetJarPrefix(uint32_t appId, bool inMozBrowser, nsACString *_retval);
4163    nsresult ActivateDomainPolicy(nsIDomainPolicy **_retval);
4164    nsresult GetDomainPolicyActive(bool *aDomainPolicyActive);
4165    nsresult ActivateDomainPolicyInternal(nsIDomainPolicy **_retval);
4166    void CloneDomainPolicy(int /*mozilla::dom::DomainPolicyClone*/ *aClone);
4167    nsresult PolicyAllowsScript(nsIURI *aDomain, bool *_retval);
4168}
4169
4170cpp_quote("DEFINE_GUID(IID_nsCycleCollectionISupports, 0xc61eac14,0x5f7a,0x4481,0x96,0x5e,0x7e,0xaa,0x6e,0xff,0xa8,0x5f);")
4171