Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a204337cb0ff2df80b628fb8415ee6a39ceb4b2f https://github.com/WebKit/WebKit/commit/a204337cb0ff2df80b628fb8415ee6a39ceb4b2f Author: Megan Gardner <megan_gard...@apple.com> Date: 2024-02-17 (Sat, 17 Feb 2024)
Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WTF/wtf/URL.cpp M Source/WTF/wtf/URL.h M Source/WTF/wtf/URLParser.cpp M Source/WTF/wtf/URLParser.h M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj A Source/WebCore/dom/FragmentDirectiveGenerator.cpp A Source/WebCore/dom/FragmentDirectiveGenerator.h M Source/WebCore/en.lproj/Localizable.strings M Source/WebCore/page/ContextMenuController.cpp M Source/WebCore/page/ContextMenuController.h M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebCore/platform/ContextMenuItem.cpp M Source/WebCore/platform/ContextMenuItem.h M Source/WebCore/platform/LocalizedStrings.cpp M Source/WebCore/platform/LocalizedStrings.h M Source/WebKit/Shared/API/c/WKContextMenuItemTypes.h M Source/WebKit/Shared/API/c/WKSharedAPICast.h M Source/WebKit/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm M Source/WebKit/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm M Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in Log Message: ----------- Add Context menu option to copy link to currently selected text. https://bugs.webkit.org/show_bug.cgi?id=269400 rdar://113158483 Reviewed by Ryosuke Niwa. As discussed in https://wicg.github.io/scroll-to-text-fragment/#generating-text-fragment-directives Which is non-normative, currently, we can generated fragment directives by looking at the text that is highlighted and the surrounding text. This is a first pass implementation and there are several edge cases that still need to be worked out, but this is a place to start. Currently, for short pieces of text, we look back up to 3 words, in the same node, in each direction for context. And if we have a large piece of text, we take the first three words at the beginning and end of the content. Medium sized pieces of text are just denoted completely. This does not give enough for situations where there is lots of repeated text, or text that is repeated several times across a page, but it covers most cases. This will be expanded with tests and additional work on know edge cases. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WTF/wtf/URL.cpp: (WTF::percentEncodeFragmentDirectiveSpecialCharacters): * Source/WTF/wtf/URL.h: * Source/WTF/wtf/URLParser.cpp: (WTF::isSpecialCharacterForFragmentDirective): (WTF::URLParser::isSpecialCharacterForFragmentDirective): * Source/WTF/wtf/URLParser.h: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/dom/FragmentDirectiveGenerator.cpp: Added. (WebCore::FragmentDirectiveGenerator::FragmentDirectiveGenerator): (WebCore::previousWordsFromPosition): * Source/WebCore/dom/FragmentDirectiveGenerator.h: Added. (WebCore::FragmentDirectiveGenerator::urlWithFragment const): * Source/WebCore/en.lproj/Localizable.strings: * Source/WebCore/page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected): (WebCore::ContextMenuController::populate): (WebCore::ContextMenuController::shouldEnableCopyLinkToHighlight const): (WebCore::ContextMenuController::checkOrEnableIfNeeded const): * Source/WebCore/page/ContextMenuController.h: * Source/WebCore/page/Page.cpp: (WebCore::Page::urlForSelectedText): * Source/WebCore/page/Page.h: * Source/WebCore/platform/ContextMenuItem.cpp: (WebCore::isValidContextMenuAction): * Source/WebCore/platform/ContextMenuItem.h: * Source/WebCore/platform/LocalizedStrings.h: * Source/WebCore/platform/cocoa/LocalizedStringsCocoa.mm: (WebCore::contextMenuItemTagCopyLinkToHighlight): * Source/WebKit/Shared/API/c/WKContextMenuItemTypes.h: * Source/WebKit/Shared/API/c/WKSharedAPICast.h: (WebKit::toAPI): (WebKit::toImpl): * Source/WebKit/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: * Source/WebKit/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::copyLinkToHighlight): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView shouldAllowHighlightLinkCreation]): (-[WKContentView buildMenuForWebViewWithBuilder:]): (-[WKContentView appHighlightMenu]): (-[WKContentView scrollToTextFragmentGenerationMenu]): (-[WKContentView shouldAllowAppHighlightCreation]): Deleted. * Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::menuItemIdentifier): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::copyLinkToHighlight): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: Canonical link: https://commits.webkit.org/274919@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