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

Reply via email to