Title: [273574] trunk/Source/WebKit
Revision
273574
Author
drou...@apple.com
Date
2021-02-26 12:09:23 -0800 (Fri, 26 Feb 2021)

Log Message

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:

Modified Paths

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));
     });
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to