From b822478057501b73970b32abb14ad7265f0fd139 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 09:36:13 +0200 Subject: [PATCH] fix: printing when no `mediaSize` specified (#46972) fix: printing when no mediaSize specified Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr --- shell/browser/api/electron_api_web_contents.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 76eee04dd63b..632ef385cf7c 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -3133,11 +3133,21 @@ void WebContents::Print(gin::Arguments* args) { options.Get("duplexMode", &duplex_mode); settings.Set(printing::kSettingDuplexMode, static_cast(duplex_mode)); - // We've already done necessary parameter sanitization at the - // JS level, so we can simply pass this through. - base::Value media_size(base::Value::Type::DICT); - if (options.Get("mediaSize", &media_size)) + base::Value::Dict media_size; + if (options.Get("mediaSize", &media_size)) { settings.Set(printing::kSettingMediaSize, std::move(media_size)); + } else { + // Default to A4 paper size (210mm x 297mm) + settings.Set(printing::kSettingMediaSize, + base::Value::Dict() + .Set(printing::kSettingMediaSizeHeightMicrons, 297000) + .Set(printing::kSettingMediaSizeWidthMicrons, 210000) + .Set(printing::kSettingsImageableAreaLeftMicrons, 0) + .Set(printing::kSettingsImageableAreaTopMicrons, 297000) + .Set(printing::kSettingsImageableAreaRightMicrons, 210000) + .Set(printing::kSettingsImageableAreaBottomMicrons, 0) + .Set(printing::kSettingMediaSizeIsDefault, true)); + } // Set custom dots per inch (dpi) gin_helper::Dictionary dpi_settings;