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 <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2025-05-07 09:36:13 +02:00 committed by GitHub
parent 366daf192a
commit b822478057
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);
settings.Set(printing::kSettingDuplexMode, static_cast<int>(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;