Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8e6b970bb491b02ea8ce787a105f2d9ea1f01858
      
https://github.com/WebKit/WebKit/commit/8e6b970bb491b02ea8ce787a105f2d9ea1f01858
  Author: Abrar Rahman Protyasha <[email protected]>
  Date:   2024-10-16 (Wed, 16 Oct 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:
  -----------
  REGRESSION(281282@main): Web process may crash when using back/forward 
navigation buttons in Safari on page with encrypted PDF
https://bugs.webkit.org/show_bug.cgi?id=281535
rdar://137973796

Reviewed by Wenson Hsieh.

With Unified PDF enabled, we can induce a web content process crash by
navigating back-and-forth on an encrypted document and then entering the
password on the multiple password forms presented to us.

This crash happens because we try to access the presentation controller
instance of a torn down plugin (which is what the stray password form
points to). This patch addresses the crash by fixing the pre-existing
issue of stray password forms from previous navigations, which affects
both the legacy plugin and the Unified PDF plugin.

We do so by introducing PDFPluginBase::teardownPasswordEntryForm, which
we call into when tearing down a locked PDF. This way, each plugin
override can get to decide what tearing down the password form means.

* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::teardownPasswordEntryForm):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::teardown):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::teardown):
(WebKit::UnifiedPDFPlugin::teardownPasswordEntryForm):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to