Title: [262089] trunk/Source/WebKit
Revision
262089
Author
james.sav...@apple.com
Date
2020-05-22 17:52:00 -0700 (Fri, 22 May 2020)

Log Message

Create Swift overlay for WebKit framework
https://bugs.webkit.org/show_bug.cgi?id=211270
<rdar://problem/60549174>

Reviewed by Brady Eidson.

Provides Swift-only overlay methods for our NS_REFINED_FOR_SWIFT API.
The overlay does not provide different API than its Objective-C counterparts,
so overlay testing focuses on ensuring that the overlay produces the
expected interface, and provides the expected mappings to and from ObjC.

The overlay is defined in a separate Xcode project (from WebKit) by
recommendation from the Swift team. Due to build system constraints this
project cannot be a sibbling of WebKit.xcodeproj, and must live in a
subdirectory. However, because it generally acts as part of the WebKit
framework, it still uses the same Version.xcconfig and source file
locations as standard WebKit sources.

* SwiftOverlay/Configurations/Base.xcconfig: Added. Set some default
    warnings and product configuration.
* SwiftOverlay/Configurations/WebKitSwiftOverlay-maccatalyst.xcconfig: Added.
    Override SDK configurations to build for Catalyst.
* SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig: Added.
    These flags were all provided by the Xcode template.
* SwiftOverlay/Configurations/WebKitSwiftOverlayTests-maccatalyst.xcconfig: Added.
    See above.
* SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig: Added.
    See above.
* SwiftOverlay/SwiftOverlay/install-swiftmodules.sh: Added. Provided by the
    Swift team.
* SwiftOverlay/Tests/WebKitSwiftOverlayTests-Info.plist: Added.
* SwiftOverlay/Tests/WebKitTests.swift: Added.
(WebKitTests.testAPI): This ensures that the function names come through as we
    expect them to. It also ensures that the functions were correctly set to
    public visiblity.
(WebKitTests.testWKPDFConfigurationRect): This does the same as the above, but
    also exercises the null <-> nil conversion, and that regular values are
    correctly round tripped to Objective-C.
* SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Added.
* SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme: Added.
* SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme: Added.
* UIProcess/API/Cocoa/WebKitSwiftOverlay.swift: Added.
(WKPDFConfiguration.rect): Provide mapping of CGRect.null to nil for Swift.
(WKWebView.callAsyncJavaScript(_:arguments:in:completion:)): Provide a Result
in the completion handler, and default value for arguments.
(WKWebView.evaluateJavaScript(_:in:completion:)): Ditto.
(WKWebView.createPDF(configuration:completionHandler:)): Provide a Swift function
    that takes a Result<Data, Error> instead of (Data?, Error?) tuple. Provide
    a default value for the configuration.
(WKWebView.createWebArchiveData(completionHandler:)): See above.
(WKWebView.find(_:configuration:completionHandler:)): See above.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (262088 => 262089)


