No bug - Bustage fix for Windows gn builds. r=me
[gecko.git] / image / imgILoader.idl
blobdeeaced3f8615f0cc2d64780b95d0ee29fcff5c1
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "nsISupports.idl"
9 interface imgINotificationObserver;
10 interface imgIRequest;
12 interface nsIChannel;
13 interface nsILoadGroup;
14 interface nsIPrincipal;
15 interface nsIStreamListener;
16 interface nsIURI;
17 interface nsIReferrerInfo;
19 interface nsISimpleEnumerator;
21 #include "nsIRequest.idl" // for nsLoadFlags
22 #include "nsIContentPolicy.idl" // for nsContentPolicyType
24 /**
25 * imgILoader interface
27 * @author Stuart Parmenter <pavlov@netscape.com>
28 * @version 0.3
29 * @see imagelib2
31 [scriptable, builtinclass, uuid(e61377d2-910e-4c65-a64b-428d150e1fd1)]
32 interface imgILoader : nsISupports
34 // Extra flags to pass to loadImage if you want a load to use CORS
35 // validation.
36 const unsigned long LOAD_CORS_ANONYMOUS = 1 << 16;
37 const unsigned long LOAD_CORS_USE_CREDENTIALS = 1 << 17;
39 /**
40 * Start the load and decode of an image.
41 * @param aURI the URI to load
42 * @param aInitialDocumentURI the URI that 'initiated' the load -- used for
43 * 3rd party cookie blocking
44 * @param aReferrerInfo the referrer info to compute sending referrer.
45 * @param aLoadingPrincipal the principal of the loading document
46 * @param aLoadGroup Loadgroup to put the image load into
47 * @param aObserver the observer (may be null)
48 * @param aCX some random data
49 * @param aLoadFlags Load flags for the request
50 * @param aCacheKey cache key to use for a load if the original
51 * image came from a request that had post data
52 * @param aContentPolicyType [optional] the nsContentPolicyType to
53 * use for this load. Defaults to
54 * nsIContentPolicy::TYPE_IMAGE
57 * ImageLib does NOT keep a strong ref to the observer; this prevents
58 * reference cycles. This means that callers of loadImage should
59 * make sure to Cancel() the resulting request before the observer
60 * goes away.
62 imgIRequest loadImageXPCOM(in nsIURI aURI,
63 in nsIURI aInitialDocumentURL,
64 in nsIReferrerInfo aReferrerInfo,
65 in nsIPrincipal aLoadingPrincipal,
66 in nsILoadGroup aLoadGroup,
67 in imgINotificationObserver aObserver,
68 in nsISupports aCX,
69 in nsLoadFlags aLoadFlags,
70 in nsISupports cacheKey,
71 [optional]
72 in nsContentPolicyType aContentPolicyType);
74 /**
75 * Start the load and decode of an image.
76 * @param aChannel the channel to load the image from. This must
77 * already be opened before ths method is called, and there
78 * must have been no OnDataAvailable calls for it yet.
79 * @param aObserver the observer (may be null)
80 * @param cx some random data
81 * @param aListener [out]
82 * A listener that you must send the channel's notifications and data
83 * to. Can be null, in which case imagelib has found a cached image
84 * and is not interested in the data. @aChannel will be canceled for
85 * you in this case.
87 * ImageLib does NOT keep a strong ref to the observer; this prevents
88 * reference cycles. This means that callers of loadImageWithChannel should
89 * make sure to Cancel() the resulting request before the observer goes away.
91 imgIRequest loadImageWithChannelXPCOM(in nsIChannel aChannel,
92 in imgINotificationObserver aObserver,
93 in nsISupports cx,
94 out nsIStreamListener aListener);