[webkit-changes] [WebKit/WebKit] 869c37: UnifiedPDF: Implement link following (external links)

Tim Horton noreply at github.com
Wed Feb 7 01:44:52 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 869c3738830502f32e8eb2b2e2fc7ae1afb773c4
      https://github.com/WebKit/WebKit/commit/869c3738830502f32e8eb2b2e2fc7ae1afb773c4
  Author: Tim Horton <thorton at apple.com>
  Date:   2024-02-07 (Wed, 07 Feb 2024)

  Changed paths:
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm

  Log Message:
  -----------
  UnifiedPDF: Implement link following (external links)
https://bugs.webkit.org/show_bug.cgi?id=268894
rdar://118550787

Reviewed by Richard Robinson.

* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
Hoist m_lastMouseEvent to PDFPluginBase.

* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink): Deleted.
Hoist clickedLink up to PDFPluginBase.

(-[WKPDFLayerControllerDelegate pdfLayerController:clickedLinkWithURL:]):
Adopt it in WKPDFLayerControllerDelegate.

(WebKit::PDFPlugin::nsEventForWebMouseEvent):
(WebKit::PDFPlugin::handleMouseEvent):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::lastKnownMousePositionInView const):
Get rid of m_lastMousePositionInPluginCoordinates; since we have to store the
whole event, we'll just use that instead.

(WebKit::PDFPluginBase::navigateToURL): Hoist!

* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
(WebKit::AnnotationTrackingState::trackedAnnotation const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::handleMouseEvent):
Update the cursor to the pointer when we stop tracking an annotation.
We'll start updating again after the mouseup.

(WebKit::UnifiedPDFPlugin::didClickLinkAnnotation):
Follow the link! Later we'll follow internal links too.

(WebKit::AnnotationTrackingState::finishAnnotationTracking):
Remove this assertion so we can track other types of annotations that
don't do anything here.

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




More information about the webkit-changes mailing list