diff --git a/dom/html/test/browser.ini b/dom/html/test/browser.ini
index 45b045453fab..cb02f7f551b2 100644
--- a/dom/html/test/browser.ini
+++ b/dom/html/test/browser.ini
@@ -26,6 +26,7 @@ skip-if = bits == 64 && (os == "mac" || os == "linux") #Bug 1646862
[browser_containerLoadingContent.js]
skip-if =
os == "win" && os_version == "6.1" # Skip on Azure - frequent failure
+[browser_ImageDocument_svg_zoom.js]
[browser_submission_flush.js]
[browser_refresh_after_document_write.js]
support-files =
diff --git a/dom/html/test/browser_ImageDocument_svg_zoom.js b/dom/html/test/browser_ImageDocument_svg_zoom.js
new file mode 100644
index 000000000000..2c22ad4dd8ce
--- /dev/null
+++ b/dom/html/test/browser_ImageDocument_svg_zoom.js
@@ -0,0 +1,38 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const URL = `data:image/svg+xml,`;
+
+function test_once() {
+ return BrowserTestUtils.withNewTab(URL, async browser => {
+ return await SpecialPowers.spawn(browser, [], async function() {
+ const rect = content.document.documentElement.getBoundingClientRect();
+ info(
+ `${rect.width}x${rect.height}, ${content.innerWidth}x${content.innerHeight}`
+ );
+ is(
+ Math.round(rect.height),
+ content.innerHeight,
+ "Should fill the viewport and not overflow"
+ );
+ });
+ });
+}
+
+add_task(async function test_with_no_text_zoom() {
+ await test_once();
+});
+
+add_task(async function test_with_text_zoom() {
+ let dpi = window.devicePixelRatio;
+
+ await SpecialPowers.pushPrefEnv({ set: [["ui.textScaleFactor", 200]] });
+ ok(
+ window.devicePixelRatio > dpi,
+ "DPI should change as a result of the pref flip"
+ );
+
+ return test_once();
+});
diff --git a/layout/svg/SVGOuterSVGFrame.cpp b/layout/svg/SVGOuterSVGFrame.cpp
index 4d3e919197f8..7c2e57550af2 100644
--- a/layout/svg/SVGOuterSVGFrame.cpp
+++ b/layout/svg/SVGOuterSVGFrame.cpp
@@ -40,12 +40,7 @@ NS_IMPL_FRAMEARENA_HELPERS(SVGOuterSVGFrame)
SVGOuterSVGFrame::SVGOuterSVGFrame(ComputedStyle* aStyle,
nsPresContext* aPresContext)
- : SVGDisplayContainerFrame(aStyle, aPresContext, kClassID),
- mFullZoom(PresContext()->GetFullZoom()),
- mCallingReflowSVG(false),
- mIsRootContent(false),
- mIsInObjectOrEmbed(false),
- mIsInIframe(false) {
+ : SVGDisplayContainerFrame(aStyle, aPresContext, kClassID) {
// Outer-