fix: printing when no mediaSize specified (#46971)

fix: printing when no mediaSize specified

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2025-05-07 09:36:17 +02:00 committed by GitHub
commit 5602efb2b6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3133,11 +3133,21 @@ void WebContents::Print(gin::Arguments* args) {
options.Get("duplexMode", &duplex_mode); options.Get("duplexMode", &duplex_mode);
settings.Set(printing::kSettingDuplexMode, static_cast<int>(duplex_mode)); settings.Set(printing::kSettingDuplexMode, static_cast<int>(duplex_mode));
// We've already done necessary parameter sanitization at the base::Value::Dict media_size;
// JS level, so we can simply pass this through. if (options.Get("mediaSize", &media_size)) {
base::Value media_size(base::Value::Type::DICT);
if (options.Get("mediaSize", &media_size))
settings.Set(printing::kSettingMediaSize, std::move(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) // Set custom dots per inch (dpi)
gin_helper::Dictionary dpi_settings; gin_helper::Dictionary dpi_settings;