[webkit-changes] [WebKit/WebKit] 4f4133: [UnifiedPDF] [iOS] Text selection should clear whe...
Wenson Hsieh
noreply at github.com
Fri Dec 13 07:09:35 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4f4133c103f56f6f60b2e5f3ddcd29711ebde341
https://github.com/WebKit/WebKit/commit/4f4133c103f56f6f60b2e5f3ddcd29711ebde341
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2024-12-13 (Fri, 13 Dec 2024)
Changed paths:
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
M Source/WebKit/WebProcess/Plugins/PluginView.cpp
M Source/WebKit/WebProcess/Plugins/PluginView.h
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
Log Message:
-----------
[UnifiedPDF] [iOS] Text selection should clear when tapping outside of the selection
https://bugs.webkit.org/show_bug.cgi?id=284604
rdar://141325055
Reviewed by Abrar Rahman Protyasha.
Clear the selection when tapping outside of the current selection, when unified PDF is enabled. The
way this works in normal web content is that we'll clear the selection by default if the synthetic
tap gesture is not handled — however, on iOS, tapping over the full-document `embed` (i.e. a
platform `Widget`) causes us to always handle the mouse press event resulting from the synthetic
click. Account for this by adding logic to call into the plugin view to dismiss the selection, when
this happens.
When tapping over the selection highlight, existing logic inside `-_shouldToggleEditMenuAfterTapAt:`
will prevent the synthetic click from committing altogether, thereby allowing the system text
interaction to toggle the edit menu.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
(WebKit::PDFPluginBase::clearSelection):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::setCurrentSelection):
(WebKit::UnifiedPDFPlugin::clearSelection):
Add plumbing to clear the selection on the PDF plugin.
(WebKit::UnifiedPDFPlugin::platformPopulateEditorStateIfNeeded const):
Make a small adjustment here to ensure that when the selection is null, we still send a valid
(i.e. "post-layout") editor state. This is necessary to ensure that we'll actually tell UIKit to
update the selection, rather than wait for the next editor state with post-layout data.
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::clearSelection):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::commitPotentialTap):
(WebKit::WebPage::clearSelectionAfterTapIfNeeded):
(WebKit::WebPage::clearSelection):
Defer to the focused frame's plugin in several places, to clear the PDF's text selection.
Canonical link: https://commits.webkit.org/287791@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list