Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 45e6a6b0abe5aa9996d6376e68daafd2f1f64d07
https://github.com/WebKit/WebKit/commit/45e6a6b0abe5aa9996d6376e68daafd2f1f64d07
Author: Wenson Hsieh <[email protected]>
Date: 2026-01-03 (Sat, 03 Jan 2026)
Changed paths:
M Source/WebCore/page/text-extraction/TextExtraction.cpp
M Source/WebCore/page/text-extraction/TextExtraction.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebFrameProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
M Source/WebKit/WebProcess/WebPage/WebFrame.h
M Source/WebKit/WebProcess/WebPage/WebFrame.messages.in
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
Log Message:
-----------
Move text extraction retrieval and interaction methods from WebPage(Proxy) to
WebFrame(Proxy)
https://bugs.webkit.org/show_bug.cgi?id=304878
rdar://167460161
Reviewed by Lily Spiniolas.
Move the following text extraction IPC methods:
• requestTextExtraction
• handleTextExtractionInteraction
• takeSnapshotOfExtractedText
• describeTextExtractionInteraction
…from `WebPageProxy` → `WebPage` to `WebFrameProxy` → `WebFrame`. This is the
first step towards
making text extraction work for content in cross-origin subframes, with or
without site isolation
enabled. For now, these methods are all called on the `WebPageProxy`'s main
frame; in a subsequent
patch, once we allow the client to specify a set of target frames to extract
from, we'll request
text extraction from multiple frames in parallel and collate the results.
No change in behavior.
* Source/WebCore/page/text-extraction/TextExtraction.cpp:
(WebCore::TextExtraction::extractItem):
(WebCore::TextExtraction::dispatchSimulatedClick):
(WebCore::TextExtraction::resolveNodeWithBodyAsFallback):
(WebCore::TextExtraction::selectText):
(WebCore::TextExtraction::highlightText):
(WebCore::TextExtraction::scrollBy):
(WebCore::TextExtraction::simulateKeyPress):
(WebCore::TextExtraction::handleInteraction):
(WebCore::TextExtraction::textDescription):
(WebCore::TextExtraction::interactionDescription):
(WebCore::TextExtraction::applyRules):
(WebCore::TextExtraction::makeRootItem): Deleted.
Instead of taking a `WebCore::Page` and acting on the local main frame of the
page, make these
methods directly take a `LocalFrame` that comes directly from `WebFrameProxy`
(see changes below).
* Source/WebCore/page/text-extraction/TextExtraction.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _performInteraction:completionHandler:]):
(-[WKWebView _requestTextExtractionInternal:completion:]):
(-[WKWebView _describeInteraction:completionHandler:]):
(-[WKWebView _validateText:inNode:completionHandler:]):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::requestTextExtraction):
(WebKit::WebFrameProxy::handleTextExtractionInteraction):
(WebKit::WebFrameProxy::takeSnapshotOfExtractedText):
(WebKit::WebFrameProxy::describeTextExtractionInteraction):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestTextExtraction): Deleted.
(WebKit::WebPageProxy::handleTextExtractionInteraction): Deleted.
(WebKit::WebPageProxy::takeSnapshotOfExtractedText): Deleted.
(WebKit::WebPageProxy::describeTextExtractionInteraction): Deleted.
Move these methods into `WebFrameProxy`.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::requestTextExtraction):
(WebKit::WebFrame::takeSnapshotOfExtractedText):
(WebKit::WebFrame::describeTextExtractionInteraction):
(WebKit::WebFrame::handleTextExtractionInteraction):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestTextExtraction): Deleted.
(WebKit::WebPage::takeSnapshotOfExtractedText): Deleted.
(WebKit::WebPage::describeTextExtractionInteraction): Deleted.
(WebKit::WebPage::handleTextExtractionInteraction): Deleted.
Move these methods into `WebFrame`.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/305065@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications