[webkit-changes] [WebKit/WebKit] 53ed98: [UnifiedPDF] Get basic PDF page layout working

Simon Fraser noreply at github.com
Fri Sep 29 15:11:13 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 53ed985286a97c4ae32b699699de9eb7ff10b869
      https://github.com/WebKit/WebKit/commit/53ed985286a97c4ae32b699699de9eb7ff10b869
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-09-29 (Fri, 29 Sep 2023)

  Changed paths:
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
    A Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDocumentLayout.h
    A Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDocumentLayout.mm
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.h

  Log Message:
  -----------
  [UnifiedPDF] Get basic PDF page layout working
https://bugs.webkit.org/show_bug.cgi?id=262389
rdar://116249928

Reviewed by Tim Horton and Richard Robinson.

Introduce PDFDocumentLayout for UnifiedPDF, which contains the logic to lay out the PDF
pages, taking page size, rotation and the layout mode into account. Implement basic
single column layout.

Fix PDF page drawing to flip the context when drawing pages.

Hook up an invalidate code path, so that we can repaint the plugin when the PDF loads.

* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::invalidateRect):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDocumentLayout.h: Added.
(WebKit::PDFDocumentLayout::pdfDocument const):
(WebKit::PDFDocumentLayout::layoutSize const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDocumentLayout.mm: Added.
(WebKit::PDFDocumentLayout::documentMargin):
(WebKit::PDFDocumentLayout::pageMargin):
(WebKit::PDFDocumentLayout::setPDFDocument):
(WebKit::PDFDocumentLayout::hasPDFDocument const):
(WebKit::PDFDocumentLayout::pageAtIndex const):
(WebKit::PDFDocumentLayout::updateGeometry):
(WebKit::PDFDocumentLayout::layoutPages):
(WebKit::PDFDocumentLayout::layoutSingleColumn):
(WebKit::PDFDocumentLayout::layoutTwoUpColumn):
(WebKit::PDFDocumentLayout::pageCount const):
(WebKit::PDFDocumentLayout::boundsForPageAtIndex const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::createPDFDocument):
(WebKit::UnifiedPDFPlugin::installPDFDocument):
(WebKit::UnifiedPDFPlugin::paint):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.h:

Canonical link: https://commits.webkit.org/268670@main




More information about the webkit-changes mailing list