Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1d977e76f609d034cf9b24a1e739d1b8988d93e6
      
https://github.com/WebKit/WebKit/commit/1d977e76f609d034cf9b24a1e739d1b8988d93e6
  Author: Abrar Rahman Protyasha <a_protya...@apple.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M Source/WebCore/plugins/PluginViewBase.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/Plugins/PluginView.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm

  Log Message:
  -----------
  [UnifiedPDF] Crash under UnifiedPDFPlugin::performCopyEditingOperation() when 
using Command-C to copy on a full frame plugin with empty selection
https://bugs.webkit.org/show_bug.cgi?id=275639
rdar://129820140

Reviewed by Wenson Hsieh and Sammy Gill.

We were crashing under performCopyEditingOperation() when trying to
build up an NSArray of pasteboard items because we failed to ensure that
one (or more) of the web archive, plain string, and HTML data
representations were nil. It is entirely possible for, say,
-[NSString dataUsingEncoding:] to return nil if the conversion is lossy.

To address this crash, we ensure each data representation we want to put
on the pasteboard is non-nil before adding them to the NSArray collecting
said items.

* Source/WebCore/plugins/PluginViewBase.h:
(WebCore::PluginViewBase::sendEditingCommandToPDFForTesting):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::sendEditingCommandToPDFForTesting const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::performCopyEditingOperation const):
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::sendEditingCommandToPDFForTesting):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/UnifiedPDFTests.mm:
(TestWebKitAPI::TEST(UnifiedPDF, 
CopyEditingCommandOnEmptySelectionShouldNotCrash)):

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



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

Reply via email to