Platform/Layout/Printing and fragmentation

From MozillaWiki
Jump to navigation Jump to search

This page provides information about our efforts in 2020 to improve the platform parts of printing and fragmentation in Firefox. Given how closely linked the frondend and platform parts of printing are, this will inevitably involve some frontend work too.

Rationale

Support for printing in Firefox has historically been poorly maintained, and is currently in a dismal state compared to other browsers. There are two main areas for improvement:

  • Printing UX: Firefox’s printing UI/UX lacks consistency and is complicated and confusing compared to the competition. Print settings are displayed differently across operating systems, different methods of accessing printing lead to different dialogs, and print preview is not displayed by default on macOS.
  • Printing output: There is a significantly-sized backlog of user-reported bugs related to print output (for both printing devices and PDF export). Some of these bugs include cases where printing fails completely, several pages are missing, or the printed layout is just incorrect.

Managing bug list

The tables of bugs below are managed automatically using the `whiteboard` field in bugzilla.

  • To add a bug on the printing backlog add "[print2020]" to the whiteboard
  • To add a bug to the fragmentation backlog add "[frag2020]" to the whiteboard
  • To move a bug to target a specific release, append "_vXX" to the whiteboard field (e.g. "[frag2020_v73]")


NIGHTLY 76

Merge to beta: 2020-04-06 (start: 2020-03-09; freeze: 2020-04-02; release: 2020-05-05)

Fragmentation

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Printing

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


BACKLOG

Fragmentation

Full Query
ID Summary Assigned to Resolution
179135 top:auto blocks with position:absolute misplaced when printing
1250348 Tall <iframe> elements are truncated at page boundaries (instead of being split across pages, like tall images are)
1318856 when printing a tall image (or SVG graphic), it is truncated rather than split across pages
1468369 abs.pos. element immediately after a forced page break does not render
1569436 Butterick’s Practical Typography doesn't print to PDF correctly (abspos hypothetical position on non-first page not working properly)
1633936 Add telemetry to determine how much content is clipped during printing
1648903 Printing A4 pages with abspos precisely-measured abspos content is faulty
1674682 Content overlap when fragmenting with fixed height content
1680728 Yahoo search page background-image is shifted/clipped in Print Preview, if WebRender is enabled (with "background-attachment: fixed")
1681079 Print preview should override the position of right aligned page elements on print selection
1665214 When "slicing" printing-improvement preserves overflow from a clipped line-box or grid row, shift down the line or grid row on the next page to leave space for the expected overflow Mats Palmgren (inactive) FIXED
1417615 [Layout] Content truncated when printing a page containing a CSS grid with large row FIXED
1344992 Lost printing content if specify the position:absolute and transform style. INVALID
649802 Abspos with margin gets progressively skinnier on each printed page DUPLICATE
1479119 Long images cut off after first page when printing DUPLICATE
1520749 Fails to print all slides from Remark.js slideshow DUPLICATE
1606540 printing problem when fragmenting tables DUPLICATE
267029 Absolutely positioned elements all print on first page, and the ones that don't fit aren't shown WORKSFORME
1574684 www.specsavers.co.uk doesn't fully print INCOMPLETE

19 Total; 19 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Printing

