Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d497a4e16f25635feecb5b07e9cfa6e8bc4c07b7
https://github.com/WebKit/WebKit/commit/d497a4e16f25635feecb5b07e9cfa6e8bc4c07b7
Author: Wenson Hsieh <[email protected]>
Date: 2025-11-19 (Wed, 19 Nov 2025)
Changed paths:
M Source/WebKit/Shared/TextExtractionToStringConversion.cpp
M Source/WebKit/Shared/TextExtractionToStringConversion.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h
M Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.swift
M Source/WebKit/UIProcess/API/Cocoa/_WKTextExtractionInternal.h
M
Source/WebKit/UIProcess/Cocoa/TextExtraction/WKWebView+TextExtraction.swift
M Tools/TestWebKitAPI/Tests/WebKitCocoa/TextExtractionTests.mm
M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm
M Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.h
Log Message:
-----------
[AutoFill Debugging] Refactor debug text extraction to return an extraction
result object
https://bugs.webkit.org/show_bug.cgi?id=302791
rdar://165019791
Reviewed by Abrar Rahman Protyasha.
Currently, `-_debugTextWithConfiguration:completionHandler:` passes a string
back to the completion
handler, representing rendered DOM content. For clients that need additional
metadata, we introduce
a new version of this method that passes a `_WKTextExtractionResult` object
back to the client which
contains additional data alongside text output.
For now, the only metadata we include is a flag indicating whether or not any
text was filtered out.
Test: TextExtractionTests.FilterOptions
* Source/WebKit/Shared/TextExtractionToStringConversion.cpp:
(WebKit::TextExtractionAggregator::TextExtractionAggregator):
(WebKit::TextExtractionAggregator::~TextExtractionAggregator):
(WebKit::TextExtractionAggregator::create):
(WebKit::TextExtractionAggregator::filter):
(WebKit::TextExtractionAggregator::filterRecursive):
(WebKit::convertToText):
(WebKit::TextExtractionAggregator::filter const): Deleted.
(WebKit::TextExtractionAggregator::filterRecursive const): Deleted.
* Source/WebKit/Shared/TextExtractionToStringConversion.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _debugTextWithConfiguration:completionHandler:]):
Reimplement this in terms of
`-_extractDebugTextWithConfiguration:completionHandler:`.
(-[WKWebView _extractDebugTextWithConfiguration:completionHandler:]):
(-[WKWebView _requestTextExtraction:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.mm:
(-[_WKTextExtractionResult initWithTextContent:filteredOutAnyText:]):
(-[_WKTextExtractionResult textContent]):
Add an object representing extraction results.
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.swift:
Repurpose `WKTextExtractionResult` (currently, an internal Swift object) to be
a privately-exposed
object representing debug text extraction output; refactor anything that
previously used
`WKTextExtractionResult` to instead just take a `WKTextExtractionItem`
representing the root item.
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtractionInternal.h:
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKWebView+TextExtraction.swift:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/TextExtractionTests.mm:
(-[WKWebView synchronouslyGetDebugText:]):
(-[WKWebView synchronouslyExtractDebugTextResult:]):
(TestWebKitAPI::TEST(TextExtractionTests, FilterOptions)):
Augment this test to also check `filteredOutAnyText`.
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
(WTR::UIScriptControllerCocoa::requestTextExtraction):
* Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.h:
Canonical link: https://commits.webkit.org/303273@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications