diff --git a/src/WebKit/WKWebExtensionMatchPattern.cs b/src/WebKit/WKWebExtensionMatchPattern.cs new file mode 100644 index 000000000000..18bb698eaa83 --- /dev/null +++ b/src/WebKit/WKWebExtensionMatchPattern.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using Foundation; + +namespace WebKit { + public partial class WKWebExtensionMatchPattern { + /// Create a new for the specified pattern. + /// The pattern to initialize the new instance with. + /// The error object, if an error occurred, otherwise null. + /// A newly created if successful, otherwise null. + public static WKWebExtensionMatchPattern? Create (string @string, out NSError? error) + { + var rv = new WKWebExtensionMatchPattern (NSObjectFlag.Empty); + rv.InitializeHandle (rv._InitWithString (@string, out error), string.Empty, false); + if (rv.Handle == IntPtr.Zero) { + rv.Dispose (); + return null; + } + return rv; + } + + /// Create a new for the specified scheme, host and path. + /// The scheme to initialize the new instance with. + /// The host to initialize the new instance with. + /// The path to initialize the new instance with. + /// The error object, if an error occurred, otherwise null. + /// A newly created if successful, otherwise null. + public static WKWebExtensionMatchPattern? Create (string scheme, string host, string path, out NSError? error) + { + var rv = new WKWebExtensionMatchPattern (NSObjectFlag.Empty); + rv.InitializeHandle (rv._InitWithScheme (scheme, host, path, out error), string.Empty, false); + if (rv.Handle == IntPtr.Zero) { + rv.Dispose (); + return null; + } + return rv; + } + } +} diff --git a/src/frameworks.sources b/src/frameworks.sources index bf10835102b8..ac91cf01cbb4 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -1895,6 +1895,7 @@ WEBKIT_SOURCES = \ WebKit/WebView.cs \ WebKit/WKCompat.cs \ WebKit/WKPreferences.cs \ + WebKit/WKWebExtensionMatchPattern.cs \ WebKit/WKWindowFeatures.cs \ # diff --git a/src/webkit.cs b/src/webkit.cs index cb2dd9859da1..263e66a6d1a4 100644 --- a/src/webkit.cs +++ b/src/webkit.cs @@ -4540,15 +4540,21 @@ interface WKNavigationAction { [Export ("request", ArgumentSemantic.Copy)] NSUrlRequest Request { get; } - [NoiOS] - [NoMacCatalyst] [Export ("modifierFlags")] + [iOS (18, 4), MacCatalyst (18, 4)] +#if __IOS__ || __MACCATALYST_ + UIKeyModifierFlags ModifierFlags { get; } +#else NSEventModifierMask ModifierFlags { get; } +#endif - [NoiOS] - [NoMacCatalyst] [Export ("buttonNumber")] + [iOS (18, 4), MacCatalyst (18, 4)] +#if __IOS__ || __MACCATALYST_ + UIEventButtonMask ButtonNumber { get; } +#else nint ButtonNumber { get; } +#endif [iOS (14, 5)] [MacCatalyst (14, 5)] @@ -4614,8 +4620,14 @@ interface WKNavigationDelegate { [MacCatalyst (14, 5)] [Export ("webView:navigationResponse:didBecomeDownload:")] void NavigationResponseDidBecomeDownload (WKWebView webView, WKNavigationResponse navigationResponse, WKDownload download); + + [iOS (18, 4), MacCatalyst (18, 4), Mac (15, 4), NoTV] + [Export ("webView:shouldGoToBackForwardListItem:willUseInstantBack:completionHandler:")] + void ShouldGoToBackForwardListItem (WKWebView webView, WKBackForwardListItem backForwardListItem, bool willUseInstantBack, WKNavigationDelegateShouldGoToBackForwardListItemCallback completionHandler); } + delegate void WKNavigationDelegateShouldGoToBackForwardListItemCallback (bool shouldGoToItem); + /// Interface representing the required methods (if any) of the protocol . /// /// This interface contains the required methods (if any) from the protocol defined by . @@ -4986,14 +4998,13 @@ interface WKWebsiteDataStore : NSSecureCoding { NWProxyConfig [] ProxyConfigurations { get; set; } } - [NoiOS, NoTV] - [NoMacCatalyst] + [iOS (18, 4), NoTV] + [MacCatalyst (18, 4)] [BaseType (typeof (NSObject))] interface WKOpenPanelParameters { [Export ("allowsMultipleSelection")] bool AllowsMultipleSelection { get; } - [NoMacCatalyst] [Export ("allowsDirectories")] bool AllowsDirectories { get; } } @@ -5033,8 +5044,8 @@ void RunJavaScriptTextInputPanel (WKWebView webView, string prompt, [NullAllowed void RunJavaScriptTextInputPanel (WKWebView webView, string prompt, [NullAllowed] string defaultText, WKFrameInfo frame, WKUIDelegateRunJavaScriptTextInputPanelCallback completionHandler); #endif - [NoiOS, NoTV] - [NoMacCatalyst] + [iOS (18, 4), NoTV] + [MacCatalyst (18, 4)] [Export ("webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:")] void RunOpenPanel (WKWebView webView, WKOpenPanelParameters parameters, WKFrameInfo frame, Action completionHandler); @@ -5099,7 +5110,7 @@ void RunJavaScriptTextInputPanel (WKWebView webView, string prompt, [NullAllowed void RequestMediaCapturePermission (WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, WKMediaCaptureType type, Action decisionHandler); [Async] - [NoMac, iOS (16, 0), MacCatalyst (16, 0)] // headers say 13, is not true since the enum is from 16 + [NoMac, iOS (16, 0), MacCatalyst (16, 0)] [Export ("webView:showLockdownModeFirstUseMessage:completionHandler:")] void ShowLockDownMode (WKWebView webView, string firstUseMessage, Action completionHandler); @@ -5620,7 +5631,7 @@ interface WKWebView /// /// If evaluation was successful, will be . If an error occurred, will be . /// - delegate void WKJavascriptEvaluationResult (NSObject result, NSError error); + delegate void WKJavascriptEvaluationResult ([NullAllowed] NSObject result, [NullAllowed] NSError error); /// Properties configuring a . /// @@ -5747,6 +5758,10 @@ interface WKWebViewConfiguration : NSCopying, NSSecureCoding { #else UIWritingToolsBehavior WritingToolsBehavior { get; set; } #endif + + [iOS (18, 4), MacCatalyst (18, 4), Mac (15, 4), NoTV] + [Export ("webExtensionController", ArgumentSemantic.Strong), NullAllowed] + WKWebExtensionController WebExtensionController { get; set; } } /// A pool of content processes. @@ -6073,4 +6088,1217 @@ public enum WKWebpagePreferencesUpgradeToHttpsPolicy : long { UserMediatedFallbackToHttp, ErrorOnFailure, } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + [ErrorDomain ("WKWebExtensionErrorDomain")] + public enum WKWebExtensionError : long { + Unknown = 1, + ResourceNotFound, + InvalidResourceCodeSignature, + InvalidManifest, + UnsupportedManifestVersion, + InvalidManifestEntry, + InvalidDeclarativeNetRequestEntry, + InvalidBackgroundPersistence, + InvalidArchive, + } + + delegate void WKWebExtensionCreateCallback ([NullAllowed] WKWebExtension extension, [NullAllowed] NSError error); + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtension { + [Static] + [Export ("extensionWithAppExtensionBundle:completionHandler:")] + [Async] + void Create (NSBundle appExtensionBundle, WKWebExtensionCreateCallback completionHandler); + + [Static] + [Export ("extensionWithResourceBaseURL:completionHandler:")] + [Async] + void Create (NSUrl resourceBaseUrl, WKWebExtensionCreateCallback completionHandler); + + [Export ("errors", ArgumentSemantic.Copy)] + NSError [] Errors { get; } + + [Export ("manifest", ArgumentSemantic.Copy)] + NSDictionary Manifest { get; } + + [Export ("manifestVersion")] + double ManifestVersion { get; } + + [Export ("supportsManifestVersion:")] + bool SupportsManifestVersion (double manifestVersion); + + [NullAllowed, Export ("defaultLocale", ArgumentSemantic.Copy)] + NSLocale DefaultLocale { get; } + + [NullAllowed, Export ("displayName")] + string DisplayName { get; } + + [NullAllowed, Export ("displayShortName")] + string DisplayShortName { get; } + + [NullAllowed, Export ("displayVersion")] + string DisplayVersion { get; } + + [NullAllowed, Export ("displayDescription")] + string DisplayDescription { get; } + + [NullAllowed, Export ("displayActionLabel")] + string DisplayActionLabel { get; } + + [NullAllowed, Export ("version")] + string Version { get; } + + [Export ("iconForSize:")] + [return: NullAllowed] + UIImage GetIcon (CGSize size); + + [Export ("actionIconForSize:")] + [return: NullAllowed] + UIImage GetActionIcon (CGSize size); + + [Export ("requestedPermissions", ArgumentSemantic.Copy)] + NSSet WeakRequestedPermissions { get; } + + WKWebExtensionPermission RequestedPermissions { + [Wrap ("WKWebExtensionPermissionExtensions.ToFlags (WeakRequestedPermissions);")] + get; + } + + [Export ("optionalPermissions", ArgumentSemantic.Copy)] + NSSet WeakOptionalPermissions { get; } + + WKWebExtensionPermission OptionalPermissions { + [Wrap ("WKWebExtensionPermissionExtensions.ToFlags (WeakOptionalPermissions);")] + get; + } + + [Export ("requestedPermissionMatchPatterns", ArgumentSemantic.Copy)] + NSSet RequestedPermissionMatchPatterns { get; } + + [Export ("optionalPermissionMatchPatterns", ArgumentSemantic.Copy)] + NSSet OptionalPermissionMatchPatterns { get; } + + [Export ("allRequestedMatchPatterns", ArgumentSemantic.Copy)] + NSSet AllRequestedMatchPatterns { get; } + + [Export ("hasBackgroundContent")] + bool HasBackgroundContent { get; } + + [Export ("hasPersistentBackgroundContent")] + bool HasPersistentBackgroundContent { get; } + + [Export ("hasInjectedContent")] + bool HasInjectedContent { get; } + + [Export ("hasOptionsPage")] + bool HasOptionsPage { get; } + + [Export ("hasOverrideNewTabPage")] + bool HasOverrideNewTabPage { get; } + + [Export ("hasCommands")] + bool HasCommands { get; } + + [Export ("hasContentModificationRules")] + bool HasContentModificationRules { get; } + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionAction { + [NullAllowed, Export ("webExtensionContext", ArgumentSemantic.Weak)] + WKWebExtensionContext WebExtensionContext { get; } + + [NullAllowed, Export ("associatedTab", ArgumentSemantic.Weak)] + IWKWebExtensionTab AssociatedTab { get; } + + [Export ("iconForSize:")] + [return: NullAllowed] + UIImage GetIcon (CGSize size); + + [Export ("label")] + string Label { get; } + + [Export ("badgeText")] + string BadgeText { get; } + + [Export ("hasUnreadBadgeText")] + bool HasUnreadBadgeText { get; set; } + + [NullAllowed, Export ("inspectionName")] + string InspectionName { get; set; } + + [Export ("enabled")] + bool Enabled { [Bind ("isEnabled")] get; } + + [Export ("menuItems", ArgumentSemantic.Copy)] +#if IOS || MACCATALYST + UIMenuElement[] MenuItems { get; } +#else + NSMenuItem [] MenuItems { get; } +#endif + + [Export ("presentsPopup")] + bool PresentsPopup { get; } + +#if !MONOMAC + [NullAllowed, Export ("popupViewController")] + UIViewController PopupViewController { get; } +#endif + +#if MONOMAC + [Export ("popupPopover"), NullAllowed] + NSPopover PopupPopover { get; } +#endif + + [NullAllowed, Export ("popupWebView")] + WKWebView PopupWebView { get; } + + [Export ("closePopup")] + void ClosePopup (); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionCommand { + [NullAllowed, Export ("webExtensionContext", ArgumentSemantic.Weak)] + WKWebExtensionContext WebExtensionContext { get; } + + [Export ("identifier")] + string Identifier { get; } + + [Export ("title")] + string Title { get; } + + [NullAllowed, Export ("activationKey")] + string ActivationKey { get; set; } + + [Export ("modifierFlags", ArgumentSemantic.Assign)] +#if __IOS__ || __MACCATALYST_ + UIKeyModifierFlags ModifierFlags { get; set; } +#else + NSEventModifierMask ModifierFlags { get; set; } +#endif + + [Export ("menuItem", ArgumentSemantic.Copy)] +#if __IOS__ || __MACCATALYST_ + UIMenuElement MenuItem { get; } +#else + NSMenuItem MenuItem { get; } +#endif + +#if IOS || MACCATALYST + [NullAllowed, Export ("keyCommand", ArgumentSemantic.Copy)] + UIKeyCommand KeyCommand { get; } +#endif + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Flags] + [Native] + public enum WKWebExtensionTabChangedProperties : ulong { + None = 0, + Loading = 1uL << 1, + Muted = 1uL << 2, + Pinned = 1uL << 3, + PlayingAudio = 1uL << 4, + ReaderMode = 1uL << 5, + Size = 1uL << 6, + Title = 1uL << 7, + Url = 1uL << 8, + ZoomFactor = 1uL << 9, + } + + interface IWKWebExtensionTab { } + + delegate void WKWebExtensionTabCallback ([NullAllowed] NSError error); + delegate void WKWebExtensionTabDetectLocaleCallback ([NullAllowed] NSLocale locale, [NullAllowed] NSError error); + delegate void WKWebExtensionTabDuplicateCallback ([NullAllowed] IWKWebExtensionTab duplicatedTab, [NullAllowed] NSError error); + delegate void WKWebExtensionTabTakeSnapshotCallback ([NullAllowed] UIImage webpageImage, [NullAllowed] NSError error); + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Protocol (BackwardsCompatibleCodeGeneration = false)] + interface WKWebExtensionTab { + [Export ("windowForWebExtensionContext:")] + [return: NullAllowed] + IWKWebExtensionWindow GetWindow (WKWebExtensionContext context); + + [Export ("indexInWindowForWebExtensionContext:")] + nuint GetIndexInWindow (WKWebExtensionContext context); + + [Export ("parentTabForWebExtensionContext:")] + [return: NullAllowed] + IWKWebExtensionTab GetParentTab (WKWebExtensionContext context); + + [Async] + [Export ("setParentTab:forWebExtensionContext:completionHandler:")] + void SetParentTab ([NullAllowed] IWKWebExtensionTab parentTab, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("webViewForWebExtensionContext:")] + [return: NullAllowed] + WKWebView GetWebView (WKWebExtensionContext context); + + [Export ("titleForWebExtensionContext:")] + [return: NullAllowed] + string GetTitle (WKWebExtensionContext context); + + [Export ("isPinnedForWebExtensionContext:")] + bool IsPinned (WKWebExtensionContext context); + + [Async] + [Export ("setPinned:forWebExtensionContext:completionHandler:")] + void SetPinned (bool pinned, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("isReaderModeAvailableForWebExtensionContext:")] + bool IsReaderModeAvailable (WKWebExtensionContext context); + + [Export ("isReaderModeActiveForWebExtensionContext:")] + bool IsReaderModeActive (WKWebExtensionContext context); + + [Async] + [Export ("setReaderModeActive:forWebExtensionContext:completionHandler:")] + void SetReaderModeActive (bool active, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("isPlayingAudioForWebExtensionContext:")] + bool IsPlayingAudio (WKWebExtensionContext context); + + [Export ("isMutedForWebExtensionContext:")] + bool IsMuted (WKWebExtensionContext context); + + [Async] + [Export ("setMuted:forWebExtensionContext:completionHandler:")] + void SetMuted (bool muted, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("sizeForWebExtensionContext:")] + CGSize GetSize (WKWebExtensionContext context); + + [Export ("zoomFactorForWebExtensionContext:")] + double GetZoomFactor (WKWebExtensionContext context); + + [Async] + [Export ("setZoomFactor:forWebExtensionContext:completionHandler:")] + void SetZoomFactor (double zoomFactor, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("urlForWebExtensionContext:")] + [return: NullAllowed] + NSUrl GetUrl (WKWebExtensionContext context); + + [Export ("pendingURLForWebExtensionContext:")] + [return: NullAllowed] + NSUrl GetPendingUrl (WKWebExtensionContext context); + + [Export ("isLoadingCompleteForWebExtensionContext:")] + bool IsLoadingComplete (WKWebExtensionContext context); + + [Async] + [Export ("detectWebpageLocaleForWebExtensionContext:completionHandler:")] + void DetectWebpageLocale (WKWebExtensionContext context, WKWebExtensionTabDetectLocaleCallback completionHandler); + + [Async] + [Export ("takeSnapshotUsingConfiguration:forWebExtensionContext:completionHandler:")] + void TakeSnapshot (WKSnapshotConfiguration configuration, WKWebExtensionContext context, WKWebExtensionTabTakeSnapshotCallback completionHandler); + + [Async] + [Export ("loadURL:forWebExtensionContext:completionHandler:")] + void LoadUrl (NSUrl url, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Async] + [Export ("reloadFromOrigin:forWebExtensionContext:completionHandler:")] + void ReloadFromOrigin (bool fromOrigin, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Async] + [Export ("goBackForWebExtensionContext:completionHandler:")] + void GoBack (WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Async] + [Export ("goForwardForWebExtensionContext:completionHandler:")] + void GoForward (WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Async] + [Export ("activateForWebExtensionContext:completionHandler:")] + void Activate (WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("isSelectedForWebExtensionContext:")] + bool IsSelected (WKWebExtensionContext context); + + [Async] + [Export ("setSelected:forWebExtensionContext:completionHandler:")] + void SetSelected (bool selected, WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Async] + [Export ("duplicateUsingConfiguration:forWebExtensionContext:completionHandler:")] + void Duplicate (WKWebExtensionTabConfiguration configuration, WKWebExtensionContext context, WKWebExtensionTabDuplicateCallback completionHandler); + + [Async] + [Export ("closeForWebExtensionContext:completionHandler:")] + void Close (WKWebExtensionContext context, WKWebExtensionTabCallback completionHandler); + + [Export ("shouldGrantPermissionsOnUserGestureForWebExtensionContext:")] + bool ShouldGrantPermissionsOnUserGesture (WKWebExtensionContext context); + + [Export ("shouldBypassPermissionsForWebExtensionContext:")] + bool ShouldBypassPermissions (WKWebExtensionContext context); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [ErrorDomain ("WKWebExtensionContextErrorDomain")] + [Native] + public enum WKWebExtensionContextError : long { + Unknown = 1, + AlreadyLoaded, + NotLoaded, + BaseUrlAlreadyInUse, + NoBackgroundContent, + BackgroundContentFailedToLoad, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + public enum WKWebExtensionContextPermissionStatus : long { + DeniedExplicitly = -3, + DeniedImplicitly = -2, + RequestedImplicitly = -1, + Unknown = 0, + RequestedExplicitly = 1, + GrantedImplicitly = 2, + GrantedExplicitly = 3, + } + + delegate void WKWebExtensionContextCallback ([NullAllowed] NSError error); + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionContext { + [Static] + [Export ("contextForExtension:")] + WKWebExtensionContext Create (WKWebExtension extension); + + [Export ("initForExtension:")] + [DesignatedInitializer] + NativeHandle Constructor (WKWebExtension extension); + + [Export ("webExtension", ArgumentSemantic.Strong)] + WKWebExtension WebExtension { get; } + + [NullAllowed, Export ("webExtensionController", ArgumentSemantic.Weak)] + WKWebExtensionController WebExtensionController { get; } + + [Export ("loaded")] + bool Loaded { [Bind ("isLoaded")] get; } + + [Export ("errors", ArgumentSemantic.Copy)] + NSError [] Errors { get; } + + [Export ("baseURL", ArgumentSemantic.Copy)] + NSUrl BaseUrl { get; set; } + + [Export ("uniqueIdentifier")] + string UniqueIdentifier { get; set; } + + [Export ("inspectable")] + bool Inspectable { [Bind ("isInspectable")] get; set; } + + [NullAllowed, Export ("inspectionName")] + string InspectionName { get; set; } + + [NullAllowed, Export ("unsupportedAPIs", ArgumentSemantic.Copy)] + NSSet UnsupportedAPIs { get; set; } + + [NullAllowed, Export ("webViewConfiguration", ArgumentSemantic.Copy)] + WKWebViewConfiguration WebViewConfiguration { get; } + + [NullAllowed, Export ("optionsPageURL", ArgumentSemantic.Copy)] + NSUrl OptionsPageUrl { get; } + + [NullAllowed, Export ("overrideNewTabPageURL", ArgumentSemantic.Copy)] + NSUrl OverrideNewTabPageUrl { get; } + + [Export ("grantedPermissions", ArgumentSemantic.Copy)] + NSDictionary GrantedPermissions { get; set; } + + [Export ("grantedPermissionMatchPatterns", ArgumentSemantic.Copy)] + NSDictionary GrantedPermissionMatchPatterns { get; set; } + + [Export ("deniedPermissions", ArgumentSemantic.Copy)] + NSDictionary DeniedPermissions { get; set; } + + [Export ("deniedPermissionMatchPatterns", ArgumentSemantic.Copy)] + NSDictionary DeniedPermissionMatchPatterns { get; set; } + + [Export ("hasRequestedOptionalAccessToAllHosts")] + bool HasRequestedOptionalAccessToAllHosts { get; set; } + + [Export ("hasAccessToPrivateData")] + bool HasAccessToPrivateData { get; set; } + + [Export ("currentPermissions", ArgumentSemantic.Copy)] + NSSet WeakCurrentPermissions { get; } + + WKWebExtensionPermission CurrentPermission { + [Wrap ("WKWebExtensionPermissionExtensions.ToFlags (WeakCurrentPermissions);")] + get; + } + + [Export ("currentPermissionMatchPatterns", ArgumentSemantic.Copy)] + NSSet CurrentPermissionMatchPatterns { get; } + + [Export ("hasPermission:")] + bool HasPermission (string permission); + + [Export ("hasPermission:inTab:")] + bool HasPermission (string permission, [NullAllowed] IWKWebExtensionTab tab); + + [Export ("hasAccessToURL:")] + bool HasAccessToUrl (NSUrl url); + + [Export ("hasAccessToURL:inTab:")] + bool HasAccessToUrl (NSUrl url, [NullAllowed] IWKWebExtensionTab tab); + + [Export ("hasAccessToAllURLs")] + bool HasAccessToAllUrls { get; } + + [Export ("hasAccessToAllHosts")] + bool HasAccessToAllHosts { get; } + + [Export ("hasInjectedContent")] + bool HasInjectedContent { get; } + + [Export ("hasInjectedContentForURL:")] + bool HasInjectedContentForUrl (NSUrl url); + + [Export ("hasContentModificationRules")] + bool HasContentModificationRules { get; } + + [Export ("permissionStatusForPermission:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (string permission); + + [Export ("permissionStatusForPermission:inTab:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (string permission, [NullAllowed] IWKWebExtensionTab tab); + + [Export ("setPermissionStatus:forPermission:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, string permission); + + [Export ("setPermissionStatus:forPermission:expirationDate:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, string permission, [NullAllowed] NSDate expirationDate); + + [Export ("permissionStatusForURL:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (NSUrl url); + + [Export ("permissionStatusForURL:inTab:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (NSUrl url, [NullAllowed] IWKWebExtensionTab tab); + + [Export ("setPermissionStatus:forURL:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, NSUrl url); + + [Export ("setPermissionStatus:forURL:expirationDate:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, NSUrl url, [NullAllowed] NSDate expirationDate); + + [Export ("permissionStatusForMatchPattern:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (WKWebExtensionMatchPattern pattern); + + [Export ("permissionStatusForMatchPattern:inTab:")] + WKWebExtensionContextPermissionStatus GetPermissionStatus (WKWebExtensionMatchPattern pattern, [NullAllowed] IWKWebExtensionTab tab); + + [Export ("setPermissionStatus:forMatchPattern:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, WKWebExtensionMatchPattern pattern); + + [Export ("setPermissionStatus:forMatchPattern:expirationDate:")] + void SetPermissionStatus (WKWebExtensionContextPermissionStatus status, WKWebExtensionMatchPattern pattern, [NullAllowed] NSDate expirationDate); + + [Async] + [Export ("loadBackgroundContentWithCompletionHandler:")] + void LoadBackgroundContent (WKWebExtensionContextCallback completionHandler); + + [Export ("actionForTab:")] + [return: NullAllowed] + WKWebExtensionAction GetAction ([NullAllowed] IWKWebExtensionTab tab); + + [Export ("performActionForTab:")] + void PerformAction ([NullAllowed] IWKWebExtensionTab tab); + + [Export ("commands", ArgumentSemantic.Copy)] + WKWebExtensionCommand [] Commands { get; } + + [Export ("performCommand:")] + void PerformCommand (WKWebExtensionCommand command); + +#if IOS || MACCATALYST + [NoMac] + [Export ("performCommandForKeyCommand:")] + bool PerformCommand (UIKeyCommand keyCommand); +#endif + +#if MONOMAC + [Export ("performCommandForEvent:")] + bool PerformCommand (NSEvent @event); + + [Export ("commandForEvent:")] + [return: NullAllowed] + WKWebExtensionCommand GetCommand (NSEvent @event); +#endif + + [Export ("menuItemsForTab:")] +#if IOS || MACCATALYST + UIMenuElement[] GetMenuItems (IWKWebExtensionTab tab); +#else + NSMenuItem [] GetMenuItems (IWKWebExtensionTab tab); +#endif + + [Export ("userGesturePerformedInTab:")] + void UserGesturePerformed (IWKWebExtensionTab tab); + + [Export ("hasActiveUserGestureInTab:")] + bool HasActiveUserGesture (IWKWebExtensionTab tab); + + [Export ("clearUserGestureInTab:")] + void ClearUserGesture (IWKWebExtensionTab tab); + + [Export ("openWindows", ArgumentSemantic.Copy)] + IWKWebExtensionWindow [] OpenWindows { get; } + + [NullAllowed, Export ("focusedWindow", ArgumentSemantic.Weak)] + IWKWebExtensionWindow FocusedWindow { get; } + + [Export ("openTabs", ArgumentSemantic.Copy)] + NSSet OpenTabs { get; } + + [Export ("didOpenWindow:")] + void DidOpenWindow (IWKWebExtensionWindow newWindow); + + [Export ("didCloseWindow:")] + void DidCloseWindow (IWKWebExtensionWindow closedWindow); + + [Export ("didFocusWindow:")] + void DidFocusWindow ([NullAllowed] IWKWebExtensionWindow focusedWindow); + + [Export ("didOpenTab:")] + void DidOpenTab (IWKWebExtensionTab newTab); + + [Export ("didCloseTab:windowIsClosing:")] + void DidCloseTab (IWKWebExtensionTab closedTab, bool windowIsClosing); + + [Export ("didActivateTab:previousActiveTab:")] + void DidActivateTab (IWKWebExtensionTab activatedTab, [NullAllowed] IWKWebExtensionTab previousTab); + + [Export ("didSelectTabs:")] + void DidSelectTabs (IWKWebExtensionTab [] selectedTabs); + + [Export ("didDeselectTabs:")] + void DidDeselectTabs (IWKWebExtensionTab [] deselectedTabs); + + [Export ("didMoveTab:fromIndex:inWindow:")] + void DidMoveTab (IWKWebExtensionTab movedTab, nuint index, [NullAllowed] IWKWebExtensionWindow oldWindow); + + [Export ("didReplaceTab:withTab:")] + void DidReplaceTab (IWKWebExtensionTab oldTab, IWKWebExtensionTab newTab); + + [Export ("didChangeTabProperties:forTab:")] + void DidChangeTabProperties (WKWebExtensionTabChangedProperties properties, IWKWebExtensionTab changedTab); + + [Notification] + [Field ("WKWebExtensionContextErrorsDidUpdateNotification")] + NSString ErrorsDidUpdateNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextPermissionsWereGrantedNotification")] + NSString PermissionsWereGrantedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextPermissionsWereDeniedNotification")] + NSString PermissionsWereDeniedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextGrantedPermissionsWereRemovedNotification")] + NSString GrantedPermissionsWereRemovedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextDeniedPermissionsWereRemovedNotification")] + NSString DeniedPermissionsWereRemovedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextPermissionMatchPatternsWereGrantedNotification")] + NSString PermissionMatchPatternsWereGrantedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextPermissionMatchPatternsWereDeniedNotification")] + NSString PermissionMatchPatternsWereDeniedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextGrantedPermissionMatchPatternsWereRemovedNotification")] + NSString GrantedPermissionMatchPatternsWereRemovedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextDeniedPermissionMatchPatternsWereRemovedNotification")] + NSString DeniedPermissionMatchPatternsWereRemovedNotification { get; } + + [Notification] + [Field ("WKWebExtensionContextNotificationUserInfoKeyPermissions")] + NSString NotificationUserInfoKeyPermissions { get; } + + [Notification] + [Field ("WKWebExtensionContextNotificationUserInfoKeyMatchPatterns")] + NSString NotificationUserInfoKeyMatchPatterns { get; } + } + + delegate void WKWebExtensionControllerDelegateOpenNewWindowCallback ([NullAllowed] IWKWebExtensionWindow newWindow, [NullAllowed] NSError error); + delegate void WKWebExtensionControllerDelegateOpenNewTabCallback ([NullAllowed] IWKWebExtensionTab newWindow, [NullAllowed] NSError error); + delegate void WKWebExtensionControllerDelegateOpenOptionsCallback ([NullAllowed] NSError error); + delegate void WKWebExtensionControllerDelegatePromptForPermissionsCallback (NSSet allowedPermissions, [NullAllowed] NSDate expirationDate); + delegate void WKWebExtensionControllerDelegatePromptForPermissionsToAccessUrlsCallback (NSSet allowedUrls, [NullAllowed] NSDate expirationDate); + delegate void WKWebExtensionControllerDelegatePromptForPermissionMatchPatternsCallback (NSSet allowedMatchPatterns, [NullAllowed] NSDate expirationDate); + delegate void WKWebExtensionControllerDelegatePresentPopupForActionCallback ([NullAllowed] NSError error); + delegate void WKWebExtensionControllerDelegateSendMessageCallback ([NullAllowed] NSObject replyMessage, [NullAllowed] NSError error); + delegate void WKWebExtensionControllerDelegateConnectCallback ([NullAllowed] NSError error); + + interface IWKWebExtensionControllerDelegate { } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Protocol (BackwardsCompatibleCodeGeneration = false), Model] + [BaseType (typeof (NSObject))] + interface WKWebExtensionControllerDelegate { + [Export ("webExtensionController:openWindowsForExtensionContext:")] + IWKWebExtensionWindow [] OpenWindows (WKWebExtensionController controller, WKWebExtensionContext extensionContext); + + [Export ("webExtensionController:focusedWindowForExtensionContext:")] + [return: NullAllowed] + IWKWebExtensionWindow GetFocusedWindow (WKWebExtensionController controller, WKWebExtensionContext extensionContext); + + [Async] + [Export ("webExtensionController:openNewWindowUsingConfiguration:forExtensionContext:completionHandler:")] + void OpenNewWindow (WKWebExtensionController controller, WKWebExtensionWindowConfiguration configuration, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegateOpenNewWindowCallback completionHandler); + + [Async] + [Export ("webExtensionController:openNewTabUsingConfiguration:forExtensionContext:completionHandler:")] + void OpenNewTab (WKWebExtensionController controller, WKWebExtensionTabConfiguration configuration, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegateOpenNewTabCallback completionHandler); + + [Async] + [Export ("webExtensionController:openOptionsPageForExtensionContext:completionHandler:")] + void OpenOptions (WKWebExtensionController controller, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegateOpenOptionsCallback completionHandler); + + [Export ("webExtensionController:promptForPermissions:inTab:forExtensionContext:completionHandler:")] + void PromptForPermissions (WKWebExtensionController controller, NSSet permissions, [NullAllowed] IWKWebExtensionTab tab, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegatePromptForPermissionsCallback completionHandler); + + [Export ("webExtensionController:promptForPermissionToAccessURLs:inTab:forExtensionContext:completionHandler:")] + void PromptForPermissionsToAccessUrls (WKWebExtensionController controller, NSSet urls, [NullAllowed] IWKWebExtensionTab tab, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegatePromptForPermissionsToAccessUrlsCallback completionHandler); + + [Export ("webExtensionController:promptForPermissionMatchPatterns:inTab:forExtensionContext:completionHandler:")] + void PromptForPermissionMatchPatterns (WKWebExtensionController controller, NSSet matchPatterns, [NullAllowed] IWKWebExtensionTab tab, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegatePromptForPermissionMatchPatternsCallback completionHandler); + + [Export ("webExtensionController:didUpdateAction:forExtensionContext:")] + void DidUpdateAction (WKWebExtensionController controller, WKWebExtensionAction action, WKWebExtensionContext context); + + [Export ("webExtensionController:presentPopupForAction:forExtensionContext:completionHandler:")] + void PresentPopupForAction (WKWebExtensionController controller, WKWebExtensionAction action, WKWebExtensionContext context, WKWebExtensionControllerDelegatePresentPopupForActionCallback completionHandler); + + [Async] + [Export ("webExtensionController:sendMessage:toApplicationWithIdentifier:forExtensionContext:replyHandler:")] + void SendMessage (WKWebExtensionController controller, NSObject message, [NullAllowed] string applicationIdentifier, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegateSendMessageCallback replyHandler); + + [Async] + [Export ("webExtensionController:connectUsingMessagePort:forExtensionContext:completionHandler:")] + void Connect (WKWebExtensionController controller, WKWebExtensionMessagePort port, WKWebExtensionContext extensionContext, WKWebExtensionControllerDelegateConnectCallback completionHandler); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Flags] + enum WKWebExtensionDataType { + [Field ("WKWebExtensionDataTypeLocal")] + Local = 1, + + [Field ("WKWebExtensionDataTypeSession")] + Session = 2, + + [Field ("WKWebExtensionDataTypeSynchronized")] + Synchronized = 4, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + public enum WKWebExtensionWindowType : long { + Normal, + Popup, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + public enum WKWebExtensionWindowState : long { + Normal, + Minimized, + Maximized, + Fullscreen, + } + + delegate void WKWebExtensionWindowCallback ([NullAllowed] NSError error); + + interface IWKWebExtensionWindow { } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Protocol (BackwardsCompatibleCodeGeneration = false)] + interface WKWebExtensionWindow { + [Export ("tabsForWebExtensionContext:")] + IWKWebExtensionTab [] GetTabs (WKWebExtensionContext context); + + [Export ("activeTabForWebExtensionContext:")] + [return: NullAllowed] + IWKWebExtensionTab ActiveTab (WKWebExtensionContext context); + + [Export ("windowTypeForWebExtensionContext:")] + WKWebExtensionWindowType GetWindowType (WKWebExtensionContext context); + + [Export ("windowStateForWebExtensionContext:")] + WKWebExtensionWindowState GetWindowState (WKWebExtensionContext context); + + [Async] + [Export ("setWindowState:forWebExtensionContext:completionHandler:")] + void SetWindowState (WKWebExtensionWindowState state, WKWebExtensionContext context, WKWebExtensionWindowCallback completionHandler); + + [Export ("isPrivateForWebExtensionContext:")] + bool IsPrivate (WKWebExtensionContext context); + +#if MONOMAC + [Export ("screenFrameForWebExtensionContext:")] + CGRect GetScreenFrame (WKWebExtensionContext context); +#endif + + [Export ("frameForWebExtensionContext:")] + CGRect GetFrame (WKWebExtensionContext context); + + [Async] + [Export ("setFrame:forWebExtensionContext:completionHandler:")] + void SetFrame (CGRect frame, WKWebExtensionContext context, WKWebExtensionWindowCallback completionHandler); + + [Async] + [Export ("focusForWebExtensionContext:completionHandler:")] + void Focus (WKWebExtensionContext context, WKWebExtensionWindowCallback completionHandler); + + [Async] + [Export ("closeForWebExtensionContext:completionHandler:")] + void Close (WKWebExtensionContext context, WKWebExtensionWindowCallback completionHandler); + } + + delegate void WKWebExtensionControllerDataRecordCallback (WKWebExtensionDataRecord dataRecord); + delegate void WKWebExtensionControllerDataRecordsCallback (WKWebExtensionDataRecord [] dataRecords); + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] // added below to get the DesignatedInitializer attribute + interface WKWebExtensionController { + [DesignatedInitializer] + [Export ("init")] + NativeHandle Constructor (); + + [Export ("initWithConfiguration:")] + [DesignatedInitializer] + NativeHandle Constructor (WKWebExtensionControllerConfiguration configuration); + + [Wrap ("WeakDelegate")] + [NullAllowed] + IWKWebExtensionControllerDelegate Delegate { get; set; } + + [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] + NSObject WeakDelegate { get; set; } + + [Export ("configuration", ArgumentSemantic.Copy)] + WKWebExtensionControllerConfiguration Configuration { get; } + + [Export ("loadExtensionContext:error:")] + bool LoadExtensionContext (WKWebExtensionContext extensionContext, [NullAllowed] out NSError error); + + [Export ("unloadExtensionContext:error:")] + bool UnloadExtensionContext (WKWebExtensionContext extensionContext, [NullAllowed] out NSError error); + + [Export ("extensionContextForExtension:")] + [return: NullAllowed] + WKWebExtensionContext GetExtensionContext (WKWebExtension extension); + + [Export ("extensionContextForURL:")] + [return: NullAllowed] + WKWebExtensionContext GetExtensionContext (NSUrl url); + + [Export ("extensions", ArgumentSemantic.Copy)] + NSSet Extensions { get; } + + [Export ("extensionContexts", ArgumentSemantic.Copy)] + NSSet ExtensionContexts { get; } + + [Static] + [Export ("allExtensionDataTypes", ArgumentSemantic.Copy)] + NSSet WeakAllExtensionDataTypes { get; } + + [Static] + WKWebExtensionDataType AllExtensionDataTypes { + [Wrap ("WKWebExtensionDataTypeExtensions.ToFlags (WeakAllExtensionDataTypes);")] + get; + } + + [Async] + [Export ("fetchDataRecordsOfTypes:completionHandler:")] + void FetchDataRecords (NSSet dataTypes, WKWebExtensionControllerDataRecordsCallback completionHandler); + + [Async] + [Wrap ("FetchDataRecords (new NSSet (dataTypes.ToArray ()), completionHandler);")] + void FetchDataRecords (WKWebExtensionDataType dataTypes, WKWebExtensionControllerDataRecordsCallback completionHandler); + + [Async] + [Export ("fetchDataRecordOfTypes:forExtensionContext:completionHandler:")] + void FetchDataRecord (NSSet dataTypes, WKWebExtensionContext extensionContext, WKWebExtensionControllerDataRecordCallback completionHandler); + + [Async] + [Wrap ("FetchDataRecord (new NSSet (dataTypes.ToArray ()), extensionContext, completionHandler);")] + void FetchDataRecord (WKWebExtensionDataType dataTypes, WKWebExtensionContext extensionContext, WKWebExtensionControllerDataRecordCallback completionHandler); + + [Async] + [Export ("removeDataOfTypes:fromDataRecords:completionHandler:")] + void RemoveData (NSSet dataTypes, WKWebExtensionDataRecord [] dataRecords, Action completionHandler); + + [Async] + [Wrap ("RemoveData (new NSSet (dataTypes.ToArray ()), dataRecords, completionHandler);")] + void RemoveData (WKWebExtensionDataType dataTypes, WKWebExtensionDataRecord [] dataRecords, Action completionHandler); + + [Export ("didOpenWindow:")] + void DidOpenWindow (IWKWebExtensionWindow newWindow); + + [Export ("didCloseWindow:")] + void DidCloseWindow (IWKWebExtensionWindow closedWindow); + + [Export ("didFocusWindow:")] + void DidFocusWindow ([NullAllowed] IWKWebExtensionWindow focusedWindow); + + [Export ("didOpenTab:")] + void DidOpenTab (IWKWebExtensionTab newTab); + + [Export ("didCloseTab:windowIsClosing:")] + void DidCloseTab (IWKWebExtensionTab closedTab, bool windowIsClosing); + + [Export ("didActivateTab:previousActiveTab:")] + void DidActivateTab (IWKWebExtensionTab activatedTab, [NullAllowed] IWKWebExtensionTab previousTab); + + [Export ("didSelectTabs:")] + void DidSelectTabs (IWKWebExtensionTab [] selectedTabs); + + [Export ("didDeselectTabs:")] + void DidDeselectTabs (IWKWebExtensionTab [] deselectedTabs); + + [Export ("didMoveTab:fromIndex:inWindow:")] + void DidMoveTab (IWKWebExtensionTab movedTab, nuint index, [NullAllowed] IWKWebExtensionWindow oldWindow); + + [Export ("didReplaceTab:withTab:")] + void DidReplaceTab (IWKWebExtensionTab oldTab, IWKWebExtensionTab newTab); + + [Export ("didChangeTabProperties:forTab:")] + void DidChangeTabProperties (WKWebExtensionTabChangedProperties properties, IWKWebExtensionTab changedTab); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionControllerConfiguration : NSSecureCoding, NSCopying { + [Static] + [Export ("defaultConfiguration")] + WKWebExtensionControllerConfiguration GetDefaultConfiguration (); + + [Static] + [Export ("nonPersistentConfiguration")] + WKWebExtensionControllerConfiguration GetNonPersistentConfiguration (); + + [Static] + [Export ("configurationWithIdentifier:")] + WKWebExtensionControllerConfiguration Create (NSUuid identifier); + + [Export ("persistent")] + bool Persistent { [Bind ("isPersistent")] get; } + + [NullAllowed, Export ("identifier", ArgumentSemantic.Copy)] + NSUuid Identifier { get; } + + [NullAllowed, Export ("webViewConfiguration", ArgumentSemantic.Copy)] + WKWebViewConfiguration WebViewConfiguration { get; set; } + + [NullAllowed, Export ("defaultWebsiteDataStore", ArgumentSemantic.Retain)] + WKWebsiteDataStore DefaultWebsiteDataStore { get; set; } + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + [ErrorDomain ("WKWebExtensionDataRecordErrorDomain")] + public enum WKWebExtensionDataRecordError : long { + Unknown = 1, + LocalStorageFailed, + SessionStorageFailed, + SynchronizedStorageFailed, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionDataRecord { + [Export ("displayName")] + string DisplayName { get; } + + [Export ("uniqueIdentifier")] + string UniqueIdentifier { get; } + + [Export ("containedDataTypes", ArgumentSemantic.Copy)] + NSSet WeakContainedDataTypes { get; } + + WKWebExtensionDataType ContainedDataTypes { + [Wrap ("WKWebExtensionDataTypeExtensions.ToFlags (WeakContainedDataTypes);")] + get; + } + + [Export ("errors", ArgumentSemantic.Copy)] + NSError [] Errors { get; } + + [Export ("totalSizeInBytes")] + nuint TotalSizeInBytes { get; } + + [Export ("sizeInBytesOfTypes:")] + nuint GetSizeInBytes (NSSet dataTypes); + + [Wrap ("GetSizeInBytes (new NSSet (dataTypes.ToArray ()));")] + nuint GetSizeInBytes (WKWebExtensionDataType dataTypes); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + [ErrorDomain ("WKWebExtensionMessagePortErrorDomain")] + public enum WKWebExtensionMessagePortError : long { + Unknown = 1, + NotConnected, + MessageInvalid, + } + + delegate void WKWebExtensionMessagePortMessageHandlerCallback ([NullAllowed] NSObject message, [NullAllowed] NSError error); + delegate void WKWebExtensionMessagePortDisconnectHandlerCallback ([NullAllowed] NSError error); + delegate void WKWebExtensionMessagePortSendMessageCallback ([NullAllowed] NSError error); + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionMessagePort { + [NullAllowed, Export ("applicationIdentifier")] + string ApplicationIdentifier { get; } + + [NullAllowed, Export ("messageHandler", ArgumentSemantic.Copy)] + WKWebExtensionMessagePortMessageHandlerCallback MessageHandler { get; set; } + + [NullAllowed, Export ("disconnectHandler", ArgumentSemantic.Copy)] + WKWebExtensionMessagePortDisconnectHandlerCallback DisconnectHandler { get; set; } + + [Export ("disconnected")] + bool Disconnected { [Bind ("isDisconnected")] get; } + + [Async] + [Export ("sendMessage:completionHandler:")] + void SendMessage ([NullAllowed] NSObject message, [NullAllowed] WKWebExtensionMessagePortSendMessageCallback completionHandler); + + [Export ("disconnect")] + void Disconnect (); + + [Export ("disconnectWithError:")] + void Disconnect ([NullAllowed] NSError error); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionTabConfiguration { + [NullAllowed, Export ("window", ArgumentSemantic.Strong)] + IWKWebExtensionWindow Window { get; } + + [Export ("index")] + nuint Index { get; } + + [NullAllowed, Export ("parentTab", ArgumentSemantic.Strong)] + IWKWebExtensionTab ParentTab { get; } + + [NullAllowed, Export ("url", ArgumentSemantic.Copy)] + NSUrl Url { get; } + + [Export ("shouldBeActive")] + bool ShouldBeActive { get; } + + [Export ("shouldAddToSelection")] + bool ShouldAddToSelection { get; } + + [Export ("shouldBePinned")] + bool ShouldBePinned { get; } + + [Export ("shouldBeMuted")] + bool ShouldBeMuted { get; } + + [Export ("shouldReaderModeBeActive")] + bool ShouldReaderModeBeActive { get; } + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionWindowConfiguration { + [Export ("windowType")] + WKWebExtensionWindowType WindowType { get; } + + [Export ("windowState")] + WKWebExtensionWindowState WindowState { get; } + + [Export ("frame")] + CGRect Frame { get; } + + [Export ("tabURLs", ArgumentSemantic.Copy)] + NSUrl [] TabUrls { get; } + + [Export ("tabs", ArgumentSemantic.Copy)] + IWKWebExtensionTab [] Tabs { get; } + + [Export ("shouldBeFocused")] + bool ShouldBeFocused { get; } + + [Export ("shouldBePrivate")] + bool ShouldBePrivate { get; } + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [ErrorDomain ("WKWebExtensionMatchPatternErrorDomain")] + [Native] + public enum WKWebExtensionMatchPatternError : long { + Unknown = 1, + InvalidScheme, + InvalidHost, + InvalidPath, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Native] + [Flags] + public enum WKWebExtensionMatchPatternOptions : ulong { + None = 0, + IgnoreSchemes = 1uL << 0, + IgnorePaths = 1uL << 1, + MatchBidirectionally = 1uL << 2, + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface WKWebExtensionMatchPattern : NSSecureCoding, NSCopying { + [Static] + [Export ("registerCustomURLScheme:")] + void RegisterCustomUrlScheme (string urlScheme); + + [Static] + [Export ("allURLsMatchPattern")] + WKWebExtensionMatchPattern GetAllUrlsMatchPattern (); + + [Static] + [Export ("allHostsAndSchemesMatchPattern")] + WKWebExtensionMatchPattern GetAllHostsAndSchemesMatchPattern (); + + [Static] + [Export ("matchPatternWithString:")] + [return: NullAllowed] + WKWebExtensionMatchPattern Create (string @string); + + [Static] + [Export ("matchPatternWithScheme:host:path:")] + [return: NullAllowed] + WKWebExtensionMatchPattern Create (string scheme, string host, string path); + + [Export ("initWithString:error:")] + [Internal] + NativeHandle _InitWithString (string @string, [NullAllowed] out NSError error); + + [Export ("initWithScheme:host:path:error:")] + [Internal] + NativeHandle _InitWithScheme (string scheme, string host, string path, [NullAllowed] out NSError error); + + [Export ("string")] + string String { get; } + + [NullAllowed, Export ("scheme")] + string Scheme { get; } + + [NullAllowed, Export ("host")] + string Host { get; } + + [NullAllowed, Export ("path")] + string Path { get; } + + [Export ("matchesAllURLs")] + bool MatchesAllUrls { get; } + + [Export ("matchesAllHosts")] + bool MatchesAllHosts { get; } + + [Export ("matchesURL:")] + bool MatchesUrl ([NullAllowed] NSUrl url); + + [Export ("matchesURL:options:")] + bool MatchesUrl ([NullAllowed] NSUrl url, WKWebExtensionMatchPatternOptions options); + + [Export ("matchesPattern:")] + bool MatchesPattern ([NullAllowed] WKWebExtensionMatchPattern pattern); + + [Export ("matchesPattern:options:")] + bool MatchesPattern ([NullAllowed] WKWebExtensionMatchPattern pattern, WKWebExtensionMatchPatternOptions options); + } + + [Mac (15, 4), iOS (18, 4), MacCatalyst (18, 4), NoTV] + [Flags] + enum WKWebExtensionPermission { + [Field ("WKWebExtensionPermissionActiveTab")] + ActiveTab = 1 << 0, + + [Field ("WKWebExtensionPermissionAlarms")] + Alarms = 1 << 1, + + [Field ("WKWebExtensionPermissionClipboardWrite")] + ClipboardWrite = 1 << 2, + + [Field ("WKWebExtensionPermissionContextMenus")] + ContextMenus = 1 << 3, + + [Field ("WKWebExtensionPermissionCookies")] + Cookies = 1 << 4, + + [Field ("WKWebExtensionPermissionDeclarativeNetRequest")] + DeclarativeNetRequest = 1 << 5, + + [Field ("WKWebExtensionPermissionDeclarativeNetRequestFeedback")] + DeclarativeNetRequestFeedback = 1 << 6, + + [Field ("WKWebExtensionPermissionDeclarativeNetRequestWithHostAccess")] + DeclarativeNetRequestWithHostAccess = 1 << 7, + + [Field ("WKWebExtensionPermissionMenus")] + Menus = 1 << 8, + + [Field ("WKWebExtensionPermissionNativeMessaging")] + NativeMessaging = 1 << 9, + + [Field ("WKWebExtensionPermissionScripting")] + Scripting = 1 << 10, + + [Field ("WKWebExtensionPermissionStorage")] + Storage = 1 << 11, + + [Field ("WKWebExtensionPermissionTabs")] + Tabs = 1 << 12, + + [Field ("WKWebExtensionPermissionUnlimitedStorage")] + UnlimitedStorage = 1 << 13, + + [Field ("WKWebExtensionPermissionWebNavigation")] + WebNavigation = 1 << 14, + + [Field ("WKWebExtensionPermissionWebRequest")] + WebRequest = 1 << 15, + } } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 0b205888701e..86389e087af1 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -13194,6 +13194,78 @@ F:WebKit.WKUserInterfaceDirectionPolicy.Content F:WebKit.WKUserInterfaceDirectionPolicy.System F:WebKit.WKUserScriptInjectionTime.AtDocumentEnd F:WebKit.WKUserScriptInjectionTime.AtDocumentStart +F:WebKit.WKWebExtensionContextError.AlreadyLoaded +F:WebKit.WKWebExtensionContextError.BackgroundContentFailedToLoad +F:WebKit.WKWebExtensionContextError.BaseUrlAlreadyInUse +F:WebKit.WKWebExtensionContextError.NoBackgroundContent +F:WebKit.WKWebExtensionContextError.NotLoaded +F:WebKit.WKWebExtensionContextError.Unknown +F:WebKit.WKWebExtensionContextPermissionStatus.DeniedExplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.DeniedImplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.GrantedExplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.GrantedImplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.RequestedExplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.RequestedImplicitly +F:WebKit.WKWebExtensionContextPermissionStatus.Unknown +F:WebKit.WKWebExtensionDataRecordError.LocalStorageFailed +F:WebKit.WKWebExtensionDataRecordError.SessionStorageFailed +F:WebKit.WKWebExtensionDataRecordError.SynchronizedStorageFailed +F:WebKit.WKWebExtensionDataRecordError.Unknown +F:WebKit.WKWebExtensionDataType.Local +F:WebKit.WKWebExtensionDataType.Session +F:WebKit.WKWebExtensionDataType.Synchronized +F:WebKit.WKWebExtensionError.InvalidArchive +F:WebKit.WKWebExtensionError.InvalidBackgroundPersistence +F:WebKit.WKWebExtensionError.InvalidDeclarativeNetRequestEntry +F:WebKit.WKWebExtensionError.InvalidManifest +F:WebKit.WKWebExtensionError.InvalidManifestEntry +F:WebKit.WKWebExtensionError.InvalidResourceCodeSignature +F:WebKit.WKWebExtensionError.ResourceNotFound +F:WebKit.WKWebExtensionError.Unknown +F:WebKit.WKWebExtensionError.UnsupportedManifestVersion +F:WebKit.WKWebExtensionMatchPatternError.InvalidHost +F:WebKit.WKWebExtensionMatchPatternError.InvalidPath +F:WebKit.WKWebExtensionMatchPatternError.InvalidScheme +F:WebKit.WKWebExtensionMatchPatternError.Unknown +F:WebKit.WKWebExtensionMatchPatternOptions.IgnorePaths +F:WebKit.WKWebExtensionMatchPatternOptions.IgnoreSchemes +F:WebKit.WKWebExtensionMatchPatternOptions.MatchBidirectionally +F:WebKit.WKWebExtensionMatchPatternOptions.None +F:WebKit.WKWebExtensionMessagePortError.MessageInvalid +F:WebKit.WKWebExtensionMessagePortError.NotConnected +F:WebKit.WKWebExtensionMessagePortError.Unknown +F:WebKit.WKWebExtensionPermission.ActiveTab +F:WebKit.WKWebExtensionPermission.Alarms +F:WebKit.WKWebExtensionPermission.ClipboardWrite +F:WebKit.WKWebExtensionPermission.ContextMenus +F:WebKit.WKWebExtensionPermission.Cookies +F:WebKit.WKWebExtensionPermission.DeclarativeNetRequest +F:WebKit.WKWebExtensionPermission.DeclarativeNetRequestFeedback +F:WebKit.WKWebExtensionPermission.DeclarativeNetRequestWithHostAccess +F:WebKit.WKWebExtensionPermission.Menus +F:WebKit.WKWebExtensionPermission.NativeMessaging +F:WebKit.WKWebExtensionPermission.Scripting +F:WebKit.WKWebExtensionPermission.Storage +F:WebKit.WKWebExtensionPermission.Tabs +F:WebKit.WKWebExtensionPermission.UnlimitedStorage +F:WebKit.WKWebExtensionPermission.WebNavigation +F:WebKit.WKWebExtensionPermission.WebRequest +F:WebKit.WKWebExtensionTabChangedProperties.Loading +F:WebKit.WKWebExtensionTabChangedProperties.Muted +F:WebKit.WKWebExtensionTabChangedProperties.None +F:WebKit.WKWebExtensionTabChangedProperties.Pinned +F:WebKit.WKWebExtensionTabChangedProperties.PlayingAudio +F:WebKit.WKWebExtensionTabChangedProperties.ReaderMode +F:WebKit.WKWebExtensionTabChangedProperties.Size +F:WebKit.WKWebExtensionTabChangedProperties.Title +F:WebKit.WKWebExtensionTabChangedProperties.Url +F:WebKit.WKWebExtensionTabChangedProperties.ZoomFactor +F:WebKit.WKWebExtensionWindowState.Fullscreen +F:WebKit.WKWebExtensionWindowState.Maximized +F:WebKit.WKWebExtensionWindowState.Minimized +F:WebKit.WKWebExtensionWindowState.Normal +F:WebKit.WKWebExtensionWindowType.Normal +F:WebKit.WKWebExtensionWindowType.Popup F:WebKit.WKWebpagePreferencesUpgradeToHttpsPolicy.AutomaticFallbackToHttp F:WebKit.WKWebpagePreferencesUpgradeToHttpsPolicy.ErrorOnFailure F:WebKit.WKWebpagePreferencesUpgradeToHttpsPolicy.KeepAsRequested @@ -39907,6 +39979,7 @@ M:WebKit.IWKNavigationDelegate.DidStartProvisionalNavigation(WebKit.WKWebView,We M:WebKit.IWKNavigationDelegate.NavigationActionDidBecomeDownload(WebKit.WKWebView,WebKit.WKNavigationAction,WebKit.WKDownload) M:WebKit.IWKNavigationDelegate.NavigationResponseDidBecomeDownload(WebKit.WKWebView,WebKit.WKNavigationResponse,WebKit.WKDownload) M:WebKit.IWKNavigationDelegate.ShouldAllowDeprecatedTls(WebKit.WKWebView,Foundation.NSUrlAuthenticationChallenge,System.Action{System.Boolean}) +M:WebKit.IWKNavigationDelegate.ShouldGoToBackForwardListItem(WebKit.WKWebView,WebKit.WKBackForwardListItem,System.Boolean,WebKit.WKNavigationDelegateShouldGoToBackForwardListItemCallback) M:WebKit.IWKScriptMessageHandler.DidReceiveScriptMessage(WebKit.WKUserContentController,WebKit.WKScriptMessage) M:WebKit.IWKScriptMessageHandlerWithReply.DidReceiveScriptMessage(WebKit.WKUserContentController,WebKit.WKScriptMessage,System.Action{Foundation.NSObject,Foundation.NSString}) M:WebKit.IWKUIDelegate.CommitPreviewingViewController(WebKit.WKWebView,UIKit.UIViewController) @@ -39935,6 +40008,86 @@ M:WebKit.IWKUrlSchemeTask.DidFailWithError(Foundation.NSError) M:WebKit.IWKUrlSchemeTask.DidFinish M:WebKit.IWKUrlSchemeTask.DidReceiveData(Foundation.NSData) M:WebKit.IWKUrlSchemeTask.DidReceiveResponse(Foundation.NSUrlResponse) +M:WebKit.IWKWebExtensionControllerDelegate.Connect(WebKit.WKWebExtensionController,WebKit.WKWebExtensionMessagePort,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegateConnectCallback) +M:WebKit.IWKWebExtensionControllerDelegate.ConnectAsync(WebKit.WKWebExtensionController,WebKit.WKWebExtensionMessagePort,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.DidUpdateAction(WebKit.WKWebExtensionController,WebKit.WKWebExtensionAction,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.GetFocusedWindow(WebKit.WKWebExtensionController,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.OpenNewTab(WebKit.WKWebExtensionController,WebKit.WKWebExtensionTabConfiguration,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegateOpenNewTabCallback) +M:WebKit.IWKWebExtensionControllerDelegate.OpenNewTabAsync(WebKit.WKWebExtensionController,WebKit.WKWebExtensionTabConfiguration,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.OpenNewWindow(WebKit.WKWebExtensionController,WebKit.WKWebExtensionWindowConfiguration,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegateOpenNewWindowCallback) +M:WebKit.IWKWebExtensionControllerDelegate.OpenNewWindowAsync(WebKit.WKWebExtensionController,WebKit.WKWebExtensionWindowConfiguration,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.OpenOptions(WebKit.WKWebExtensionController,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegateOpenOptionsCallback) +M:WebKit.IWKWebExtensionControllerDelegate.OpenOptionsAsync(WebKit.WKWebExtensionController,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.OpenWindows(WebKit.WKWebExtensionController,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionControllerDelegate.PresentPopupForAction(WebKit.WKWebExtensionController,WebKit.WKWebExtensionAction,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegatePresentPopupForActionCallback) +M:WebKit.IWKWebExtensionControllerDelegate.PromptForPermissionMatchPatterns(WebKit.WKWebExtensionController,Foundation.NSSet{WebKit.WKWebExtensionMatchPattern},WebKit.IWKWebExtensionTab,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegatePromptForPermissionMatchPatternsCallback) +M:WebKit.IWKWebExtensionControllerDelegate.PromptForPermissions(WebKit.WKWebExtensionController,Foundation.NSSet{Foundation.NSString},WebKit.IWKWebExtensionTab,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegatePromptForPermissionsCallback) +M:WebKit.IWKWebExtensionControllerDelegate.PromptForPermissionsToAccessUrls(WebKit.WKWebExtensionController,Foundation.NSSet{Foundation.NSUrl},WebKit.IWKWebExtensionTab,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegatePromptForPermissionsToAccessUrlsCallback) +M:WebKit.IWKWebExtensionControllerDelegate.SendMessage(WebKit.WKWebExtensionController,Foundation.NSObject,System.String,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDelegateSendMessageCallback) +M:WebKit.IWKWebExtensionControllerDelegate.SendMessageAsync(WebKit.WKWebExtensionController,Foundation.NSObject,System.String,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.Activate(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.ActivateAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.Close(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.CloseAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.DetectWebpageLocale(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabDetectLocaleCallback) +M:WebKit.IWKWebExtensionTab.DetectWebpageLocaleAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.Duplicate(WebKit.WKWebExtensionTabConfiguration,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabDuplicateCallback) +M:WebKit.IWKWebExtensionTab.DuplicateAsync(WebKit.WKWebExtensionTabConfiguration,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetIndexInWindow(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetParentTab(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetPendingUrl(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetSize(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetTitle(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetUrl(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetWebView(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetWindow(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GetZoomFactor(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GoBack(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.GoBackAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.GoForward(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.GoForwardAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsLoadingComplete(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsMuted(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsPinned(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsPlayingAudio(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsReaderModeActive(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsReaderModeAvailable(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.IsSelected(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.LoadUrl(Foundation.NSUrl,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.LoadUrlAsync(Foundation.NSUrl,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.ReloadFromOrigin(System.Boolean,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.ReloadFromOriginAsync(System.Boolean,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetMuted(System.Boolean,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetMutedAsync(System.Boolean,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetParentTab(WebKit.IWKWebExtensionTab,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetParentTabAsync(WebKit.IWKWebExtensionTab,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetPinned(System.Boolean,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetPinnedAsync(System.Boolean,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetReaderModeActive(System.Boolean,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetReaderModeActiveAsync(System.Boolean,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetSelected(System.Boolean,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetSelectedAsync(System.Boolean,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.SetZoomFactor(System.Double,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabCallback) +M:WebKit.IWKWebExtensionTab.SetZoomFactorAsync(System.Double,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.ShouldBypassPermissions(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.ShouldGrantPermissionsOnUserGesture(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionTab.TakeSnapshot(WebKit.WKSnapshotConfiguration,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionTabTakeSnapshotCallback) +M:WebKit.IWKWebExtensionTab.TakeSnapshotAsync(WebKit.WKSnapshotConfiguration,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.ActiveTab(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.Close(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionWindowCallback) +M:WebKit.IWKWebExtensionWindow.CloseAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.Focus(WebKit.WKWebExtensionContext,WebKit.WKWebExtensionWindowCallback) +M:WebKit.IWKWebExtensionWindow.FocusAsync(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.GetFrame(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.GetScreenFrame(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.GetTabs(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.GetWindowState(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.GetWindowType(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.IsPrivate(WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.SetFrame(CoreGraphics.CGRect,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionWindowCallback) +M:WebKit.IWKWebExtensionWindow.SetFrameAsync(CoreGraphics.CGRect,WebKit.WKWebExtensionContext) +M:WebKit.IWKWebExtensionWindow.SetWindowState(WebKit.WKWebExtensionWindowState,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionWindowCallback) +M:WebKit.IWKWebExtensionWindow.SetWindowStateAsync(WebKit.WKWebExtensionWindowState,WebKit.WKWebExtensionContext) M:WebKit.WebArchive.Copy(Foundation.NSZone) M:WebKit.WebArchive.EncodeTo(Foundation.NSCoder) M:WebKit.WebDownloadDelegate_Extensions.OnDownloadWindowForSheet(WebKit.IWebDownloadDelegate,WebKit.WebDownload) @@ -40189,6 +40342,8 @@ M:WebKit.WKNavigationDelegate_Extensions.DidStartProvisionalNavigation(WebKit.IW M:WebKit.WKNavigationDelegate_Extensions.NavigationActionDidBecomeDownload(WebKit.IWKNavigationDelegate,WebKit.WKWebView,WebKit.WKNavigationAction,WebKit.WKDownload) M:WebKit.WKNavigationDelegate_Extensions.NavigationResponseDidBecomeDownload(WebKit.IWKNavigationDelegate,WebKit.WKWebView,WebKit.WKNavigationResponse,WebKit.WKDownload) M:WebKit.WKNavigationDelegate_Extensions.ShouldAllowDeprecatedTls(WebKit.IWKNavigationDelegate,WebKit.WKWebView,Foundation.NSUrlAuthenticationChallenge,System.Action{System.Boolean}) +M:WebKit.WKNavigationDelegate_Extensions.ShouldGoToBackForwardListItem(WebKit.IWKNavigationDelegate,WebKit.WKWebView,WebKit.WKBackForwardListItem,System.Boolean,WebKit.WKNavigationDelegateShouldGoToBackForwardListItemCallback) +M:WebKit.WKNavigationDelegate.ShouldGoToBackForwardListItem(WebKit.WKWebView,WebKit.WKBackForwardListItem,System.Boolean,WebKit.WKNavigationDelegateShouldGoToBackForwardListItemCallback) M:WebKit.WKPdfConfiguration.Copy(Foundation.NSZone) M:WebKit.WKPreferences.EncodeTo(Foundation.NSCoder) M:WebKit.WKPreviewElementInfo.Copy(Foundation.NSZone) @@ -40217,6 +40372,30 @@ M:WebKit.WKUIDelegate_Extensions.WillDismissEditMenu(WebKit.IWKUIDelegate,WebKit M:WebKit.WKUIDelegate_Extensions.WillPresentEditMenu(WebKit.IWKUIDelegate,WebKit.WKWebView,UIKit.IUIEditMenuInteractionAnimating) M:WebKit.WKUserContentController.EncodeTo(Foundation.NSCoder) M:WebKit.WKUserScript.Copy(Foundation.NSZone) +M:WebKit.WKWebExtension.CreateAsync(Foundation.NSBundle) +M:WebKit.WKWebExtension.CreateAsync(Foundation.NSUrl) +M:WebKit.WKWebExtensionAction.Dispose(System.Boolean) +M:WebKit.WKWebExtensionCommand.Dispose(System.Boolean) +M:WebKit.WKWebExtensionContext.Dispose(System.Boolean) +M:WebKit.WKWebExtensionContext.LoadBackgroundContentAsync +M:WebKit.WKWebExtensionController.Dispose(System.Boolean) +M:WebKit.WKWebExtensionController.FetchDataRecord(WebKit.WKWebExtensionDataType,WebKit.WKWebExtensionContext,WebKit.WKWebExtensionControllerDataRecordCallback) +M:WebKit.WKWebExtensionController.FetchDataRecordAsync(Foundation.NSSet{Foundation.NSString},WebKit.WKWebExtensionContext) +M:WebKit.WKWebExtensionController.FetchDataRecordAsync(WebKit.WKWebExtensionDataType,WebKit.WKWebExtensionContext) +M:WebKit.WKWebExtensionController.FetchDataRecords(WebKit.WKWebExtensionDataType,WebKit.WKWebExtensionControllerDataRecordsCallback) +M:WebKit.WKWebExtensionController.FetchDataRecordsAsync(Foundation.NSSet{Foundation.NSString}) +M:WebKit.WKWebExtensionController.FetchDataRecordsAsync(WebKit.WKWebExtensionDataType) +M:WebKit.WKWebExtensionController.RemoveData(WebKit.WKWebExtensionDataType,WebKit.WKWebExtensionDataRecord[],System.Action) +M:WebKit.WKWebExtensionController.RemoveDataAsync(Foundation.NSSet{Foundation.NSString},WebKit.WKWebExtensionDataRecord[]) +M:WebKit.WKWebExtensionController.RemoveDataAsync(WebKit.WKWebExtensionDataType,WebKit.WKWebExtensionDataRecord[]) +M:WebKit.WKWebExtensionControllerConfiguration.Copy(Foundation.NSZone) +M:WebKit.WKWebExtensionControllerConfiguration.EncodeTo(Foundation.NSCoder) +M:WebKit.WKWebExtensionDataRecord.GetSizeInBytes(WebKit.WKWebExtensionDataType) +M:WebKit.WKWebExtensionDataTypeExtensions.ToFlags(System.Collections.Generic.IEnumerable{Foundation.NSString}) +M:WebKit.WKWebExtensionMatchPattern.Copy(Foundation.NSZone) +M:WebKit.WKWebExtensionMatchPattern.EncodeTo(Foundation.NSCoder) +M:WebKit.WKWebExtensionMessagePort.SendMessageAsync(Foundation.NSObject) +M:WebKit.WKWebExtensionPermissionExtensions.ToFlags(System.Collections.Generic.IEnumerable{Foundation.NSString}) M:WebKit.WKWebsiteDataStore.EncodeTo(Foundation.NSCoder) M:WebKit.WKWebsiteDataStore.FetchAllDataStoreIdentifiersAsync M:WebKit.WKWebsiteDataStore.FetchDataRecordsOfTypesAsync(Foundation.NSSet{Foundation.NSString}) @@ -54563,6 +54742,28 @@ P:WebKit.WKPreviewActionItemIdentifier.Copy P:WebKit.WKPreviewActionItemIdentifier.Open P:WebKit.WKPreviewActionItemIdentifier.Share P:WebKit.WKUserScript.IsForMainFrameOnly +P:WebKit.WKWebExtension.OptionalPermissions +P:WebKit.WKWebExtension.RequestedPermissions +P:WebKit.WKWebExtensionAction.Enabled +P:WebKit.WKWebExtensionContext.CurrentPermission +P:WebKit.WKWebExtensionContext.DeniedPermissionMatchPatternsWereRemovedNotification +P:WebKit.WKWebExtensionContext.DeniedPermissionsWereRemovedNotification +P:WebKit.WKWebExtensionContext.ErrorsDidUpdateNotification +P:WebKit.WKWebExtensionContext.GrantedPermissionMatchPatternsWereRemovedNotification +P:WebKit.WKWebExtensionContext.GrantedPermissionsWereRemovedNotification +P:WebKit.WKWebExtensionContext.Inspectable +P:WebKit.WKWebExtensionContext.Loaded +P:WebKit.WKWebExtensionContext.NotificationUserInfoKeyMatchPatterns +P:WebKit.WKWebExtensionContext.NotificationUserInfoKeyPermissions +P:WebKit.WKWebExtensionContext.PermissionMatchPatternsWereDeniedNotification +P:WebKit.WKWebExtensionContext.PermissionMatchPatternsWereGrantedNotification +P:WebKit.WKWebExtensionContext.PermissionsWereDeniedNotification +P:WebKit.WKWebExtensionContext.PermissionsWereGrantedNotification +P:WebKit.WKWebExtensionController.AllExtensionDataTypes +P:WebKit.WKWebExtensionController.Delegate +P:WebKit.WKWebExtensionControllerConfiguration.Persistent +P:WebKit.WKWebExtensionDataRecord.ContainedDataTypes +P:WebKit.WKWebExtensionMessagePort.Disconnected P:WebKit.WKWebpagePreferences.LockdownModeEnabled P:WebKit.WKWebsiteDataStore.Persistent P:WebKit.WKWebsiteDataType.Cookies @@ -61687,6 +61888,9 @@ T:WebKit.IWebResourceLoadDelegate T:WebKit.IWebUIDelegate T:WebKit.IWKDownloadDelegate T:WebKit.IWKScriptMessageHandlerWithReply +T:WebKit.IWKWebExtensionControllerDelegate +T:WebKit.IWKWebExtensionTab +T:WebKit.IWKWebExtensionWindow T:WebKit.WebActionMouseButton T:WebKit.WebCacheModel T:WebKit.WebDocumentRepresentation @@ -61765,6 +61969,41 @@ T:WebKit.WKInactiveSchedulingPolicy T:WebKit.WKMediaCaptureState T:WebKit.WKMediaCaptureType T:WebKit.WKMediaPlaybackState +T:WebKit.WKNavigationDelegateShouldGoToBackForwardListItemCallback T:WebKit.WKPermissionDecision T:WebKit.WKUserInterfaceDirectionPolicy +T:WebKit.WKWebExtensionContextCallback +T:WebKit.WKWebExtensionContextError +T:WebKit.WKWebExtensionContextPermissionStatus +T:WebKit.WKWebExtensionControllerDataRecordCallback +T:WebKit.WKWebExtensionControllerDataRecordsCallback +T:WebKit.WKWebExtensionControllerDelegate +T:WebKit.WKWebExtensionControllerDelegateConnectCallback +T:WebKit.WKWebExtensionControllerDelegateOpenNewTabCallback +T:WebKit.WKWebExtensionControllerDelegateOpenNewWindowCallback +T:WebKit.WKWebExtensionControllerDelegateOpenOptionsCallback +T:WebKit.WKWebExtensionControllerDelegatePresentPopupForActionCallback +T:WebKit.WKWebExtensionControllerDelegatePromptForPermissionMatchPatternsCallback +T:WebKit.WKWebExtensionControllerDelegatePromptForPermissionsCallback +T:WebKit.WKWebExtensionControllerDelegatePromptForPermissionsToAccessUrlsCallback +T:WebKit.WKWebExtensionControllerDelegateSendMessageCallback +T:WebKit.WKWebExtensionCreateCallback +T:WebKit.WKWebExtensionDataRecordError +T:WebKit.WKWebExtensionDataType +T:WebKit.WKWebExtensionError +T:WebKit.WKWebExtensionMatchPatternError +T:WebKit.WKWebExtensionMatchPatternOptions +T:WebKit.WKWebExtensionMessagePortDisconnectHandlerCallback +T:WebKit.WKWebExtensionMessagePortError +T:WebKit.WKWebExtensionMessagePortMessageHandlerCallback +T:WebKit.WKWebExtensionMessagePortSendMessageCallback +T:WebKit.WKWebExtensionPermission +T:WebKit.WKWebExtensionTabCallback +T:WebKit.WKWebExtensionTabChangedProperties +T:WebKit.WKWebExtensionTabDetectLocaleCallback +T:WebKit.WKWebExtensionTabDuplicateCallback +T:WebKit.WKWebExtensionTabTakeSnapshotCallback +T:WebKit.WKWebExtensionWindowCallback +T:WebKit.WKWebExtensionWindowState +T:WebKit.WKWebExtensionWindowType T:WebKit.WKWebpagePreferencesUpgradeToHttpsPolicy diff --git a/tests/monotouch-test/WebKit/WKWebExtensionControllerTest.cs b/tests/monotouch-test/WebKit/WKWebExtensionControllerTest.cs new file mode 100644 index 000000000000..2ee420aa98f3 --- /dev/null +++ b/tests/monotouch-test/WebKit/WKWebExtensionControllerTest.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#if HAS_WEBKIT + +using System; +using System.Linq; +using System.Numerics; +using System.Threading; + +using Foundation; +using ObjCRuntime; +using WebKit; + +using NUnit.Framework; + +namespace MonoTouchFixtures.WebKit { + [TestFixture] + [Preserve (AllMembers = true)] + public class WKWebExtensionControllerTest { + [Test] + public void AllExtensionDataTypes () + { + TestRuntime.AssertXcodeVersion (16, 3); + + var weak = WKWebExtensionController.WeakAllExtensionDataTypes; + var strong = WKWebExtensionController.AllExtensionDataTypes; + var strongBitCount = BitOperations.PopCount (unchecked((ulong) strong)); + Assert.That (strongBitCount, Is.EqualTo ((int) weak.Count), "Count"); + Assert.That (strongBitCount, Is.GreaterThan (0), ">0"); + } + + [Test] + public void DataRecords () + { + TestRuntime.AssertXcodeVersion (16, 3); + + using var obj = new WKWebExtensionController (); + var evt = new ManualResetEvent (false); + WKWebExtensionDataRecord? [] records = null; + + obj.FetchDataRecords (WKWebExtensionController.AllExtensionDataTypes, (fetchedRecords) => { + records = fetchedRecords; + evt.Set (); + }); + Assert.That (evt.WaitOne (TimeSpan.FromSeconds (1)), "Wait"); + Assert.That (records, Is.Not.Null, "Not null"); + Assert.That (records.Length, Is.EqualTo (0), "No records"); + } + } +} + +#endif // HAS_WEBKIT diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-WebKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-WebKit.todo deleted file mode 100644 index 4d9bea285594..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-WebKit.todo +++ /dev/null @@ -1,280 +0,0 @@ -!missing-enum! WKWebExtensionContextError not bound -!missing-enum! WKWebExtensionContextPermissionStatus not bound -!missing-enum! WKWebExtensionDataRecordError not bound -!missing-enum! WKWebExtensionError not bound -!missing-enum! WKWebExtensionMatchPatternError not bound -!missing-enum! WKWebExtensionMatchPatternOptions not bound -!missing-enum! WKWebExtensionMessagePortError not bound -!missing-enum! WKWebExtensionTabChangedProperties not bound -!missing-enum! WKWebExtensionWindowState not bound -!missing-enum! WKWebExtensionWindowType not bound -!missing-field! WKWebExtensionContextDeniedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextDeniedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextErrorDomain not bound -!missing-field! WKWebExtensionContextErrorsDidUpdateNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyMatchPatterns not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyPermissions not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereGrantedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereGrantedNotification not bound -!missing-field! WKWebExtensionDataRecordErrorDomain not bound -!missing-field! WKWebExtensionDataTypeLocal not bound -!missing-field! WKWebExtensionDataTypeSession not bound -!missing-field! WKWebExtensionDataTypeSynchronized not bound -!missing-field! WKWebExtensionErrorDomain not bound -!missing-field! WKWebExtensionMatchPatternErrorDomain not bound -!missing-field! WKWebExtensionMessagePortErrorDomain not bound -!missing-field! WKWebExtensionPermissionActiveTab not bound -!missing-field! WKWebExtensionPermissionAlarms not bound -!missing-field! WKWebExtensionPermissionClipboardWrite not bound -!missing-field! WKWebExtensionPermissionContextMenus not bound -!missing-field! WKWebExtensionPermissionCookies not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequest not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestFeedback not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestWithHostAccess not bound -!missing-field! WKWebExtensionPermissionMenus not bound -!missing-field! WKWebExtensionPermissionNativeMessaging not bound -!missing-field! WKWebExtensionPermissionScripting not bound -!missing-field! WKWebExtensionPermissionStorage not bound -!missing-field! WKWebExtensionPermissionTabs not bound -!missing-field! WKWebExtensionPermissionUnlimitedStorage not bound -!missing-field! WKWebExtensionPermissionWebNavigation not bound -!missing-field! WKWebExtensionPermissionWebRequest not bound -!missing-protocol! WKWebExtensionControllerDelegate not bound -!missing-protocol! WKWebExtensionTab not bound -!missing-protocol! WKWebExtensionWindow not bound -!missing-protocol-member! WKUIDelegate::webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler: not found -!missing-selector! +WKWebExtension::extensionWithAppExtensionBundle:completionHandler: not bound -!missing-selector! +WKWebExtension::extensionWithResourceBaseURL:completionHandler: not bound -!missing-selector! +WKWebExtensionContext::contextForExtension: not bound -!missing-selector! +WKWebExtensionController::allExtensionDataTypes not bound -!missing-selector! +WKWebExtensionControllerConfiguration::configurationWithIdentifier: not bound -!missing-selector! +WKWebExtensionControllerConfiguration::defaultConfiguration not bound -!missing-selector! +WKWebExtensionControllerConfiguration::nonPersistentConfiguration not bound -!missing-selector! +WKWebExtensionMatchPattern::allHostsAndSchemesMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::allURLsMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithScheme:host:path: not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithString: not bound -!missing-selector! +WKWebExtensionMatchPattern::registerCustomURLScheme: not bound -!missing-selector! WKNavigationAction::buttonNumber not bound -!missing-selector! WKNavigationAction::modifierFlags not bound -!missing-selector! WKOpenPanelParameters::allowsDirectories not bound -!missing-selector! WKOpenPanelParameters::allowsMultipleSelection not bound -!missing-selector! WKWebExtension::actionIconForSize: not bound -!missing-selector! WKWebExtension::allRequestedMatchPatterns not bound -!missing-selector! WKWebExtension::defaultLocale not bound -!missing-selector! WKWebExtension::displayActionLabel not bound -!missing-selector! WKWebExtension::displayDescription not bound -!missing-selector! WKWebExtension::displayName not bound -!missing-selector! WKWebExtension::displayShortName not bound -!missing-selector! WKWebExtension::displayVersion not bound -!missing-selector! WKWebExtension::errors not bound -!missing-selector! WKWebExtension::hasBackgroundContent not bound -!missing-selector! WKWebExtension::hasCommands not bound -!missing-selector! WKWebExtension::hasContentModificationRules not bound -!missing-selector! WKWebExtension::hasInjectedContent not bound -!missing-selector! WKWebExtension::hasOptionsPage not bound -!missing-selector! WKWebExtension::hasOverrideNewTabPage not bound -!missing-selector! WKWebExtension::hasPersistentBackgroundContent not bound -!missing-selector! WKWebExtension::iconForSize: not bound -!missing-selector! WKWebExtension::manifest not bound -!missing-selector! WKWebExtension::manifestVersion not bound -!missing-selector! WKWebExtension::optionalPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::optionalPermissions not bound -!missing-selector! WKWebExtension::requestedPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::requestedPermissions not bound -!missing-selector! WKWebExtension::supportsManifestVersion: not bound -!missing-selector! WKWebExtension::version not bound -!missing-selector! WKWebExtensionAction::associatedTab not bound -!missing-selector! WKWebExtensionAction::badgeText not bound -!missing-selector! WKWebExtensionAction::closePopup not bound -!missing-selector! WKWebExtensionAction::hasUnreadBadgeText not bound -!missing-selector! WKWebExtensionAction::iconForSize: not bound -!missing-selector! WKWebExtensionAction::inspectionName not bound -!missing-selector! WKWebExtensionAction::isEnabled not bound -!missing-selector! WKWebExtensionAction::label not bound -!missing-selector! WKWebExtensionAction::menuItems not bound -!missing-selector! WKWebExtensionAction::popupViewController not bound -!missing-selector! WKWebExtensionAction::popupWebView not bound -!missing-selector! WKWebExtensionAction::presentsPopup not bound -!missing-selector! WKWebExtensionAction::setHasUnreadBadgeText: not bound -!missing-selector! WKWebExtensionAction::setInspectionName: not bound -!missing-selector! WKWebExtensionAction::webExtensionContext not bound -!missing-selector! WKWebExtensionCommand::activationKey not bound -!missing-selector! WKWebExtensionCommand::identifier not bound -!missing-selector! WKWebExtensionCommand::keyCommand not bound -!missing-selector! WKWebExtensionCommand::menuItem not bound -!missing-selector! WKWebExtensionCommand::modifierFlags not bound -!missing-selector! WKWebExtensionCommand::setActivationKey: not bound -!missing-selector! WKWebExtensionCommand::setModifierFlags: not bound -!missing-selector! WKWebExtensionCommand::title not bound -!missing-selector! WKWebExtensionCommand::webExtensionContext not bound -!missing-selector! WKWebExtensionContext::actionForTab: not bound -!missing-selector! WKWebExtensionContext::baseURL not bound -!missing-selector! WKWebExtensionContext::clearUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::commands not bound -!missing-selector! WKWebExtensionContext::currentPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::currentPermissions not bound -!missing-selector! WKWebExtensionContext::deniedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::deniedPermissions not bound -!missing-selector! WKWebExtensionContext::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionContext::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionContext::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionContext::didCloseWindow: not bound -!missing-selector! WKWebExtensionContext::didDeselectTabs: not bound -!missing-selector! WKWebExtensionContext::didFocusWindow: not bound -!missing-selector! WKWebExtensionContext::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionContext::didOpenTab: not bound -!missing-selector! WKWebExtensionContext::didOpenWindow: not bound -!missing-selector! WKWebExtensionContext::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionContext::didSelectTabs: not bound -!missing-selector! WKWebExtensionContext::errors not bound -!missing-selector! WKWebExtensionContext::focusedWindow not bound -!missing-selector! WKWebExtensionContext::grantedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::grantedPermissions not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllURLs not bound -!missing-selector! WKWebExtensionContext::hasAccessToPrivateData not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL: not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL:inTab: not bound -!missing-selector! WKWebExtensionContext::hasActiveUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::hasContentModificationRules not bound -!missing-selector! WKWebExtensionContext::hasInjectedContent not bound -!missing-selector! WKWebExtensionContext::hasInjectedContentForURL: not bound -!missing-selector! WKWebExtensionContext::hasPermission: not bound -!missing-selector! WKWebExtensionContext::hasPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::hasRequestedOptionalAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::initForExtension: not bound -!missing-selector! WKWebExtensionContext::inspectionName not bound -!missing-selector! WKWebExtensionContext::isInspectable not bound -!missing-selector! WKWebExtensionContext::isLoaded not bound -!missing-selector! WKWebExtensionContext::loadBackgroundContentWithCompletionHandler: not bound -!missing-selector! WKWebExtensionContext::menuItemsForTab: not bound -!missing-selector! WKWebExtensionContext::openTabs not bound -!missing-selector! WKWebExtensionContext::openWindows not bound -!missing-selector! WKWebExtensionContext::optionsPageURL not bound -!missing-selector! WKWebExtensionContext::overrideNewTabPageURL not bound -!missing-selector! WKWebExtensionContext::performActionForTab: not bound -!missing-selector! WKWebExtensionContext::performCommand: not bound -!missing-selector! WKWebExtensionContext::performCommandForKeyCommand: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL:inTab: not bound -!missing-selector! WKWebExtensionContext::setBaseURL: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissions: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissions: not bound -!missing-selector! WKWebExtensionContext::setHasAccessToPrivateData: not bound -!missing-selector! WKWebExtensionContext::setHasRequestedOptionalAccessToAllHosts: not bound -!missing-selector! WKWebExtensionContext::setInspectable: not bound -!missing-selector! WKWebExtensionContext::setInspectionName: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setUniqueIdentifier: not bound -!missing-selector! WKWebExtensionContext::setUnsupportedAPIs: not bound -!missing-selector! WKWebExtensionContext::uniqueIdentifier not bound -!missing-selector! WKWebExtensionContext::unsupportedAPIs not bound -!missing-selector! WKWebExtensionContext::userGesturePerformedInTab: not bound -!missing-selector! WKWebExtensionContext::webExtension not bound -!missing-selector! WKWebExtensionContext::webExtensionController not bound -!missing-selector! WKWebExtensionContext::webViewConfiguration not bound -!missing-selector! WKWebExtensionController::configuration not bound -!missing-selector! WKWebExtensionController::delegate not bound -!missing-selector! WKWebExtensionController::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionController::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionController::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionController::didCloseWindow: not bound -!missing-selector! WKWebExtensionController::didDeselectTabs: not bound -!missing-selector! WKWebExtensionController::didFocusWindow: not bound -!missing-selector! WKWebExtensionController::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionController::didOpenTab: not bound -!missing-selector! WKWebExtensionController::didOpenWindow: not bound -!missing-selector! WKWebExtensionController::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionController::didSelectTabs: not bound -!missing-selector! WKWebExtensionController::extensionContextForExtension: not bound -!missing-selector! WKWebExtensionController::extensionContextForURL: not bound -!missing-selector! WKWebExtensionController::extensionContexts not bound -!missing-selector! WKWebExtensionController::extensions not bound -!missing-selector! WKWebExtensionController::fetchDataRecordOfTypes:forExtensionContext:completionHandler: not bound -!missing-selector! WKWebExtensionController::fetchDataRecordsOfTypes:completionHandler: not bound -!missing-selector! WKWebExtensionController::init not bound -!missing-selector! WKWebExtensionController::initWithConfiguration: not bound -!missing-selector! WKWebExtensionController::loadExtensionContext:error: not bound -!missing-selector! WKWebExtensionController::removeDataOfTypes:fromDataRecords:completionHandler: not bound -!missing-selector! WKWebExtensionController::setDelegate: not bound -!missing-selector! WKWebExtensionController::unloadExtensionContext:error: not bound -!missing-selector! WKWebExtensionControllerConfiguration::defaultWebsiteDataStore not bound -!missing-selector! WKWebExtensionControllerConfiguration::identifier not bound -!missing-selector! WKWebExtensionControllerConfiguration::isPersistent not bound -!missing-selector! WKWebExtensionControllerConfiguration::setDefaultWebsiteDataStore: not bound -!missing-selector! WKWebExtensionControllerConfiguration::setWebViewConfiguration: not bound -!missing-selector! WKWebExtensionControllerConfiguration::webViewConfiguration not bound -!missing-selector! WKWebExtensionDataRecord::containedDataTypes not bound -!missing-selector! WKWebExtensionDataRecord::displayName not bound -!missing-selector! WKWebExtensionDataRecord::errors not bound -!missing-selector! WKWebExtensionDataRecord::sizeInBytesOfTypes: not bound -!missing-selector! WKWebExtensionDataRecord::totalSizeInBytes not bound -!missing-selector! WKWebExtensionDataRecord::uniqueIdentifier not bound -!missing-selector! WKWebExtensionMatchPattern::host not bound -!missing-selector! WKWebExtensionMatchPattern::initWithScheme:host:path:error: not bound -!missing-selector! WKWebExtensionMatchPattern::initWithString:error: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllHosts not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllURLs not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern:options: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL:options: not bound -!missing-selector! WKWebExtensionMatchPattern::path not bound -!missing-selector! WKWebExtensionMatchPattern::scheme not bound -!missing-selector! WKWebExtensionMatchPattern::string not bound -!missing-selector! WKWebExtensionMessagePort::applicationIdentifier not bound -!missing-selector! WKWebExtensionMessagePort::disconnect not bound -!missing-selector! WKWebExtensionMessagePort::disconnectHandler not bound -!missing-selector! WKWebExtensionMessagePort::disconnectWithError: not bound -!missing-selector! WKWebExtensionMessagePort::isDisconnected not bound -!missing-selector! WKWebExtensionMessagePort::messageHandler not bound -!missing-selector! WKWebExtensionMessagePort::sendMessage:completionHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setDisconnectHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setMessageHandler: not bound -!missing-selector! WKWebExtensionTabConfiguration::index not bound -!missing-selector! WKWebExtensionTabConfiguration::parentTab not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldAddToSelection not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeMuted not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBePinned not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldReaderModeBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::url not bound -!missing-selector! WKWebExtensionTabConfiguration::window not bound -!missing-selector! WKWebExtensionWindowConfiguration::frame not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBeFocused not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBePrivate not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabs not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabURLs not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowState not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowType not bound -!missing-selector! WKWebViewConfiguration::setWebExtensionController: not bound -!missing-selector! WKWebViewConfiguration::webExtensionController not bound -!missing-type! WKOpenPanelParameters not bound -!missing-type! WKWebExtension not bound -!missing-type! WKWebExtensionAction not bound -!missing-type! WKWebExtensionCommand not bound -!missing-type! WKWebExtensionContext not bound -!missing-type! WKWebExtensionController not bound -!missing-type! WKWebExtensionControllerConfiguration not bound -!missing-type! WKWebExtensionDataRecord not bound -!missing-type! WKWebExtensionMatchPattern not bound -!missing-type! WKWebExtensionMessagePort not bound -!missing-type! WKWebExtensionTabConfiguration not bound -!missing-type! WKWebExtensionWindowConfiguration not bound -!missing-protocol-member! WKNavigationDelegate::webView:shouldGoToBackForwardListItem:willUseInstantBack:completionHandler: not found diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-WebKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-WebKit.todo deleted file mode 100644 index 4d9bea285594..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-WebKit.todo +++ /dev/null @@ -1,280 +0,0 @@ -!missing-enum! WKWebExtensionContextError not bound -!missing-enum! WKWebExtensionContextPermissionStatus not bound -!missing-enum! WKWebExtensionDataRecordError not bound -!missing-enum! WKWebExtensionError not bound -!missing-enum! WKWebExtensionMatchPatternError not bound -!missing-enum! WKWebExtensionMatchPatternOptions not bound -!missing-enum! WKWebExtensionMessagePortError not bound -!missing-enum! WKWebExtensionTabChangedProperties not bound -!missing-enum! WKWebExtensionWindowState not bound -!missing-enum! WKWebExtensionWindowType not bound -!missing-field! WKWebExtensionContextDeniedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextDeniedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextErrorDomain not bound -!missing-field! WKWebExtensionContextErrorsDidUpdateNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyMatchPatterns not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyPermissions not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereGrantedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereGrantedNotification not bound -!missing-field! WKWebExtensionDataRecordErrorDomain not bound -!missing-field! WKWebExtensionDataTypeLocal not bound -!missing-field! WKWebExtensionDataTypeSession not bound -!missing-field! WKWebExtensionDataTypeSynchronized not bound -!missing-field! WKWebExtensionErrorDomain not bound -!missing-field! WKWebExtensionMatchPatternErrorDomain not bound -!missing-field! WKWebExtensionMessagePortErrorDomain not bound -!missing-field! WKWebExtensionPermissionActiveTab not bound -!missing-field! WKWebExtensionPermissionAlarms not bound -!missing-field! WKWebExtensionPermissionClipboardWrite not bound -!missing-field! WKWebExtensionPermissionContextMenus not bound -!missing-field! WKWebExtensionPermissionCookies not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequest not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestFeedback not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestWithHostAccess not bound -!missing-field! WKWebExtensionPermissionMenus not bound -!missing-field! WKWebExtensionPermissionNativeMessaging not bound -!missing-field! WKWebExtensionPermissionScripting not bound -!missing-field! WKWebExtensionPermissionStorage not bound -!missing-field! WKWebExtensionPermissionTabs not bound -!missing-field! WKWebExtensionPermissionUnlimitedStorage not bound -!missing-field! WKWebExtensionPermissionWebNavigation not bound -!missing-field! WKWebExtensionPermissionWebRequest not bound -!missing-protocol! WKWebExtensionControllerDelegate not bound -!missing-protocol! WKWebExtensionTab not bound -!missing-protocol! WKWebExtensionWindow not bound -!missing-protocol-member! WKUIDelegate::webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler: not found -!missing-selector! +WKWebExtension::extensionWithAppExtensionBundle:completionHandler: not bound -!missing-selector! +WKWebExtension::extensionWithResourceBaseURL:completionHandler: not bound -!missing-selector! +WKWebExtensionContext::contextForExtension: not bound -!missing-selector! +WKWebExtensionController::allExtensionDataTypes not bound -!missing-selector! +WKWebExtensionControllerConfiguration::configurationWithIdentifier: not bound -!missing-selector! +WKWebExtensionControllerConfiguration::defaultConfiguration not bound -!missing-selector! +WKWebExtensionControllerConfiguration::nonPersistentConfiguration not bound -!missing-selector! +WKWebExtensionMatchPattern::allHostsAndSchemesMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::allURLsMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithScheme:host:path: not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithString: not bound -!missing-selector! +WKWebExtensionMatchPattern::registerCustomURLScheme: not bound -!missing-selector! WKNavigationAction::buttonNumber not bound -!missing-selector! WKNavigationAction::modifierFlags not bound -!missing-selector! WKOpenPanelParameters::allowsDirectories not bound -!missing-selector! WKOpenPanelParameters::allowsMultipleSelection not bound -!missing-selector! WKWebExtension::actionIconForSize: not bound -!missing-selector! WKWebExtension::allRequestedMatchPatterns not bound -!missing-selector! WKWebExtension::defaultLocale not bound -!missing-selector! WKWebExtension::displayActionLabel not bound -!missing-selector! WKWebExtension::displayDescription not bound -!missing-selector! WKWebExtension::displayName not bound -!missing-selector! WKWebExtension::displayShortName not bound -!missing-selector! WKWebExtension::displayVersion not bound -!missing-selector! WKWebExtension::errors not bound -!missing-selector! WKWebExtension::hasBackgroundContent not bound -!missing-selector! WKWebExtension::hasCommands not bound -!missing-selector! WKWebExtension::hasContentModificationRules not bound -!missing-selector! WKWebExtension::hasInjectedContent not bound -!missing-selector! WKWebExtension::hasOptionsPage not bound -!missing-selector! WKWebExtension::hasOverrideNewTabPage not bound -!missing-selector! WKWebExtension::hasPersistentBackgroundContent not bound -!missing-selector! WKWebExtension::iconForSize: not bound -!missing-selector! WKWebExtension::manifest not bound -!missing-selector! WKWebExtension::manifestVersion not bound -!missing-selector! WKWebExtension::optionalPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::optionalPermissions not bound -!missing-selector! WKWebExtension::requestedPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::requestedPermissions not bound -!missing-selector! WKWebExtension::supportsManifestVersion: not bound -!missing-selector! WKWebExtension::version not bound -!missing-selector! WKWebExtensionAction::associatedTab not bound -!missing-selector! WKWebExtensionAction::badgeText not bound -!missing-selector! WKWebExtensionAction::closePopup not bound -!missing-selector! WKWebExtensionAction::hasUnreadBadgeText not bound -!missing-selector! WKWebExtensionAction::iconForSize: not bound -!missing-selector! WKWebExtensionAction::inspectionName not bound -!missing-selector! WKWebExtensionAction::isEnabled not bound -!missing-selector! WKWebExtensionAction::label not bound -!missing-selector! WKWebExtensionAction::menuItems not bound -!missing-selector! WKWebExtensionAction::popupViewController not bound -!missing-selector! WKWebExtensionAction::popupWebView not bound -!missing-selector! WKWebExtensionAction::presentsPopup not bound -!missing-selector! WKWebExtensionAction::setHasUnreadBadgeText: not bound -!missing-selector! WKWebExtensionAction::setInspectionName: not bound -!missing-selector! WKWebExtensionAction::webExtensionContext not bound -!missing-selector! WKWebExtensionCommand::activationKey not bound -!missing-selector! WKWebExtensionCommand::identifier not bound -!missing-selector! WKWebExtensionCommand::keyCommand not bound -!missing-selector! WKWebExtensionCommand::menuItem not bound -!missing-selector! WKWebExtensionCommand::modifierFlags not bound -!missing-selector! WKWebExtensionCommand::setActivationKey: not bound -!missing-selector! WKWebExtensionCommand::setModifierFlags: not bound -!missing-selector! WKWebExtensionCommand::title not bound -!missing-selector! WKWebExtensionCommand::webExtensionContext not bound -!missing-selector! WKWebExtensionContext::actionForTab: not bound -!missing-selector! WKWebExtensionContext::baseURL not bound -!missing-selector! WKWebExtensionContext::clearUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::commands not bound -!missing-selector! WKWebExtensionContext::currentPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::currentPermissions not bound -!missing-selector! WKWebExtensionContext::deniedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::deniedPermissions not bound -!missing-selector! WKWebExtensionContext::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionContext::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionContext::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionContext::didCloseWindow: not bound -!missing-selector! WKWebExtensionContext::didDeselectTabs: not bound -!missing-selector! WKWebExtensionContext::didFocusWindow: not bound -!missing-selector! WKWebExtensionContext::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionContext::didOpenTab: not bound -!missing-selector! WKWebExtensionContext::didOpenWindow: not bound -!missing-selector! WKWebExtensionContext::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionContext::didSelectTabs: not bound -!missing-selector! WKWebExtensionContext::errors not bound -!missing-selector! WKWebExtensionContext::focusedWindow not bound -!missing-selector! WKWebExtensionContext::grantedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::grantedPermissions not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllURLs not bound -!missing-selector! WKWebExtensionContext::hasAccessToPrivateData not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL: not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL:inTab: not bound -!missing-selector! WKWebExtensionContext::hasActiveUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::hasContentModificationRules not bound -!missing-selector! WKWebExtensionContext::hasInjectedContent not bound -!missing-selector! WKWebExtensionContext::hasInjectedContentForURL: not bound -!missing-selector! WKWebExtensionContext::hasPermission: not bound -!missing-selector! WKWebExtensionContext::hasPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::hasRequestedOptionalAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::initForExtension: not bound -!missing-selector! WKWebExtensionContext::inspectionName not bound -!missing-selector! WKWebExtensionContext::isInspectable not bound -!missing-selector! WKWebExtensionContext::isLoaded not bound -!missing-selector! WKWebExtensionContext::loadBackgroundContentWithCompletionHandler: not bound -!missing-selector! WKWebExtensionContext::menuItemsForTab: not bound -!missing-selector! WKWebExtensionContext::openTabs not bound -!missing-selector! WKWebExtensionContext::openWindows not bound -!missing-selector! WKWebExtensionContext::optionsPageURL not bound -!missing-selector! WKWebExtensionContext::overrideNewTabPageURL not bound -!missing-selector! WKWebExtensionContext::performActionForTab: not bound -!missing-selector! WKWebExtensionContext::performCommand: not bound -!missing-selector! WKWebExtensionContext::performCommandForKeyCommand: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL:inTab: not bound -!missing-selector! WKWebExtensionContext::setBaseURL: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissions: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissions: not bound -!missing-selector! WKWebExtensionContext::setHasAccessToPrivateData: not bound -!missing-selector! WKWebExtensionContext::setHasRequestedOptionalAccessToAllHosts: not bound -!missing-selector! WKWebExtensionContext::setInspectable: not bound -!missing-selector! WKWebExtensionContext::setInspectionName: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setUniqueIdentifier: not bound -!missing-selector! WKWebExtensionContext::setUnsupportedAPIs: not bound -!missing-selector! WKWebExtensionContext::uniqueIdentifier not bound -!missing-selector! WKWebExtensionContext::unsupportedAPIs not bound -!missing-selector! WKWebExtensionContext::userGesturePerformedInTab: not bound -!missing-selector! WKWebExtensionContext::webExtension not bound -!missing-selector! WKWebExtensionContext::webExtensionController not bound -!missing-selector! WKWebExtensionContext::webViewConfiguration not bound -!missing-selector! WKWebExtensionController::configuration not bound -!missing-selector! WKWebExtensionController::delegate not bound -!missing-selector! WKWebExtensionController::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionController::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionController::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionController::didCloseWindow: not bound -!missing-selector! WKWebExtensionController::didDeselectTabs: not bound -!missing-selector! WKWebExtensionController::didFocusWindow: not bound -!missing-selector! WKWebExtensionController::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionController::didOpenTab: not bound -!missing-selector! WKWebExtensionController::didOpenWindow: not bound -!missing-selector! WKWebExtensionController::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionController::didSelectTabs: not bound -!missing-selector! WKWebExtensionController::extensionContextForExtension: not bound -!missing-selector! WKWebExtensionController::extensionContextForURL: not bound -!missing-selector! WKWebExtensionController::extensionContexts not bound -!missing-selector! WKWebExtensionController::extensions not bound -!missing-selector! WKWebExtensionController::fetchDataRecordOfTypes:forExtensionContext:completionHandler: not bound -!missing-selector! WKWebExtensionController::fetchDataRecordsOfTypes:completionHandler: not bound -!missing-selector! WKWebExtensionController::init not bound -!missing-selector! WKWebExtensionController::initWithConfiguration: not bound -!missing-selector! WKWebExtensionController::loadExtensionContext:error: not bound -!missing-selector! WKWebExtensionController::removeDataOfTypes:fromDataRecords:completionHandler: not bound -!missing-selector! WKWebExtensionController::setDelegate: not bound -!missing-selector! WKWebExtensionController::unloadExtensionContext:error: not bound -!missing-selector! WKWebExtensionControllerConfiguration::defaultWebsiteDataStore not bound -!missing-selector! WKWebExtensionControllerConfiguration::identifier not bound -!missing-selector! WKWebExtensionControllerConfiguration::isPersistent not bound -!missing-selector! WKWebExtensionControllerConfiguration::setDefaultWebsiteDataStore: not bound -!missing-selector! WKWebExtensionControllerConfiguration::setWebViewConfiguration: not bound -!missing-selector! WKWebExtensionControllerConfiguration::webViewConfiguration not bound -!missing-selector! WKWebExtensionDataRecord::containedDataTypes not bound -!missing-selector! WKWebExtensionDataRecord::displayName not bound -!missing-selector! WKWebExtensionDataRecord::errors not bound -!missing-selector! WKWebExtensionDataRecord::sizeInBytesOfTypes: not bound -!missing-selector! WKWebExtensionDataRecord::totalSizeInBytes not bound -!missing-selector! WKWebExtensionDataRecord::uniqueIdentifier not bound -!missing-selector! WKWebExtensionMatchPattern::host not bound -!missing-selector! WKWebExtensionMatchPattern::initWithScheme:host:path:error: not bound -!missing-selector! WKWebExtensionMatchPattern::initWithString:error: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllHosts not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllURLs not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern:options: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL:options: not bound -!missing-selector! WKWebExtensionMatchPattern::path not bound -!missing-selector! WKWebExtensionMatchPattern::scheme not bound -!missing-selector! WKWebExtensionMatchPattern::string not bound -!missing-selector! WKWebExtensionMessagePort::applicationIdentifier not bound -!missing-selector! WKWebExtensionMessagePort::disconnect not bound -!missing-selector! WKWebExtensionMessagePort::disconnectHandler not bound -!missing-selector! WKWebExtensionMessagePort::disconnectWithError: not bound -!missing-selector! WKWebExtensionMessagePort::isDisconnected not bound -!missing-selector! WKWebExtensionMessagePort::messageHandler not bound -!missing-selector! WKWebExtensionMessagePort::sendMessage:completionHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setDisconnectHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setMessageHandler: not bound -!missing-selector! WKWebExtensionTabConfiguration::index not bound -!missing-selector! WKWebExtensionTabConfiguration::parentTab not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldAddToSelection not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeMuted not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBePinned not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldReaderModeBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::url not bound -!missing-selector! WKWebExtensionTabConfiguration::window not bound -!missing-selector! WKWebExtensionWindowConfiguration::frame not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBeFocused not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBePrivate not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabs not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabURLs not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowState not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowType not bound -!missing-selector! WKWebViewConfiguration::setWebExtensionController: not bound -!missing-selector! WKWebViewConfiguration::webExtensionController not bound -!missing-type! WKOpenPanelParameters not bound -!missing-type! WKWebExtension not bound -!missing-type! WKWebExtensionAction not bound -!missing-type! WKWebExtensionCommand not bound -!missing-type! WKWebExtensionContext not bound -!missing-type! WKWebExtensionController not bound -!missing-type! WKWebExtensionControllerConfiguration not bound -!missing-type! WKWebExtensionDataRecord not bound -!missing-type! WKWebExtensionMatchPattern not bound -!missing-type! WKWebExtensionMessagePort not bound -!missing-type! WKWebExtensionTabConfiguration not bound -!missing-type! WKWebExtensionWindowConfiguration not bound -!missing-protocol-member! WKNavigationDelegate::webView:shouldGoToBackForwardListItem:willUseInstantBack:completionHandler: not found diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.ignore index ef6bf8942c75..fadafa81cf44 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.ignore @@ -1,7 +1,5 @@ ## only a subset of the old, pre WKWebKit, is bound for macOS -# TODO WKWebView should conform to NSTextFinderClient is marked as macos(WK_MAC_TBA) as of 11.4 beta3 - # xcode 15 # older/legacy API diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.todo deleted file mode 100644 index 23c85b8efa0f..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-WebKit.todo +++ /dev/null @@ -1,274 +0,0 @@ -!missing-enum! WKWebExtensionContextError not bound -!missing-enum! WKWebExtensionContextPermissionStatus not bound -!missing-enum! WKWebExtensionDataRecordError not bound -!missing-enum! WKWebExtensionError not bound -!missing-enum! WKWebExtensionMatchPatternError not bound -!missing-enum! WKWebExtensionMatchPatternOptions not bound -!missing-enum! WKWebExtensionMessagePortError not bound -!missing-enum! WKWebExtensionTabChangedProperties not bound -!missing-enum! WKWebExtensionWindowState not bound -!missing-enum! WKWebExtensionWindowType not bound -!missing-field! WKWebExtensionContextDeniedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextDeniedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextErrorDomain not bound -!missing-field! WKWebExtensionContextErrorsDidUpdateNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionMatchPatternsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextGrantedPermissionsWereRemovedNotification not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyMatchPatterns not bound -!missing-field! WKWebExtensionContextNotificationUserInfoKeyPermissions not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionMatchPatternsWereGrantedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereDeniedNotification not bound -!missing-field! WKWebExtensionContextPermissionsWereGrantedNotification not bound -!missing-field! WKWebExtensionDataRecordErrorDomain not bound -!missing-field! WKWebExtensionDataTypeLocal not bound -!missing-field! WKWebExtensionDataTypeSession not bound -!missing-field! WKWebExtensionDataTypeSynchronized not bound -!missing-field! WKWebExtensionErrorDomain not bound -!missing-field! WKWebExtensionMatchPatternErrorDomain not bound -!missing-field! WKWebExtensionMessagePortErrorDomain not bound -!missing-field! WKWebExtensionPermissionActiveTab not bound -!missing-field! WKWebExtensionPermissionAlarms not bound -!missing-field! WKWebExtensionPermissionClipboardWrite not bound -!missing-field! WKWebExtensionPermissionContextMenus not bound -!missing-field! WKWebExtensionPermissionCookies not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequest not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestFeedback not bound -!missing-field! WKWebExtensionPermissionDeclarativeNetRequestWithHostAccess not bound -!missing-field! WKWebExtensionPermissionMenus not bound -!missing-field! WKWebExtensionPermissionNativeMessaging not bound -!missing-field! WKWebExtensionPermissionScripting not bound -!missing-field! WKWebExtensionPermissionStorage not bound -!missing-field! WKWebExtensionPermissionTabs not bound -!missing-field! WKWebExtensionPermissionUnlimitedStorage not bound -!missing-field! WKWebExtensionPermissionWebNavigation not bound -!missing-field! WKWebExtensionPermissionWebRequest not bound -!missing-protocol! WKWebExtensionControllerDelegate not bound -!missing-protocol! WKWebExtensionTab not bound -!missing-protocol! WKWebExtensionWindow not bound -!missing-selector! +WKWebExtension::extensionWithAppExtensionBundle:completionHandler: not bound -!missing-selector! +WKWebExtension::extensionWithResourceBaseURL:completionHandler: not bound -!missing-selector! +WKWebExtensionContext::contextForExtension: not bound -!missing-selector! +WKWebExtensionController::allExtensionDataTypes not bound -!missing-selector! +WKWebExtensionControllerConfiguration::configurationWithIdentifier: not bound -!missing-selector! +WKWebExtensionControllerConfiguration::defaultConfiguration not bound -!missing-selector! +WKWebExtensionControllerConfiguration::nonPersistentConfiguration not bound -!missing-selector! +WKWebExtensionMatchPattern::allHostsAndSchemesMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::allURLsMatchPattern not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithScheme:host:path: not bound -!missing-selector! +WKWebExtensionMatchPattern::matchPatternWithString: not bound -!missing-selector! +WKWebExtensionMatchPattern::registerCustomURLScheme: not bound -!missing-selector! WKWebExtension::actionIconForSize: not bound -!missing-selector! WKWebExtension::allRequestedMatchPatterns not bound -!missing-selector! WKWebExtension::defaultLocale not bound -!missing-selector! WKWebExtension::displayActionLabel not bound -!missing-selector! WKWebExtension::displayDescription not bound -!missing-selector! WKWebExtension::displayName not bound -!missing-selector! WKWebExtension::displayShortName not bound -!missing-selector! WKWebExtension::displayVersion not bound -!missing-selector! WKWebExtension::errors not bound -!missing-selector! WKWebExtension::hasBackgroundContent not bound -!missing-selector! WKWebExtension::hasCommands not bound -!missing-selector! WKWebExtension::hasContentModificationRules not bound -!missing-selector! WKWebExtension::hasInjectedContent not bound -!missing-selector! WKWebExtension::hasOptionsPage not bound -!missing-selector! WKWebExtension::hasOverrideNewTabPage not bound -!missing-selector! WKWebExtension::hasPersistentBackgroundContent not bound -!missing-selector! WKWebExtension::iconForSize: not bound -!missing-selector! WKWebExtension::manifest not bound -!missing-selector! WKWebExtension::manifestVersion not bound -!missing-selector! WKWebExtension::optionalPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::optionalPermissions not bound -!missing-selector! WKWebExtension::requestedPermissionMatchPatterns not bound -!missing-selector! WKWebExtension::requestedPermissions not bound -!missing-selector! WKWebExtension::supportsManifestVersion: not bound -!missing-selector! WKWebExtension::version not bound -!missing-selector! WKWebExtensionAction::associatedTab not bound -!missing-selector! WKWebExtensionAction::badgeText not bound -!missing-selector! WKWebExtensionAction::closePopup not bound -!missing-selector! WKWebExtensionAction::hasUnreadBadgeText not bound -!missing-selector! WKWebExtensionAction::iconForSize: not bound -!missing-selector! WKWebExtensionAction::inspectionName not bound -!missing-selector! WKWebExtensionAction::isEnabled not bound -!missing-selector! WKWebExtensionAction::label not bound -!missing-selector! WKWebExtensionAction::menuItems not bound -!missing-selector! WKWebExtensionAction::popupPopover not bound -!missing-selector! WKWebExtensionAction::popupWebView not bound -!missing-selector! WKWebExtensionAction::presentsPopup not bound -!missing-selector! WKWebExtensionAction::setHasUnreadBadgeText: not bound -!missing-selector! WKWebExtensionAction::setInspectionName: not bound -!missing-selector! WKWebExtensionAction::webExtensionContext not bound -!missing-selector! WKWebExtensionCommand::activationKey not bound -!missing-selector! WKWebExtensionCommand::identifier not bound -!missing-selector! WKWebExtensionCommand::menuItem not bound -!missing-selector! WKWebExtensionCommand::modifierFlags not bound -!missing-selector! WKWebExtensionCommand::setActivationKey: not bound -!missing-selector! WKWebExtensionCommand::setModifierFlags: not bound -!missing-selector! WKWebExtensionCommand::title not bound -!missing-selector! WKWebExtensionCommand::webExtensionContext not bound -!missing-selector! WKWebExtensionContext::actionForTab: not bound -!missing-selector! WKWebExtensionContext::baseURL not bound -!missing-selector! WKWebExtensionContext::clearUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::commandForEvent: not bound -!missing-selector! WKWebExtensionContext::commands not bound -!missing-selector! WKWebExtensionContext::currentPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::currentPermissions not bound -!missing-selector! WKWebExtensionContext::deniedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::deniedPermissions not bound -!missing-selector! WKWebExtensionContext::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionContext::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionContext::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionContext::didCloseWindow: not bound -!missing-selector! WKWebExtensionContext::didDeselectTabs: not bound -!missing-selector! WKWebExtensionContext::didFocusWindow: not bound -!missing-selector! WKWebExtensionContext::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionContext::didOpenTab: not bound -!missing-selector! WKWebExtensionContext::didOpenWindow: not bound -!missing-selector! WKWebExtensionContext::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionContext::didSelectTabs: not bound -!missing-selector! WKWebExtensionContext::errors not bound -!missing-selector! WKWebExtensionContext::focusedWindow not bound -!missing-selector! WKWebExtensionContext::grantedPermissionMatchPatterns not bound -!missing-selector! WKWebExtensionContext::grantedPermissions not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::hasAccessToAllURLs not bound -!missing-selector! WKWebExtensionContext::hasAccessToPrivateData not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL: not bound -!missing-selector! WKWebExtensionContext::hasAccessToURL:inTab: not bound -!missing-selector! WKWebExtensionContext::hasActiveUserGestureInTab: not bound -!missing-selector! WKWebExtensionContext::hasContentModificationRules not bound -!missing-selector! WKWebExtensionContext::hasInjectedContent not bound -!missing-selector! WKWebExtensionContext::hasInjectedContentForURL: not bound -!missing-selector! WKWebExtensionContext::hasPermission: not bound -!missing-selector! WKWebExtensionContext::hasPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::hasRequestedOptionalAccessToAllHosts not bound -!missing-selector! WKWebExtensionContext::initForExtension: not bound -!missing-selector! WKWebExtensionContext::inspectionName not bound -!missing-selector! WKWebExtensionContext::isInspectable not bound -!missing-selector! WKWebExtensionContext::isLoaded not bound -!missing-selector! WKWebExtensionContext::loadBackgroundContentWithCompletionHandler: not bound -!missing-selector! WKWebExtensionContext::menuItemsForTab: not bound -!missing-selector! WKWebExtensionContext::openTabs not bound -!missing-selector! WKWebExtensionContext::openWindows not bound -!missing-selector! WKWebExtensionContext::optionsPageURL not bound -!missing-selector! WKWebExtensionContext::overrideNewTabPageURL not bound -!missing-selector! WKWebExtensionContext::performActionForTab: not bound -!missing-selector! WKWebExtensionContext::performCommand: not bound -!missing-selector! WKWebExtensionContext::performCommandForEvent: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForMatchPattern:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForPermission:inTab: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL: not bound -!missing-selector! WKWebExtensionContext::permissionStatusForURL:inTab: not bound -!missing-selector! WKWebExtensionContext::setBaseURL: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setDeniedPermissions: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissionMatchPatterns: not bound -!missing-selector! WKWebExtensionContext::setGrantedPermissions: not bound -!missing-selector! WKWebExtensionContext::setHasAccessToPrivateData: not bound -!missing-selector! WKWebExtensionContext::setHasRequestedOptionalAccessToAllHosts: not bound -!missing-selector! WKWebExtensionContext::setInspectable: not bound -!missing-selector! WKWebExtensionContext::setInspectionName: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forMatchPattern:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forPermission:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL: not bound -!missing-selector! WKWebExtensionContext::setPermissionStatus:forURL:expirationDate: not bound -!missing-selector! WKWebExtensionContext::setUniqueIdentifier: not bound -!missing-selector! WKWebExtensionContext::setUnsupportedAPIs: not bound -!missing-selector! WKWebExtensionContext::uniqueIdentifier not bound -!missing-selector! WKWebExtensionContext::unsupportedAPIs not bound -!missing-selector! WKWebExtensionContext::userGesturePerformedInTab: not bound -!missing-selector! WKWebExtensionContext::webExtension not bound -!missing-selector! WKWebExtensionContext::webExtensionController not bound -!missing-selector! WKWebExtensionContext::webViewConfiguration not bound -!missing-selector! WKWebExtensionController::configuration not bound -!missing-selector! WKWebExtensionController::delegate not bound -!missing-selector! WKWebExtensionController::didActivateTab:previousActiveTab: not bound -!missing-selector! WKWebExtensionController::didChangeTabProperties:forTab: not bound -!missing-selector! WKWebExtensionController::didCloseTab:windowIsClosing: not bound -!missing-selector! WKWebExtensionController::didCloseWindow: not bound -!missing-selector! WKWebExtensionController::didDeselectTabs: not bound -!missing-selector! WKWebExtensionController::didFocusWindow: not bound -!missing-selector! WKWebExtensionController::didMoveTab:fromIndex:inWindow: not bound -!missing-selector! WKWebExtensionController::didOpenTab: not bound -!missing-selector! WKWebExtensionController::didOpenWindow: not bound -!missing-selector! WKWebExtensionController::didReplaceTab:withTab: not bound -!missing-selector! WKWebExtensionController::didSelectTabs: not bound -!missing-selector! WKWebExtensionController::extensionContextForExtension: not bound -!missing-selector! WKWebExtensionController::extensionContextForURL: not bound -!missing-selector! WKWebExtensionController::extensionContexts not bound -!missing-selector! WKWebExtensionController::extensions not bound -!missing-selector! WKWebExtensionController::fetchDataRecordOfTypes:forExtensionContext:completionHandler: not bound -!missing-selector! WKWebExtensionController::fetchDataRecordsOfTypes:completionHandler: not bound -!missing-selector! WKWebExtensionController::init not bound -!missing-selector! WKWebExtensionController::initWithConfiguration: not bound -!missing-selector! WKWebExtensionController::loadExtensionContext:error: not bound -!missing-selector! WKWebExtensionController::removeDataOfTypes:fromDataRecords:completionHandler: not bound -!missing-selector! WKWebExtensionController::setDelegate: not bound -!missing-selector! WKWebExtensionController::unloadExtensionContext:error: not bound -!missing-selector! WKWebExtensionControllerConfiguration::defaultWebsiteDataStore not bound -!missing-selector! WKWebExtensionControllerConfiguration::identifier not bound -!missing-selector! WKWebExtensionControllerConfiguration::isPersistent not bound -!missing-selector! WKWebExtensionControllerConfiguration::setDefaultWebsiteDataStore: not bound -!missing-selector! WKWebExtensionControllerConfiguration::setWebViewConfiguration: not bound -!missing-selector! WKWebExtensionControllerConfiguration::webViewConfiguration not bound -!missing-selector! WKWebExtensionDataRecord::containedDataTypes not bound -!missing-selector! WKWebExtensionDataRecord::displayName not bound -!missing-selector! WKWebExtensionDataRecord::errors not bound -!missing-selector! WKWebExtensionDataRecord::sizeInBytesOfTypes: not bound -!missing-selector! WKWebExtensionDataRecord::totalSizeInBytes not bound -!missing-selector! WKWebExtensionDataRecord::uniqueIdentifier not bound -!missing-selector! WKWebExtensionMatchPattern::host not bound -!missing-selector! WKWebExtensionMatchPattern::initWithScheme:host:path:error: not bound -!missing-selector! WKWebExtensionMatchPattern::initWithString:error: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllHosts not bound -!missing-selector! WKWebExtensionMatchPattern::matchesAllURLs not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesPattern:options: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL: not bound -!missing-selector! WKWebExtensionMatchPattern::matchesURL:options: not bound -!missing-selector! WKWebExtensionMatchPattern::path not bound -!missing-selector! WKWebExtensionMatchPattern::scheme not bound -!missing-selector! WKWebExtensionMatchPattern::string not bound -!missing-selector! WKWebExtensionMessagePort::applicationIdentifier not bound -!missing-selector! WKWebExtensionMessagePort::disconnect not bound -!missing-selector! WKWebExtensionMessagePort::disconnectHandler not bound -!missing-selector! WKWebExtensionMessagePort::disconnectWithError: not bound -!missing-selector! WKWebExtensionMessagePort::isDisconnected not bound -!missing-selector! WKWebExtensionMessagePort::messageHandler not bound -!missing-selector! WKWebExtensionMessagePort::sendMessage:completionHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setDisconnectHandler: not bound -!missing-selector! WKWebExtensionMessagePort::setMessageHandler: not bound -!missing-selector! WKWebExtensionTabConfiguration::index not bound -!missing-selector! WKWebExtensionTabConfiguration::parentTab not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldAddToSelection not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBeMuted not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldBePinned not bound -!missing-selector! WKWebExtensionTabConfiguration::shouldReaderModeBeActive not bound -!missing-selector! WKWebExtensionTabConfiguration::url not bound -!missing-selector! WKWebExtensionTabConfiguration::window not bound -!missing-selector! WKWebExtensionWindowConfiguration::frame not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBeFocused not bound -!missing-selector! WKWebExtensionWindowConfiguration::shouldBePrivate not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabs not bound -!missing-selector! WKWebExtensionWindowConfiguration::tabURLs not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowState not bound -!missing-selector! WKWebExtensionWindowConfiguration::windowType not bound -!missing-selector! WKWebViewConfiguration::setWebExtensionController: not bound -!missing-selector! WKWebViewConfiguration::webExtensionController not bound -!missing-type! WKWebExtension not bound -!missing-type! WKWebExtensionAction not bound -!missing-type! WKWebExtensionCommand not bound -!missing-type! WKWebExtensionContext not bound -!missing-type! WKWebExtensionController not bound -!missing-type! WKWebExtensionControllerConfiguration not bound -!missing-type! WKWebExtensionDataRecord not bound -!missing-type! WKWebExtensionMatchPattern not bound -!missing-type! WKWebExtensionMessagePort not bound -!missing-type! WKWebExtensionTabConfiguration not bound -!missing-type! WKWebExtensionWindowConfiguration not bound -!missing-protocol-member! WKNavigationDelegate::webView:shouldGoToBackForwardListItem:willUseInstantBack:completionHandler: not found