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

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

* style: fix clang-format in print dpi parsing

* style: extract print dpi key constants

* fix: use local dpi constants in print options parser
This commit is contained in:
Kunal Dubey
2026-04-28 02:16:46 +05:30
committed by GitHub
parent 6f2e5cd426
commit d6888df13b

View File

@@ -464,6 +464,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(
@@ -3396,10 +3398,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(