Full Query
ID Summary Assigned to Resolution
1660905 Add nsIPrinter::CheckConnection to determine if a printer can be reached Emily McDonough [:alaskanemily]
1660885 Make nsIPrinterList::GetNamedOrDefaultPrinter always return a printer, if any are available Emily McDonough [:alaskanemily]
1663290 Consider making afterprint event fire after spinning the event loop Emilio Cobos Álvarez (:emilio)
1662471 Pref `print.always_print_silent` sometimes silently does nothing Emilio Cobos Álvarez (:emilio)
1664415 Unexpected title for error-message dialog on a Print operation Jonathan Kew [:jfkthame]
1621136 Write some firefox-source-docs.mozilla.org documentation for printing Jonathan Watt [:jwatt]
1663712 Explore fetching and caching printer information before users initiate printing Mark Striemer [:mstriemer]
231068 new Page Header or Footer Option -- just Date (no Time)
659715 Consider preserving scroll position of iframes & other scrolled regions when printing
1249214 Scale canvas passed to mozPrintCallback to match printer resolution
1444078 Printing to 300x600 dpi label printer is half width
1657896 Print selection from BBC articles is sometimes missing the first letter of the selection
1657906 Text is displayed as cut-off in both print preview and print job's output for a specific bbc article
1657973 Support generation of tagged (accessible) PDFs
1658558 [ARM] Pages with various formats are not printed completely (several letters are arbitrarily missing)
1662934 Investigate if there is a better way to fix double-scaled printing on macOS
1664253 Try not creating a PrintTarget for print preview.
1664860 The footer is cut off in Landscape mode when on paper on Windows 7 (with specific printers)
1665837 Button-text on network error pages is hard to read (dark-on-dark) when printed
1668400 Optimization: avoid needless reflow for page-range changes
1669910 Firefox draws the header/footer at the extreme edge of writeable area, which can lead to clipped header/footer in some situations (e.g. if printer lies about printable region, or if user prints to PDF and then prints that PDF to a physical printer)
1670887 Print selection (context menu) images on some of the top sites are broken in print preview
1679041 Firefox doesn't allow page layout area to be inflated with negative @page margins
1681206 @page margin:0 seems to be special and does not behave the same as margin:0.01px w.r.t. non-printable areas
1683317 Output copies are doubled for a specific document
1695647 Printing to a paused printer on macOS silently does nothing
1328072 [UX] [e10s] print preview opens print preview instead of showing alert like non-e10s (if printer was't found)
1631440 [meta] Platform support for the new print preview design
1651654 Black pages on Print preview for icq.com page
1654497 "Cannot print this document yet..." dialog no longer appears, when printing mid load.
1657489 Zooming print preview in new print UI flickers, clamps at 100%
1660474 Table border in Print Preview cut-off when window is narrower
1661121 Linked tiles at https://www.mozilla.org/en-US/ can be hovered / dragged *in print preview mode*
1661623 Text with high contrast mode in print preview is hard to read
1661691 ctrl+wheel zoom on print preview is unreliable
1662302 Assertion failure: child->IsDocument(), at src/dom/base/Document.cpp:12176
1662367 print preview shouldn't reuse previously used page format for PDFs, initially always portrait used, even for landscape PDFs
1662373 Print Preview of PDF - swapping to landscape mode shows only part of a page
1662534 Headers/footers don't appear when saving to PDF with margins set to None
1663672 Print preview is blurry with a certain configuration
1668208 Save to PDF's print preview cuts off content in vertical frames test page
1668769 User can interact with some links in print preview
1669263 Sometimes, tab-modal Print Preview briefly flashes a higher-zoom version of the document, when you've made a small change to a print setting
1669469 No draggable action should be allowed in print preview
1669647 The background of a certain iframe is not steady in Print preview
1670287 Elements not supported by Cairo appear in Print Preview despite not appearing in Print output
1670638 [Reader View] Borders are not displayed in print preview
1674365 Improve print preview for printers with very long potential pages, for example receipt printers.
1679123 [mac] Print preview - focus ring shown in preview on part of page
1679153 Buttons from about:sessionrestore disappear when deselecting Print Backgrounds in Print Preview
1679397 Print preview repainting at small scales looks fuzzy
1680153 Scrolling is janky with the pages per sheet option
1680728 Yahoo search page background-image is shifted/clipped in Print Preview, if WebRender is enabled (with "background-attachment: fixed")
1681284 Some animations are played inside the Print preview
1632275 Print to PDF should add the file to the Downloads list, otherwise these file are very hard for users to find
1658285 Print preview gets closed if the tab is moved to a new window
1658414 Print sheet does not have a way to add a printer
1658446 print preview: 'Scale' value should be shown/labeled as percentage ['%']
1660468 [RTL] When a scrollbar is present in new Print UI options sidebar, changing an option from a dropdown will cause the next clicked dropdowns to appear misaligned with their `select`
1660520 Setting margins to 0.1 actually sets them to 0.100000001490116 (at least on Windows)
1660638 Please provide feature of Zoom-In/Out and tool button for print image in new print preview dialog
1660929 Prepopulate the system print dialog with all settings selected in the tab modal print preview doorhanger
1661719 Changes made inside the new Print modal are kept for the old UI as well
1662239 Multiple redundant paper size entries returned in the paperList
1662786 No longer have the ability to cancel or monitor print progress (Implement some sort of print queue user interface)
1663005 If "save to pdf" is selected printer, try to copy over as many current settings as possible to the system dialog.
1668043 It should not be possible to interact with the tab content (e.g. using find-in-page) while tab-modal Print UI is open
1668072 opening print dialog opens it behind already open HTTP auth prompt, should be on top
1668453 Scroll print preview on PgUp/PgDown/Home/End when they would otherwise do nothing
1668855 ctrl + +/- zooms the underlying page, not print preview
1669467 Print preview - tapping left-right should select between Portrait-Landscape options instead of scrolling between the options
1669699 Space height inconsistency after error messages inside the new Print modal
1669904 Stop using PrintUtils.getPrintSettings in the new printing UI
1670037 Get rid of the DeferredTask code in print.js
1670110 Consider moving the "Paper size" field outside the collapsed-by-default "More settings" section
1670135 Add user interface to allow users to collate their printouts when printing multiple copies
1670912 [macOS] Increase/Decrease buttons are different in Print Preview
1673908 Overextended Paper size dropdown at fullscreen exit for Foxit option (version <10 )
1675462 Print preview - Swapping from Scale to Fit To page and repeating with invalid scale should reset to previous valid value instead of 100
1675474 Two OS print modals can be triggered at the same time
1677327 Add 'Save PDF' option in modal print dialog on macOS
1678586 The Selection radio button from the system dialog panel is disabled if the system dialog was opened before the print preview finished loading
1678982 Clicking in the middle of the Scale arrows increases the scale while having a caret displayed
1678983 Print Preview - disable scale carets when values reach max or min values accordingly
1679389 Max scale values are different between new and system modal
1679515 Low Ink/toner levels notification should be displayed on the new modal as well
1681908 Print Preview - adjust sheet indicator focus ring so it doesn't falsely show as being of a bigger size than button/needed
1693989 PDF content gets clipped when printing, if it's too close to page edge (with no way to shrink to fit printable area)
1695552 macOS Printer Status Icon
1685476 Print selection via context menu & via the new modal is not reflected inside the system dialog
1684952 Print jobs with complex print ranges will always print the pages in ascending order, even if the user's range has them in some other order
1676828 [macOS 11] Default printer settings are different than of the other os's
1669762 Rename some attributes in nsIWebBrowserPrint.idl with s/page/sheet/
1569247 [meta] Adding new telemetry printing-related probes
1615908 Consider saving only one set of print settings (instead of per-printer settings)
1785279 Combine mCreatedForPrintPreview, mIsDoingPrinting and mIsCreatingPrintPreview
1639844 Provide access to the native printer resolution through nsIPaper
1640533 Audit whether MOZ_CAN_RUN_SCRIPT annotations for nsPrintJob functions are correct/necessary or not
1651112 [meta] Expose printer specific information using nsIPrinterList and nsIPrinter to support the new printing UI
1669385 Replace nsIPrintSettings.paperWidth/paperHeight/paperSizeUnit with a single setter
1658076 Add collation support to nsIPrintSettings
1658394 Add per-paper-size duplex information for CUPS printers
1669329 [mac] Scaling value is not reflected in native print dialog
1691420 Consider making the preview have initial focus instead of the destination.
1691381 The paginator’s “first page” and “last page” buttons extremities are transparent when shrinking the browser window
1660997 Deduplicate out common code in nsPrintSettingsWin::InitWithInitializer and nsPrintSettingsWin::CopyFromNative
1661294 Retrieve Native Resolution (DPI/PPI) Information For nsIPrinter
1668813 On Ubuntu, the Color Mode dropdown is not locked to Black&White for B&W printers
1688597 Canceling the file picker while printing an about local page locally blocks the print preview in a “Printing…” state
1667260 Document exactly what settings the nsIPrintSettings returned by nsIPrinter.createDefaultSettings has set
1666937 Lazily add mDNS/Bonjour/Avahi printers to the print UI on CUPS platforms (missing printers)
1662626 Investigate whether the platform printing code is compatible with scaling > 100%
1663623 Assertion failure: !chan (Why is there a document channel?), at toolkit/components/windowwatcher/nsWindowWatcher.cpp:1016
1664782 Return the paper list directly from nsPrinterListBase::GetFallbackPaperList without using a Promise
1663702 Make nsFrameLoader::Print support cancellation and progress reporting
1663753 Add telemetry to measure the time platform printing code takes to create/update/scroll print/preview documents
1664469 Get rid of nsPrintData
1660223 Crash in [@ gtk_printer_get_name] Daniel Holbert [:dholbert] FIXED
1681183 Tab-modal print dialog's "Margins: None" option should allow users to print with page margins actually set to 0, regardless of unwriteable area David Shin[:dshin] FIXED
1664413 Printing doesn't use current session cookies when in private mode Emilio Cobos Álvarez (:emilio) FIXED
1676188 Cross origin iframe’s content is not displayed while using window.print() with fission enabled Emilio Cobos Álvarez (:emilio) FIXED
1663366 [Mac] Tab-modal print UI uses old dropdown menu appearance Emilio Cobos Álvarez (:emilio) FIXED
1681941 Tooltips on sheet indicator buttons are not shown for the second hover action if the sheet indicator focus is not removed Emma Malysz FIXED
1695645 "Sheets of paper" does not update when selecting "Print on both sides" Haik Aftandilian [:haik] FIXED
1670871 Limit the number suggested inside the margins warning message to two decimals Hanna Jones [:hjones] FIXED
454059 Creating PDF of web page: hyperlinks are lost. Jonathan Kew [:jfkthame] FIXED
1432651 Disentangle RemotePrintJobChild from nsPrintSettings, and kill off nsPrintSession Jonathan Watt [:jwatt] FIXED
1669815 Remove now-useless "aInRange" outparam from nsPrintJob::PrintPage (and simplify nsPagePrintTimer::StartTimer() which consumes it?) Jonathan Watt [:jwatt] FIXED
1704178 Remove dead printing code that can't be executed in a tab-modal-printing world Jonathan Watt [:jwatt] FIXED
1657733 Audit tests that only run with print.tab_modal.enabled=false Jonathan Watt [:jwatt] FIXED
1668210 Prevent print settings being saved to unprefixed prefs on non-Android Jonathan Watt [:jwatt] FIXED
1657854 Only allow nsPrinterList objects to be created in the main process on all platforms. Jonathan Watt [:jwatt] FIXED
1558588 Remove the code that opens the print progress dialog from the core printing code Jonathan Watt [:jwatt] FIXED
1140929 Have nsPrintJob not block on modal nested event loop for print settings Jonathan Watt [:jwatt] FIXED
1712104 Add a preference 'print.prefer_system_dialog' to allow printing directly via the system print dialog Jonathan Watt [:jwatt] FIXED
1693069 When users choose "Customised" as their "Pages", automatically focus the range field Matthew N. [:MattN] FIXED
1670027 Print selection is disabled inside the system modal if the print preview destination was set to “Save to PDF” Matthew N. [:MattN] FIXED
1661663 Popular sites prevent the print preview Margins menu from working (users need a way to override @page margins) Mark Striemer [:mstriemer] FIXED
1658749 Middle Click scroll is not working correctly in new Print Preview FIXED
1521655 [meta] Support client-side printing in Google Docs and GSuite (Google Workspace) FIXED
844090 landscape pdfs are printed portrait with pdf.js FIXED
1664489 Print preview telemetry for the legacy UI is broken Jonathan Watt [:jwatt] WONTFIX
1659782 Move the print preview browser into print.html WONTFIX
1663436 No longer able to change header/footer strings, even via "Print using system dialog..." escape hatch WONTFIX
1663801 Only call saveSettingsToPrefs in the frontend code when the user actually prints WONTFIX
1668794 [Linux] Paper size naming shows an additional “Borderless” after every option WONTFIX
1660111 [meta] Add automated tests for new print dialog INACTIVE
1660921 Clone scroll positions in print documents DUPLICATE
1666825 Online bank statement page not printing correctly (at Smile Bank UK) DUPLICATE
1681214 Users' print-dialog margin choices aren't respected, if the content uses "@page { margin: ... }" DUPLICATE
1679392 GIF file fails to render sometimes while changing orientation or scale settings DUPLICATE
1663019 Print headers and footers & Print Backgrounds options are available for pdf documents DUPLICATE
1679535 Most of the new Print modal options are inaccessible on destination change if previously a print action was made using Foxit reader with the old modal DUPLICATE
1722063 MacOS - New Firefox Modal Print Dialogue Does Not Support Dynamic Airprint Printers DUPLICATE
1282045 print pdf with both orientations DUPLICATE
1558907 Open the print progress dialog from the frontend instead of the core printing code Jonathan Watt [:jwatt] WORKSFORME
1663556 Crash in [@ nsFrameLoader::MaybeCreateDocShell] WORKSFORME
1663911 Crash in [@ initializeNonMetaClass] WORKSFORME
1666677 Printing hidden frame causes tab crash in Firefox 80, and "An error occurred while printing" error in 81 & newer if you're using legacy print dialog WORKSFORME
1670645 Printing the source page is extremely slow WORKSFORME
1683558 Scaling pages in print preview is not applied on the actual print WORKSFORME
1662135 New print preview UI very janky scrolling documents with multiple pages WORKSFORME
1669191 Crash in [@ OOM | unknown | NS_ABORT_OOM | PLDHashTable::Add | gfxFontGroup::BuildFontList] WORKSFORME
1679405 [Windows] System dialog opens after trying to save the file with “Save to PDF” WORKSFORME
1678319 Print preview displays the webpage in Portrait mode for several Destinations while the Landscape option is active and opens the old System dialog on print/save WORKSFORME
1663629 Crash in [@ g_sequence_iter_get_sequence] WORKSFORME
1663129 Crash in [@ mozalloc_abort | moz_xmalloc | NS_NewDOMEvent] WORKSFORME
1661706 Crash in [@ initializeAndMaybeRelock] WORKSFORME
1660602 Profile janky rendering of print preview documents WORKSFORME
1674155 [macOS] Print preview displays wrong paper size if several steps are performed WORKSFORME
1666914 Printer Paper Size Mismatch INCOMPLETE
1669365 BUG REPORT 81.0.1 (64 BIT) Firefox does not permit printing to any installed PDF app. Will not work with NuancePDF or native PDF in Windows. INCOMPLETE
1673147 Print Problem on EPSON LX-310 After Update 82.0 INCOMPLETE
1673248 PDF prints boxes where there is a space on macOS with Canon printer INCOMPLETE
1674390 printing action changed and dont work well like last. INCOMPLETE
1689211 Print problems after auto-update to 85 on Windows 7 32-bit PC INCOMPLETE
1661751 Firefox print dialog doesn't get past throbber & "Preparing Preview", starting in Firefox 80 INCOMPLETE

177 Total; 177 Open (100%); 0 Resolved (0%); 0 Verified (0%);


NIGHTLY 75

Merge to beta: 2020-03-09 (start: 2020-02-10; freeze: 2020-03-05; release: 2020-04-07)

Fragmentation

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Printing

Full Query
ID Summary Assigned to Resolution
855889 Remove "print.use_global_printsettings" pref Jonathan Watt [:jwatt] FIXED
1430658 Saving of print settings inconsistently handles prefs Jonathan Watt [:jwatt] FIXED
1552966 Convert the printing code from DocShellTree* to BrowsingContext Jonathan Watt [:jwatt] FIXED
1606512 [macos] Save to PDF feature defaults filename to untitled.pdf instead of the title of the webpage. Jonathan Watt [:jwatt] FIXED
1618909 Remove nsPrintJob::GetDocumentName Jonathan Watt [:jwatt] FIXED
1619403 Merge nsPrintJob's GetDisplayTitleAndURL and GetDocumentTitleAndURL Jonathan Watt [:jwatt] FIXED

6 Total; 6 Open (100%); 0 Resolved (0%); 0 Verified (0%);