Update paper printable area in UpdatePrintSettings When getting the default printer capabilities and settings, updates in https://crrev.com/1099645 filled in the printable area for all paper sizes supported by a Windows driver. For some printer drivers this can be a relatively expensive call. Since this is in an inner loop of supported papers sizes, the performance cost is further compounded when a printer supports many different paper sizes. This can result in large delays in generating the Print Preview, and can make the UI unresponsive for many seconds. To avoid this performance impact, modify the Windows behavior for paper printable area handling. Change getting printer capabilities to only retrieve the printable area for the default paper size. Introduce a new Windows-only call to PrintBackend to retrieve just the printable area for a particular paper. Modify PrinterQuery to use this query to update an existing PrintSettings object. This initial version only is functional when printer calls are made in-browser. Out-of-process printing for Windows still performs the expensive query of retrieving the printable area for all papers. While the UI will be responsive for OOP, it will still experience a large delay before the preview is ready. Bug: 879284, 1424368 Change-Id: I0b22abfb88e922a3f50fc26fd6502cdb9a01299e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4409898 Commit-Queue: Alan Screen <awscreen@chromium.org> Reviewed-by: Andy Phan <andyphan@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#1128325}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.