-
Notifications
You must be signed in to change notification settings - Fork 516
BrowserEngineKit iOS xcode15.3 b1
Alex Soto edited this page Jan 27, 2024
·
1 revision
#BrowserEngineKit.framework
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEAutoFillTextSuggestion.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEAutoFillTextSuggestion.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEAutoFillTextSuggestion.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEAutoFillTextSuggestion.h 2024-01-20 23:26:34
@@ -0,0 +1,30 @@
+//
+// BEAutofillTextSuggestion.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+#import <BrowserEngineKit/BETextSuggestion.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BEAutoFillTextSuggestion : BETextSuggestion
+
+/**
+ * Mapping of UITextContentType to String for AutoFill insertion values
+ */
+@property (nonatomic, copy, readonly) NSDictionary<UITextContentType, NSString *> *contents;
+
+- (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEContextMenuConfiguration.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEContextMenuConfiguration.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEContextMenuConfiguration.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEContextMenuConfiguration.h 2024-01-20 23:26:35
@@ -0,0 +1,45 @@
+//
+// BEContextMenuConfiguration.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIContextMenuConfiguration.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/**
+ * A specialized `UIContextMenuConfiguration` object to defer a context menu presentation when the
+ * when the context menu gestures are first recognized and a possible menu presentation is not immediately known.
+ */
+BROWSERENGINE_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
+@interface BEContextMenuConfiguration : UIContextMenuConfiguration
+
+/// Fulfills the configuration with a concrete configuration. Once fulfilled, the context menu presentation will begin.
+/// You should call this method as soon as you have determined that a menu presentation is possible for the configuration, as to
+/// minimize the delay between the context menu gesture's recognition and the menu's presentation. If no menu presentation is possible,
+/// fulfill with a `nil` configuration.
+///
+/// There is a system-defined timeout before the configuration is cancelled, where no menu presents. This method returns `YES` if the
+/// configuration did successfully prepare, and `NO` otherwise.
+///
+/// @NOTE: The fulfilled configuration is used by `UIContextMenuInteractionDelegate` when referencing any `UIContextMenuConfiguration`,
+/// rather than this object.
+- (BOOL)fulfillUsingConfiguration:(nullable UIContextMenuConfiguration *)configuration;
+
+/// Creates a new configuration for the context menu interaction.
+- (instancetype)init NS_DESIGNATED_INITIALIZER;
+
+/// For a concrete configuration, use the parent `UIContextMenuConfiguration` class instead.
++ (instancetype)configurationWithIdentifier:(nullable id<NSCopying>)identifier
+ previewProvider:(nullable UIContextMenuContentPreviewProvider)previewProvider
+ actionProvider:(nullable UIContextMenuActionProvider)actionProvider NS_UNAVAILABLE;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEDragInteraction.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEDragInteraction.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEDragInteraction.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEDragInteraction.h 2024-01-20 23:26:35
@@ -0,0 +1,62 @@
+//
+// BEDragInteraction.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIDragInteraction.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@class BEDragInteraction;
+
+API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
+@protocol BEDragInteractionDelegate <UIDragInteractionDelegate>
+
+@optional
+
+/**
+ * Called when the drag interaction has begun, to allow the delegate to prepare for the drag session before
+ * the system requests drag items through `-dragInteraction:itemsForBeginningSession:`.
+ *
+ * You should call the `completion` block as soon as the drag session is prepared, as to minimize the delay
+ * from the user interaction from the drag gesture. There is a system-defined timeout before the drag session is
+ * failed if the `completion` is not called in time. The `completion` block returns `YES` if the drag session did
+ * prepare successfully prepare, and `NO` otherwise, to allow clients to perform any clean-up if necessary.
+ */
+- (void)dragInteraction:(BEDragInteraction *)dragInteraction prepareDragSession:(id<UIDragSession>)session completion:(BOOL(^)(void))completion;
+
+/**
+ * The asynchronous counterpart to `-dragInteraction:itemsForAddingToSession:withTouchAtPoint:` to allow
+ * touches on this view to add items to an existing drag session. Please refer to the aforementioned delegate method for its full
+ * documentation.
+ *
+ * If this method is implemented, then the `UIDragInteractionDelegate` counterpart method will no longer be called.
+ *
+ * You should call the `completion` block as soon as the items are ready. There is a system-defined
+ * timeout before the system will treat the delegate call as returning an empty array. The `completion` block
+ * returns `YES` if the drag session did add items to the session successfully, and `NO` otherwise, to allow
+ * clients to perform any clean-up if necessary.
+ */
+- (void)dragInteraction:(BEDragInteraction *)dragInteraction itemsForAddingToSession:(id<UIDragSession>)session forTouchAtPoint:(CGPoint)point completion:(BOOL(^)(NSArray<UIDragItem *> *))completion;
+
+@end
+
+/// A `UIDragInteraction` subclass with features specific to browsers to enable asynchronous preparations and behaviours.
+BROWSERENGINE_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
+@interface BEDragInteraction: UIDragInteraction
+
+/// The object that manages the drag interaction lifecycle.
+@property (nonatomic, readonly, weak, nullable) id<BEDragInteractionDelegate> delegate;
+
+/// Creates an drag interaction with the specified delegate.
+- (instancetype)initWithDelegate:(id<BEDragInteractionDelegate>)delegate NS_DESIGNATED_INITIALIZER;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntry.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntry.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntry.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntry.h 2024-01-20 23:26:34
@@ -0,0 +1,54 @@
+//
+// BEKeyEvent.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+#import <Foundation/Foundation.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKeyConstants.h>
+#import <UIKit/UICommand.h>
+#import <UIKit/UIKey.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BEKeyPressState) {
+ BEKeyPressStateDown = 1,
+ BEKeyPressStateUp = 2,
+} NS_SWIFT_NAME(BEKeyEntry.KeyPressState) BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BEKeyEntry : NSObject
+
+/**
+ * Data about the key that was pressed
+ */
+@property (nonatomic, readonly) UIKey *key;
+
+/**
+ * Type of the event, indicating whether it represents when the key is pressed or released.
+ */
+@property (nonatomic, readonly) BEKeyPressState type;
+
+/**
+ * Represents whether the event is repeating.
+ *
+ * For example, a continued press and hold on a key may result in its repeated insertion.
+ */
+@property (nonatomic, readonly, getter=isKeyRepeating) BOOL keyRepeating;
+
+/**
+ * Time at which the key event occured.
+ */
+@property (nonatomic, readonly) NSTimeInterval timestamp;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntryContext.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntryContext.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntryContext.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEKeyEntryContext.h 2024-01-20 23:26:34
@@ -0,0 +1,54 @@
+//
+// BEKeyEventContext.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEKeyEntry.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BEKeyEntryContext : NSObject
+
+/**
+ * BEKeyEntry for which this context is representing.
+ */
+@property (strong, nonatomic, readonly) BEKeyEntry *keyEntry;
+
+/**
+ * Represents whether the web document is editable
+ */
+@property (nonatomic, assign, readwrite, getter=isDocumentEditable) BOOL documentEditable;
+
+/**
+ * Represents whether a character should be inserted.
+ */
+@property (nonatomic, assign, readwrite) BOOL shouldInsertCharacter;
+
+/**
+ * Represents whether the key event should be evaluated within the context of a composed input mode.
+ *
+ * When using an input mode with composed input, such as Chinese/Japanese/Korean, the markedText
+ * will be used to combine multiple key events into a single character.
+ */
+@property (nonatomic, assign, readwrite) BOOL shouldEvaluateForInputSystemHandling;
+
+/**
+ * Initializes an instance of BEKeyEventContext with its corresponding `keyState`
+ */
+- (instancetype)initWithKeyEntry:(BEKeyEntry *)keyEntry NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMacros.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMacros.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMacros.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMacros.h 2024-01-20 23:26:34
@@ -0,0 +1,7 @@
+//
+// BEMacros.h
+//
+
+#import <BrowserEngineCore/BEMacros.h>
+
+#define BROWSERENGINEKIT_HAS_UIVIEW __has_include(<UIKit/UIView.h>)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMemory.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMemory.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMemory.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEMemory.h 2024-01-20 23:26:34
@@ -0,0 +1,5 @@
+//
+// BEMemory.h
+//
+
+#include <BrowserEngineCore/BEMemory.h>
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BENetworkingProcess.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BENetworkingProcess.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BENetworkingProcess.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BENetworkingProcess.h 2024-01-20 23:26:35
@@ -0,0 +1,64 @@
+//
+// BENetworkingProcess.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+#include <xpc/xpc.h>
+#endif
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// An object that represents a running network extension process.
+///
+/// The system guarantees that the extension process has launched by the time the initializer methods return.
+/// If the extension process exits, the system calls ``interruptionHandler``. There can only be one extension process per
+/// host browser. The first time this type is initialized, a process will be launched. If a extension process is all ready
+/// running, the returned object will represent the already running process.
+NS_REFINED_FOR_SWIFT
+API_AVAILABLE(macos(14.3), ios(17.4))
+API_UNAVAILABLE(watchos, tvos, visionos)
+BROWSERENGINE_EXPORT
+@interface BENetworkingProcess: NSObject
+
+-(instancetype)init NS_UNAVAILABLE;
++(instancetype)new NS_UNAVAILABLE;
+
+/// Asynchronously finds an existing network extension process or launches a one.
+///
+/// This initializer finds an existing networking extension process. If it’s unable to find an
+/// existing process, it launches a new extension process.
+///
+/// - Parameters:
+/// - `interruptionHandler` : A block that is called if the extension process terminates.
+/// - `completion` : A block called with a new ``BEWebContentProcess`` when the extension process has
+/// launched or with an error.
++(void)networkProcessWithInterruptionHandler:(void(^)(void))interruptionHandler
+ completion:(void(^)(BENetworkingProcess* _Nullable process, NSError* _Nullable error))completion;
+
+/// Stops the extension process.
+///
+/// When you call this method, you tell the system your app no longer needs this extension process.
+/// The system will terminate the extension process.
+-(void)invalidate;
+
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+/// Creates a new libXPC connection to the extension process.
+///
+/// This method creates a connection to the extension process and returns it. If it is not possible to make an XPC connection, this method will return nil and populate the `error` out param.
+///
+/// - Returns: The connection object representing the created libXPC connection or nil.
+-(nullable xpc_connection_t)makeLibXPCConnectionError:(NSError* _Nullable*)error;
+#endif // TARGET_OS_OSX || TARGET_OS_IOS
+
+@end
+
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BERenderingProcess.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BERenderingProcess.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BERenderingProcess.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BERenderingProcess.h 2024-01-20 23:26:35
@@ -0,0 +1,63 @@
+//
+// BERenderingProcess.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+#include <xpc/xpc.h>
+#endif
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// An object that represents a running GPU extension process.
+///
+/// The system guarantees that the extension process has launched by the time the initializer methods return.
+/// If the extension process exits, the system calls ``interruptionHandler``. There can only be one extension process per
+/// host browser. The first time this type is initialized, a process will be launched. If a extension process is all ready
+/// running, the returned object will represent the already running process.
+NS_REFINED_FOR_SWIFT
+API_AVAILABLE(macos(14.3), ios(17.4))
+API_UNAVAILABLE(watchos, tvos, visionos)
+BROWSERENGINE_EXPORT
+@interface BERenderingProcess: NSObject
+
+-(instancetype)init NS_UNAVAILABLE;
++(instancetype)new NS_UNAVAILABLE;
+
+/// Asynchronously finds an existing extension process or launches one.
+///
+/// This initializer finds an existing extension rendering process. If it’s unable to find an
+/// existing process, it launches a new extension process.
+///
+/// - Parameters:
+/// - `interruptionHandler` : A block that is called if the extension process terminates.
+/// - `completion` : A block called with a new ``BERenderingProcess`` when the extension process has
+/// launched or with an error.
++(void)renderingProcessWithInterruptionHandler:(void(^)(void))interruptionHandler
+ completion:(void(^)(BERenderingProcess* _Nullable process, NSError* _Nullable error))completion;
+
+/// Stops the extension process.
+///
+/// When you call this method, you tell the system your app no longer needs this extension process.
+/// If this is the last connection from the host process to the extension process, the system terminates
+/// the extension process.
+-(void)invalidate;
+
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+/// Creates a new libXPC connection to the extension process.
+///
+/// This method creates a connection to the extension process and returns it. If it is not possible to make an XPC connection, this method will return nil and populate the `error` out param.
+///
+/// - Returns: The connection object representing the created libXPC connection or nil.
+-(nullable xpc_connection_t)makeLibXPCConnectionError:(NSError* _Nullable*)error;
+
+#endif // TARGET_OS_OSX || TARGET_OS_IOS
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEScrollView.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEScrollView.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEScrollView.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEScrollView.h 2024-01-20 23:26:35
@@ -0,0 +1,86 @@
+//
+// BEScrollView.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+
+#import <UIKit/UIKit.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@class BEScrollView, BEScrollViewScrollUpdate;
+
+
+BROWSERENGINE_EXPORT API_AVAILABLE(ios(17.4)) NS_SWIFT_UI_ACTOR
+@protocol BEScrollViewDelegate <UIScrollViewDelegate>
+
+@optional
+
+// If implemented, scroll updates will be passed to this delegate method before being handled by
+// the scroll view. The delegate may do some work, then must asynchronously call the completion block on the main queue.
+// This method will be called multiple times, and the delegate must call the completions in order.
+//
+// Extract information from `scrollUpdate` immediately, since its properties may change later,
+// and it's only safe to access on the main queue.
+//
+// Call the completion with `handled` = YES to indicate that you handled the scroll event and
+// don't want BEScrollView to react to the scroll event.
+// Pass `handled` = NO to have the event be handled in the normal way (just delayed).
+- (void)scrollView:(BEScrollView *)scrollView handleScrollUpdate:(BEScrollViewScrollUpdate *)scrollUpdate completion:(void (^)(BOOL handled))completion;
+
+// In order to implement CSS rendering, it may be necessary to make two scroll views siblings in the view tree that are nested in the DOM.
+// This method may be used to specify that a sibling scroll view should be considered the parent of another, for the purpose of gesture interaction and scroll transfer.
+// The parent is expected to be earlier in an in-order traversal of the view tree, since a parent would normally be visually underneath its child.
+// Return nil for the default behavior of traversing up the view tree to find a parent scroll view.
+- (nullable BEScrollView *)parentScrollViewForScrollView:(BEScrollView *)scrollView;
+
+@end
+
+
+// A scroll view with features specific to browsers.
+BROWSERENGINE_EXPORT API_AVAILABLE(ios(17.4)) NS_SWIFT_UI_ACTOR
+@interface BEScrollView : UIScrollView
+
+@property (nonatomic, weak, nullable) id<BEScrollViewDelegate> delegate;
+
+@end
+
+
+// Phases of a BEScrollViewScrollUpdate.
+typedef NS_ENUM(NSInteger, BEScrollViewScrollUpdatePhase) {
+ BEScrollViewScrollUpdatePhaseBegan, // Whenever a gesture scroll has physically started.
+ BEScrollViewScrollUpdatePhaseChanged, // Whenever a gesture scroll has changed.
+ BEScrollViewScrollUpdatePhaseEnded, // Whenever a gesture scroll physically ends.
+ BEScrollViewScrollUpdatePhaseCancelled, // Whenever a gesture scroll doesn't end but the system stops tracking.
+} NS_SWIFT_NAME(BEScrollViewScrollUpdate.Phase) API_AVAILABLE(ios(17.4));
+
+
+// An update from a scroll view issued during a scroll event (e.g. trackpad or mouse wheel) or deceleration after a scroll event.
+BROWSERENGINE_EXPORT API_AVAILABLE(ios(17.4)) NS_SWIFT_UI_ACTOR
+@interface BEScrollViewScrollUpdate : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+// The time when the update occurred, in seconds since system startup.
+@property (nonatomic, readonly) NSTimeInterval timestamp;
+
+// The phase of the update.
+@property (nonatomic, readonly) BEScrollViewScrollUpdatePhase phase;
+
+// The location of the pointer where the scroll occurred in the coordinate space of the specified view. Specify nil to indicate the window.
+- (CGPoint)locationInView:(nullable UIView *)view;
+
+// The scroll delta in the coordinate space of the specified view. Specify nil to indicate the window.
+- (CGPoint)translationInView:(nullable UIView *)view;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextAlternatives.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextAlternatives.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextAlternatives.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextAlternatives.h 2024-01-20 23:26:34
@@ -0,0 +1,30 @@
+//
+// BETextAlternatives.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class NSArray;
+@class NSString;
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BETextAlternatives : NSObject
+
+/**
+ * Original text for which alternative strings are provided
+ */
+@property (readonly) NSString *primaryString;
+
+/**
+ * Array of available aternative strings
+ */
+@property (readonly) NSArray<NSString *> *alternativeStrings;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentContext.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentContext.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentContext.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentContext.h 2024-01-20 23:26:34
@@ -0,0 +1,58 @@
+//
+// BETextDocumentContext.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BETextDocumentContext : NSObject
+
+/**
+ @abstract Initializes a new document context with plain text.
+ @param selectedText The currently selected text, or nil in the case of a caret selection.
+ This string may be empty but non-nil if non-textual content is selected, in which case a single call to -deleteBackward will not delete from contextBeforeSelection.
+ May be empty if its outside of the context's area, even if it exists elsewhere in the document.
+ @param contextBefore A suffix of the text preceding the selection, or nil if the selection is at the beginning of the document.
+ This text must correspond to a range that does not include any non-text content.
+ In particular, if a context comprises k backward-deletion clusters, then k calls to -deleteBackward must delete the corresponding text from the document.
+ The beginning of this string must lie on a word boundary (or not be inside a word at all).
+ @param contextAfter A prefix of the text following the selection, or nil if the selection is at the end of the document.
+ This text must correspond to a range that does not include any non-text content.
+ The end of this string must lie on a word boundary (or not be inside a word at all).
+ @param markedText May be empty if it's outside of the context's area, even if it exists elsewhere in the document.
+ @param selectedRangeInMarkedText The range of the current text selection, relative to the marked text range. Specify (NSNotFound, 0) if there is no marked text.
+ */
+- (instancetype)initWithSelectedText:(nullable NSString *)selectedText contextBefore:(nullable NSString *)contextBefore contextAfter:(nullable NSString *)contextAfter markedText:(nullable NSString *)markedText selectedRangeInMarkedText:(NSRange)selectedRangeInMarkedText;
+
+/**
+ * Initializes a new document context with attributed strings. The `selectedText`, `contextBefore`, and `contextAfter`
+ * represent the same ranges as they do in the `-initWithSelectedText:contextBefore:contextAfter:` initializer.
+ */
+- (instancetype)initWithAttributedSelectedText:(nullable NSAttributedString *)selectedText contextBefore:(nullable NSAttributedString *)contextBefore contextAfter:(nullable NSAttributedString *)contextAfter markedText:(nullable NSAttributedString *)markedText selectedRangeInMarkedText:(NSRange)selectedRangeInMarkedText;
+
+/**
+ * Adds a text `rect` for the given character `range`
+ * The CGRects representing each character range are specified in -textInputView coordinates.
+ */
+- (void)addTextRect:(CGRect)rect forCharacterRange:(NSRange)range;
+
+/**
+ * Array of `NSRange` values, relative to the full context string made by combining the
+ * `contextBefore`, `markedText` (or `selectedText` if the marked text is empty), and the
+ * `contextAfter`.
+ */
+@property (nonatomic, copy) NSArray<NSValue *> *autocorrectedRanges;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentRequest.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentRequest.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentRequest.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextDocumentRequest.h 2024-01-20 23:26:34
@@ -0,0 +1,47 @@
+//
+// BETextDocumentRequest.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UITextInput.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_OPTIONS(NSInteger, BETextDocumentRequestOptions) {
+ BETextDocumentOptionNone = 0,
+ BETextDocumentOptionText = 1 << 0,
+ BETextDocumentOptionAttributedText = 1 << 1,
+ BETextDocumentOptionTextRects = 1 << 2,
+ BETextDocumentOptionMarkedTextRects = 1 << 5,
+ BETextDocumentOptionAutocorrectedRanges = 1 << 7,
+} NS_SWIFT_NAME(BETextDocumentRequest.Options) BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BETextDocumentRequest : NSObject
+
+/**
+ * Represents the information that the system is requesting
+ */
+@property (nonatomic, assign) BETextDocumentRequestOptions options;
+
+/**
+ * Represents the granularity units for the scope of the request
+ */
+@property (nonatomic, assign) UITextGranularity surroundingGranularity;
+
+/**
+ * Represents the scope of the request as a count of granularity units specified in `surroundingGranularity`
+ */
+@property (nonatomic, assign) NSInteger granularityCount;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInput.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInput.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInput.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInput.h 2024-01-20 23:29:49
@@ -0,0 +1,562 @@
+//
+// BETextInput.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <BrowserEngineKit/BETextInputDelegate.h>
+#import <BrowserEngineKit/BEKeyEntry.h>
+#import <BrowserEngineKit/BETextSelectionTypes.h>
+#import <BrowserEngineKit/BETextAlternatives.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKit.h>
+#import <UIKit/UITextInput.h>
+#import <UIKit/UIColor.h>
+#import <UIKit/UIView.h>
+#import <UIKit/UIEditMenuInteraction.h>
+#import <UIKit/UIGestureRecognizer.h>
+
+@class BETextDocumentContext;
+@class BETextDocumentRequest;
+@class BETextSuggestion;
+@class BEKeyEntry;
+@class BEKeyEntryContext;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef struct {
+ NSInteger offset;
+ NSInteger length;
+} BEDirectionalTextRange BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+typedef NS_OPTIONS(NSUInteger, BETextReplacementOptions) {
+ BETextReplacementOptionsNone = 0,
+ BETextReplacementOptionsAddUnderline = 1 << 0,
+} BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+typedef NS_ENUM(NSInteger, BEKeyModifierFlags) {
+ BEKeyModifierFlagNone,
+ BEKeyModifierFlagShift,
+ BEKeyModifierFlagCapsLock
+} BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+#pragma mark - Text navigation
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@protocol BETextSelectionDirectionNavigation
+/**
+ * Moves the cursor in the specified directions, such as in response to an arrow key press.
+ */
+- (void)moveInLayoutDirection:(UITextLayoutDirection)direction;
+
+/**
+ * Extends text selection in the specified directions, such as in response to an arrow key press while shift is held.
+ */
+- (void)extendInLayoutDirection:(UITextLayoutDirection)direction;
+
+/**
+ * Moves the cursor in the specified directions by granularity, in response to different key combinations:
+ *
+ * Option + left/right = word
+ * Option + up/down = paragraph
+ * Command + left/right = line
+ * Command + up/down = document
+ */
+- (void)moveInStorageDirection:(UITextStorageDirection)direction byGranularity:(UITextGranularity)granularity;
+
+/**
+ * Moves the selection in the specified directions by granularity, in response to different key combinations:
+ *
+ * word = shift + option + left/right
+ * paragraph = shift + option + up/down
+ * line = shift + command + left/right
+ * document = shift + command + up/down
+ */
+- (void)extendInStorageDirection:(UITextStorageDirection)direction byGranularity:(UITextGranularity)granularity;
+@end
+
+@class UITextSelectionRect;
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@protocol BEExtendedTextInputTraits <UITextInputTraits>
+
+@optional
+
+/**
+ * Represents whether the active web input field is a single line document
+ */
+@property (nonatomic, readonly, getter=isSingleLineDocument) BOOL singleLineDocument;
+/**
+ * Disables the learning of new words and corrections and prevents their addition into the keyboard lexicon
+ */
+@property (nonatomic, readonly, getter=isTypingAdaptationEnabled) BOOL typingAdaptationEnabled;
+#pragma mark - Theming Traits
+
+/**
+ * Customizes the color of the text cursor at the insertion point
+ */
+@property (nullable, nonatomic, readonly) UIColor *insertionPointColor;
+
+/**
+ * Customizes the color of the selection handles
+ */
+@property (nullable, nonatomic, readonly) UIColor *selectionHandleColor;
+
+/**
+ * Customizes the color of the selection highlight rect
+ */
+@property (nullable, nonatomic, readonly) UIColor *selectionHighlightColor;
+
+@end
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@protocol BETextInput <UIKeyInput, BETextSelectionDirectionNavigation>
+
+/**
+ * A system-provided input delegate is assigned when the system is interested in input changes.
+ */
+@property (nullable, nonatomic, weak) id <BETextInputDelegate> asyncInputDelegate;
+
+/**
+ * Returns whether text related actions, such those included in UIResponderStandardEditActions, can be handled
+ */
+- (BOOL)canPerformAction:(SEL)action withSender:(nullable id)sender;
+
+#pragma mark - Text Input Methods
+
+/**
+ * Reflects the ability to modify text
+ */
+@property (nonatomic, readonly, getter=isEditable) BOOL editable;
+
+/**
+ * Delegates the handling for each stage of a key event (key down, press, up) and allows the BETextInput object to indicate whether it should prevent default system behaviors.
+ */
+- (void)handleKeyEntry:(BEKeyEntry *)event withCompletionHandler:(void (^)(BEKeyEntry *theEvent, BOOL wasHandled))completionHandler;
+
+/**
+ * Indicates a transition in shift state
+ */
+- (void)shiftKeyStateChangedFromState:(BEKeyModifierFlags)oldState toState:(BEKeyModifierFlags)newState;
+
+/**
+ * Returns the text in the specified range.
+ */
+- (nullable NSString *)textInRange:(UITextRange *)range;
+
+/**
+ * Returns the number of UTF-16 characters between one text position and another text position.
+ */
+- (NSInteger)offsetFromPosition:(UITextPosition *)from toPosition:(UITextPosition *)toPosition;
+
+/**
+ * Sets the base writing direction for a specified range of text in a document.
+ */
+- (void)setBaseWritingDirection:(NSWritingDirection)writingDirection forRange:(UITextRange *)range;
+
+/**
+ * Deletes text by the specified direction and granularity. Current supported combinations include:
+ *
+ * character backward = delete
+ * character forward = delete-forward
+ * word backward = option + delete
+ * word forward = option + delete-forward
+ * line end = cmd + delete
+ * line start = comd + delete-forward
+ * paragraph end = ctrl + K
+ * paragraph start = ctrl + fn + K
+ *
+ * (On Apple keyboards, the delete-forward key is a combination of fn + delete)
+ */
+- (void)deleteInDirection:(UITextStorageDirection)direction toGranularity:(UITextGranularity)granularity;
+
+#pragma mark - Text Editing and Autocorrection
+
+/**
+ * Transposes the characters on either side of the caret in response to the key command, ctrl + T
+ */
+- (void)transposeCharactersAroundSelection;
+
+/**
+ * Replace the specified text preceding the current selection.
+ *
+ * Completion handler should be invoked with the rects representing the replacementText. If the replaceText
+ * could not be completed succesfully, such as when the originalText no longer matches the current text, then
+ * the completion handler should be invoked with an empty array.
+ */
+- (void)replaceText:(NSString *)originalText withText:(NSString *)replacementText options:(BETextReplacementOptions)options completionHandler:(void (^)(NSArray<UITextSelectionRect *> *rects))completionHandler;
+
+/**
+ * Invoked by the system to gather context around the current selection. Clients should generally include the setence
+ * that contains the current selection and include the previous sentence if the current selection is at a boundary.
+ */
+- (void)requestTextContextForAutocorrectionWithCompletionHandler:(void (^)(BETextDocumentContext *context))completionHandler;
+
+/**
+ * Invoked by the system to gather context for the presentation of various text related UI's.
+ * Completion handler should be invoked with the `UITextSelectionRect`s for the substring nearest to the caret
+ * that matches the given `input`
+ */
+- (void)requestTextRectsForString:(NSString *)input withCompletionHandler:(void (^)(NSArray<UITextSelectionRect *> *rects))completionHandler;
+
+/**
+ * Controls whether the edit menu is allowed to be presented or should be suppressed.
+ */
+@property (readonly, nonatomic) BOOL automaticallyPresentEditMenu;
+
+/**
+ * Invoked by the system to gather context, including the client's preference for how the edit menu should be positioned
+ * relative to the selected text.
+ */
+- (void)requestPreferredArrowDirectionForEditMenuWithCompletionHandler:(void (^)(UIEditMenuArrowDirection))completionHandler API_UNAVAILABLE(watchos, tvos);
+
+/**
+ * Invoked by the system when it is about to present an edit menu with an animator.
+ */
+- (void)systemWillPresentEditMenuWithAnimator:(id<UIEditMenuInteractionAnimating>)animator API_UNAVAILABLE(watchos, tvos);
+
+/**
+ * Invoked by the system when it is about to dismiss an edit menu with an animator.
+ */
+- (void)systemWillDismissEditMenuWithAnimator:(id<UIEditMenuInteractionAnimating>)animator API_UNAVAILABLE(watchos, tvos);
+
+#pragma mark - Input Traits
+
+/**
+ * Object from which the BEExtendedTextInputTraits will be gathered.
+ */
+@property (nullable, nonatomic, readonly) id<BEExtendedTextInputTraits> extendedTextInputTraits;
+
+/**
+ * Returns a dictionary containing NSAttributedString keys represeting appearance customizations.
+ *
+ * For example, text styling information influence the appearance of a correction rect.
+ */
+- (nullable NSDictionary<NSAttributedStringKey, id> *)textStylingAtPosition:(UITextPosition *)position inDirection:(UITextStorageDirection)direction;
+
+#pragma mark Text Replacement
+
+/**
+ * Returns whether replacement should be allowed for an editable element.
+ *
+ * For example, replacement shouldn't be allowed in password fields or when the selected text
+ * is only consists of whitespace.
+ */
+@property (nonatomic, readonly, getter=isReplaceAllowed) BOOL replaceAllowed;
+
+/**
+ * Replaces the specified `text` with `replacementText`
+ *
+ * 1. If there is a nonzero length current selection, then replace text with replacementText.
+ * 2. If there is zero length current selection, then replace the matching word before the selection
+ * 3. If the zero length selection is at the start of the element, then replace the matching word after the selection
+ */
+- (void)replaceSelectedText:(NSString *)text withText:(NSString *)replacementText;
+
+#pragma mark Gesture
+
+/**
+ * Indicates the `point` the text interaction gesture is tracking has changed
+ *
+ * Indicate to the system the change was handled by invoking:
+ * -[BETextInteraction selectionChangedWithGestureAtPoint:gesture:state:flags:]
+ */
+- (void)updateCurrentSelectionTo:(CGPoint)point fromGesture:(BEGestureType)gestureType inState:(UIGestureRecognizerState)state;
+
+/**
+ * Indicates the selection should change to contain the text between the
+ * `from` and `to` points.
+ *
+ * For example, see the keyboard's trackpad selection gesture explained in
+ * "Turn the onscreen keyboard into a trackpad" guide on support.apple.com
+ */
+- (void)setSelectionFromPoint:(CGPoint)from toPoint:(CGPoint)to gesture:(BEGestureType)gestureType state:(UIGestureRecognizerState)gestureState;
+
+/**
+ * Adjusts the selection's start or end boundary specified by `boundaryIsStart` to the `point`
+ *
+ * For example, the selection's boundary would be adjusted when the user moves the selection handles
+ *
+ * Indicate to the system that the change was handled by invoking:
+ * -[BETextInteraction selectionBoundaryAdjustedToPoint:touchPhase:flags:]
+ */
+- (void)adjustSelectionBoundaryToPoint:(CGPoint)point touchPhase:(BESelectionTouchPhase)touch baseIsStart:(BOOL)boundaryIsStart flags:(BESelectionFlags)flags;
+
+/**
+ * Returns whether a gesture with the given `gestureType` should begin for the given `point`
+ */
+- (BOOL)textInteractionGesture:(BEGestureType)gestureType shouldBeginAtPoint:(CGPoint)point;
+
+#pragma mark Text selection
+
+/**
+ * String representing the selected text.
+ */
+@property (nonatomic, readonly) NSString *selectedText;
+
+/**
+ * Range representing the selected text.
+ *
+ * Text may have a selection, either zero-length (a caret) or ranged.
+ * Editing operations are always performed on the text from this selection. nil corresponds to no selection.
+ */
+@property (nullable, readwrite, copy) UITextRange *selectedTextRange;
+
+/**
+ * Represents whether the current selection is at the beginning of the document
+ */
+@property (nonatomic, readonly, getter=isSelectionAtDocumentStart) BOOL selectionAtDocumentStart;
+
+/**
+ * Returns a rectangle to draw the caret at a specified insertion point.
+ */
+- (CGRect)caretRectForPosition:(UITextPosition *)position;
+
+/**
+ * Returns an array of selection rects corresponding to the range of text.
+ */
+- (NSArray<UITextSelectionRect *> *)selectionRectsForRange:(UITextRange *)range;
+
+/**
+ * Selects a word with autocorrect replacement suggestions when it is tapped
+ */
+- (void)selectWordForReplacement;
+
+/**
+ * Adjusts the selection from current text position to include text at the given `point`.
+ *
+ * For example, while holding shift, click a point in a text document and the current selection should adjust to include
+ * all the text up to that point.
+ */
+- (void)updateSelectionWithExtentPoint:(CGPoint)point withBoundary:(UITextGranularity)granularity completionHandler:(void (^)(BOOL selectionEndIsMoving))completionHandler;
+
+/**
+ * Updates the selection to text contained within the specified `granularity` at the given `point`
+ */
+- (void)selectTextWithGranularity:(UITextGranularity)granularity atPoint:(CGPoint)point completionHandler:(void (^)(void))completionHandler;
+
+/**
+ * Sets the selection caret to the given point
+ */
+- (void)selectPositionAtPoint:(CGPoint)point completionHandler:(void (^)(void))completionHandler;
+
+/**
+ * Sets the selection caret to the given point. Also includes a convenience document context request.
+ */
+- (void)selectPositionAtPoint:(CGPoint)point withContextRequest:(BETextDocumentRequest *)request completionHandler:(void (^)(BETextDocumentContext *))completionHandler;
+
+/**
+ * Adjusts the selection by the moving the selected range by the given `range`, in character granularity units.
+ *
+ * The start of the current selection is moved by `range.offset` characters, and the length of the selection
+ * is modified by `range.length` characters. For instance, if the current selection is the word "world" in
+ * "Hello world" and the `range` is `{ -6, -2 }`, the selected text after adjustment will be "Hel".
+ */
+- (void)adjustSelectionByRange:(BEDirectionalTextRange)range completionHandler:(void (^)(void))completionHandler;
+
+/**
+ * Adjusts the current selection by `offset` in character granularity units
+ */
+- (void)moveByOffset:(NSInteger)offset;
+
+/**
+ * Moves the caret to relative to the current position in the `direction` to the given `granularity`.
+ * The `direction` is "forward" or "backward" in accordance with the directionality of the language.
+ *
+ * This method is invoked only when -[BETextInput textInteractionGesture:shouldBeginAtPoint:] returns YES.
+ */
+- (void)moveSelectionAtBoundary:(UITextGranularity)granularity inStorageDirection:(UITextStorageDirection)direction completionHandler:(void (^)(void))completionHandler;
+
+/**
+ * Indicates the edit menu is being shown at the given location in the text input view's
+ * coordinate space.
+ *
+ * The completion handler takes a BOOL indicating whether or not the menu
+ * should be shown, a string representing the text context around the updated selection range
+ * (generally encompassing the paragraph that contains the selection range) as well as the
+ * range of the updated selection, relative to the paragraph context.
+ */
+- (void)selectTextForEditMenuWithLocationInView:(CGPoint)locationInView completionHandler:(void(^)(BOOL shouldPresentMenu, NSString * _Nullable contextString, NSRange selectedRangeInContextString))completionHandler;
+
+#pragma mark - Marked Text
+
+/**
+ * String for the text that has been marked as part of an active input session
+ */
+@property (nonatomic, readonly) NSString *markedText;
+
+/**
+ * Attributed string for the text that has been marked as part of an active input session
+ */
+@property (nonatomic, readonly) NSAttributedString *attributedMarkedText;
+
+/**
+ * Range representing the position of the markedText.
+ *
+ * If text can be selected, it can be marked. Marked text represents provisionally
+ * inserted text that has yet to be confirmed by the user. It requires unique visual
+ * treatment in its display. If there is any marked text, the selection, whether a
+ * caret or an extended range, always resides within.
+ *
+ * Setting marked text either replaces the existing marked text or, if none is present,
+ * inserts it from the current selection.
+ *
+ * Return nil if no marked text
+ */
+@property (nullable, nonatomic, readonly) UITextRange *markedTextRange;
+
+/**
+ * Indicates whether there any text is currently marked as part of an active input session
+ */
+@property (nonatomic, readonly) BOOL hasMarkedText;
+
+/**
+ * Inserts the provided text and marks it to indicate that it is part of an active input session.
+ */
+- (void)setMarkedText:(nullable NSString *)markedText selectedRange:(NSRange)selectedRange;
+
+/**
+ * Inserts the provided styled text and marks it to indicate that it is part of an active input session.
+ */
+- (void)setAttributedMarkedText:(nullable NSAttributedString *)markedText selectedRange:(NSRange)selectedRange;
+
+/**
+ * Unmarks the currently marked text
+ */
+- (void)unmarkText;
+
+/**
+ * Returns whether a point should be considered "near" the marked text.
+ * Used to determine whether text interaction gestures near marked text should begin.
+ *
+ * For example, text interaction gestures may considered "near" if they are within 66 points.
+ */
+- (BOOL)isPointNearMarkedText:(CGPoint)point;
+
+#pragma mark - Document context
+
+/**
+ * Gathers context about the current document for the system
+ */
+- (void)requestDocumentContext:(BETextDocumentRequest *)request completionHandler:(void (^)(BETextDocumentContext *))completionHandler;
+
+#pragma mark Dictation
+
+/**
+ * Indicates the system is about to insert the final dictation result.
+ */
+- (void)willInsertFinalDictationResult;
+
+/**
+ * Inserts/replaces text for a dictation.
+ */
+- (void)replaceDictatedText:(NSString *)oldText withText:(NSString *)newText;
+
+/**
+ * Indicates system has inserted the final dictation result
+ */
+- (void)didInsertFinalDictationResult;
+
+#pragma mark - Text Alternatives
+
+/**
+ * Returns the text alternatives that are available to the text input object.
+ */
+- (NSArray<BETextAlternatives *> *)alternativesForSelectedText;
+
+/**
+ * Adds text alternatives to the text input object for the current selection
+ */
+- (void)addTextAlternatives:(BETextAlternatives *)alternatives;
+
+/**
+ * Inserts the given `text` or one of it's alternative texts available on `alternatives`
+ */
+- (void)insertTextAlternatives:(BETextAlternatives *)alternatives;
+
+#pragma mark - Text Placeholders
+
+/**
+ * Inserts a placeholder object to reserve visual space during text input.
+ * If `size.height` is less than or equal to zero, then the placeholder is inline and line height.
+ * If `size.height` is greather than zero, then the placeholder is treated as a paragraph of height `size.height`.
+ */
+- (void)insertTextPlaceholderWithSize:(CGSize)size completionHandler:(void (^)(UITextPlaceholder *))completionHandler;
+
+/**
+ * Removes a placeholder object from the text input view.
+ */
+- (void)removeTextPlaceholder:(UITextPlaceholder *)placeholder willInsertText:(BOOL)willInsertText completionHandler:(void (^)(void))completionHandler;
+
+#pragma mark - Suggestions
+
+/**
+ * Inserts a `textSuggestion` in response to a user suggestion selection
+ */
+- (void)insertTextSuggestion:(BETextSuggestion *)textSuggestion;
+
+#pragma mark - Geometry
+/**
+ * An affiliated view that provides a coordinate system for all geometric values in this protocol.
+ * If unimplemented, the first view in the responder chain will be selected.
+ */
+@property (nonatomic, readonly) __kindof UIView *textInputView;
+
+/**
+ * Returns a rect representing the bounds of the first line of marked text, if marked text is set.
+ *
+ * Otherwise, this returns a rect representing the bounds of the last word at or before the insertion point.
+ */
+@property (nonatomic, readonly) CGRect textFirstRect;
+
+/**
+ * Returns a rect representing the bounds of the last line of marked text, if marked text is set.
+ *
+ * Otherwise, this returns a rect representing the bounds of the last word at or before the insertion point.
+ * This may have the same value of `textFirstRect`, but can differ in cases such as a word that spans two lines.
+ */
+@property (nonatomic, readonly) CGRect textLastRect;
+
+/**
+ * Rect used to place UI (such as selection handles) in a location that isn't obscurred by app UI.
+ *
+ * Must return a rect in `textInputView`'s coordinate space.
+ */
+@property (nonatomic, readonly) CGRect unobscuredContentRect;
+
+/**
+ * View representing the web content that is agnostic of zoom state.
+ * Used to draw zoom agnostic system UI elements, such as the selection handles
+ */
+@property (nonatomic, readonly) UIView *unscaledView;
+
+/**
+ * Rect representing the bounds of editable elements, used to ensure and UI don't overflow outside them
+ */
+@property (nonatomic, readonly) CGRect selectionClipRect;
+
+/**
+ * Indicates autoscrolling has been triggered by a text interaction gesture.
+ *
+ * Called repeatedly during range adjustment gestures, or when placing the text cursor.
+ *
+ * The given point is in the coordinate space of the `textInputView`.
+ */
+- (void)autoscrollToPoint:(CGPoint)point;
+
+/**
+ * Indicates autoscrolling is complete.
+ *
+ * There will be no more calls into`autoscrollToPoint` until a text interaction gesture starts autoscrolling.
+ */
+- (void)cancelAutoscroll;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInputDelegate.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInputDelegate.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInputDelegate.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInputDelegate.h 2024-01-20 23:26:34
@@ -0,0 +1,65 @@
+//
+// BETextInputDelegate.h
+// ServiceExtensions
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BETextInput.h>
+
+@class BEKeyEntryContext;
+@class BETextSuggestion;
+@protocol BETextInput;
+
+NS_ASSUME_NONNULL_BEGIN
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@protocol BETextInputDelegate
+
+/**
+ * Defers the key event to the system and returns whether the key event was handled.
+ *
+ * For example, the system will handle key events for character insertions, deletions, key commands, and more.
+ */
+- (BOOL)shouldDeferEventHandlingToSystemForTextInput:(id<BETextInput>)textInput context:(BEKeyEntryContext *)keyEventContext;
+
+/**
+ * Provides text suggestions to the system.
+ *
+ * For example, suggestions could include data list elements or AutoFill candidates.
+ */
+- (void)textInput:(id<BETextInput>)textInput setCandidateSuggestions:(NSArray<BETextSuggestion *> * _Nullable)suggestions;
+
+/**
+ * Tells the system when the selection is about to change in the document.
+ */
+- (void)selectionWillChangeForTextInput:(id <BETextInput>)textInput;
+
+/**
+ * Tells the system when the selection has changed in the document.
+ *
+ * This method results in an document state refresh with an invocation to:
+ * -[BETextInput requestTextContextForAutocorrectionWithCompletionHandler:]
+ */
+- (void)selectionDidChangeForTextInput:(id <BETextInput>)textInput;
+
+/**
+ * Defers a replace text action to the ssytem.
+ *
+ * When handling the replace: action, use this method to defer the replacement to the system.
+ *
+ * For example, a replacement could be deferred after it is selected from the autocorrect replacements list.
+ */
+- (void)textInput:(id<BETextInput>)textInput deferReplaceTextActionToSystem:(id)sender;
+
+/**
+ * Tells the system the text entry context has changed and that text entry UI's need to be refreshed.
+ *
+ * This is a costly operation and should only used with intention. For example, when switching focus
+ * between different elements.
+ */
+- (void)invalidateTextEntryContextForTextInput:(id<BETextInput>)textInput;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteraction.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteraction.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteraction.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteraction.h 2024-01-20 23:26:34
@@ -0,0 +1,127 @@
+//
+// BETextInteraction.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+#import <BrowserEngineKit/BETextSelectionTypes.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if BROWSERENGINEKIT_HAS_UIVIEW
+#import <UIKit/UIKit.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@protocol BETextInteractionDelegate;
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BETextInteraction : NSObject<UIInteraction>
+
+/**
+ * Assign a delegate to this object to receive callback information
+ */
+@property (weak, nonatomic) id<BETextInteractionDelegate> delegate;
+
+/**
+ * Presents a sheet to add a text replacement shortcut to the keyboard dictionary
+ *
+ * Generally used for IME languages, such as Chinese/Japanese
+ */
+- (void)addShortcutForText:(NSString *)text fromRect:(CGRect)presentationRect;
+
+/**
+ * Presents a share sheet for the `text` positioned relative to the `presentationRect`
+ */
+- (void)shareText:(NSString *)text fromRect:(CGRect)presentationRect;
+
+/**
+ * Presents a dictionary definition view for the `textWithContext` positioned relative to the `presentationRect`
+ */
+- (void)showDictionaryForTextInContext:(NSString *)textWithContext definingTextInRange:(NSRange)range fromRect:(CGRect)presentationRect;
+
+/**
+ * Presents a translation view for the `text` positioned relative to the `presentationRect`
+ */
+- (void)translateText:(NSString *)text fromRect:(CGRect)presentationRect;
+
+/**
+ * Displays the inline text replacement UI for the current selection.
+ * For example, inline text replacements are displayed in response to the "Replace..." option in the edit menu.
+ *
+ * Could be invoked when handling `promptForReplace:` action
+ */
+- (void)showReplacementsForText:(NSString *)text;
+
+/**
+ * Converts the text selection between traditional and simplified Chinese
+ *
+ * Could be invoked when handling `transliterateChinese` action
+ */
+- (void)transliterateChineseForText:(NSString *)text;
+
+/**
+ * Presents an edit menu for the current text selection
+ */
+- (void)presentEditMenuForSelection;
+
+/**
+ * Dismisses an edit menu for the current text selection
+ */
+- (void)dismissEditMenuForSelection;
+
+/**
+ * Tells the system that the document's editability status has changed.
+ *
+ * In response, the system refreshes the text interaction gestures, depending on the value of `isEditable`
+ */
+- (void)editabilityChanged;
+
+/**
+ * Tells the system to refresh the keyboard UI.
+ *
+ * This lightweight method refreshes the selection UI. For example, this could be invoked in response to
+ * programmatic text selection changes, independent of text interaction gestures
+ */
+- (void)refreshKeyboardUI;
+
+/**
+ * Tells the system that the selection change has been handled for the given `point` and gesture.
+ *
+ * Should be invoked in response to:
+ * -[BETextInput updateCurrentSelectionTo:fromGesture:inState:]
+ */
+- (void)selectionChangedWithGestureAtPoint:(CGPoint)point gesture:(BEGestureType)gestureType state:(UIGestureRecognizerState)gestureState flags:(BESelectionFlags)flags;
+
+/**
+ * Tells the system the selection adjustment has been handled for the given `point` and touch
+ *
+ * Should be invoked in response to:
+ * -[BETextInput adjustSelectionBoundaryToPoint:touchPhase:baseIsStart:flags:]
+ */
+- (void)selectionBoundaryAdjustedToPoint:(CGPoint)point touchPhase:(BESelectionTouchPhase)touch flags:(BESelectionFlags)flags;
+
+/**
+ * Returns a UITextSelectionDisplayInteraction that manages selection UI
+ */
+@property (nonatomic, readonly) UITextSelectionDisplayInteraction *textSelectionDisplayInteraction;
+
+#if !TARGET_OS_TV && !TARGET_OS_WATCH
+/**
+ * Set a delegate to receive callbacks for the context menu interaction
+ */
+@property (nonatomic, weak) id <UIContextMenuInteractionDelegate> contextMenuInteractionDelegate API_UNAVAILABLE(watchos, tvos);
+
+/**
+ * Returns a UIContextMenuInteraction object whose delegate methods will be invoked
+ * on `contextMenuInteractionDelegate`
+ */
+@property (nonatomic, readonly) UIContextMenuInteraction *contextMenuInteraction API_UNAVAILABLE(watchos, tvos);
+
+#endif
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // BROWSERENGINEKIT_HAS_UIVIEW
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteractionDelegate.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteractionDelegate.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteractionDelegate.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextInteractionDelegate.h 2024-01-20 23:26:34
@@ -0,0 +1,28 @@
+//
+// BETextInteractionDelegate.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+
+@class BETextInteraction;
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@protocol BETextInteractionDelegate
+
+/**
+ * Invoked by the system when the selection is about to change in the document.
+ */
+- (void)systemWillChangeSelectionForInteraction:(BETextInteraction *)textInteraction;
+
+/**
+ * Invoked by the system when the selection is about to change in the document.
+ */
+- (void)systemDidChangeSelectionForInteraction:(BETextInteraction *)textInteraction;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSelectionTypes.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSelectionTypes.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSelectionTypes.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSelectionTypes.h 2024-01-20 23:26:34
@@ -0,0 +1,37 @@
+//
+// BETextSuggestion.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <BrowserEngineKit/BEMacros.h>
+#import <Foundation/Foundation.h>
+
+typedef NS_ENUM(NSInteger, BEGestureType) {
+ BEGestureTypeLoupe = 0,
+ BEGestureTypeOneFingerTap = 1,
+ BEGestureTypeDoubleTapAndHold = 2,
+ BEGestureTypeDoubleTap = 3,
+ BEGestureTypeOneFingerDoubleTap = 8,
+ BEGestureTypeOneFingerTripleTap = 9,
+ BEGestureTypeTwoFingerSingleTap = 10,
+ BEGestureTypeTwoFingerRangedSelectGesture = 11,
+ BEGestureTypeIMPhraseBoundaryDrag = 14, // Used when adjusting marked text
+ BEGestureTypeForceTouch = 15,
+} BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+typedef NS_ENUM(NSInteger, BESelectionTouchPhase) {
+ BESelectionTouchPhaseStarted,
+ BESelectionTouchPhaseMoved,
+ BESelectionTouchPhaseEnded,
+ BESelectionTouchPhaseEndedMovingForward,
+ BESelectionTouchPhaseEndedMovingBackward,
+ BESelectionTouchPhaseEndedNotMoving
+} BROWSERENGINE_TEXTINPUT_AVAILABILITY;
+
+typedef NS_OPTIONS(NSUInteger, BESelectionFlags) {
+ BESelectionFlagsNone = 0,
+ BEWordIsNearTap = 1 << 0,
+ BESelectionFlipped = 1 << 1,
+ BEPhraseBoundaryChanged = 1 << 2,
+} BROWSERENGINE_TEXTINPUT_AVAILABILITY;
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSuggestion.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSuggestion.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSuggestion.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BETextSuggestion.h 2024-01-20 23:26:34
@@ -0,0 +1,30 @@
+//
+// BETextSuggestion.h
+//
+// Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+BROWSERENGINE_EXPORT BROWSERENGINE_TEXTINPUT_AVAILABILITY
+@interface BETextSuggestion : NSObject
+
+/**
+ * Initializes a new text suggestion with the given input text.
+ */
+- (instancetype)initWithInputText:(NSString *)inputText;
+
+/**
+ * Text that will be inserted into the document when the user chooses the suggestion.
+ */
+@property (nonatomic, copy, readonly) NSString *inputText;
+
+- (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEWebContentProcess.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEWebContentProcess.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEWebContentProcess.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BEWebContentProcess.h 2024-01-20 23:26:35
@@ -0,0 +1,60 @@
+//
+// BEWebContentProcess.h
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineKit/BEMacros.h>
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+#include <xpc/xpc.h>
+#endif // TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// An object that represents a running web content extension process.
+///
+/// The system guarantees that the extension process has launched by the time the initializer methods return.
+/// If the extension process exits, the system calls ``interuptionHandler``. There can multiple web content process
+/// per host browser. Each time this type is initialized, a new extension process will be launched.
+NS_REFINED_FOR_SWIFT
+API_AVAILABLE(macos(14.3), ios(17.4))
+API_UNAVAILABLE(watchos, tvos, visionos)
+BROWSERENGINE_EXPORT
+@interface BEWebContentProcess: NSObject
+
+-(instancetype)init NS_UNAVAILABLE;
++(instancetype)new NS_UNAVAILABLE;
+
+/// Asynchronously launches a web content process
+///
+/// This initializer launches a new web content extension process.
+///
+/// - Parameters:
+/// - `interruptionHandler` : A block that is called if the extension process terminates.
+/// - `completion` : A block called with a new ``BEWebContentProcess`` when the extension process has
+/// launched or with an error.
++(void)webContentProcessWithInterruptionHandler:(void(^)(void))interruptionHandler
+ completion:(void(^)(BEWebContentProcess* _Nullable process, NSError* _Nullable error))completion;
+
+/// Stops the extension process.
+///
+/// When you call this method, you tell the system your app no longer needs this extension process.
+/// If this is the last connection from the host process to the extension process, the system terminates
+/// the extension process.
+-(void)invalidate;
+
+
+#if TARGET_OS_OSX || TARGET_OS_IOS && !TARGET_OS_VISION
+/// Creates a new libXPC connection to the extension process.
+///
+/// This method creates a connection to the extension process and returns it. If it is not possible to make an XPC connection, this method will return nil and populate the `error` out param.
+///
+/// - Returns: The connection object representing the created libXPC connection or nil.
+-(nullable xpc_connection_t)makeLibXPCConnectionError:(NSError* _Nullable*)error;
+#endif // TARGET_OS_OSX || TARGET_OS_IOS
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BrowserEngineKit.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BrowserEngineKit.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BrowserEngineKit.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/BrowserEngineKit.framework/Headers/BrowserEngineKit.h 2024-01-20 23:26:34
@@ -0,0 +1,32 @@
+//
+// BrowserEngineKit.h
+//
+
+#import <Foundation/Foundation.h>
+#import <BrowserEngineCore/BrowserEngineCore.h>
+
+#import <BrowserEngineKit/BEMacros.h>
+#import <BrowserEngineKit/BEContextMenuConfiguration.h>
+#import <BrowserEngineKit/BEDragInteraction.h>
+#import <BrowserEngineKit/BEScrollView.h>
+
+#import <BrowserEngineKit/BEWebContentProcess.h>
+#import <BrowserEngineKit/BENetworkingProcess.h>
+#import <BrowserEngineKit/BERenderingProcess.h>
+
+#import <BrowserEngineKit/BETextInput.h>
+#import <BrowserEngineKit/BETextInputDelegate.h>
+#import <BrowserEngineKit/BETextSelectionTypes.h>
+
+#import <BrowserEngineKit/BETextAlternatives.h>
+#import <BrowserEngineKit/BETextSuggestion.h>
+#import <BrowserEngineKit/BEAutoFillTextSuggestion.h>
+
+#import <BrowserEngineKit/BETextInteraction.h>
+#import <BrowserEngineKit/BETextInteractionDelegate.h>
+
+#import <BrowserEngineKit/BEKeyEntry.h>
+#import <BrowserEngineKit/BEKeyEntryContext.h>
+
+#import <BrowserEngineKit/BETextDocumentRequest.h>
+#import <BrowserEngineKit/BETextDocumentContext.h>
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status