Changeset 285973 in webkit
- Timestamp:
- Nov 17, 2021, 7:13:16 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 26 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/PAL/ChangeLog (modified) (1 diff)
-
WebCore/PAL/pal/spi/cocoa/VisionKitCoreSPI.h (modified) (1 diff)
-
WebCore/accessibility/AXImage.cpp (modified) (1 diff)
-
WebCore/page/ChromeClient.h (modified) (1 diff)
-
WebCore/page/ImageAnalysisQueue.cpp (modified) (1 diff)
-
WebCore/testing/Internals.cpp (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/Platform/cocoa/TextRecognitionUtilities.h (modified) (2 diffs)
-
WebKit/Platform/cocoa/TextRecognitionUtilities.mm (modified) (2 diffs)
-
WebKit/UIProcess/Cocoa/WebViewImpl.h (modified) (1 diff)
-
WebKit/UIProcess/Cocoa/WebViewImpl.mm (modified) (2 diffs)
-
WebKit/UIProcess/PageClient.h (modified) (1 diff)
-
WebKit/UIProcess/WebPageProxy.cpp (modified) (1 diff)
-
WebKit/UIProcess/WebPageProxy.h (modified) (1 diff)
-
WebKit/UIProcess/WebPageProxy.messages.in (modified) (1 diff)
-
WebKit/UIProcess/ios/PageClientImplIOS.h (modified) (1 diff)
-
WebKit/UIProcess/ios/PageClientImplIOS.mm (modified) (1 diff)
-
WebKit/UIProcess/ios/WKContentViewInteraction.h (modified) (1 diff)
-
WebKit/UIProcess/ios/WKContentViewInteraction.mm (modified) (2 diffs)
-
WebKit/UIProcess/mac/PageClientImplMac.h (modified) (1 diff)
-
WebKit/UIProcess/mac/PageClientImplMac.mm (modified) (1 diff)
-
WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (modified) (1 diff)
-
WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (modified) (1 diff)
-
WebKit/WebProcess/WebPage/WebPage.cpp (modified) (2 diffs)
-
WebKit/WebProcess/WebPage/WebPage.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r285972 r285973 1 2021-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [Live Text] Plumb an identifier string through `ChromeClient::requestTextRecognition()` 4 https://bugs.webkit.org/show_bug.cgi?id=233210 5 6 Reviewed by Dean Jackson. 7 8 See WebKit/ChangeLog for more details. 9 10 * accessibility/AXImage.cpp: 11 (WebCore::AXImage::imageOverlayElements): 12 * page/ChromeClient.h: 13 (WebCore::ChromeClient::requestTextRecognition): 14 * page/ImageAnalysisQueue.cpp: 15 (WebCore::ImageAnalysisQueue::resumeProcessing): 16 * testing/Internals.cpp: 17 (WebCore::Internals::requestTextRecognition): 18 1 19 2021-11-17 Takashi Komori <Takashi.Komori@sony.com> 2 20 -
trunk/Source/WebCore/PAL/ChangeLog
r285898 r285973 1 2021-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [Live Text] Plumb an identifier string through `ChromeClient::requestTextRecognition()` 4 https://bugs.webkit.org/show_bug.cgi?id=233210 5 6 Reviewed by Dean Jackson. 7 8 Add another WebKitAdditions extension point. 9 10 * pal/spi/cocoa/VisionKitCoreSPI.h: 11 1 12 2021-11-16 Devin Rousso <drousso@apple.com> 2 13 -
trunk/Source/WebCore/PAL/pal/spi/cocoa/VisionKitCoreSPI.h
r284076 r285973 147 147 #endif 148 148 149 #if USE(APPLE_INTERNAL_SDK) 150 #include <WebKitAdditions/VisionKitCoreSPIAdditions.h> 151 #endif 152 149 153 #endif // HAVE(VK_IMAGE_ANALYSIS) -
trunk/Source/WebCore/accessibility/AXImage.cpp
r284080 r285973 73 73 return std::nullopt; 74 74 75 page->chrome().client().requestTextRecognition(*element, [] (RefPtr<Element>&& imageOverlayHost) {75 page->chrome().client().requestTextRecognition(*element, { }, [] (RefPtr<Element>&& imageOverlayHost) { 76 76 if (!imageOverlayHost) 77 77 return; -
trunk/Source/WebCore/page/ChromeClient.h
r285637 r285973 586 586 587 587 #if ENABLE(IMAGE_ANALYSIS) 588 virtual void requestTextRecognition(Element&, CompletionHandler<void(RefPtr<Element>&&)>&& completion = { })588 virtual void requestTextRecognition(Element&, const String& = { }, CompletionHandler<void(RefPtr<Element>&&)>&& completion = { }) 589 589 { 590 590 if (completion) -
trunk/Source/WebCore/page/ImageAnalysisQueue.cpp
r285949 r285973 94 94 m_pendingRequestCount++; 95 95 m_page->resetTextRecognitionResult(*element); 96 m_page->chrome().client().requestTextRecognition(*element, [this, page = m_page] (auto&&) {96 m_page->chrome().client().requestTextRecognition(*element, identifier, [this, page = m_page] (auto&&) { 97 97 if (!page) 98 98 return; -
trunk/Source/WebCore/testing/Internals.cpp
r285670 r285973 5792 5792 5793 5793 #if ENABLE(IMAGE_ANALYSIS) 5794 page->chrome().client().requestTextRecognition(element, [callback = WTFMove(callback)] (auto&&) {5794 page->chrome().client().requestTextRecognition(element, { }, [callback = WTFMove(callback)] (auto&&) { 5795 5795 if (callback) 5796 5796 callback->handleEvent(); -
trunk/Source/WebKit/ChangeLog
r285967 r285973 1 2021-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [Live Text] Plumb an identifier string through `ChromeClient::requestTextRecognition()` 4 https://bugs.webkit.org/show_bug.cgi?id=233210 5 6 Reviewed by Dean Jackson. 7 8 Add an optional (i.e. null-by-default) identifier string to the `requestTextRecognition()` WebKit client hook, 9 and call into a new helper function in TextRecognitionUtilities.h, that's implemented in WebKitAdditions (with 10 an empty stub in open source code). 11 12 See corresponding radar for more information. 13 14 * Platform/cocoa/TextRecognitionUtilities.h: 15 * Platform/cocoa/TextRecognitionUtilities.mm: 16 (WebKit::requestImageAnalysisWithIdentifier): 17 * UIProcess/Cocoa/WebViewImpl.h: 18 * UIProcess/Cocoa/WebViewImpl.mm: 19 (WebKit::WebViewImpl::requestTextRecognition): 20 * UIProcess/PageClient.h: 21 (WebKit::PageClient::requestTextRecognition): 22 * UIProcess/WebPageProxy.cpp: 23 (WebKit::WebPageProxy::requestTextRecognition): 24 * UIProcess/WebPageProxy.h: 25 * UIProcess/WebPageProxy.messages.in: 26 * UIProcess/ios/PageClientImplIOS.h: 27 * UIProcess/ios/PageClientImplIOS.mm: 28 (WebKit::PageClientImpl::requestTextRecognition): 29 * UIProcess/ios/WKContentViewInteraction.h: 30 * UIProcess/ios/WKContentViewInteraction.mm: 31 (-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]): 32 (-[WKContentView requestTextRecognition:imageData:completionHandler:]): Deleted. 33 * UIProcess/mac/PageClientImplMac.h: 34 * UIProcess/mac/PageClientImplMac.mm: 35 (WebKit::PageClientImpl::requestTextRecognition): 36 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 37 (WebKit::WebChromeClient::requestTextRecognition): 38 * WebProcess/WebCoreSupport/WebChromeClient.h: 39 * WebProcess/WebPage/WebPage.cpp: 40 (WebKit::WebPage::requestTextRecognition): 41 * WebProcess/WebPage/WebPage.h: 42 (WebKit::WebPage::requestTextRecognition): 43 1 44 2021-11-17 John Wilander <wilander@apple.com> 2 45 -
trunk/Source/WebKit/Platform/cocoa/TextRecognitionUtilities.h
r284122 r285973 29 29 30 30 #import <pal/spi/cocoa/VisionKitCoreSPI.h> 31 #import <wtf/CompletionHandler.h> 31 32 #import <wtf/RetainPtr.h> 32 33 … … 44 45 RetainPtr<VKImageAnalyzerRequest> createImageAnalyzerRequest(CGImageRef, VKAnalysisTypes); 45 46 47 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) 48 void requestImageAnalysisWithIdentifier(VKImageAnalyzer *, const String& identifier, CGImageRef, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&); 49 #endif 50 46 51 } 47 52 -
trunk/Source/WebKit/Platform/cocoa/TextRecognitionUtilities.mm
r284122 r285973 29 29 #if ENABLE(IMAGE_ANALYSIS) 30 30 31 #import "Logging.h" 31 32 #import <WebCore/TextRecognitionResult.h> 32 33 #import <pal/cocoa/VisionKitCoreSoftLink.h> … … 139 140 } 140 141 142 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) 143 144 void requestImageAnalysisWithIdentifier(VKImageAnalyzer *, const String&, CGImageRef, CompletionHandler<void(TextRecognitionResult&&)>&& completion) 145 { 146 completion({ }); 147 } 148 149 #endif // ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) 150 141 151 #endif 142 152 -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h
r285047 r285973 599 599 600 600 #if ENABLE(IMAGE_ANALYSIS) 601 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&);601 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&); 602 602 void computeHasImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType, CompletionHandler<void(bool)>&&); 603 603 #endif -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
r285741 r285973 205 205 } 206 206 207 void WebViewImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completion)207 void WebViewImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(TextRecognitionResult&&)>&& completion) 208 208 { 209 209 if (!isLiveTextAvailableAndEnabled()) { … … 219 219 220 220 auto cgImage = imageBitmap->makeCGImage(); 221 222 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) 223 if (!identifier.isEmpty()) 224 return requestImageAnalysisWithIdentifier(ensureImageAnalyzer(), identifier, cgImage.get(), WTFMove(completion)); 225 #else 226 UNUSED_PARAM(identifier); 227 #endif 228 221 229 auto request = createImageAnalyzerRequest(cgImage.get(), imageURL, [NSURL _web_URLWithWTFString:m_page->currentURL()], VKAnalysisTypeText); 222 230 auto startTime = MonotonicTime::now(); -
trunk/Source/WebKit/UIProcess/PageClient.h
r285047 r285973 548 548 549 549 #if ENABLE(IMAGE_ANALYSIS) 550 virtual void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completion) { completion({ }); }550 virtual void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completion) { completion({ }); } 551 551 virtual void computeHasImageAnalysisResults(const URL&, ShareableBitmap&, ImageAnalysisType, CompletionHandler<void(bool)>&& completion) { completion(false); } 552 552 #endif -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r285949 r285973 8617 8617 #if ENABLE(IMAGE_ANALYSIS) 8618 8618 8619 void WebPageProxy::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completionHandler)8620 { 8621 pageClient().requestTextRecognition(imageURL, imageData, WTFMove(completionHandler));8619 void WebPageProxy::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(TextRecognitionResult&&)>&& completionHandler) 8620 { 8621 pageClient().requestTextRecognition(imageURL, imageData, identifier, WTFMove(completionHandler)); 8622 8622 } 8623 8623 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r285949 r285973 1699 1699 1700 1700 #if ENABLE(IMAGE_ANALYSIS) 1701 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&);1701 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&); 1702 1702 void updateWithTextRecognitionResult(WebCore::TextRecognitionResult&&, const WebCore::ElementContext&, const WebCore::FloatPoint& location, CompletionHandler<void(TextRecognitionUpdateResult)>&&); 1703 1703 void computeHasImageAnalysisResults(const URL& imageURL, ShareableBitmap& imageBitmap, ImageAnalysisType, CompletionHandler<void(bool)>&&); -
trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in
r285637 r285973 217 217 218 218 #if ENABLE(IMAGE_ANALYSIS) 219 RequestTextRecognition(URL imageURL, WebKit::ShareableBitmap::Handle imageData ) -> (struct WebCore::TextRecognitionResult result) Async219 RequestTextRecognition(URL imageURL, WebKit::ShareableBitmap::Handle imageData, String identifier) -> (struct WebCore::TextRecognitionResult result) Async 220 220 #endif 221 221 -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h
r284075 r285973 122 122 123 123 #if ENABLE(IMAGE_ANALYSIS) 124 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&) final;124 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&) final; 125 125 #endif 126 126 -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
r284075 r285973 464 464 #if ENABLE(IMAGE_ANALYSIS) 465 465 466 void PageClientImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&& completion)467 { 468 [m_contentView requestTextRecognition:imageURL imageData:imageData completionHandler:WTFMove(completion)];466 void PageClientImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(TextRecognitionResult&&)>&& completion) 467 { 468 [m_contentView requestTextRecognition:imageURL imageData:imageData identifier:identifier completionHandler:WTFMove(completion)]; 469 469 } 470 470 -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
r284997 r285973 759 759 #if ENABLE(IMAGE_ANALYSIS) 760 760 - (void)_endImageAnalysisGestureDeferral:(WebKit::ShouldPreventGestures)shouldPreventGestures; 761 - (void)requestTextRecognition:(NSURL *)imageURL imageData:(const WebKit::ShareableBitmap::Handle&)imageData completionHandler:(CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&)completion;761 - (void)requestTextRecognition:(NSURL *)imageURL imageData:(const WebKit::ShareableBitmap::Handle&)imageData identifier:(NSString *)identifier completionHandler:(CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&)completion; 762 762 #endif 763 763 -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r285640 r285973 10151 10151 } 10152 10152 10153 - (void)requestTextRecognition:(NSURL *)imageURL imageData:(const WebKit::ShareableBitmap::Handle&)imageData completionHandler:(CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&)completion10153 - (void)requestTextRecognition:(NSURL *)imageURL imageData:(const WebKit::ShareableBitmap::Handle&)imageData identifier:(NSString *)identifier completionHandler:(CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&)completion 10154 10154 { 10155 10155 auto imageBitmap = WebKit::ShareableBitmap::create(imageData); … … 10165 10165 } 10166 10166 10167 #if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) 10168 if (identifier.length) 10169 return WebKit::requestImageAnalysisWithIdentifier(self.imageAnalyzer, identifier, cgImage.get(), WTFMove(completion)); 10170 #else 10171 UNUSED_PARAM(identifier); 10172 #endif 10173 10167 10174 auto request = [self createImageAnalyzerRequest:VKAnalysisTypeText image:cgImage.get()]; 10168 [ [self imageAnalyzer]processRequest:request.get() progressHandler:nil completionHandler:makeBlockPtr([completion = WTFMove(completion)] (VKImageAnalysis *result, NSError *) mutable {10175 [self.imageAnalyzer processRequest:request.get() progressHandler:nil completionHandler:makeBlockPtr([completion = WTFMove(completion)] (VKImageAnalysis *result, NSError *) mutable { 10169 10176 completion(WebKit::makeTextRecognitionResult(result)); 10170 10177 }).get()]; -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r285047 r285973 132 132 133 133 #if ENABLE(IMAGE_ANALYSIS) 134 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&) override;134 void requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(WebCore::TextRecognitionResult&&)>&&) override; 135 135 void computeHasImageAnalysisResults(const URL&, ShareableBitmap&, ImageAnalysisType, CompletionHandler<void(bool)>&&) override; 136 136 #endif -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r285047 r285973 481 481 #if ENABLE(IMAGE_ANALYSIS) 482 482 483 void PageClientImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(TextRecognitionResult&&)>&& completion)484 { 485 m_impl->requestTextRecognition(imageURL, imageData, WTFMove(completion));483 void PageClientImpl::requestTextRecognition(const URL& imageURL, const ShareableBitmap::Handle& imageData, const String& identifier, CompletionHandler<void(TextRecognitionResult&&)>&& completion) 484 { 485 m_impl->requestTextRecognition(imageURL, imageData, identifier, WTFMove(completion)); 486 486 } 487 487 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r285637 r285973 1493 1493 #if ENABLE(IMAGE_ANALYSIS) 1494 1494 1495 void WebChromeClient::requestTextRecognition(Element& element, CompletionHandler<void(RefPtr<Element>&&)>&& completion)1496 { 1497 m_page.requestTextRecognition(element, WTFMove(completion));1495 void WebChromeClient::requestTextRecognition(Element& element, const String& identifier, CompletionHandler<void(RefPtr<Element>&&)>&& completion) 1496 { 1497 m_page.requestTextRecognition(element, identifier, WTFMove(completion)); 1498 1498 } 1499 1499 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
r285637 r285973 432 432 433 433 #if ENABLE(IMAGE_ANALYSIS) 434 void requestTextRecognition(WebCore::Element&, CompletionHandler<void(RefPtr<WebCore::Element>&&)>&& = { }) final;434 void requestTextRecognition(WebCore::Element&, const String& identifier = { }, CompletionHandler<void(RefPtr<WebCore::Element>&&)>&& = { }) final; 435 435 #endif 436 436 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r285949 r285973 7503 7503 #if ENABLE(IMAGE_ANALYSIS) 7504 7504 7505 void WebPage::requestTextRecognition( WebCore::Element& element, CompletionHandler<void(RefPtr<WebCore::Element>&&)>&& completion)7505 void WebPage::requestTextRecognition(Element& element, const String& identifier, CompletionHandler<void(RefPtr<Element>&&)>&& completion) 7506 7506 { 7507 7507 if (!is<HTMLElement>(element)) { … … 7562 7562 auto cachedImage = renderImage.cachedImage(); 7563 7563 auto imageURL = cachedImage ? element.document().completeURL(cachedImage->url().string()) : URL { }; 7564 sendWithAsyncReply(Messages::WebPageProxy::RequestTextRecognition(WTFMove(imageURL), WTFMove(bitmapHandle) ), [webPage = WeakPtr { *this }, weakElement = WeakPtr { element }] (auto&& result) {7564 sendWithAsyncReply(Messages::WebPageProxy::RequestTextRecognition(WTFMove(imageURL), WTFMove(bitmapHandle), identifier), [webPage = WeakPtr { *this }, weakElement = WeakPtr { element }] (auto&& result) { 7565 7565 RefPtr protectedPage { webPage.get() }; 7566 7566 if (!protectedPage) -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r285949 r285973 1431 1431 1432 1432 #if ENABLE(IMAGE_ANALYSIS) 1433 void requestTextRecognition(WebCore::Element&, CompletionHandler<void(RefPtr<WebCore::Element>&&)>&&);1433 void requestTextRecognition(WebCore::Element&, const String& identifier = { }, CompletionHandler<void(RefPtr<WebCore::Element>&&)>&& = { }); 1434 1434 void updateWithTextRecognitionResult(const WebCore::TextRecognitionResult&, const WebCore::ElementContext&, const WebCore::FloatPoint& location, CompletionHandler<void(TextRecognitionUpdateResult)>&&); 1435 1435 void startImageAnalysis(const String& identifier);
Note:
See TracChangeset
for help on using the changeset viewer.