diff options
Diffstat (limited to 'image/imgILoader.idl')
-rw-r--r-- | image/imgILoader.idl | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/image/imgILoader.idl b/image/imgILoader.idl new file mode 100644 index 000000000..36505da9d --- /dev/null +++ b/image/imgILoader.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface imgINotificationObserver; +interface imgIRequest; + +interface nsIChannel; +interface nsILoadGroup; +interface nsIPrincipal; +interface nsIStreamListener; +interface nsIURI; + +interface nsISimpleEnumerator; + +#include "nsIRequest.idl" // for nsLoadFlags +#include "nsIContentPolicy.idl" // for nsContentPolicyType + +/** + * imgILoader interface + * + * @author Stuart Parmenter <pavlov@netscape.com> + * @version 0.3 + * @see imagelib2 + */ +[scriptable, builtinclass, uuid(e61377d2-910e-4c65-a64b-428d150e1fd1)] +interface imgILoader : nsISupports +{ + // Extra flags to pass to loadImage if you want a load to use CORS + // validation. + const unsigned long LOAD_CORS_ANONYMOUS = 1 << 16; + const unsigned long LOAD_CORS_USE_CREDENTIALS = 1 << 17; + + /** + * Start the load and decode of an image. + * @param aURI the URI to load + * @param aInitialDocumentURI the URI that 'initiated' the load -- used for + * 3rd party cookie blocking + * @param aReferrerURI the 'referring' URI + * @param aReferrerPolicy the policy to apply to sending referrers. + * examples: "default", "never", "always", "origin" + * (see W3C referrer-policy spec for valid policy strings) + * @param aLoadingPrincipal the principal of the loading document + * @param aLoadGroup Loadgroup to put the image load into + * @param aObserver the observer (may be null) + * @param aCX some random data + * @param aLoadFlags Load flags for the request + * @param aCacheKey cache key to use for a load if the original + * image came from a request that had post data + * @param aContentPolicyType [optional] the nsContentPolicyType to + * use for this load. Defaults to + * nsIContentPolicy::TYPE_IMAGE + + + * ImageLib does NOT keep a strong ref to the observer; this prevents + * reference cycles. This means that callers of loadImage should + * make sure to Cancel() the resulting request before the observer + * goes away. + */ + imgIRequest loadImageXPCOM(in nsIURI aURI, + in nsIURI aInitialDocumentURL, + in nsIURI aReferrerURI, + in AString aReferrerPolicy, + in nsIPrincipal aLoadingPrincipal, + in nsILoadGroup aLoadGroup, + in imgINotificationObserver aObserver, + in nsISupports aCX, + in nsLoadFlags aLoadFlags, + in nsISupports cacheKey, + [optional] + in nsContentPolicyType aContentPolicyType); + + /** + * Start the load and decode of an image. + * @param aChannel the channel to load the image from. This must + * already be opened before ths method is called, and there + * must have been no OnDataAvailable calls for it yet. + * @param aObserver the observer (may be null) + * @param cx some random data + * @param aListener [out] + * A listener that you must send the channel's notifications and data + * to. Can be null, in which case imagelib has found a cached image + * and is not interested in the data. @aChannel will be canceled for + * you in this case. + * + * ImageLib does NOT keep a strong ref to the observer; this prevents + * reference cycles. This means that callers of loadImageWithChannel should + * make sure to Cancel() the resulting request before the observer goes away. + */ + imgIRequest loadImageWithChannelXPCOM(in nsIChannel aChannel, + in imgINotificationObserver aObserver, + in nsISupports cx, + out nsIStreamListener aListener); +}; |