Changeset 293299 in webkit
- Timestamp:
- Apr 23, 2022, 8:45:52 PM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 deleted
- 28 edited
-
WTF/ChangeLog (modified) (1 diff)
-
WTF/Scripts/Preferences/WebPreferencesInternal.yaml (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/en.lproj/Localizable.strings (modified) (3 diffs)
-
WebCore/page/ContextMenuController.cpp (modified) (6 diffs)
-
WebCore/page/EventHandler.cpp (modified) (1 diff)
-
WebCore/platform/ContextMenuItem.cpp (modified) (1 diff)
-
WebCore/platform/ContextMenuItem.h (modified) (1 diff)
-
WebCore/platform/LocalizedStrings.h (modified) (1 diff)
-
WebCore/platform/cocoa/LocalizedStringsCocoa.mm (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/Shared/API/c/WKSharedAPICast.h (modified) (2 diffs)
-
WebKit/UIProcess/Cocoa/QuickLookPreviewActivity.h (deleted)
-
WebKit/UIProcess/Cocoa/WebViewImpl.h (modified) (2 diffs)
-
WebKit/UIProcess/Cocoa/WebViewImpl.mm (modified) (2 diffs)
-
WebKit/UIProcess/PageClient.h (modified) (2 diffs)
-
WebKit/UIProcess/WebContextMenuProxy.h (modified) (2 diffs)
-
WebKit/UIProcess/WebPageProxy.cpp (modified) (3 diffs)
-
WebKit/UIProcess/WebPageProxy.h (modified) (3 diffs)
-
WebKit/UIProcess/mac/PageClientImplMac.h (modified) (1 diff)
-
WebKit/UIProcess/mac/PageClientImplMac.mm (modified) (1 diff)
-
WebKit/UIProcess/mac/WKQuickLookPreviewController.h (modified) (1 diff)
-
WebKit/UIProcess/mac/WKQuickLookPreviewController.mm (modified) (1 diff)
-
WebKit/UIProcess/mac/WebContextMenuProxyMac.h (modified) (2 diffs)
-
WebKit/UIProcess/mac/WebContextMenuProxyMac.mm (modified) (6 diffs)
-
WebKit/UIProcess/mac/WebPageProxyMac.mm (modified) (2 diffs)
-
WebKit/WebKit.xcodeproj/project.pbxproj (modified) (2 diffs)
-
WebKitLegacy/mac/ChangeLog (modified) (1 diff)
-
WebKitLegacy/mac/WebView/WebHTMLView.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r293285 r293299 1 2022-04-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Remove the `PreferInlineTextSelectionInImages` internal feature flag 4 https://bugs.webkit.org/show_bug.cgi?id=234849 5 6 Reviewed by Sam Weinig. 7 8 See WebKit/ChangeLog for more details. 9 10 * Scripts/Preferences/WebPreferencesInternal.yaml: 11 1 12 2022-04-22 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml
r293233 r293299 745 745 default: false 746 746 747 PreferInlineTextSelectionInImages:748 type: bool749 humanReadableName: "Inline Text Selection in Images"750 humanReadableDescription: "Prefer inline text selection in images over using the context menu"751 condition: ENABLE(IMAGE_ANALYSIS)752 defaultValue:753 WebCore:754 "HAVE(UIKIT_WEBKIT_INTERNALS)": false755 default: true756 WebKitLegacy:757 "HAVE(UIKIT_WEBKIT_INTERNALS)": false758 default: true759 WebKit:760 "HAVE(UIKIT_WEBKIT_INTERNALS)": false761 default: true762 763 747 PreferSandboxedMediaParsing: 764 748 type: bool -
trunk/Source/WebCore/ChangeLog
r293298 r293299 1 2022-04-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Remove the `PreferInlineTextSelectionInImages` internal feature flag 4 https://bugs.webkit.org/show_bug.cgi?id=234849 5 6 Reviewed by Sam Weinig. 7 8 See WebKit/ChangeLog for more details. 9 10 * en.lproj/Localizable.strings: 11 * page/ContextMenuController.cpp: 12 (WebCore::ContextMenuController::contextMenuItemSelected): 13 (WebCore::ContextMenuController::populate): 14 (WebCore::ContextMenuController::checkOrEnableIfNeeded const): 15 * page/EventHandler.cpp: 16 (WebCore::EventHandler::updateMouseEventTargetNode): 17 * platform/ContextMenuItem.cpp: 18 (WebCore::isValidContextMenuAction): 19 * platform/ContextMenuItem.h: 20 * platform/LocalizedStrings.h: 21 * platform/cocoa/LocalizedStringsCocoa.mm: 22 (WebCore::contextMenuItemTagQuickLookImage): Deleted. 23 (WebCore::contextMenuItemTagQuickLookImageForTextSelection): Deleted. 24 (WebCore::contextMenuItemTagQuickLookImageForVisualSearch): Deleted. 25 1 26 2022-04-23 Andres Gonzalez <andresg_22@apple.com> 2 27 -
trunk/Source/WebCore/en.lproj/Localizable.strings
r292898 r293299 623 623 "Look Up in Dictionary" = "Look Up in Dictionary"; 624 624 625 /* Title for Quick Look action button for images with visual search results */626 "Look Up in Quick Look" = "Look Up in Quick Look";627 628 625 /* Look Up context menu item with selected word */ 629 626 "Look Up “%@”" = "Look Up “%@”"; … … 803 800 "Preparing (file upload)" = "Preparing…"; 804 801 805 /* Title for Quick Look action button */806 "Quick Look" = "Quick Look";807 808 802 /* Undo action name */ 809 803 "Raise Baseline (Undo action name)" = "Raise Baseline"; … … 848 842 "Search with %@" = "Search with %@"; 849 843 850 /* Title for Quick Look action button for images with text */851 "Select Text in Quick Look" = "Select Text in Quick Look";852 853 844 /* Validation message for required file inputs that have no value */ 854 845 "Select a file" = "Select a file"; -
trunk/Source/WebCore/page/ContextMenuController.cpp
r292408 r293299 528 528 break; 529 529 case ContextMenuItemTagCopyCroppedImage: 530 case ContextMenuItemTag QuickLookImage:530 case ContextMenuItemTagLookUpImage: 531 531 // These should be handled at the client layer. 532 532 ASSERT_NOT_REACHED(); … … 837 837 ContextMenuItem InsertEmojiItem(ActionType, ContextMenuItemTagInsertEmoji, contextMenuItemTagInsertEmoji()); 838 838 #endif 839 #if ENABLE(IMAGE_ANALYSIS) 840 ContextMenuItem LookUpImageItem(ActionType, ContextMenuItemTagLookUpImage, contextMenuItemTagLookUpImage()); 841 #endif 839 842 840 843 #if PLATFORM(GTK) || PLATFORM(WIN) … … 863 866 if (m_context.controlledImage()) 864 867 return; 865 #endif866 867 #if ENABLE(IMAGE_ANALYSIS)868 bool shouldAppendQuickLookImageItem = false;869 auto quickLookItemTitle = frame->settings().preferInlineTextSelectionInImages() ? contextMenuItemTagLookUpImage() : contextMenuItemTagQuickLookImage();870 ContextMenuItem QuickLookImageItem { ActionType, ContextMenuItemTagQuickLookImage, quickLookItemTitle };871 868 #endif 872 869 … … 924 921 #endif 925 922 #if ENABLE(IMAGE_ANALYSIS) 926 shouldAppendQuickLookImageItem = m_client.supportsLookUpInImages(); 923 if (m_client.supportsLookUpInImages()) 924 appendItem(LookUpImageItem, m_contextMenu.get()); 927 925 #endif 928 926 } … … 1189 1187 } 1190 1188 } 1191 1192 #if ENABLE(IMAGE_ANALYSIS)1193 if (shouldAppendQuickLookImageItem) {1194 if (!frame->settings().preferInlineTextSelectionInImages()) {1195 // In the case where inline text selection is enabled, the Look Up item is only added if1196 // we discover visual look up results after image analysis. In that scenario, a separator1197 // is only added before the Look Up item once we're certain that we want to show it.1198 appendItem(*separatorItem(), m_contextMenu.get());1199 }1200 appendItem(QuickLookImageItem, m_contextMenu.get());1201 }1202 #endif // ENABLE(IMAGE_ANALYSIS)1203 1189 } 1204 1190 … … 1527 1513 shouldCheck = shouldEnable && m_context.hitTestResult().mediaMuted(); 1528 1514 break; 1529 case ContextMenuItemTag QuickLookImage:1515 case ContextMenuItemTagLookUpImage: 1530 1516 case ContextMenuItemTagTranslate: 1531 1517 break; -
trunk/Source/WebCore/page/EventHandler.cpp
r293137 r293299 2579 2579 2580 2580 #if ENABLE(IMAGE_ANALYSIS) 2581 if (m_frame.settings().preferInlineTextSelectionInImages()) { 2582 if (!textRecognitionCandidateElement()) 2583 m_textRecognitionHoverTimer.stop(); 2584 else if (!platformMouseEvent.movementDelta().isZero()) 2585 m_textRecognitionHoverTimer.restart(); 2586 } 2581 if (!textRecognitionCandidateElement()) 2582 m_textRecognitionHoverTimer.stop(); 2583 else if (!platformMouseEvent.movementDelta().isZero()) 2584 m_textRecognitionHoverTimer.restart(); 2587 2585 #endif // ENABLE(IMAGE_ANALYSIS) 2588 2586 -
trunk/Source/WebCore/platform/ContextMenuItem.cpp
r289851 r293299 260 260 case ContextMenuAction::ContextMenuItemTagShareMenu: 261 261 case ContextMenuAction::ContextMenuItemTagToggleVideoEnhancedFullscreen: 262 case ContextMenuAction::ContextMenuItemTag QuickLookImage:262 case ContextMenuAction::ContextMenuItemTagLookUpImage: 263 263 case ContextMenuAction::ContextMenuItemTagTranslate: 264 264 case ContextMenuAction::ContextMenuItemBaseCustomTag: -
trunk/Source/WebCore/platform/ContextMenuItem.h
r289851 r293299 148 148 ContextMenuItemTagAddHighlightToCurrentQuickNote, 149 149 ContextMenuItemTagAddHighlightToNewQuickNote, 150 ContextMenuItemTag QuickLookImage,150 ContextMenuItemTagLookUpImage, 151 151 ContextMenuItemTagTranslate, 152 152 ContextMenuItemTagCopyCroppedImage, -
trunk/Source/WebCore/platform/LocalizedStrings.h
r291863 r293299 373 373 #if ENABLE(IMAGE_ANALYSIS) 374 374 WEBCORE_EXPORT String contextMenuItemTagLookUpImage(); 375 WEBCORE_EXPORT String contextMenuItemTagQuickLookImage(); 376 WEBCORE_EXPORT String contextMenuItemTagQuickLookImageForTextSelection(); 377 WEBCORE_EXPORT String contextMenuItemTagQuickLookImageForVisualSearch(); 378 #endif // ENABLE(IMAGE_ANALYSIS) 375 #endif 379 376 380 377 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) -
trunk/Source/WebCore/platform/cocoa/LocalizedStringsCocoa.mm
r289882 r293299 303 303 } 304 304 305 String contextMenuItemTagQuickLookImage() 306 { 307 return WEB_UI_STRING("Quick Look", "Title for Quick Look action button"); 308 } 309 310 String contextMenuItemTagQuickLookImageForTextSelection() 311 { 312 return WEB_UI_STRING("Select Text in Quick Look", "Title for Quick Look action button for images with text"); 313 } 314 315 String contextMenuItemTagQuickLookImageForVisualSearch() 316 { 317 return WEB_UI_STRING("Look Up in Quick Look", "Title for Quick Look action button for images with visual search results"); 318 } 319 320 #endif // ENABLE(IMAGE_ANALYSIS) 305 #endif 321 306 322 307 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) -
trunk/Source/WebKit/ChangeLog
r293296 r293299 1 2022-04-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Remove the `PreferInlineTextSelectionInImages` internal feature flag 4 https://bugs.webkit.org/show_bug.cgi?id=234849 5 6 Reviewed by Sam Weinig. 7 8 This patch reverts r279164, which introduced an internal feature to avoid Live Text analysis when hovering over 9 images, and instead added a new context menu item to reveal selectable text in the image by launching the 10 QuickLook panel in Live Text mode. 11 12 This alternate Live Text experience was originally devised as a way to mitigate the power and performance impact 13 of passively triggering Live Text analysis when hovering over images on pre-M1 devices, but this mitigation was 14 ultimately deemed unnecessary in macOS 12. 15 16 * Shared/API/c/WKSharedAPICast.h: 17 (WebKit::toAPI): 18 (WebKit::toImpl): 19 * UIProcess/Cocoa/QuickLookPreviewActivity.h: Removed. 20 * UIProcess/Cocoa/WebViewImpl.h: 21 * UIProcess/Cocoa/WebViewImpl.mm: 22 (WebKit::WebViewImpl::computeHasVisualSearchResults): 23 (WebKit::WebViewImpl::computeHasImageAnalysisResults): Deleted. 24 * UIProcess/PageClient.h: 25 (WebKit::PageClient::computeHasVisualSearchResults): 26 (WebKit::PageClient::computeHasImageAnalysisResults): Deleted. 27 * UIProcess/WebContextMenuProxy.h: 28 (WebKit::WebContextMenuProxy::quickLookPreviewActivity const): Deleted. 29 * UIProcess/WebPageProxy.cpp: 30 (WebKit::WebPageProxy::contextMenuItemSelected): 31 (WebKit::WebPageProxy::computeHasVisualSearchResults): 32 (WebKit::WebPageProxy::computeHasImageAnalysisResults): Deleted. 33 * UIProcess/WebPageProxy.h: 34 * UIProcess/mac/PageClientImplMac.h: 35 * UIProcess/mac/PageClientImplMac.mm: 36 (WebKit::PageClientImpl::computeHasVisualSearchResults): 37 (WebKit::PageClientImpl::computeHasImageAnalysisResults): Deleted. 38 * UIProcess/mac/WKQuickLookPreviewController.h: 39 * UIProcess/mac/WKQuickLookPreviewController.mm: 40 * UIProcess/mac/WebContextMenuProxyMac.h: 41 * UIProcess/mac/WebContextMenuProxyMac.mm: 42 (WebKit::menuItemIdentifier): 43 (WebKit::WebContextMenuProxyMac::getContextMenuFromItems): 44 (WebKit::WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem): Deleted. 45 (WebKit::WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle): Deleted. 46 * UIProcess/mac/WebPageProxyMac.mm: 47 (WebKit::WebPageProxy::handleContextMenuLookUpImage): 48 (WebKit::WebPageProxy::handleContextMenuQuickLookImage): Deleted. 49 * WebKit.xcodeproj/project.pbxproj: 50 1 51 2022-04-23 Brady Eidson <beidson@apple.com> 2 52 -
trunk/Source/WebKit/Shared/API/c/WKSharedAPICast.h
r289851 r293299 544 544 case WebCore::ContextMenuItemTagShareMenu: 545 545 return kWKContextMenuItemTagShareMenu; 546 case WebCore::ContextMenuItemTag QuickLookImage:546 case WebCore::ContextMenuItemTagLookUpImage: 547 547 return kWKContextMenuItemTagRevealImage; 548 548 case WebCore::ContextMenuItemTagTranslate: … … 749 749 #endif 750 750 case kWKContextMenuItemTagRevealImage: 751 return WebCore::ContextMenuItemTag QuickLookImage;751 return WebCore::ContextMenuItemTagLookUpImage; 752 752 case kWKContextMenuItemTagTranslate: 753 753 return WebCore::ContextMenuItemTagTranslate; -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h
r292356 r293299 172 172 173 173 enum class ContinueUnsafeLoad : bool; 174 enum class ImageAnalysisType : uint8_t;175 174 enum class UndoOrRedo : bool; 176 175 … … 597 596 #if ENABLE(IMAGE_ANALYSIS) 598 597 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&); 599 void computeHas ImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType, CompletionHandler<void(bool)>&&);598 void computeHasVisualSearchResults(const URL& imageURL, ShareableBitmap& imageBitmap, CompletionHandler<void(bool)>&&); 600 599 #endif 601 600 -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
r292935 r293299 281 281 } 282 282 283 void WebViewImpl::computeHas ImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType type, CompletionHandler<void(bool)>&& completion)283 void WebViewImpl::computeHasVisualSearchResults(const URL& imageURL, ShareableBitmap& imageBitmap, CompletionHandler<void(bool)>&& completion) 284 284 { 285 285 if (!isLiveTextAvailableAndEnabled()) { … … 289 289 290 290 auto cgImage = imageBitmap.makeCGImage(); 291 auto analysisType = type == ImageAnalysisType::VisualSearch ? VKAnalysisTypeVisualSearch : VKAnalysisTypeText; 292 auto request = createImageAnalyzerRequest(cgImage.get(), imageURL, [NSURL _web_URLWithWTFString:m_page->currentURL()], analysisType); 291 auto request = createImageAnalyzerRequest(cgImage.get(), imageURL, [NSURL _web_URLWithWTFString:m_page->currentURL()], VKAnalysisTypeVisualSearch); 293 292 auto startTime = MonotonicTime::now(); 294 [ensureImageAnalyzer() processRequest:request.get() progressHandler:nil completionHandler:makeBlockPtr([completion = WTFMove(completion), startTime , analysisType] (CocoaImageAnalysis *analysis, NSError *) mutable {295 BOOL result = [analysis hasResultsForAnalysisTypes: analysisType];296 CFRunLoopPerformBlock(CFRunLoopGetMain(), (__bridge CFStringRef)NSEventTrackingRunLoopMode, makeBlockPtr([completion = WTFMove(completion), result, analysisType,startTime] () mutable {297 RELEASE_LOG(Images, "Image analysis completed in %.0f ms (found %s? %d)", (MonotonicTime::now() - startTime).milliseconds(), analysisType == VKAnalysisTypeVisualSearch ? "visual search results" : "text", result);293 [ensureImageAnalyzer() processRequest:request.get() progressHandler:nil completionHandler:makeBlockPtr([completion = WTFMove(completion), startTime] (CocoaImageAnalysis *analysis, NSError *) mutable { 294 BOOL result = [analysis hasResultsForAnalysisTypes:VKAnalysisTypeVisualSearch]; 295 CFRunLoopPerformBlock(CFRunLoopGetMain(), (__bridge CFStringRef)NSEventTrackingRunLoopMode, makeBlockPtr([completion = WTFMove(completion), result, startTime] () mutable { 296 RELEASE_LOG(Images, "Image analysis completed in %.0f ms (found visual search results? %d)", (MonotonicTime::now() - startTime).milliseconds(), result); 298 297 completion(result); 299 298 }).get()); -
trunk/Source/WebKit/UIProcess/PageClient.h
r292812 r293299 166 166 enum class ContinueUnsafeLoad : bool { No, Yes }; 167 167 168 #if ENABLE(IMAGE_ANALYSIS)169 enum class ImageAnalysisType : uint8_t { Text, VisualSearch };170 #endif171 172 168 struct FocusedElementInformation; 173 169 struct FrameInfoData; … … 561 557 #if ENABLE(IMAGE_ANALYSIS) 562 558 virtual void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completion) { completion({ }); } 563 virtual void computeHas ImageAnalysisResults(const URL&, ShareableBitmap&, ImageAnalysisType, CompletionHandler<void(bool)>&& completion) { completion(false); }559 virtual void computeHasVisualSearchResults(const URL&, ShareableBitmap&, CompletionHandler<void(bool)>&& completion) { completion(false); } 564 560 #endif 565 561 -
trunk/Source/WebKit/UIProcess/WebContextMenuProxy.h
r279164 r293299 34 34 #include <wtf/WeakPtr.h> 35 35 36 #if PLATFORM(COCOA)37 #include "QuickLookPreviewActivity.h"38 #endif39 40 36 OBJC_CLASS NSMenu; 41 37 … … 56 52 virtual NSMenu *platformMenu() const = 0; 57 53 virtual NSArray *platformData() const = 0; 58 virtual QuickLookPreviewActivity quickLookPreviewActivity() const { return QuickLookPreviewActivity::None; };59 54 #endif // PLATFORM(COCOA) 60 55 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r293063 r293299 217 217 #if PLATFORM(COCOA) 218 218 #include "InsertTextOptions.h" 219 #include "QuickLookPreviewActivity.h"220 219 #include "RemoteLayerTreeDrawingAreaProxy.h" 221 220 #include "RemoteLayerTreeScrollingPerformanceData.h" … … 7207 7206 break; 7208 7207 7209 case ContextMenuItemTag QuickLookImage:7208 case ContextMenuItemTagLookUpImage: 7210 7209 #if ENABLE(IMAGE_ANALYSIS) 7211 if (m_activeContextMenu) 7212 handleContextMenuQuickLookImage(m_activeContextMenu->quickLookPreviewActivity()); 7210 handleContextMenuLookUpImage(); 7213 7211 #endif 7214 7212 return; … … 8843 8841 } 8844 8842 8845 void WebPageProxy::computeHas ImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType type, CompletionHandler<void(bool)>&& completion)8846 { 8847 pageClient().computeHas ImageAnalysisResults(imageURL, imageBitmap, type, WTFMove(completion));8843 void WebPageProxy::computeHasVisualSearchResults(const URL& imageURL, ShareableBitmap& imageBitmap, CompletionHandler<void(bool)>&& completion) 8844 { 8845 pageClient().computeHasVisualSearchResults(imageURL, imageBitmap, WTFMove(completion)); 8848 8846 } 8849 8847 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r293230 r293299 422 422 struct WebSpeechSynthesisVoice; 423 423 424 enum class ImageAnalysisType : uint8_t;425 enum class TapHandlingResult : uint8_t;426 424 enum class TextRecognitionUpdateResult : uint8_t; 427 425 enum class NegotiatedLegacyTLS : bool; … … 1763 1761 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&); 1764 1762 void updateWithTextRecognitionResult(WebCore::TextRecognitionResult&&, const WebCore::ElementContext&, const WebCore::FloatPoint& location, CompletionHandler<void(TextRecognitionUpdateResult)>&&); 1765 void computeHas ImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType, CompletionHandler<void(bool)>&&);1763 void computeHasVisualSearchResults(const URL& imageURL, ShareableBitmap& imageBitmap, CompletionHandler<void(bool)>&&); 1766 1764 void startImageAnalysis(const String& identifier); 1767 1765 #endif … … 2035 2033 #if ENABLE(CONTEXT_MENUS) 2036 2034 #if ENABLE(IMAGE_ANALYSIS) 2037 void handleContextMenu QuickLookImage(QuickLookPreviewActivity);2035 void handleContextMenuLookUpImage(); 2038 2036 #endif 2039 2037 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r292356 r293299 133 133 #if ENABLE(IMAGE_ANALYSIS) 134 134 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&) override; 135 void computeHas ImageAnalysisResults(const URL&, ShareableBitmap&, ImageAnalysisType, CompletionHandler<void(bool)>&&) override;135 void computeHasVisualSearchResults(const URL&, ShareableBitmap&, CompletionHandler<void(bool)>&&) override; 136 136 #endif 137 137 -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r292356 r293299 490 490 } 491 491 492 void PageClientImpl::computeHas ImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType type, CompletionHandler<void(bool)>&& completion)493 { 494 m_impl->computeHas ImageAnalysisResults(imageURL, imageBitmap, type, WTFMove(completion));495 } 496 497 #endif // ENABLE(IMAGE_ANALYSIS)492 void PageClientImpl::computeHasVisualSearchResults(const URL& imageURL, ShareableBitmap& imageBitmap, CompletionHandler<void(bool)>&& completion) 493 { 494 m_impl->computeHasVisualSearchResults(imageURL, imageBitmap, WTFMove(completion)); 495 } 496 497 #endif 498 498 499 499 RefPtr<WebPopupMenuProxy> PageClientImpl::createPopupMenuProxy(WebPageProxy& page) -
trunk/Source/WebKit/UIProcess/mac/WKQuickLookPreviewController.h
r279164 r293299 32 32 namespace WebKit { 33 33 class WebPageProxy; 34 enum class QuickLookPreviewActivity : uint8_t ;34 enum class QuickLookPreviewActivity : uint8_t { None, VisualSearch }; 35 35 } 36 36 -
trunk/Source/WebKit/UIProcess/mac/WKQuickLookPreviewController.mm
r290394 r293299 29 29 #if HAVE(QUICKLOOK_PREVIEW_ITEM_DATA_PROVIDER) 30 30 31 #import "QuickLookPreviewActivity.h"32 31 #import "WebPageProxy.h" 33 32 #import <wtf/RetainPtr.h> -
trunk/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h
r289882 r293299 62 62 WebContextMenuProxyMac(NSView *, WebPageProxy&, ContextMenuContextData&&, const UserData&); 63 63 64 QuickLookPreviewActivity quickLookPreviewActivity() const final { return m_quickLookPreviewActivity; }65 66 #if ENABLE(IMAGE_ANALYSIS)67 void insertOrUpdateQuickLookImageItem(const URL& imageURL, Ref<ShareableBitmap>&& imageBitmap, std::optional<WebContextMenuItemData>&&, bool);68 void updateQuickLookContextMenuItemTitle(const String&);69 #endif70 71 64 void show() override; 72 65 void showContextMenuWithItems(Vector<Ref<WebContextMenuItem>>&&) override; … … 88 81 RetainPtr<WKMenuDelegate> m_menuDelegate; 89 82 WeakObjCPtr<NSView> m_webView; 90 QuickLookPreviewActivity m_quickLookPreviewActivity { QuickLookPreviewActivity::None };91 83 }; 92 84 -
trunk/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm
r292898 r293299 42 42 #import "WebContextMenuItemData.h" 43 43 #import "WebPageProxy.h" 44 #import "WebPreferences.h"45 44 #import <WebCore/GraphicsContext.h> 46 45 #import <WebCore/IntRect.h> … … 514 513 return _WKMenuItemIdentifierReload; 515 514 516 case ContextMenuItemTag QuickLookImage:515 case ContextMenuItemTagLookUpImage: 517 516 return _WKMenuItemIdentifierRevealImage; 518 517 … … 603 602 } 604 603 605 bool shouldUpdateQuickLookItemTitle = false; 606 std::optional<WebContextMenuItemData> quickLookItemToInsertIfNeeded; 604 std::optional<WebContextMenuItemData> lookUpImageItem; 607 605 608 606 #if ENABLE(IMAGE_ANALYSIS) 609 auto indexOfQuickLookItem = filteredItems.findIf([&] (auto& item) { 610 return item.action() == WebCore::ContextMenuItemTagQuickLookImage; 607 filteredItems.removeFirstMatching([&] (auto& item) { 608 if (item.action() != WebCore::ContextMenuItemTagLookUpImage) 609 return false; 610 611 lookUpImageItem = { item }; 612 return true; 611 613 }); 612 613 if (indexOfQuickLookItem != notFound) { 614 if (auto page = this->page(); page && page->preferences().preferInlineTextSelectionInImages()) { 615 quickLookItemToInsertIfNeeded = filteredItems[indexOfQuickLookItem]; 616 filteredItems.remove(indexOfQuickLookItem); 617 } else 618 shouldUpdateQuickLookItemTitle = true; 619 } 620 #endif // ENABLE(IMAGE_ANALYSIS) 614 #endif 621 615 622 616 #if HAVE(TRANSLATION_UI_SERVICES) … … 634 628 auto imageBitmap = hitTestData.imageBitmap; 635 629 636 auto sparseMenuItems = retainPtr([NSPointerArray strongObjectsPointerArray]);637 auto insertMenuItem = makeBlockPtr([protectedThis = Ref { *this }, weakPage = WeakPtr { page() }, imageURL = WTFMove(imageURL), imageBitmap = WTFMove(imageBitmap), shouldUpdateQuickLookItemTitle, quickLookItemToInsertIfNeeded = WTFMove(quickLookItemToInsertIfNeeded), completionHandler = WTFMove(completionHandler), itemsRemaining = filteredItems.size(), menu = WTFMove(menu), sparseMenuItems](NSMenuItem *item, NSUInteger index) mutable {630 RetainPtr sparseMenuItems = [NSPointerArray strongObjectsPointerArray]; 631 auto insertMenuItem = makeBlockPtr([protectedThis = Ref { *this }, weakPage = WeakPtr { page() }, imageURL = WTFMove(imageURL), imageBitmap = WTFMove(imageBitmap), lookUpImageItem = WTFMove(lookUpImageItem), completionHandler = WTFMove(completionHandler), itemsRemaining = filteredItems.size(), menu = WTFMove(menu), sparseMenuItems](NSMenuItem *item, NSUInteger index) mutable { 638 632 ASSERT(index < [sparseMenuItems count]); 639 633 ASSERT(![sparseMenuItems pointerAtIndex:index]); … … 644 638 [menu setItemArray:[sparseMenuItems allObjects]]; 645 639 646 RefPtr page { weakPage.get() };647 if ( page && imageBitmap) {640 RefPtr page = weakPage.get(); 641 if (lookUpImageItem && page && imageBitmap) { 648 642 #if ENABLE(IMAGE_ANALYSIS) 649 protectedThis->insertOrUpdateQuickLookImageItem(imageURL, imageBitmap.releaseNonNull(), WTFMove(quickLookItemToInsertIfNeeded), shouldUpdateQuickLookItemTitle); 643 page->computeHasVisualSearchResults(imageURL, *imageBitmap, [protectedThis = WTFMove(protectedThis), lookUpImageItem = WTFMove(*lookUpImageItem)] (bool hasVisualSearchResults) mutable { 644 if (hasVisualSearchResults) 645 [protectedThis->m_menu addItem:createMenuActionItem(lookUpImageItem).get()]; 646 }); 650 647 #else 651 UNUSED_PARAM(quickLookItemToInsertIfNeeded);652 UNUSED_PARAM(shouldUpdateQuickLookItemTitle);653 648 UNUSED_PARAM(imageURL); 654 649 #endif … … 665 660 } 666 661 } 667 668 #if ENABLE(IMAGE_ANALYSIS)669 670 void WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem(const URL& imageURL, Ref<ShareableBitmap>&& imageBitmap, std::optional<WebContextMenuItemData>&& quickLookItemToInsertIfNeeded, bool shouldUpdateQuickLookItemTitle)671 {672 Ref page = *this->page();673 if (quickLookItemToInsertIfNeeded) {674 page->computeHasImageAnalysisResults(imageURL, imageBitmap.get(), ImageAnalysisType::VisualSearch, [weakThis = WeakPtr { *this }, quickLookItemToInsertIfNeeded = WTFMove(*quickLookItemToInsertIfNeeded)] (bool hasVisualSearchResults) mutable {675 if (RefPtr protectedThis = weakThis.get(); protectedThis && hasVisualSearchResults) {676 protectedThis->m_quickLookPreviewActivity = QuickLookPreviewActivity::VisualSearch;677 [protectedThis->m_menu addItem:NSMenuItem.separatorItem];678 [protectedThis->m_menu addItem:createMenuActionItem(quickLookItemToInsertIfNeeded).get()];679 }680 });681 return;682 }683 684 if (shouldUpdateQuickLookItemTitle) {685 page->computeHasImageAnalysisResults(imageURL, imageBitmap.get(), ImageAnalysisType::VisualSearch, [weakThis = WeakPtr { *this }, weakPage = WeakPtr { page }, imageURL, imageBitmap = WTFMove(imageBitmap)] (bool hasVisualSearchResults) mutable {686 RefPtr protectedThis { weakThis.get() };687 if (!protectedThis)688 return;689 690 RefPtr page { weakPage.get() };691 if (!page)692 return;693 694 if (hasVisualSearchResults) {695 protectedThis->m_quickLookPreviewActivity = QuickLookPreviewActivity::VisualSearch;696 protectedThis->updateQuickLookContextMenuItemTitle(contextMenuItemTagQuickLookImageForVisualSearch());697 return;698 }699 700 page->computeHasImageAnalysisResults(imageURL, imageBitmap.get(), ImageAnalysisType::Text, [weakThis = WTFMove(weakThis), weakPage] (bool hasText) mutable {701 RefPtr protectedThis { weakThis.get() };702 if (!protectedThis)703 return;704 705 if (RefPtr page = weakPage.get(); page && hasText)706 protectedThis->updateQuickLookContextMenuItemTitle(contextMenuItemTagQuickLookImageForTextSelection());707 });708 });709 }710 }711 712 void WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle(const String& newTitle)713 {714 for (NSInteger itemIndex = 0; itemIndex < [m_menu numberOfItems]; ++itemIndex) {715 auto item = [m_menu itemAtIndex:itemIndex];716 if (static_cast<ContextMenuAction>(item.tag) == ContextMenuItemTagQuickLookImage) {717 item.title = newTitle;718 break;719 }720 }721 }722 723 #endif // ENABLE(IMAGE_ANALYSIS)724 662 725 663 void WebContextMenuProxyMac::getContextMenuItem(const WebContextMenuItemData& item, CompletionHandler<void(NSMenuItem *)>&& completionHandler) -
trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
r292800 r293299 731 731 #if ENABLE(IMAGE_ANALYSIS) 732 732 733 void WebPageProxy::handleContextMenu QuickLookImage(QuickLookPreviewActivity activity)733 void WebPageProxy::handleContextMenuLookUpImage() 734 734 { 735 735 ASSERT(m_activeContextMenuContextData.webHitTestResultData()); … … 739 739 return; 740 740 741 showImageInQuickLookPreviewPanel(*result.imageBitmap, result.toolTipText, URL { result.absoluteImageURL }, activity);741 showImageInQuickLookPreviewPanel(*result.imageBitmap, result.toolTipText, URL { result.absoluteImageURL }, QuickLookPreviewActivity::VisualSearch); 742 742 } 743 743 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r293296 r293299 7204 7204 F451C1002703D853002BA03B /* RemoteDisplayListRecorder.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = RemoteDisplayListRecorder.messages.in; sourceTree = "<group>"; }; 7205 7205 F4660BC125DEF08100E86598 /* PasteboardAccessIntent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PasteboardAccessIntent.h; sourceTree = "<group>"; }; 7206 F47A051626827A09007E5CF2 /* QuickLookPreviewActivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuickLookPreviewActivity.h; sourceTree = "<group>"; };7207 7206 F48570A22644BEC400C05F71 /* Timeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timeout.h; sourceTree = "<group>"; }; 7208 7207 F48BB8DD26F9635D001C1C40 /* RemoteDisplayListRecorderProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteDisplayListRecorderProxy.h; sourceTree = "<group>"; }; … … 8235 8234 C145CC0E23DCA427003A5EEB /* PreferenceObserver.h */, 8236 8235 C15CBB3323F34C3800300CC7 /* PreferenceObserver.mm */, 8237 F47A051626827A09007E5CF2 /* QuickLookPreviewActivity.h */,8238 8236 5CB7AFDD23C5273D00E49CF3 /* ResourceLoadDelegate.h */, 8239 8237 5CB7AFDE23C5273D00E49CF3 /* ResourceLoadDelegate.mm */, -
trunk/Source/WebKitLegacy/mac/ChangeLog
r293199 r293299 1 2022-04-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Remove the `PreferInlineTextSelectionInImages` internal feature flag 4 https://bugs.webkit.org/show_bug.cgi?id=234849 5 6 Reviewed by Sam Weinig. 7 8 See WebKit/ChangeLog for more details. 9 10 * WebView/WebHTMLView.mm: 11 (toTag): 12 1 13 2022-04-21 Brent Fulgham <bfulgham@apple.com> 2 14 -
trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
r292587 r293299 600 600 case ContextMenuItemTagTranslate: 601 601 return WebMenuItemTagTranslate; 602 case ContextMenuItemTagQuickLookImage:603 602 case ContextMenuItemTagCopyCroppedImage: 603 case ContextMenuItemTagLookUpImage: 604 604 return std::nullopt; 605 605
Note:
See TracChangeset
for help on using the changeset viewer.