fix: honor webContents.print dpi horizontal/vertical options (#51355)

* fix: honor webContents.print dpi horizontal/vertical options

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

* style: fix clang-format in print dpi parsing

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

* style: extract print dpi key constants

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

* fix: use local dpi constants in print options parser

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Kunal Dubey <xakep8@protonmail.com>
This commit is contained in:
trop[bot]
2026-04-27 18:36:54 -05:00
committed by GitHub
parent d0afb91da4
commit dd74ff3451

View File

@@ -459,6 +459,8 @@ constexpr char kFooterTemplate[] = "footerTemplate";
constexpr char kPreferCSSPageSize[] = "preferCSSPageSize";
constexpr char kGenerateTaggedPDF[] = "generateTaggedPDF";
constexpr char kGenerateDocumentOutline[] = "generateDocumentOutline";
constexpr char kDpiHorizontal[] = "horizontal";
constexpr char kDpiVertical[] = "vertical";
#endif // BUILDFLAG(ENABLE_PRINTING)
constexpr std::string_view CursorTypeToString(
@@ -3346,10 +3348,16 @@ void WebContents::Print(gin::Arguments* const args) {
// Set custom dots per inch (dpi)
if (gin_helper::Dictionary dpi; options.Get(kDpi, &dpi)) {
// `webContents.print()` exposes `dpi: { horizontal, vertical }` in JS.
// Keep backward compatibility with internal key names as a fallback.
settings.Set(printing::kSettingDpiHorizontal,
dpi.ValueOrDefault(printing::kSettingDpiHorizontal, 72));
dpi.ValueOrDefault(
kDpiHorizontal,
dpi.ValueOrDefault(printing::kSettingDpiHorizontal, 72)));
settings.Set(printing::kSettingDpiVertical,
dpi.ValueOrDefault(printing::kSettingDpiVertical, 72));
dpi.ValueOrDefault(
kDpiVertical,
dpi.ValueOrDefault(printing::kSettingDpiVertical, 72)));
}
print_task_runner_->PostTaskAndReplyWithResult(