--- trunk/Source/WebKit/ChangeLog	2020-05-22 23:50:26 UTC (rev 262088)
+++ trunk/Source/WebKit/ChangeLog	2020-05-23 00:52:00 UTC (rev 262089)
@@ -1,3 +1,57 @@
+2020-05-22  James Savage  <james.sav...@apple.com>
+
+        Create Swift overlay for WebKit framework
+        https://bugs.webkit.org/show_bug.cgi?id=211270
+        <rdar://problem/60549174>
+
+        Reviewed by Brady Eidson.
+
+        Provides Swift-only overlay methods for our NS_REFINED_FOR_SWIFT API.
+        The overlay does not provide different API than its Objective-C counterparts,
+        so overlay testing focuses on ensuring that the overlay produces the
+        expected interface, and provides the expected mappings to and from ObjC.
+
+        The overlay is defined in a separate Xcode project (from WebKit) by
+        recommendation from the Swift team. Due to build system constraints this
+        project cannot be a sibbling of WebKit.xcodeproj, and must live in a
+        subdirectory. However, because it generally acts as part of the WebKit
+        framework, it still uses the same Version.xcconfig and source file
+        locations as standard WebKit sources.
+
+        * SwiftOverlay/Configurations/Base.xcconfig: Added. Set some default
+            warnings and product configuration.
+        * SwiftOverlay/Configurations/WebKitSwiftOverlay-maccatalyst.xcconfig: Added.
+            Override SDK configurations to build for Catalyst.
+        * SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig: Added.
+            These flags were all provided by the Xcode template.
+        * SwiftOverlay/Configurations/WebKitSwiftOverlayTests-maccatalyst.xcconfig: Added.
+            See above.
+        * SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig: Added.
+            See above.
+        * SwiftOverlay/SwiftOverlay/install-swiftmodules.sh: Added. Provided by the
+            Swift team.
+        * SwiftOverlay/Tests/WebKitSwiftOverlayTests-Info.plist: Added.
+        * SwiftOverlay/Tests/WebKitTests.swift: Added.
+        (WebKitTests.testAPI): This ensures that the function names come through as we
+            expect them to. It also ensures that the functions were correctly set to
+            public visiblity.
+        (WebKitTests.testWKPDFConfigurationRect): This does the same as the above, but
+            also exercises the null <-> nil conversion, and that regular values are
+            correctly round tripped to Objective-C.
+        * SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Added.
+        * SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme: Added.
+        * SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme: Added.
+        * UIProcess/API/Cocoa/WebKitSwiftOverlay.swift: Added.
+        (WKPDFConfiguration.rect): Provide mapping of CGRect.null to nil for Swift.
+        (WKWebView.callAsyncJavaScript(_:arguments:in:completion:)): Provide a Result
+        in the completion handler, and default value for arguments.
+        (WKWebView.evaluateJavaScript(_:in:completion:)): Ditto.
+        (WKWebView.createPDF(configuration:completionHandler:)): Provide a Swift function
+            that takes a Result<Data, Error> instead of (Data?, Error?) tuple. Provide
+            a default value for the configuration.
+        (WKWebView.createWebArchiveData(completionHandler:)): See above.
+        (WKWebView.find(_:configuration:completionHandler:)): See above.
+
 2020-05-22  Chris Dumez  <cdu...@apple.com>
 
         RELEASE_ASSERT() that InitializeWebKit2() is getting called on the main thread

Added: trunk/Source/WebKit/SwiftOverlay/Configurations/Base.xcconfig (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Configurations/Base.xcconfig	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Configurations/Base.xcconfig	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,48 @@
+// Copyright (C) 2020 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "../Configurations/SDKVariant.xcconfig"
+#include "../Configurations/Version.xcconfig"
+
+ALWAYS_SEARCH_USER_PATHS = NO;
+CLANG_ENABLE_MODULES = YES;
+CLANG_ENABLE_OBJC_ARC = YES;
+CLANG_ENABLE_OBJC_WEAK = YES;
+ENABLE_TESTABILITY[config=Debug] = YES;
+ONLY_ACTIVE_ARCH[config=Debug] = YES;
+SWIFT_COMPILATION_MODE[config=Release] = wholemodule;
+SWIFT_VERSION = 5.0;
+
+SWIFT_OPTIMIZATION_LEVEL[config=Debug] = -Onone;
+SWIFT_OPTIMIZATION_LEVEL[config=Release] = -O;
+
+DEBUG_INFORMATION_FORMAT[config=Debug] = dwarf;
+DEBUG_INFORMATION_FORMAT[config=Release] = dwarf-with-dsym;
+
+ONLY_ACTIVE_ARCH[config=Debug] = YES;
+ONLY_ACTIVE_ARCH[config=Release] = NO;
+
+SDKROOT = macosx.internal;
+SDKROOT[sdk=iphoneos*] = iphoneos.internal;
+SDKROOT[sdk=appletv*] = appletvos.internal;
+SDKROOT[sdk=watchos*] = watchos.internal;

Added: trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay-maccatalyst.xcconfig (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay-maccatalyst.xcconfig	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay-maccatalyst.xcconfig	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,27 @@
+// Copyright (C) 2020 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "WebKitSwiftOverlay.xcconfig"
+
+SDK_VARIANT[sdk=mac*] = iosmac;
+SUPPORTED_PLATFORMS = macosx;

Added: trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,60 @@
+// Copyright (C) 2020 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
+CLANG_LINK_OBJC_RUNTIME = NO;
+EXECUTABLE_PREFIX = libswift;
+GENERATE_TEXT_BASED_STUBS = YES;
+IS_ZIPPERED = NO;
+OTHER_LDFLAGS = $(inherited) -weak_framework WebKit;
+PRODUCT_NAME = WebKit;
+STRIP_SWIFT_SYMBOLS = NO;
+SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator;
+SUPPORTS_TEXT_BASED_API = YES;
+SWIFT_IS_OVERLAY = YES;
+SWIFT_LINK_OBJC_RUNTIME = NO;
+SWIFT_OVERLAY_INSTALL_PATH=/usr/lib/swift;
+
+DYLIB_CURRENT_VERSION = $(FULL_VERSION);
+MODULE_VERSION = $(FULL_VERSION);
+
+// Disable code signing
+COPY_PHASE_STRIP = NO;
+CODE_SIGN_IDENTITY = -;
+CODE_SIGN_STYLE = Manual;
+
+// We need to run install-swiftmodules.sh during the installapi action.
+INSTALLHDRS_SCRIPT_PHASE = YES;
+
+// The install path is /usr/lib/swift except if we're building using the iosmac
+// SDK variant on macOS, in which case it's /System/iOSSupport/usr/lib/swift.
+INSTALL_PATH = $(WK_ALTERNATE_FRAMEWORKS_DIR)$(SWIFT_OVERLAY_INSTALL_PATH);
+
+OTHER_SWIFT_FLAGS = -module-link-name $(SWIFT_MODULE_LINK_NAME) -autolink-force-load -runtime-compatibility-version none -disable-autolinking-runtime-compatibility-dynamic-replacements;
+SWIFT_MODULE_LINK_NAME = swift$(PRODUCT_NAME);
+
+SWIFT_ENABLE_INCREMENTAL_COMPILATION = NO; // YES conflicts with -autolink-force-load
+
+// Custom build settings for install-swiftmodules.sh.
+SWIFT_INSTALL_MODULES = YES;
+SWIFT_MODULE_INSTALL_PATH = $(INSTALL_PATH);

Added: trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests-maccatalyst.xcconfig (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests-maccatalyst.xcconfig	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests-maccatalyst.xcconfig	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,29 @@
+// Copyright (C) 2020 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "WebKitSwiftOverlayTests.xcconfig"
+
+SDK_VARIANT[sdk=mac*] = iosmac;
+SUPPORTED_PLATFORMS = macosx;
+TARGETED_DEVICE_FAMILY[sdk=mac*] = 2;
+

Added: trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+CLANG_CXX_LANGUAGE_STANDARD = gnu++14;
+CLANG_CXX_LIBRARY = libc++;
+CODE_SIGN_STYLE = Automatic;
+COPY_PHASE_STRIP = NO;
+ENABLE_NS_ASSERTIONS = NO;
+ENABLE_STRICT_OBJC_MSGSEND = YES;
+GCC_C_LANGUAGE_STANDARD = gnu11;
+GCC_DYNAMIC_NO_PIC = NO;
+GCC_NO_COMMON_BLOCKS = YES;
+GCC_OPTIMIZATION_LEVEL = 0;
+GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited);
+INFOPLIST_FILE = Tests/WebKitSwiftOverlayTests-Info.plist;
+PRODUCT_BUNDLE_IDENTIFIER = com.apple.WebKitTests-macOS;
+PRODUCT_NAME = $(TARGET_NAME);
+SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator;
+SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Debug] = DEBUG;
+SWIFT_COMPILATION_MODE = wholemodule;
+
+SDKROOT = macosx.internal
+SDKROOT[sdk=iphoneos*] = iphoneos.internal
+SDKROOT[sdk=appletv*] = appletvos.internal
+SDKROOT[sdk=watchos*] = watchos.internal

Added: trunk/Source/WebKit/SwiftOverlay/SwiftOverlay/install-swiftmodules.sh (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/SwiftOverlay/install-swiftmodules.sh	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/SwiftOverlay/install-swiftmodules.sh	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# Copyright (C) 2020 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -e
+#set -xv
+
+# This only needs to run during installation, but that includes "installapi".
+[ "$ACTION" = "installapi" -o "$ACTION" = "install" ] || exit 0
+
+[ "$SKIP_INSTALL" != "YES" ] || exit 0
+[ "$SWIFT_INSTALL_MODULES" = "YES" ] || exit 0
+
+srcmodule="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.swiftmodule"
+dstpath="${INSTALL_ROOT}/${INSTALL_PATH}/"
+
+if [ ! -d "$srcmodule" ]; then
+    echo "Cannot find Swift module at $srcmodule" >&2
+    exit 1
+fi
+
+mkdir -p "$dstpath"
+cp -r "$srcmodule" "$dstpath"
Property changes on: trunk/Source/WebKit/SwiftOverlay/SwiftOverlay/install-swiftmodules.sh
___________________________________________________________________

Added: svn:executable

+* \ No newline at end of property

Added: trunk/Source/WebKit/SwiftOverlay/Tests/WebKitSwiftOverlayTests-Info.plist (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Tests/WebKitSwiftOverlayTests-Info.plist	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Tests/WebKitSwiftOverlayTests-Info.plist	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>

Added: trunk/Source/WebKit/SwiftOverlay/Tests/WebKitTests.swift (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/Tests/WebKitTests.swift	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/Tests/WebKitTests.swift	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import XCTest
+import WebKit
+
+class WebKitTests: XCTestCase {
+    /// This is a compile-time test that ensures the function names are what we expect.
+    func testAPI() {
+        _ = WKContentWorld.world(name:)
+        _ = WKWebView.callAsyncJavaScript(_:arguments:in:completion:)
+        _ = WKWebView.createPDF(configuration:completionHandler:)
+        _ = WKWebView.createWebArchiveData(completionHandler:)
+        _ = WKWebView.evaluateJavaScript(_:in:completion:)
+        _ = WKWebView.find(_:configuration:completionHandler:)
+    }
+
+    func testWKPDFConfigurationRect() {
+        let configuration = WKPDFConfiguration()
+
+        XCTAssert(type(of: configuration.rect) == Optional<CGRect>.self)
+
+        configuration.rect = nil
+        XCTAssertEqual(configuration.rect, nil)
+
+        configuration.rect = .null
+        XCTAssertEqual(configuration.rect, nil)
+
+        configuration.rect = CGRect.zero
+        XCTAssertEqual(configuration.rect, .zero)
+
+        let originalPhoneBounds = CGRect(x: 0, y: 0, width: 320, height: 480)
+        configuration.rect = originalPhoneBounds
+        XCTAssertEqual(configuration.rect, originalPhoneBounds)
+    }
+}

Added: trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,512 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 50;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		7D20070C22F4EB72008DF640 /* libswiftWebKit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D20067522F2652E008DF640 /* libswiftWebKit.dylib */; };
+		7D20071B22F4ECCA008DF640 /* libswiftWebKit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D20068722F26721008DF640 /* libswiftWebKit.dylib */; };
+		B3A5D38F23F78F5400B17727 /* WebKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A5D38823F78F5400B17727 /* WebKitTests.swift */; };
+		B3A5D39023F78F5400B17727 /* WebKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A5D38823F78F5400B17727 /* WebKitTests.swift */; };
+		B3A5D39223F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */; };
+		B3A5D39323F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		7D20070D22F4EB72008DF640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7D81A8D522E936E700739BB9 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7D20067422F2652E008DF640;
+			remoteInfo = "WebKit-macOS";
+		};
+		7D20071C22F4ECCA008DF640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7D81A8D522E936E700739BB9 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7D20068622F26721008DF640;
+			remoteInfo = "WebKit-iOS";
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		7D20067522F2652E008DF640 /* libswiftWebKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libswiftWebKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		7D20068722F26721008DF640 /* libswiftWebKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libswiftWebKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		7D20070722F4EB72008DF640 /* WebKitSwiftOverlayTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WebKitSwiftOverlayTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		7D20071622F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "WebKitSwiftOverlayTests-maccatalyst.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
+		B3A5D38823F78F5400B17727 /* WebKitTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebKitTests.swift; sourceTree = "<group>"; };
+		B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebKitSwiftOverlay.swift; path = ../UIProcess/API/Cocoa/WebKitSwiftOverlay.swift; sourceTree = SOURCE_ROOT; };
+		B3A5D39423F790E100B17727 /* WebKitSwiftOverlay.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitSwiftOverlay.xcconfig; sourceTree = "<group>"; };
+		B3A5D39523F790E100B17727 /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
+		B3A5D39623F790E100B17727 /* WebKitSwiftOverlay-maccatalyst.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "WebKitSwiftOverlay-maccatalyst.xcconfig"; sourceTree = "<group>"; };
+		B3A5D39723F790E100B17727 /* WebKitSwiftOverlayTests-maccatalyst.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "WebKitSwiftOverlayTests-maccatalyst.xcconfig"; sourceTree = "<group>"; };
+		B3A5D39823F790E100B17727 /* WebKitSwiftOverlayTests.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitSwiftOverlayTests.xcconfig; sourceTree = "<group>"; };
+		B3A5D39923F790E100B17727 /* install-swiftmodules.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "install-swiftmodules.sh"; sourceTree = "<group>"; };
+		B3A5D39A23F790E700B17727 /* WebKitSwiftOverlayTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebKitSwiftOverlayTests-Info.plist"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		7D20067322F2652E008DF640 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20068522F26721008DF640 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20070422F4EB72008DF640 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7D20070C22F4EB72008DF640 /* libswiftWebKit.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20071322F4ECCA008DF640 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7D20071B22F4ECCA008DF640 /* libswiftWebKit.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		7D20067622F2652E008DF640 /* Swift Overlay */ = {
+			isa = PBXGroup;
+			children = (
+				B3A5D39923F790E100B17727 /* install-swiftmodules.sh */,
+				B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */,
+			);
+			name = "Swift Overlay";
+			path = SwiftOverlay;
+			sourceTree = "<group>";
+		};
+		7D2006D622F3D3DA008DF640 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		7D20070822F4EB72008DF640 /* Tests */ = {
+			isa = PBXGroup;
+			children = (
+				B3A5D39A23F790E700B17727 /* WebKitSwiftOverlayTests-Info.plist */,
+				B3A5D38823F78F5400B17727 /* WebKitTests.swift */,
+			);
+			path = Tests;
+			sourceTree = "<group>";
+		};
+		7D81A8D422E936E700739BB9 = {
+			isa = PBXGroup;
+			children = (
+				7DF02CBE22F4DF1A00C66A76 /* Configurations */,
+				7D20067622F2652E008DF640 /* Swift Overlay */,
+				7D20070822F4EB72008DF640 /* Tests */,
+				7D81A8DE22E936E700739BB9 /* Products */,
+				7D2006D622F3D3DA008DF640 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		7D81A8DE22E936E700739BB9 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7D20067522F2652E008DF640 /* libswiftWebKit.dylib */,
+				7D20068722F26721008DF640 /* libswiftWebKit.dylib */,
+				7D20071622F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst.xctest */,
+				7D20070722F4EB72008DF640 /* WebKitSwiftOverlayTests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7DF02CBE22F4DF1A00C66A76 /* Configurations */ = {
+			isa = PBXGroup;
+			children = (
+				B3A5D39523F790E100B17727 /* Base.xcconfig */,
+				B3A5D39623F790E100B17727 /* WebKitSwiftOverlay-maccatalyst.xcconfig */,
+				B3A5D39423F790E100B17727 /* WebKitSwiftOverlay.xcconfig */,
+				B3A5D39723F790E100B17727 /* WebKitSwiftOverlayTests-maccatalyst.xcconfig */,
+				B3A5D39823F790E100B17727 /* WebKitSwiftOverlayTests.xcconfig */,
+			);
+			path = Configurations;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		7D20067122F2652E008DF640 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20068322F26721008DF640 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		7D20067422F2652E008DF640 /* WebKitSwiftOverlay */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7D20067B22F2652E008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay" */;
+			buildPhases = (
+				7D20067122F2652E008DF640 /* Headers */,
+				7D20067222F2652E008DF640 /* Sources */,
+				7D20067322F2652E008DF640 /* Frameworks */,
+				7D20069122F26787008DF640 /* Install Swift Module */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = WebKitSwiftOverlay;
+			productName = SafariServices;
+			productReference = 7D20067522F2652E008DF640 /* libswiftWebKit.dylib */;
+			productType = "com.apple.product-type.library.dynamic";
+		};
+		7D20068622F26721008DF640 /* WebKitSwiftOverlay-maccatalyst */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7D20068D22F26721008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay-maccatalyst" */;
+			buildPhases = (
+				7D20068322F26721008DF640 /* Headers */,
+				7D20068422F26721008DF640 /* Sources */,
+				7D20068522F26721008DF640 /* Frameworks */,
+				7D20069222F2679B008DF640 /* Install Swift Module */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "WebKitSwiftOverlay-maccatalyst";
+			productName = "WebKit-iOS";
+			productReference = 7D20068722F26721008DF640 /* libswiftWebKit.dylib */;
+			productType = "com.apple.product-type.library.dynamic";
+		};
+		7D20070622F4EB72008DF640 /* WebKitSwiftOverlayTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7D20070F22F4EB72008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlayTests" */;
+			buildPhases = (
+				7D20070322F4EB72008DF640 /* Sources */,
+				7D20070422F4EB72008DF640 /* Frameworks */,
+				7D20070522F4EB72008DF640 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7D20070E22F4EB72008DF640 /* PBXTargetDependency */,
+			);
+			name = WebKitSwiftOverlayTests;
+			productName = WebKitTests;
+			productReference = 7D20070722F4EB72008DF640 /* WebKitSwiftOverlayTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		7D20071522F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7D20071E22F4ECCA008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlayTests-maccatalyst" */;
+			buildPhases = (
+				7D20071222F4ECCA008DF640 /* Sources */,
+				7D20071322F4ECCA008DF640 /* Frameworks */,
+				7D20071422F4ECCA008DF640 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7D20071D22F4ECCA008DF640 /* PBXTargetDependency */,
+			);
+			name = "WebKitSwiftOverlayTests-maccatalyst";
+			productName = "WebKitTests-iOS";
+			productReference = 7D20071622F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		7D81A8D522E936E700739BB9 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastSwiftUpdateCheck = 1100;
+				LastUpgradeCheck = 1100;
+				ORGANIZATIONNAME = Apple;
+				TargetAttributes = {
+					7D20067422F2652E008DF640 = {
+						CreatedOnToolsVersion = 11.0;
+						LastSwiftMigration = 1200;
+					};
+					7D20068622F26721008DF640 = {
+						CreatedOnToolsVersion = 11.0;
+						LastSwiftMigration = 1200;
+					};
+					7D20070622F4EB72008DF640 = {
+						CreatedOnToolsVersion = 11.0;
+						LastSwiftMigration = 1200;
+					};
+					7D20071522F4ECCA008DF640 = {
+						CreatedOnToolsVersion = 11.0;
+						LastSwiftMigration = 1200;
+					};
+				};
+			};
+			buildConfigurationList = 7D81A8D822E936E700739BB9 /* Build configuration list for PBXProject "WebKitSwiftOverlay" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 7D81A8D422E936E700739BB9;
+			productRefGroup = 7D81A8DE22E936E700739BB9 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				7D20067422F2652E008DF640 /* WebKitSwiftOverlay */,
+				7D20068622F26721008DF640 /* WebKitSwiftOverlay-maccatalyst */,
+				7D20070622F4EB72008DF640 /* WebKitSwiftOverlayTests */,
+				7D20071522F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		7D20070522F4EB72008DF640 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20071422F4ECCA008DF640 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		7D20069122F26787008DF640 /* Install Swift Module */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 12;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+			);
+			name = "Install Swift Module";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "exec \"${SOURCE_ROOT}/SwiftOverlay/install-swiftmodules.sh\"\n";
+		};
+		7D20069222F2679B008DF640 /* Install Swift Module */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 12;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+			);
+			name = "Install Swift Module";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "exec \"${SOURCE_ROOT}/SwiftOverlay/install-swiftmodules.sh\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		7D20067222F2652E008DF640 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B3A5D39223F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20068422F26721008DF640 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B3A5D39323F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20070322F4EB72008DF640 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B3A5D38F23F78F5400B17727 /* WebKitTests.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7D20071222F4ECCA008DF640 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B3A5D39023F78F5400B17727 /* WebKitTests.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		7D20070E22F4EB72008DF640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7D20067422F2652E008DF640 /* WebKitSwiftOverlay */;
+			targetProxy = 7D20070D22F4EB72008DF640 /* PBXContainerItemProxy */;
+		};
+		7D20071D22F4ECCA008DF640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7D20068622F26721008DF640 /* WebKitSwiftOverlay-maccatalyst */;
+			targetProxy = 7D20071C22F4ECCA008DF640 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		7D20067C22F2652E008DF640 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39423F790E100B17727 /* WebKitSwiftOverlay.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7D20067D22F2652E008DF640 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39423F790E100B17727 /* WebKitSwiftOverlay.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7D20068E22F26721008DF640 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39623F790E100B17727 /* WebKitSwiftOverlay-maccatalyst.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7D20068F22F26721008DF640 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39623F790E100B17727 /* WebKitSwiftOverlay-maccatalyst.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7D20071022F4EB72008DF640 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39823F790E100B17727 /* WebKitSwiftOverlayTests.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7D20071122F4EB72008DF640 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39823F790E100B17727 /* WebKitSwiftOverlayTests.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7D20071F22F4ECCA008DF640 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39723F790E100B17727 /* WebKitSwiftOverlayTests-maccatalyst.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7D20072022F4ECCA008DF640 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39723F790E100B17727 /* WebKitSwiftOverlayTests-maccatalyst.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7D81A8E422E936E700739BB9 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39523F790E100B17727 /* Base.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7D81A8E522E936E700739BB9 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B3A5D39523F790E100B17727 /* Base.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		7D20067B22F2652E008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7D20067C22F2652E008DF640 /* Debug */,
+				7D20067D22F2652E008DF640 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7D20068D22F26721008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay-maccatalyst" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7D20068E22F26721008DF640 /* Debug */,
+				7D20068F22F26721008DF640 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7D20070F22F4EB72008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlayTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7D20071022F4EB72008DF640 /* Debug */,
+				7D20071122F4EB72008DF640 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7D20071E22F4ECCA008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlayTests-maccatalyst" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7D20071F22F4ECCA008DF640 /* Debug */,
+				7D20072022F4ECCA008DF640 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7D81A8D822E936E700739BB9 /* Build configuration list for PBXProject "WebKitSwiftOverlay" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7D81A8E422E936E700739BB9 /* Debug */,
+				7D81A8E522E936E700739BB9 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 7D81A8D522E936E700739BB9 /* Project object */;
+}

Added: trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1200"
+   version = "1.7">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "NO">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7D20068622F26721008DF640"
+               BuildableName = "libswiftWebKit.dylib"
+               BlueprintName = "WebKitSwiftOverlay-maccatalyst"
+               ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7D20071522F4ECCA008DF640"
+               BuildableName = "WebKitSwiftOverlayTests-maccatalyst.xctest"
+               BlueprintName = "WebKitSwiftOverlayTests-maccatalyst"
+               ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7D20068622F26721008DF640"
+            BuildableName = "libswiftWebKit.dylib"
+            BlueprintName = "WebKitSwiftOverlay-maccatalyst"
+            ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+   <InstallAction
+      buildConfiguration = "Release">
+   </InstallAction>
+</Scheme>

Added: trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme (0 => 262089)


--- trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme	                        (rev 0)
+++ trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1200"
+   version = "1.7">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "NO">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7D20067422F2652E008DF640"
+               BuildableName = "libswiftWebKit.dylib"
+               BlueprintName = "WebKitSwiftOverlay"
+               ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "NO"
+            buildForProfiling = "NO"
+            buildForArchiving = "NO"
+            buildForAnalyzing = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7D20070622F4EB72008DF640"
+               BuildableName = "WebKitSwiftOverlayTests.xctest"
+               BlueprintName = "WebKitSwiftOverlayTests"
+               ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7D20070622F4EB72008DF640"
+               BuildableName = "WebKitSwiftOverlayTests.xctest"
+               BlueprintName = "WebKitSwiftOverlayTests"
+               ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7D20067422F2652E008DF640"
+            BuildableName = "libswiftWebKit.dylib"
+            BlueprintName = "WebKitSwiftOverlay"
+            ReferencedContainer = "container:WebKitSwiftOverlay.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+   <InstallAction
+      buildConfiguration = "Release">
+   </InstallAction>
+</Scheme>

