diff --git a/layout/generic/nsHTMLCanvasFrame.cpp b/layout/generic/nsHTMLCanvasFrame.cpp
index f558208ad7ab..f46273eaba05 100644
--- a/layout/generic/nsHTMLCanvasFrame.cpp
+++ b/layout/generic/nsHTMLCanvasFrame.cpp
@@ -39,13 +39,9 @@ using namespace mozilla::gfx;
*/
static IntrinsicSize IntrinsicSizeFromCanvasSize(
const nsIntSize& aCanvasSizeInPx) {
- IntrinsicSize intrinsicSize;
- intrinsicSize.width.SetCoordValue(
- nsPresContext::CSSPixelsToAppUnits(aCanvasSizeInPx.width));
- intrinsicSize.height.SetCoordValue(
+ return IntrinsicSize(
+ nsPresContext::CSSPixelsToAppUnits(aCanvasSizeInPx.width),
nsPresContext::CSSPixelsToAppUnits(aCanvasSizeInPx.height));
-
- return intrinsicSize;
}
/* Helper for our nsIFrame::GetIntrinsicRatio() impl. Takes the result of
diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h
index b6d9e34ae959..11f744acc82a 100644
--- a/layout/generic/nsIFrame.h
+++ b/layout/generic/nsIFrame.h
@@ -476,6 +476,10 @@ struct IntrinsicSize {
nsStyleCoord width, height;
IntrinsicSize() : width(eStyleUnit_None), height(eStyleUnit_None) {}
+ IntrinsicSize(nscoord aWidth, nscoord aHeight)
+ : width(aWidth, nsStyleCoord::CoordConstructor),
+ height(aHeight, nsStyleCoord::CoordConstructor) {}
+
IntrinsicSize(const IntrinsicSize& rhs)
: width(rhs.width), height(rhs.height) {}
IntrinsicSize& operator=(const IntrinsicSize& rhs) {
diff --git a/layout/generic/nsVideoFrame.cpp b/layout/generic/nsVideoFrame.cpp
index 9577ad7ba285..a0e260867a94 100644
--- a/layout/generic/nsVideoFrame.cpp
+++ b/layout/generic/nsVideoFrame.cpp
@@ -191,9 +191,7 @@ already_AddRefed nsVideoFrame::BuildLayer(
// can pass to ComputeObjectRenderRect.
nsSize aspectRatio(nsPresContext::CSSPixelsToAppUnits(videoSizeInPx.width),
nsPresContext::CSSPixelsToAppUnits(videoSizeInPx.height));
- IntrinsicSize intrinsicSize;
- intrinsicSize.width.SetCoordValue(aspectRatio.width);
- intrinsicSize.height.SetCoordValue(aspectRatio.height);
+ IntrinsicSize intrinsicSize(aspectRatio.width, aspectRatio.height);
nsRect dest = nsLayoutUtils::ComputeObjectDestRect(
area, intrinsicSize, aspectRatio, StylePosition());
@@ -436,9 +434,7 @@ class nsDisplayVideo : public nsDisplayItem {
nsSize aspectRatio(
nsPresContext::CSSPixelsToAppUnits(videoSizeInPx.width),
nsPresContext::CSSPixelsToAppUnits(videoSizeInPx.height));
- IntrinsicSize intrinsicSize;
- intrinsicSize.width.SetCoordValue(aspectRatio.width);
- intrinsicSize.height.SetCoordValue(aspectRatio.height);
+ IntrinsicSize intrinsicSize(aspectRatio.width, aspectRatio.height);
nsRect dest = nsLayoutUtils::ComputeObjectDestRect(
area, intrinsicSize, aspectRatio, Frame()->StylePosition());
@@ -574,10 +570,7 @@ LogicalSize nsVideoFrame::ComputeSize(
}
nsSize size = GetVideoIntrinsicSize(aRenderingContext);
-
- IntrinsicSize intrinsicSize;
- intrinsicSize.width.SetCoordValue(size.width);
- intrinsicSize.height.SetCoordValue(size.height);
+ IntrinsicSize intrinsicSize(size.width, size.height);
// Only video elements have an intrinsic ratio.
nsSize intrinsicRatio = HasVideoElement() ? size : nsSize(0, 0);