Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 95f2938cac22780333865b25ca9a6cdcf95e0ad3
      
https://github.com/WebKit/WebKit/commit/95f2938cac22780333865b25ca9a6cdcf95e0ad3
  Author: Wenson Hsieh <[email protected]>
  Date:   2024-02-25 (Sun, 25 Feb 2024)

  Changed paths:
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WebKit/Configurations/Base.xcconfig
    M Source/WebKit/Configurations/WebKit.xcconfig
    M Source/WebKit/Configurations/WebKitSwift.xcconfig
    M Source/WebKit/Shared/API/Cocoa/WebKitLegacy.h
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
    A Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.h
    A Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.swift
    A Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.h
    A Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.mm
    R Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h
    R Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.h
    R 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
    R Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift
    M Tools/WebKitTestRunner/Configurations/Base.xcconfig
    M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h
    M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm
    M Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.h
    M Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.mm

  Log Message:
  -----------
  WebKit engineering builds intermittently fail on newer SDK versions
https://bugs.webkit.org/show_bug.cgi?id=269879
rdar://123426004

Reviewed by Richard Robinson.

Refactor TextExtraction support, such that the new swift sources and relevant 
ObjC bridging exists
purely within WebKit, instead of WebKitSwift. This sidesteps the need for a 
WebKitSwift dependency
on WebKit due to the `import WebKit`, simplifies the Swift integration by 
avoiding the need to soft
link all of the text extraction classes, and lastly allows us to avoid 
soft-linking WebKitSwift when
launching Safari, when text extraction is enabled.

* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setTextExtractionEnabled:]):

There's no need to soft link `libWebKitSwift` when enabling the runtime flag 
anymore.

* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.h: Renamed 
from Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.swift: 
Renamed from 
Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.h: 
Renamed from Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.h.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.mm: 
Renamed from Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.mm.

Move these files into a sub-group (and sub-directory) in 
`Source/WebKit/UIProcess/Cocoa` for text
extraction support.

(WebKit::containerType):
(WebKit::createWKTextItem):
(WebKit::createItemWithChildren):
(WebKit::createItemRecursive):
(WebKit::createItem):
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h:
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/WebKitTestRunner/Configurations/Base.xcconfig:
* LayoutTests/platform/ios-wk2/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WTF/wtf/PlatformEnable.h:

Add a build-time flag to avoid compiling code that uses `WKTextExtractionItem` 
(or related classes)
in non-internal watchOS or tvOS builds. Importantly, this means we'll avoid 
compiling the new Swift
sources on non-internal tvOS and watchOS builders for now where importing the 
UIKit module fails due
to the way we currently rely on the iOS SDK in `SDKAdditions` when building for 
watch or TV, thus
sidestepping a build failure.

* Source/WebKit/Configurations/Base.xcconfig:

Add `-experimental-spi-only-imports`.

* Source/WebKit/Configurations/WebKit.xcconfig:

Exclude `WKWebView+TextExtraction.swift` in non-internal SDKs, and additionally 
exclude
`WKTextExtractionItem.swift` on non-internal tvOS and watchOS SDKs, where
`ENABLE(TEXT_EXTRACTION_SUPPORT)` is disabled altogether.

* Source/WebKit/Configurations/WebKitSwift.xcconfig:
* Source/WebKit/Shared/API/Cocoa/WebKitLegacy.h:

Pulling these Swift sources into WebKit means that all `<WebKit/Foo.h>` header 
includes in and under
the WebKit umbrella will treat `Foo.h` as project headers in WebKit, rather 
than the reexported
WebKitLegacy private headers, if the names of the headers match. This is 
problematic for some of the
headers such as `WebBackForwardList.h`, whose names match both reexported 
WebKitLegacy headers and
WebKit project headers.

To work around this issue, simply avoid including these reexported legacy 
headers when creating the
WebKit Swift module on macOS. These headers should not be necessary when 
building the private Swift
module, which only includes an extension on `WKWebView`.

* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setTextExtractionEnabled:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:

Add `ENABLE(TEXT_EXTRACTION_SUPPORT)` guards around any code that uses the new 
Swift functionality
in `WKTextExtractionItem.swift`.

* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.h: Renamed 
from Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionItem.swift: 
Renamed from 
Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.h: 
Renamed from Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.h.
* Source/WebKit/UIProcess/Cocoa/TextExtraction/WKTextExtractionUtilities.mm: 
Renamed from Source/WebKit/UIProcess/Cocoa/WKTextExtractionUtilities.mm.
(WebKit::createWKTextItem):
(WebKit::createItemWithChildren):
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h:
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/WebKitTestRunner/Configurations/Base.xcconfig:
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
* Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.h:
* Tools/WebKitTestRunner/cocoa/WKTextExtractionTestingHelpers.mm:

Add more `ENABLE(TEXT_EXTRACTION_SUPPORT)` guards.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to