Diff
Modified: trunk/Source/WebKit/ChangeLog (273573 => 273574)
--- trunk/Source/WebKit/ChangeLog 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/ChangeLog 2021-02-26 20:09:23 UTC (rev 273574)
@@ -1,3 +1,28 @@
+2021-02-26 Devin Rousso <drou...@apple.com>
+
+ Provide the image URL for accessibility image extraction
+ https://bugs.webkit.org/show_bug.cgi?id=222483
+ <rdar://problem/74144895>
+
+ Reviewed by Wenson Hsieh.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::requestImageExtraction):
+
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::requestImageExtraction):
+
+ * UIProcess/PageClient.h:
+ (WebKit::PageClient::requestImageExtraction):
+ * UIProcess/mac/PageClientImplMac.h:
+ * UIProcess/mac/PageClientImplMac.mm:
+ (WebKit::PageClientImpl::requestImageExtraction):
+
+ * UIProcess/Cocoa/WebViewImpl.h:
+ * UIProcess/Cocoa/WebViewImpl.mm:
+
2021-02-26 Jer Noble <jer.no...@apple.com>
[GPUP] Allow painting of GPUP hosted video from the WebContent process
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2021-02-26 20:09:23 UTC (rev 273574)
@@ -584,7 +584,7 @@
bool shouldRequestCandidates() const;
#if ENABLE(IMAGE_EXTRACTION)
- void requestImageExtraction(const ShareableBitmap::Handle&, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&);
+ void requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&);
#endif
bool windowIsFrontWindowUnderMouse(NSEvent *);
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-02-26 20:09:23 UTC (rev 273574)
@@ -62,6 +62,7 @@
#import "WKErrorInternal.h"
#import "WKFullScreenWindowController.h"
#import "WKImmediateActionController.h"
+#import "WKNSURLExtras.h"
#import "WKPDFHUDView.h"
#import "WKPrintingView.h"
#import "WKSafeBrowsingWarning.h"
Modified: trunk/Source/WebKit/UIProcess/PageClient.h (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/PageClient.h 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/PageClient.h 2021-02-26 20:09:23 UTC (rev 273574)
@@ -524,7 +524,7 @@
#endif
#if ENABLE(IMAGE_EXTRACTION)
- virtual void requestImageExtraction(const ShareableBitmap::Handle&, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&& completion) { completion({ }); }
+ virtual void requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&& completion) { completion({ }); }
#endif
#if ENABLE(MEDIA_CONTROLS_CONTEXT_MENUS)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-02-26 20:09:23 UTC (rev 273574)
@@ -8274,9 +8274,9 @@
#if ENABLE(IMAGE_EXTRACTION)
-void WebPageProxy::requestImageExtraction(const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&& completionHandler)
+void WebPageProxy::requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&& completionHandler)
{
- pageClient().requestImageExtraction(imageData, WTFMove(completionHandler));
+ pageClient().requestImageExtraction(imageURL, imageData, WTFMove(completionHandler));
}
#endif
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-02-26 20:09:23 UTC (rev 273574)
@@ -1621,7 +1621,7 @@
#endif
#if ENABLE(IMAGE_EXTRACTION)
- void requestImageExtraction(const ShareableBitmap::Handle&, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&);
+ void requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&);
#endif
#if ENABLE(MEDIA_CONTROLS_CONTEXT_MENUS)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-02-26 20:09:23 UTC (rev 273574)
@@ -221,7 +221,7 @@
SetHasHadSelectionChangesFromUserInteraction(bool hasHadUserSelectionChanges)
#if ENABLE(IMAGE_EXTRACTION)
- RequestImageExtraction(WebKit::ShareableBitmap::Handle imageData) -> (struct WebCore::ImageExtractionResult result) Async
+ RequestImageExtraction(URL imageURL, WebKit::ShareableBitmap::Handle imageData) -> (struct WebCore::ImageExtractionResult result) Async
#endif
#if ENABLE(MEDIA_CONTROLS_CONTEXT_MENUS)
Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h 2021-02-26 20:09:23 UTC (rev 273574)
@@ -131,7 +131,7 @@
void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled) override;
#if ENABLE(IMAGE_EXTRACTION)
- void requestImageExtraction(const ShareableBitmap::Handle&, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&) override;
+ void requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(WebCore::ImageExtractionResult&&)>&&) override;
#endif
RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override;
Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm (273573 => 273574)
--- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2021-02-26 20:09:23 UTC (rev 273574)
@@ -483,9 +483,9 @@
#if ENABLE(IMAGE_EXTRACTION)
-void PageClientImpl::requestImageExtraction(const ShareableBitmap::Handle& imageData, CompletionHandler<void(ImageExtractionResult&&)>&& completion)
+void PageClientImpl::requestImageExtraction(const URL& imageURL, const ShareableBitmap::Handle& imageData, CompletionHandler<void(ImageExtractionResult&&)>&& completion)
{
- m_impl->requestImageExtraction(imageData, WTFMove(completion));
+ m_impl->requestImageExtraction(imageURL, imageData, WTFMove(completion));
}
#endif
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (273573 => 273574)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2021-02-26 20:00:28 UTC (rev 273573)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2021-02-26 20:09:23 UTC (rev 273574)
@@ -7233,13 +7233,15 @@
if (m_elementsWithExtractedImages.contains(element))
return;
- auto* renderImage = element.renderer();
- if (!is<RenderImage>(renderImage))
+ auto* renderer = element.renderer();
+ if (!is<RenderImage>(renderer))
return;
+ auto& renderImage = downcast<RenderImage>(*renderer);
+
m_elementsWithExtractedImages.add(element);
- auto bitmap = createShareableBitmap(downcast<RenderImage>(*renderImage));
+ auto bitmap = createShareableBitmap(renderImage);
if (!bitmap)
return;
@@ -7248,7 +7250,9 @@
if (bitmapHandle.isNull())
return;
- sendWithAsyncReply(Messages::WebPageProxy::RequestImageExtraction(WTFMove(bitmapHandle)), [weakElement = makeWeakPtr(element)] (ImageExtractionResult&& result) {
+ auto imageURL = element.document().completeURL(renderImage.cachedImage()->url().string());
+
+ sendWithAsyncReply(Messages::WebPageProxy::RequestImageExtraction(WTFMove(imageURL), WTFMove(bitmapHandle)), [weakElement = makeWeakPtr(element)] (ImageExtractionResult&& result) {
if (auto element = weakElement.get(); is<HTMLElement>(element))
downcast<HTMLElement>(*element).updateWithImageExtractionResult(WTFMove(result));
});