[webkit-changes] [WebKit/WebKit] ebea90: Add Swift bridging types that correspond to TextEx...

Wenson Hsieh noreply at github.com
Fri Feb 9 08:17:14 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ebea90b9d06032b0e343f446ce705b1d6ca65094
      https://github.com/WebKit/WebKit/commit/ebea90b9d06032b0e343f446ce705b1d6ca65094
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-02-09 (Fri, 09 Feb 2024)

  Changed paths:
    M Source/WebKit/SourcesCocoa.txt
    A Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.h
    A Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.mm
    M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h
    M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.h
    A Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift
    M Source/WebKit/WebKitSwift/WebKitSwift.h

  Log Message:
  -----------
  Add Swift bridging types that correspond to TextExtraction::Item and TextExtraction::ItemData
https://bugs.webkit.org/show_bug.cgi?id=269035

Reviewed by Megan Gardner.

Add simple Swift wrappers around the `TextExtraction` C++ structs along with helper functions to
recursively convert a `WebCore::TextExtraction::Item` into a `WKTextExtractionItem` in Objective-C
code (which can eventually be used in Swift code as well).

See below for more details.

* Source/WebKit/SourcesCocoa.txt:

* Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.h: Copied from Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h.
* Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.mm: Added.

Add a helper file that contains a new utility function to convert a `WebCore::TextExtraction::Item`
struct into a nested `WKTextExtractionItem`, which will eventually be used in internal Swift code.

(WebKit::containerType):
(WebKit::createItemIgnoringChildren):
(WebKit::createItemRecursive):
(WebKit::createItem):

Add logic to do the conversion above.

* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h:
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm:

Add the ability to soft-link all of the new Swift/ObjC types in libWebKitSwift.

* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h: Added.

Create a header file that contains only interface, property and method declarations used in WebKit
to interact with the new Swift types in libWebKitSwift.

* Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift: Added.

Add the new (ObjC-capable) Swift classes to libWebKitSwift.

(WKTextExtractionItem.rectInRootView):
(WKTextExtractionItem.children):
(WKTextExtractionContainerItem.container):
(WKTextExtractionTextItem.content):
(WKTextExtractionScrollableItem.contentSize):
(WKTextExtractionEditableItem.isFocused):
(WKTextExtractionInteractiveItem.isEnabled):
(WKTextExtractionImageItem.name):
(WKTextExtractionImageItem.altText):
* Source/WebKit/WebKitSwift/WebKitSwift.h

Add `WKTextExtractionItem.h` to the umbrella header.

Canonical link: https://commits.webkit.org/274363@main




More information about the webkit-changes mailing list