/* * DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/image/imgIContainer.idl */ #ifndef __gen_imgIContainer_h__ #define __gen_imgIContainer_h__ #include "nsISupports.h" #include "nsTArray.h" #include "mozilla/AlreadyAddRefed.h" #include "mozilla/Assertions.h" #include "mozilla/DebugOnly.h" /* For IDL files that don't want to include root IDL files. */ #ifndef NS_NO_VTABLE #define NS_NO_VTABLE #endif namespace mozilla { namespace dom { class Document; /* webidl Document */ } // namespace dom } // namespace mozilla // %{C++:10-66 #include "ImgDrawResult.h" #include "gfxPoint.h" #include "mozilla/gfx/Types.h" #include "mozilla/AspectRatio.h" #include "mozilla/Maybe.h" #include "mozilla/RefPtr.h" #include "nsRect.h" #include "nsSize.h" #include "nsTArray.h" #include "limits.h" class gfxContext; class nsIFrame; namespace mozilla { class TimeStamp; class SVGImageContext; struct MediaFeatureChange; namespace gfx { class SourceSurface; } class WindowRenderer; namespace layers { class ImageContainer; } namespace image { class ImageRegion; class ImageIntRegion; class WebRenderImageProvider; struct Orientation; struct Resolution; /** * This represents an image's intrinsic size, in units of pixels (the same * units as our 'width' and 'height' attributes). Both components are * optional, because an image (particularly a vector image) may lack an * intrinsic width and/or height. * * We use signed types for the components, but the values are expected to be * nonnegative; any negative values should be considered an error. (Zero is * valid, though.) * * Note that this is similar to a gfx::IntSize, except for the use of Maybe<> * to reflect that the components are optional. This is also similar to * nsIFrame.h's mozilla::IntrinsicSize class, with the difference being pixel * units here vs. nscoord units there. */ struct ImageIntrinsicSize { Maybe mWidth; Maybe mHeight; }; } } // %} /* starting interface: imgIContainer */ #define IMGICONTAINER_IID_STR "a8dbee24-ff86-4755-b40e-51175caf31af" #define IMGICONTAINER_IID \ {0xa8dbee24, 0xff86, 0x4755, \ { 0xb4, 0x0e, 0x51, 0x17, 0x5c, 0xaf, 0x31, 0xaf }} class MOZ_BINDING(binding_to, idl, class, XPIDL_imgIContainer) imgIContainer : public nsISupports { public: NS_INLINE_DECL_STATIC_IID(IMGICONTAINER_IID) /* Used by ToJSValue to check which scriptable interface is implemented. */ using ScriptableInterfaceType = imgIContainer; /* readonly attribute int32_t width; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_width) NS_IMETHOD GetWidth(int32_t *aWidth) = 0; /* readonly attribute int32_t height; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_height) NS_IMETHOD GetHeight(int32_t *aHeight) = 0; /* [noscript] readonly attribute ImageIntrinsicSize intrinsicSize; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicSize) NS_IMETHOD GetIntrinsicSize(mozilla::image::ImageIntrinsicSize * aIntrinsicSize) = 0; /* [noscript] readonly attribute nsSize intrinsicSizeInAppUnits; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicSizeInAppUnits) NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize * aIntrinsicSizeInAppUnits) = 0; /* [nostdcall,notxpcom] readonly attribute AspectRatio intrinsicRatio; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicRatio) virtual mozilla::AspectRatio GetIntrinsicRatio() = 0; /* readonly attribute int32_t hotspotX; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_hotspotX) NS_IMETHOD GetHotspotX(int32_t *aHotspotX) = 0; /* readonly attribute int32_t hotspotY; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_hotspotY) NS_IMETHOD GetHotspotY(int32_t *aHotspotY) = 0; /* [nostdcall,notxpcom] nsIntSizeByVal optimalImageSizeForDest ([const] in gfxSize aDest, in uint32_t aWhichFrame, in SamplingFilter aSamplingFilter, in uint32_t aFlags); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_optimalImageSizeForDest) virtual nsIntSize OptimalImageSizeForDest(const gfxSize & aDest, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, uint32_t aFlags) = 0; enum { TYPE_RASTER MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_TYPE_RASTER) = 0U, TYPE_VECTOR MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_TYPE_VECTOR) = 1U, TYPE_REQUEST MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_TYPE_REQUEST) = 2U }; /* [infallible] readonly attribute unsigned short type; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_type) NS_IMETHOD GetType(uint16_t *aType) = 0; inline uint16_t GetType() { uint16_t result; mozilla::DebugOnly rv = GetType(&result); MOZ_ASSERT(NS_SUCCEEDED(rv)); return result; } /* readonly attribute boolean animated; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_animated) NS_IMETHOD GetAnimated(bool *aAnimated) = 0; /* [infallible] readonly attribute unsigned long providerId; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_providerId) NS_IMETHOD GetProviderId(uint32_t *aProviderId) = 0; inline uint32_t GetProviderId() { uint32_t result; mozilla::DebugOnly rv = GetProviderId(&result); MOZ_ASSERT(NS_SUCCEEDED(rv)); return result; } enum { FLAG_NONE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_NONE) = 0U, FLAG_SYNC_DECODE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_SYNC_DECODE) = 1U, FLAG_SYNC_DECODE_IF_FAST MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_SYNC_DECODE_IF_FAST) = 2U, FLAG_ASYNC_NOTIFY MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_ASYNC_NOTIFY) = 4U, FLAG_DECODE_NO_PREMULTIPLY_ALPHA MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_DECODE_NO_PREMULTIPLY_ALPHA) = 8U, FLAG_DECODE_NO_COLORSPACE_CONVERSION MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_DECODE_NO_COLORSPACE_CONVERSION) = 16U, FLAG_CLAMP MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_CLAMP) = 32U, FLAG_HIGH_QUALITY_SCALING MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_HIGH_QUALITY_SCALING) = 64U, FLAG_BYPASS_SURFACE_CACHE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_BYPASS_SURFACE_CACHE) = 128U, FLAG_FORCE_PRESERVEASPECTRATIO_NONE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_FORCE_PRESERVEASPECTRATIO_NONE) = 256U, FLAG_FORCE_UNIFORM_SCALING MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_FORCE_UNIFORM_SCALING) = 512U, FLAG_AVOID_REDECODE_FOR_SIZE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_AVOID_REDECODE_FOR_SIZE) = 1024U, FLAG_DECODE_TO_SRGB_COLORSPACE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_DECODE_TO_SRGB_COLORSPACE) = 2048U, FLAG_RECORD_BLOB MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FLAG_RECORD_BLOB) = 4096U, DECODE_FLAGS_DEFAULT MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_DECODE_FLAGS_DEFAULT) = 0U, DECODE_FLAGS_FOR_REENCODE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_DECODE_FLAGS_FOR_REENCODE) = 2056U, FRAME_FIRST MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FRAME_FIRST) = 0U, FRAME_CURRENT MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FRAME_CURRENT) = 1U, FRAME_MAX_VALUE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_FRAME_MAX_VALUE) = 1U }; /* [noscript,notxpcom] TempRefSourceSurface getFrame (in uint32_t aWhichFrame, in uint32_t aFlags); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrame) NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) = 0; /* [noscript,notxpcom] TempRefSourceSurface getFrameAtSize ([const] in nsIntSize aSize, in uint32_t aWhichFrame, in uint32_t aFlags); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrameAtSize) NS_IMETHOD_(already_AddRefed) GetFrameAtSize(const nsIntSize & aSize, uint32_t aWhichFrame, uint32_t aFlags) = 0; /* [noscript,notxpcom] boolean willDrawOpaqueNow (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_willDrawOpaqueNow) NS_IMETHOD_(bool) WillDrawOpaqueNow(void) = 0; /* [noscript,notxpcom] boolean hasDecodedPixels (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_hasDecodedPixels) NS_IMETHOD_(bool) HasDecodedPixels(void) = 0; /* [noscript,notxpcom] boolean isImageContainerAvailable (in WindowRenderer aRenderer, in uint32_t aFlags); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_isImageContainerAvailable) NS_IMETHOD_(bool) IsImageContainerAvailable(mozilla::WindowRenderer * aRenderer, uint32_t aFlags) = 0; /* [noscript,notxpcom] ImgDrawResult getImageProvider (in WindowRenderer aRenderer, [const] in nsIntSize aSize, [const] in SVGImageContext aSVGContext, [const] in MaybeImageIntRegion aRegion, in uint32_t aFlags, out WebRenderImageProvider aProvider); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getImageProvider) NS_IMETHOD_(mozilla::image::ImgDrawResult) GetImageProvider(mozilla::WindowRenderer * aRenderer, const nsIntSize & aSize, const mozilla::SVGImageContext & aSVGContext, const mozilla::Maybe & aRegion, uint32_t aFlags, mozilla::image::WebRenderImageProvider * * aProvider) = 0; /* [noscript,notxpcom] ImgDrawResult draw (in gfxContext aContext, [const] in nsIntSize aSize, [const] in ImageRegion aRegion, in uint32_t aWhichFrame, in SamplingFilter aSamplingFilter, [const] in SVGImageContext aSVGContext, in uint32_t aFlags, in float aOpacity); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_draw) NS_IMETHOD_(mozilla::image::ImgDrawResult) Draw(gfxContext * aContext, const nsIntSize & aSize, const mozilla::image::ImageRegion & aRegion, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, const mozilla::SVGImageContext & aSVGContext, uint32_t aFlags, float aOpacity) = 0; /* [noscript] void startDecoding (in uint32_t aFlags, in uint32_t aWhichFrame); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_startDecoding) NS_IMETHOD StartDecoding(uint32_t aFlags, uint32_t aWhichFrame) = 0; // %{C++:520-522 nsresult StartDecoding(uint32_t aFlags) { return StartDecoding(aFlags, FRAME_CURRENT); } // %} /* [noscript,notxpcom] boolean startDecodingWithResult (in uint32_t aFlags, in uint32_t aWhichFrame); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_startDecodingWithResult) NS_IMETHOD_(bool) StartDecodingWithResult(uint32_t aFlags, uint32_t aWhichFrame) = 0; // %{C++:536-538 bool StartDecodingWithResult(uint32_t aFlags) { return StartDecodingWithResult(aFlags, FRAME_CURRENT); } // %} enum MOZ_BINDING(binding_to, idl, class, XPIDL_imgIContainer_DecodeResult) DecodeResult : uint8_t { DECODE_SURFACE_AVAILABLE MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_DecodeResult_DECODE_SURFACE_AVAILABLE) = 0, DECODE_REQUESTED MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_DecodeResult_DECODE_REQUESTED) = 1, DECODE_REQUEST_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_DecodeResult_DECODE_REQUEST_FAILED) = 2, }; /* [noscript,notxpcom] imgIContainer_DecodeResult requestDecodeWithResult (in uint32_t aFlags, in uint32_t aWhichFrame); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDecodeWithResult) NS_IMETHOD_(imgIContainer::DecodeResult) RequestDecodeWithResult(uint32_t aFlags, uint32_t aWhichFrame) = 0; // %{C++:563-565 DecodeResult RequestDecodeWithResult(uint32_t aFlags) { return RequestDecodeWithResult(aFlags, FRAME_CURRENT); } // %} /* [noscript] void requestDecodeForSize ([const] in nsIntSize aSize, in uint32_t aFlags, in uint32_t aWhichFrame); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDecodeForSize) NS_IMETHOD RequestDecodeForSize(const nsIntSize & aSize, uint32_t aFlags, uint32_t aWhichFrame) = 0; // %{C++:584-586 nsresult RequestDecodeForSize(const nsIntSize& aSize, uint32_t aFlags) { return RequestDecodeForSize(aSize, aFlags, FRAME_CURRENT); } // %} /* void lockImage (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_lockImage) NS_IMETHOD LockImage(void) = 0; /* void unlockImage (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_unlockImage) NS_IMETHOD UnlockImage(void) = 0; /* void requestDiscard (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDiscard) NS_IMETHOD RequestDiscard(void) = 0; /* [notxpcom] void requestRefresh ([const] in TimeStamp aTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestRefresh) NS_IMETHOD_(void) RequestRefresh(const mozilla::TimeStamp & aTime) = 0; enum { kNormalAnimMode MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_kNormalAnimMode) = 0, kDontAnimMode MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_kDontAnimMode) = 1, kLoopOnceAnimMode MOZ_BINDING(binding_to, idl, const, XPIDL_imgIContainer_kLoopOnceAnimMode) = 2 }; /* attribute unsigned short animationMode; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_animationMode) NS_IMETHOD GetAnimationMode(uint16_t *aAnimationMode) = 0; MOZ_BINDING(binding_to, idl, setter, XPIDL_imgIContainer_animationMode) NS_IMETHOD SetAnimationMode(uint16_t aAnimationMode) = 0; /* void resetAnimation (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_resetAnimation) NS_IMETHOD ResetAnimation(void) = 0; /* [notxpcom] float getFrameIndex (in uint32_t aWhichFrame); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrameIndex) NS_IMETHOD_(float) GetFrameIndex(uint32_t aWhichFrame) = 0; /* [notxpcom] Orientation getOrientation (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getOrientation) NS_IMETHOD_(mozilla::image::Orientation) GetOrientation(void) = 0; /* [notxpcom] ImageResolution getResolution (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getResolution) NS_IMETHOD_(mozilla::image::Resolution) GetResolution(void) = 0; /* [notxpcom] int32_t getFirstFrameDelay (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFirstFrameDelay) NS_IMETHOD_(int32_t) GetFirstFrameDelay(void) = 0; /* [notxpcom] void setAnimationStartTime ([const] in TimeStamp aTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_setAnimationStartTime) NS_IMETHOD_(void) SetAnimationStartTime(const mozilla::TimeStamp & aTime) = 0; /* [notxpcom] nsIntRectByVal getImageSpaceInvalidationRect ([const] in nsIntRect aRect); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getImageSpaceInvalidationRect) NS_IMETHOD_(nsIntRect) GetImageSpaceInvalidationRect(const nsIntRect & aRect) = 0; /* [nostdcall,notxpcom] TempRefImgIContainer unwrap (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_unwrap) virtual already_AddRefed Unwrap(void) = 0; /* [noscript,notxpcom] void propagateUseCounters (in Document aReferencingDocument); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_propagateUseCounters) NS_IMETHOD_(void) PropagateUseCounters(mozilla::dom::Document *aReferencingDocument) = 0; /* [nostdcall,notxpcom] void mediaFeatureValuesChangedAllDocuments ([const] in MediaFeatureChange aChange); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_mediaFeatureValuesChangedAllDocuments) virtual void MediaFeatureValuesChangedAllDocuments(const mozilla::MediaFeatureChange & aChange) = 0; /* [nostdcall] Array getNativeSizes (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getNativeSizes) virtual nsresult GetNativeSizes(nsTArray& _retval) = 0; /* [nostdcall,notxpcom] size_t getNativeSizesLength (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getNativeSizesLength) virtual size_t GetNativeSizesLength(void) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_IMGICONTAINER \ NS_IMETHOD GetWidth(int32_t *aWidth) override; \ NS_IMETHOD GetHeight(int32_t *aHeight) override; \ NS_IMETHOD GetIntrinsicSize(mozilla::image::ImageIntrinsicSize * aIntrinsicSize) override; \ NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize * aIntrinsicSizeInAppUnits) override; \ virtual mozilla::AspectRatio GetIntrinsicRatio() override; \ NS_IMETHOD GetHotspotX(int32_t *aHotspotX) override; \ NS_IMETHOD GetHotspotY(int32_t *aHotspotY) override; \ virtual nsIntSize OptimalImageSizeForDest(const gfxSize & aDest, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, uint32_t aFlags) override; \ using imgIContainer::GetType; \ NS_IMETHOD GetType(uint16_t *aType) override; \ NS_IMETHOD GetAnimated(bool *aAnimated) override; \ using imgIContainer::GetProviderId; \ NS_IMETHOD GetProviderId(uint32_t *aProviderId) override; \ NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) override; \ NS_IMETHOD_(already_AddRefed) GetFrameAtSize(const nsIntSize & aSize, uint32_t aWhichFrame, uint32_t aFlags) override; \ NS_IMETHOD_(bool) WillDrawOpaqueNow(void) override; \ NS_IMETHOD_(bool) HasDecodedPixels(void) override; \ NS_IMETHOD_(bool) IsImageContainerAvailable(mozilla::WindowRenderer * aRenderer, uint32_t aFlags) override; \ NS_IMETHOD_(mozilla::image::ImgDrawResult) GetImageProvider(mozilla::WindowRenderer * aRenderer, const nsIntSize & aSize, const mozilla::SVGImageContext & aSVGContext, const mozilla::Maybe & aRegion, uint32_t aFlags, mozilla::image::WebRenderImageProvider * * aProvider) override; \ NS_IMETHOD_(mozilla::image::ImgDrawResult) Draw(gfxContext * aContext, const nsIntSize & aSize, const mozilla::image::ImageRegion & aRegion, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, const mozilla::SVGImageContext & aSVGContext, uint32_t aFlags, float aOpacity) override; \ NS_IMETHOD StartDecoding(uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD_(bool) StartDecodingWithResult(uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD_(imgIContainer::DecodeResult) RequestDecodeWithResult(uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD RequestDecodeForSize(const nsIntSize & aSize, uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD LockImage(void) override; \ NS_IMETHOD UnlockImage(void) override; \ NS_IMETHOD RequestDiscard(void) override; \ NS_IMETHOD_(void) RequestRefresh(const mozilla::TimeStamp & aTime) override; \ NS_IMETHOD GetAnimationMode(uint16_t *aAnimationMode) override; \ NS_IMETHOD SetAnimationMode(uint16_t aAnimationMode) override; \ NS_IMETHOD ResetAnimation(void) override; \ NS_IMETHOD_(float) GetFrameIndex(uint32_t aWhichFrame) override; \ NS_IMETHOD_(mozilla::image::Orientation) GetOrientation(void) override; \ NS_IMETHOD_(mozilla::image::Resolution) GetResolution(void) override; \ NS_IMETHOD_(int32_t) GetFirstFrameDelay(void) override; \ NS_IMETHOD_(void) SetAnimationStartTime(const mozilla::TimeStamp & aTime) override; \ NS_IMETHOD_(nsIntRect) GetImageSpaceInvalidationRect(const nsIntRect & aRect) override; \ virtual already_AddRefed Unwrap(void) override; \ NS_IMETHOD_(void) PropagateUseCounters(mozilla::dom::Document *aReferencingDocument) override; \ virtual void MediaFeatureValuesChangedAllDocuments(const mozilla::MediaFeatureChange & aChange) override; \ virtual nsresult GetNativeSizes(nsTArray& _retval) override; \ virtual size_t GetNativeSizesLength(void) override; /* Use this macro when declaring the members of this interface when the class doesn't implement the interface. This is useful for forwarding. */ #define NS_DECL_NON_VIRTUAL_IMGICONTAINER \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_width)\ nsresult GetWidth(int32_t *aWidth); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_height)\ nsresult GetHeight(int32_t *aHeight); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicSize)\ nsresult GetIntrinsicSize(mozilla::image::ImageIntrinsicSize * aIntrinsicSize); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicSizeInAppUnits)\ nsresult GetIntrinsicSizeInAppUnits(nsSize * aIntrinsicSizeInAppUnits); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_intrinsicRatio)\ mozilla::AspectRatio GetIntrinsicRatio(); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_hotspotX)\ nsresult GetHotspotX(int32_t *aHotspotX); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_hotspotY)\ nsresult GetHotspotY(int32_t *aHotspotY); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_optimalImageSizeForDest)\ nsIntSize OptimalImageSizeForDest(const gfxSize & aDest, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, uint32_t aFlags); \ using imgIContainer::GetType; \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_type)\ nsresult GetType(uint16_t *aType); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_animated)\ nsresult GetAnimated(bool *aAnimated); \ using imgIContainer::GetProviderId; \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_providerId)\ nsresult GetProviderId(uint32_t *aProviderId); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrame)\ nsresult_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrameAtSize)\ nsresult_(already_AddRefed) GetFrameAtSize(const nsIntSize & aSize, uint32_t aWhichFrame, uint32_t aFlags); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_willDrawOpaqueNow)\ nsresult_(bool) WillDrawOpaqueNow(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_hasDecodedPixels)\ nsresult_(bool) HasDecodedPixels(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_isImageContainerAvailable)\ nsresult_(bool) IsImageContainerAvailable(mozilla::WindowRenderer * aRenderer, uint32_t aFlags); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getImageProvider)\ nsresult_(mozilla::image::ImgDrawResult) GetImageProvider(mozilla::WindowRenderer * aRenderer, const nsIntSize & aSize, const mozilla::SVGImageContext & aSVGContext, const mozilla::Maybe & aRegion, uint32_t aFlags, mozilla::image::WebRenderImageProvider * * aProvider); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_draw)\ nsresult_(mozilla::image::ImgDrawResult) Draw(gfxContext * aContext, const nsIntSize & aSize, const mozilla::image::ImageRegion & aRegion, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, const mozilla::SVGImageContext & aSVGContext, uint32_t aFlags, float aOpacity); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_startDecoding)\ nsresult StartDecoding(uint32_t aFlags, uint32_t aWhichFrame); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_startDecodingWithResult)\ nsresult_(bool) StartDecodingWithResult(uint32_t aFlags, uint32_t aWhichFrame); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDecodeWithResult)\ nsresult_(imgIContainer::DecodeResult) RequestDecodeWithResult(uint32_t aFlags, uint32_t aWhichFrame); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDecodeForSize)\ nsresult RequestDecodeForSize(const nsIntSize & aSize, uint32_t aFlags, uint32_t aWhichFrame); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_lockImage)\ nsresult LockImage(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_unlockImage)\ nsresult UnlockImage(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestDiscard)\ nsresult RequestDiscard(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_requestRefresh)\ nsresult_(void) RequestRefresh(const mozilla::TimeStamp & aTime); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_imgIContainer_animationMode)\ nsresult GetAnimationMode(uint16_t *aAnimationMode); \ MOZ_BINDING(binding_to, idl, setter, XPIDL_imgIContainer_animationMode)\ nsresult SetAnimationMode(uint16_t aAnimationMode); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_resetAnimation)\ nsresult ResetAnimation(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFrameIndex)\ nsresult_(float) GetFrameIndex(uint32_t aWhichFrame); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getOrientation)\ nsresult_(mozilla::image::Orientation) GetOrientation(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getResolution)\ nsresult_(mozilla::image::Resolution) GetResolution(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getFirstFrameDelay)\ nsresult_(int32_t) GetFirstFrameDelay(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_setAnimationStartTime)\ nsresult_(void) SetAnimationStartTime(const mozilla::TimeStamp & aTime); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getImageSpaceInvalidationRect)\ nsresult_(nsIntRect) GetImageSpaceInvalidationRect(const nsIntRect & aRect); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_unwrap)\ already_AddRefed Unwrap(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_propagateUseCounters)\ nsresult_(void) PropagateUseCounters(mozilla::dom::Document *aReferencingDocument); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_mediaFeatureValuesChangedAllDocuments)\ void MediaFeatureValuesChangedAllDocuments(const mozilla::MediaFeatureChange & aChange); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getNativeSizes)\ nsresult GetNativeSizes(nsTArray& _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_imgIContainer_getNativeSizesLength)\ size_t GetNativeSizesLength(void); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_IMGICONTAINER(_to) \ NS_IMETHOD GetWidth(int32_t *aWidth) override { return _to GetWidth(aWidth); } \ NS_IMETHOD GetHeight(int32_t *aHeight) override { return _to GetHeight(aHeight); } \ NS_IMETHOD GetIntrinsicSize(mozilla::image::ImageIntrinsicSize * aIntrinsicSize) override { return _to GetIntrinsicSize(aIntrinsicSize); } \ NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize * aIntrinsicSizeInAppUnits) override { return _to GetIntrinsicSizeInAppUnits(aIntrinsicSizeInAppUnits); } \ virtual mozilla::AspectRatio GetIntrinsicRatio() override { return _to GetIntrinsicRatio(); } \ NS_IMETHOD GetHotspotX(int32_t *aHotspotX) override { return _to GetHotspotX(aHotspotX); } \ NS_IMETHOD GetHotspotY(int32_t *aHotspotY) override { return _to GetHotspotY(aHotspotY); } \ virtual nsIntSize OptimalImageSizeForDest(const gfxSize & aDest, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, uint32_t aFlags) override { return _to OptimalImageSizeForDest(aDest, aWhichFrame, aSamplingFilter, aFlags); } \ using imgIContainer::GetType; \ NS_IMETHOD GetType(uint16_t *aType) override { return _to GetType(aType); } \ NS_IMETHOD GetAnimated(bool *aAnimated) override { return _to GetAnimated(aAnimated); } \ using imgIContainer::GetProviderId; \ NS_IMETHOD GetProviderId(uint32_t *aProviderId) override { return _to GetProviderId(aProviderId); } \ NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) override { return _to GetFrame(aWhichFrame, aFlags); } \ NS_IMETHOD_(already_AddRefed) GetFrameAtSize(const nsIntSize & aSize, uint32_t aWhichFrame, uint32_t aFlags) override { return _to GetFrameAtSize(aSize, aWhichFrame, aFlags); } \ NS_IMETHOD_(bool) WillDrawOpaqueNow(void) override { return _to WillDrawOpaqueNow(); } \ NS_IMETHOD_(bool) HasDecodedPixels(void) override { return _to HasDecodedPixels(); } \ NS_IMETHOD_(bool) IsImageContainerAvailable(mozilla::WindowRenderer * aRenderer, uint32_t aFlags) override { return _to IsImageContainerAvailable(aRenderer, aFlags); } \ NS_IMETHOD_(mozilla::image::ImgDrawResult) GetImageProvider(mozilla::WindowRenderer * aRenderer, const nsIntSize & aSize, const mozilla::SVGImageContext & aSVGContext, const mozilla::Maybe & aRegion, uint32_t aFlags, mozilla::image::WebRenderImageProvider * * aProvider) override { return _to GetImageProvider(aRenderer, aSize, aSVGContext, aRegion, aFlags, aProvider); } \ NS_IMETHOD_(mozilla::image::ImgDrawResult) Draw(gfxContext * aContext, const nsIntSize & aSize, const mozilla::image::ImageRegion & aRegion, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, const mozilla::SVGImageContext & aSVGContext, uint32_t aFlags, float aOpacity) override { return _to Draw(aContext, aSize, aRegion, aWhichFrame, aSamplingFilter, aSVGContext, aFlags, aOpacity); } \ NS_IMETHOD StartDecoding(uint32_t aFlags, uint32_t aWhichFrame) override { return _to StartDecoding(aFlags, aWhichFrame); } \ NS_IMETHOD_(bool) StartDecodingWithResult(uint32_t aFlags, uint32_t aWhichFrame) override { return _to StartDecodingWithResult(aFlags, aWhichFrame); } \ NS_IMETHOD_(imgIContainer::DecodeResult) RequestDecodeWithResult(uint32_t aFlags, uint32_t aWhichFrame) override { return _to RequestDecodeWithResult(aFlags, aWhichFrame); } \ NS_IMETHOD RequestDecodeForSize(const nsIntSize & aSize, uint32_t aFlags, uint32_t aWhichFrame) override { return _to RequestDecodeForSize(aSize, aFlags, aWhichFrame); } \ NS_IMETHOD LockImage(void) override { return _to LockImage(); } \ NS_IMETHOD UnlockImage(void) override { return _to UnlockImage(); } \ NS_IMETHOD RequestDiscard(void) override { return _to RequestDiscard(); } \ NS_IMETHOD_(void) RequestRefresh(const mozilla::TimeStamp & aTime) override { return _to RequestRefresh(aTime); } \ NS_IMETHOD GetAnimationMode(uint16_t *aAnimationMode) override { return _to GetAnimationMode(aAnimationMode); } \ NS_IMETHOD SetAnimationMode(uint16_t aAnimationMode) override { return _to SetAnimationMode(aAnimationMode); } \ NS_IMETHOD ResetAnimation(void) override { return _to ResetAnimation(); } \ NS_IMETHOD_(float) GetFrameIndex(uint32_t aWhichFrame) override { return _to GetFrameIndex(aWhichFrame); } \ NS_IMETHOD_(mozilla::image::Orientation) GetOrientation(void) override { return _to GetOrientation(); } \ NS_IMETHOD_(mozilla::image::Resolution) GetResolution(void) override { return _to GetResolution(); } \ NS_IMETHOD_(int32_t) GetFirstFrameDelay(void) override { return _to GetFirstFrameDelay(); } \ NS_IMETHOD_(void) SetAnimationStartTime(const mozilla::TimeStamp & aTime) override { return _to SetAnimationStartTime(aTime); } \ NS_IMETHOD_(nsIntRect) GetImageSpaceInvalidationRect(const nsIntRect & aRect) override { return _to GetImageSpaceInvalidationRect(aRect); } \ virtual already_AddRefed Unwrap(void) override { return _to Unwrap(); } \ NS_IMETHOD_(void) PropagateUseCounters(mozilla::dom::Document *aReferencingDocument) override { return _to PropagateUseCounters(aReferencingDocument); } \ virtual void MediaFeatureValuesChangedAllDocuments(const mozilla::MediaFeatureChange & aChange) override { return _to MediaFeatureValuesChangedAllDocuments(aChange); } \ virtual nsresult GetNativeSizes(nsTArray& _retval) override { return _to GetNativeSizes(_retval); } \ virtual size_t GetNativeSizesLength(void) override { return _to GetNativeSizesLength(); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_IMGICONTAINER(_to) \ NS_IMETHOD GetWidth(int32_t *aWidth) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \ NS_IMETHOD GetHeight(int32_t *aHeight) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } \ NS_IMETHOD GetIntrinsicSize(mozilla::image::ImageIntrinsicSize * aIntrinsicSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIntrinsicSize(aIntrinsicSize); } \ NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize * aIntrinsicSizeInAppUnits) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIntrinsicSizeInAppUnits(aIntrinsicSizeInAppUnits); } \ virtual mozilla::AspectRatio GetIntrinsicRatio() override; \ NS_IMETHOD GetHotspotX(int32_t *aHotspotX) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHotspotX(aHotspotX); } \ NS_IMETHOD GetHotspotY(int32_t *aHotspotY) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHotspotY(aHotspotY); } \ virtual nsIntSize OptimalImageSizeForDest(const gfxSize & aDest, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, uint32_t aFlags) override; \ NS_IMETHOD GetType(uint16_t *aType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \ NS_IMETHOD GetAnimated(bool *aAnimated) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAnimated(aAnimated); } \ NS_IMETHOD GetProviderId(uint32_t *aProviderId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderId(aProviderId); } \ NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) override; \ NS_IMETHOD_(already_AddRefed) GetFrameAtSize(const nsIntSize & aSize, uint32_t aWhichFrame, uint32_t aFlags) override; \ NS_IMETHOD_(bool) WillDrawOpaqueNow(void) override; \ NS_IMETHOD_(bool) HasDecodedPixels(void) override; \ NS_IMETHOD_(bool) IsImageContainerAvailable(mozilla::WindowRenderer * aRenderer, uint32_t aFlags) override; \ NS_IMETHOD_(mozilla::image::ImgDrawResult) GetImageProvider(mozilla::WindowRenderer * aRenderer, const nsIntSize & aSize, const mozilla::SVGImageContext & aSVGContext, const mozilla::Maybe & aRegion, uint32_t aFlags, mozilla::image::WebRenderImageProvider * * aProvider) override; \ NS_IMETHOD_(mozilla::image::ImgDrawResult) Draw(gfxContext * aContext, const nsIntSize & aSize, const mozilla::image::ImageRegion & aRegion, uint32_t aWhichFrame, mozilla::gfx::SamplingFilter aSamplingFilter, const mozilla::SVGImageContext & aSVGContext, uint32_t aFlags, float aOpacity) override; \ NS_IMETHOD StartDecoding(uint32_t aFlags, uint32_t aWhichFrame) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StartDecoding(aFlags, aWhichFrame); } \ NS_IMETHOD_(bool) StartDecodingWithResult(uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD_(imgIContainer::DecodeResult) RequestDecodeWithResult(uint32_t aFlags, uint32_t aWhichFrame) override; \ NS_IMETHOD RequestDecodeForSize(const nsIntSize & aSize, uint32_t aFlags, uint32_t aWhichFrame) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RequestDecodeForSize(aSize, aFlags, aWhichFrame); } \ NS_IMETHOD LockImage(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LockImage(); } \ NS_IMETHOD UnlockImage(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnlockImage(); } \ NS_IMETHOD RequestDiscard(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RequestDiscard(); } \ NS_IMETHOD_(void) RequestRefresh(const mozilla::TimeStamp & aTime) override; \ NS_IMETHOD GetAnimationMode(uint16_t *aAnimationMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAnimationMode(aAnimationMode); } \ NS_IMETHOD SetAnimationMode(uint16_t aAnimationMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAnimationMode(aAnimationMode); } \ NS_IMETHOD ResetAnimation(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetAnimation(); } \ NS_IMETHOD_(float) GetFrameIndex(uint32_t aWhichFrame) override; \ NS_IMETHOD_(mozilla::image::Orientation) GetOrientation(void) override; \ NS_IMETHOD_(mozilla::image::Resolution) GetResolution(void) override; \ NS_IMETHOD_(int32_t) GetFirstFrameDelay(void) override; \ NS_IMETHOD_(void) SetAnimationStartTime(const mozilla::TimeStamp & aTime) override; \ NS_IMETHOD_(nsIntRect) GetImageSpaceInvalidationRect(const nsIntRect & aRect) override; \ virtual already_AddRefed Unwrap(void) override; \ NS_IMETHOD_(void) PropagateUseCounters(mozilla::dom::Document *aReferencingDocument) override; \ virtual void MediaFeatureValuesChangedAllDocuments(const mozilla::MediaFeatureChange & aChange) override; \ virtual nsresult GetNativeSizes(nsTArray& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativeSizes(_retval); } \ virtual size_t GetNativeSizesLength(void) override; #endif /* __gen_imgIContainer_h__ */