Added: trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift (0 => 262089)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift	                        (rev 0)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift	2020-05-23 00:52:00 UTC (rev 262089)
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+@_exported import WebKit
+
+@available(iOS 14.0, macOS 10.16, *)
+extension WKPDFConfiguration {
+    public var rect: CGRect? {
+        get { __rect == .null ? nil : __rect }
+        set { __rect = newValue == nil ? .null : newValue! }
+    }
+}
+
+@available(iOS 14.0, macOS 10.16, *)
+extension WKWebView {
+    public func callAsyncJavaScript(_ functionBody: String, arguments: [String:Any] = [:], in contentWorld: WKContentWorld, completion: @escaping(Result<Any, Error>) -> Void) {
+        __callAsyncJavaScript(functionBody, arguments: arguments, in: contentWorld, completionHandler: makeResultHandler(completion))
+    }
+
+    public func createPDF(configuration: WKPDFConfiguration = .init(), completionHandler: @escaping (Result<Data, Error>) -> Void) {
+        __createPDF(with: configuration, completionHandler: makeResultHandler(completionHandler))
+    }
+
+    public func createWebArchiveData(completionHandler: @escaping (Result<Data, Error>) -> Void) {
+        __createWebArchiveData(completionHandler: makeResultHandler(completionHandler))
+    }
+
+    public func evaluateJavaScript(_ _javascript_: String, in contentWorld: WKContentWorld, completion: @escaping (Result<Any, Error>) -> Void) {
+        __evaluateJavaScript(_javascript_, in: contentWorld, completionHandler: makeResultHandler(completion))
+    }
+
+    public func find(_ string: String, configuration: WKFindConfiguration = .init(), completionHandler: @escaping (WKFindResult) -> Void) {
+        __find(string, with: configuration, completionHandler: completionHandler)
+    }
+}
+
+func makeResultHandler<Success, Failure>(_ handler: @escaping (Result<Success, Failure>) -> Void) -> (Success?, Failure?) -> Void {
+    return { success, failure in
+        if let success = success {
+            handler(.success(success))
+        } else if let failure = failure {
+            handler(.failure(failure))
+        } else {
+            fatalError("Bug in WebKit: Received neither result or failure.")
+        }
+    }
+}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to