diff --git a/image/ClippedImage.cpp b/image/ClippedImage.cpp index cdd2c569fb74..7ee260b4e0bd 100644 --- a/image/ClippedImage.cpp +++ b/image/ClippedImage.cpp @@ -196,11 +196,12 @@ ClippedImage::GetHeight(int32_t* aHeight) { } NS_IMETHODIMP -ClippedImage::GetIntrinsicSize(nsSize* aSize) { +ClippedImage::GetIntrinsicSizeInAppUnits(nsSize* aSize) { if (!ShouldClip()) { - return InnerImage()->GetIntrinsicSize(aSize); + return InnerImage()->GetIntrinsicSizeInAppUnits(aSize); } + // XXXdholbert This probably needs to be scaled; see bug 1965106. *aSize = nsSize(mClip.Width(), mClip.Height()); return NS_OK; } diff --git a/image/ClippedImage.h b/image/ClippedImage.h index bb7a307b143f..91685f08e13b 100644 --- a/image/ClippedImage.h +++ b/image/ClippedImage.h @@ -35,7 +35,7 @@ class ClippedImage : public ImageWrapper { NS_IMETHOD GetWidth(int32_t* aWidth) override; NS_IMETHOD GetHeight(int32_t* aHeight) override; - NS_IMETHOD GetIntrinsicSize(nsSize* aSize) override; + NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize* aSize) override; AspectRatio GetIntrinsicRatio() override; NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) override; diff --git a/image/DynamicImage.cpp b/image/DynamicImage.cpp index d93389a58e9f..4cfaba373916 100644 --- a/image/DynamicImage.cpp +++ b/image/DynamicImage.cpp @@ -98,7 +98,8 @@ nsresult DynamicImage::GetNativeSizes(nsTArray&) { size_t DynamicImage::GetNativeSizesLength() { return 0; } NS_IMETHODIMP -DynamicImage::GetIntrinsicSize(nsSize* aSize) { +DynamicImage::GetIntrinsicSizeInAppUnits(nsSize* aSize) { + // XXXdholbert This probably needs to be scaled; see bug 1965106. IntSize intSize(mDrawable->Size()); *aSize = nsSize(intSize.width, intSize.height); return NS_OK; diff --git a/image/ImageWrapper.cpp b/image/ImageWrapper.cpp index ecfae461dc3a..5b6909f54e14 100644 --- a/image/ImageWrapper.cpp +++ b/image/ImageWrapper.cpp @@ -115,8 +115,8 @@ size_t ImageWrapper::GetNativeSizesLength() { } NS_IMETHODIMP -ImageWrapper::GetIntrinsicSize(nsSize* aSize) { - return mInnerImage->GetIntrinsicSize(aSize); +ImageWrapper::GetIntrinsicSizeInAppUnits(nsSize* aSize) { + return mInnerImage->GetIntrinsicSizeInAppUnits(aSize); } AspectRatio ImageWrapper::GetIntrinsicRatio() { diff --git a/image/OrientedImage.cpp b/image/OrientedImage.cpp index 47a293b71f61..321c4f2ae7ee 100644 --- a/image/OrientedImage.cpp +++ b/image/OrientedImage.cpp @@ -56,8 +56,8 @@ nsresult OrientedImage::GetNativeSizes(nsTArray& aNativeSizes) { } NS_IMETHODIMP -OrientedImage::GetIntrinsicSize(nsSize* aSize) { - nsresult rv = InnerImage()->GetIntrinsicSize(aSize); +OrientedImage::GetIntrinsicSizeInAppUnits(nsSize* aSize) { + nsresult rv = InnerImage()->GetIntrinsicSizeInAppUnits(aSize); if (mOrientation.SwapsWidthAndHeight()) { swap(aSize->width, aSize->height); diff --git a/image/OrientedImage.h b/image/OrientedImage.h index f74902b57ad9..270957107330 100644 --- a/image/OrientedImage.h +++ b/image/OrientedImage.h @@ -30,7 +30,7 @@ class OrientedImage : public ImageWrapper { NS_IMETHOD GetWidth(int32_t* aWidth) override; NS_IMETHOD GetHeight(int32_t* aHeight) override; nsresult GetNativeSizes(nsTArray& aNativeSizes) override; - NS_IMETHOD GetIntrinsicSize(nsSize* aSize) override; + NS_IMETHOD GetIntrinsicSizeInAppUnits(nsSize* aSize) override; AspectRatio GetIntrinsicRatio() override; NS_IMETHOD_(already_AddRefed) GetFrame(uint32_t aWhichFrame, uint32_t aFlags) override; diff --git a/image/RasterImage.cpp b/image/RasterImage.cpp index eb0ebc9c5e98..04ecd06bcdae 100644 --- a/image/RasterImage.cpp +++ b/image/RasterImage.cpp @@ -245,7 +245,7 @@ size_t RasterImage::GetNativeSizesLength() { //****************************************************************************** NS_IMETHODIMP -RasterImage::GetIntrinsicSize(nsSize* aSize) { +RasterImage::GetIntrinsicSizeInAppUnits(nsSize* aSize) { if (mError) { return NS_ERROR_FAILURE; } diff --git a/image/VectorImage.cpp b/image/VectorImage.cpp index 354a9be6eb76..fab57406bd91 100644 --- a/image/VectorImage.cpp +++ b/image/VectorImage.cpp @@ -499,7 +499,7 @@ VectorImage::GetHeight(int32_t* aHeight) { //****************************************************************************** NS_IMETHODIMP -VectorImage::GetIntrinsicSize(nsSize* aSize) { +VectorImage::GetIntrinsicSizeInAppUnits(nsSize* aSize) { if (mError || !mIsFullyLoaded) { return NS_ERROR_FAILURE; } diff --git a/image/imgIContainer.idl b/image/imgIContainer.idl index 82396b80c7fa..43ff00771a91 100644 --- a/image/imgIContainer.idl +++ b/image/imgIContainer.idl @@ -102,8 +102,12 @@ interface imgIContainer : nsISupports * The intrinsic size of this image in appunits. If the image has no intrinsic * size in a dimension, -1 will be returned for that dimension. In the case of * any error, an exception will be thrown. + * + * XXXdholbert maybe this should use the actual IntrinsicSize type (defined + * in nsIFrame.h, specifically for replaced elements like images, also + * using nscoord units but with Maybe<> to represent sizes being missing)? */ - [noscript] readonly attribute nsSize intrinsicSize; + [noscript] readonly attribute nsSize intrinsicSizeInAppUnits; /** * The (dimensionless) intrinsic ratio of this image. Might return a diff --git a/layout/generic/nsImageFrame.cpp b/layout/generic/nsImageFrame.cpp index a882040029ce..35517a28e9a5 100644 --- a/layout/generic/nsImageFrame.cpp +++ b/layout/generic/nsImageFrame.cpp @@ -852,7 +852,7 @@ IntrinsicSize nsImageFrame::ComputeIntrinsicSize( } nsSize size; - if (mImage && NS_SUCCEEDED(mImage->GetIntrinsicSize(&size))) { + if (mImage && NS_SUCCEEDED(mImage->GetIntrinsicSizeInAppUnits(&size))) { IntrinsicSize intrinsicSize; intrinsicSize.width = size.width == -1 ? Nothing() : Some(size.width); intrinsicSize.height = size.height == -1 ? Nothing() : Some(size.height); @@ -1035,7 +1035,8 @@ bool nsImageFrame::GetSourceToDestTransform(nsTransform2D& aTransform) { // size (mIntrinsicSize), which can be scaled due to ResponsiveImageSelector, // see ScaleIntrinsicSizeForDensity. nsSize intrinsicSize; - if (!mImage || !NS_SUCCEEDED(mImage->GetIntrinsicSize(&intrinsicSize)) || + if (!mImage || + !NS_SUCCEEDED(mImage->GetIntrinsicSizeInAppUnits(&intrinsicSize)) || intrinsicSize.IsEmpty()) { return false; }