Skip to content

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>
Clone this wiki locally