Skip to content

Commit bcee747

Browse files
authored
[SafariServices] Implement Xcode 16.2 beta 1-3 changes. (#21721)
1 parent fe7f862 commit bcee747

File tree

5 files changed

+49
-10
lines changed

5 files changed

+49
-10
lines changed

src/safariservices.cs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
using System;
1313

14+
#if HAS_BROWSERENGINEKIT
15+
using BrowserEngineKit;
16+
#else
17+
using BEWebAppManifest = Foundation.NSObject;
18+
#endif
1419
using Foundation;
1520
using ObjCRuntime;
1621
#if !MONOMAC
@@ -542,7 +547,7 @@ interface SFExtension {
542547
[Field ("SFExtensionMessageKey")]
543548
NSString MessageKey { get; }
544549

545-
[iOS (17, 0), Mac (14, 0), NoMacCatalyst]
550+
[iOS (17, 0), Mac (14, 0), MacCatalyst (17, 1)]
546551
[Field ("SFExtensionProfileKey")]
547552
NSString ProfileKey { get; }
548553
}
@@ -584,6 +589,9 @@ interface SFSafariViewControllerDataStore {
584589
void ClearWebsiteData ([NullAllowed] Action completion);
585590
}
586591

592+
delegate void SFAddToHomeScreenActivityItemGetWebAppManifestCallback ([NullAllowed] BEWebAppManifest appManifest);
593+
delegate void SFAddToHomeScreenActivityItemGetHomeScreenWebAppInfoCallback ([NullAllowed] SFAddToHomeScreenInfo appManifest);
594+
587595
[iOS (17, 4), MacCatalyst (17, 4), NoMac, NoTV, NoWatch]
588596
[Protocol (BackwardsCompatibleCodeGeneration = false)]
589597
interface SFAddToHomeScreenActivityItem {
@@ -598,6 +606,32 @@ interface SFAddToHomeScreenActivityItem {
598606

599607
[NullAllowed, Export ("iconItemProvider")]
600608
NSItemProvider IconItemProvider { get; }
609+
610+
[NoMacCatalyst] // The BrowserEngineKit framework (the BEWebAppManifest type) isn't available on Mac Catalyst.
611+
[Deprecated (PlatformName.iOS, 18, 2, "Use 'GetHomeScreenWebAppInfo' instead.")]
612+
[Async]
613+
[Export ("getWebAppManifestWithCompletionHandler:")]
614+
void GetWebAppManifest (SFAddToHomeScreenActivityItemGetWebAppManifestCallback completionHandler);
615+
616+
[iOS (18, 2), NoMacCatalyst]
617+
[Async]
618+
[Export ("getHomeScreenWebAppInfoWithCompletionHandler:")]
619+
void GetHomeScreenWebAppInfo (SFAddToHomeScreenActivityItemGetHomeScreenWebAppInfoCallback completionHandler);
601620
}
602621

622+
[iOS (18, 2), NoMacCatalyst, NoMac]
623+
[BaseType (typeof (NSObject))]
624+
[DisableDefaultCtor]
625+
interface SFAddToHomeScreenInfo : NSCopying {
626+
[NoMacCatalyst] // The BrowserEngineKit framework (the BEWebAppManifest type) isn't available on Mac Catalyst.
627+
[Export ("initWithManifest:")]
628+
[DesignatedInitializer]
629+
NativeHandle Constructor (BEWebAppManifest manifest);
630+
631+
[Export ("manifest", ArgumentSemantic.Copy)]
632+
BEWebAppManifest Manifest { get; }
633+
634+
[Export ("websiteCookies", ArgumentSemantic.Copy)]
635+
NSHttpCookie [] WebsiteCookies { get; set; }
636+
}
603637
}

tests/cecil-tests/Documentation.KnownFailures.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42533,6 +42533,10 @@ M:ReplayKit.RPScreenRecorderDelegate_Extensions.DidStopRecording(ReplayKit.IRPSc
4253342533
M:ReplayKit.RPSystemBroadcastPickerView.#ctor(CoreGraphics.CGRect)
4253442534
M:ReplayKit.RPSystemBroadcastPickerView.EncodeTo(Foundation.NSCoder)
4253542535
M:ReplayKit.RPSystemBroadcastPickerView.RPSystemBroadcastPickerViewAppearance.#ctor(System.IntPtr)
42536+
M:SafariServices.ISFAddToHomeScreenActivityItem.GetHomeScreenWebAppInfo(SafariServices.SFAddToHomeScreenActivityItemGetHomeScreenWebAppInfoCallback)
42537+
M:SafariServices.ISFAddToHomeScreenActivityItem.GetHomeScreenWebAppInfoAsync
42538+
M:SafariServices.ISFAddToHomeScreenActivityItem.GetWebAppManifest(SafariServices.SFAddToHomeScreenActivityItemGetWebAppManifestCallback)
42539+
M:SafariServices.ISFAddToHomeScreenActivityItem.GetWebAppManifestAsync
4253642540
M:SafariServices.ISFSafariExtensionHandling.AdditionalRequestHeaders(Foundation.NSUrl,System.Action{Foundation.NSDictionary{Foundation.NSString,Foundation.NSString}})
4253742541
M:SafariServices.ISFSafariExtensionHandling.ContentBlocker(System.String,Foundation.NSUrl[],SafariServices.SFSafariPage)
4253842542
M:SafariServices.ISFSafariExtensionHandling.ContextMenuItemSelected(System.String,SafariServices.SFSafariPage,Foundation.NSDictionary)
@@ -42552,6 +42556,8 @@ M:SafariServices.ISFSafariViewControllerDelegate.GetActivityItems(SafariServices
4255242556
M:SafariServices.ISFSafariViewControllerDelegate.GetExcludedActivityTypes(SafariServices.SFSafariViewController,Foundation.NSUrl,System.String)
4255342557
M:SafariServices.ISFSafariViewControllerDelegate.InitialLoadDidRedirectToUrl(SafariServices.SFSafariViewController,Foundation.NSUrl)
4255442558
M:SafariServices.ISFSafariViewControllerDelegate.WillOpenInBrowser(SafariServices.SFSafariViewController)
42559+
M:SafariServices.SFAddToHomeScreenInfo.#ctor(BrowserEngineKit.BEWebAppManifest)
42560+
M:SafariServices.SFAddToHomeScreenInfo.Copy(Foundation.NSZone)
4255542561
M:SafariServices.SFAuthenticationSession.#ctor(Foundation.NSUrl,System.String,SafariServices.SFAuthenticationCompletionHandler)
4255642562
M:SafariServices.SFAuthenticationSession.Cancel
4255742563
M:SafariServices.SFAuthenticationSession.Start
@@ -66568,6 +66574,8 @@ P:SafariServices.ISFAddToHomeScreenActivityItem.IconItemProvider
6656866574
P:SafariServices.ISFAddToHomeScreenActivityItem.Title
6656966575
P:SafariServices.ISFAddToHomeScreenActivityItem.Url
6657066576
P:SafariServices.ISFSafariExtensionHandling.PopoverViewController
66577+
P:SafariServices.SFAddToHomeScreenInfo.Manifest
66578+
P:SafariServices.SFAddToHomeScreenInfo.WebsiteCookies
6657166579
P:SafariServices.SFContentBlockerState.Enabled
6657266580
P:SafariServices.SFExtension.MessageKey
6657366581
P:SafariServices.SFExtension.ProfileKey
@@ -75372,6 +75380,9 @@ T:ReplayKit.RPRecordingError
7537275380
T:ReplayKit.RPSampleBufferType
7537375381
T:SafariServices.ISFAddToHomeScreenActivityItem
7537475382
T:SafariServices.ISFSafariExtensionHandling
75383+
T:SafariServices.SFAddToHomeScreenActivityItemGetHomeScreenWebAppInfoCallback
75384+
T:SafariServices.SFAddToHomeScreenActivityItemGetWebAppManifestCallback
75385+
T:SafariServices.SFAddToHomeScreenInfo
7537575386
T:SafariServices.SFAuthenticationError
7537675387
T:SafariServices.SFContentBlockerErrorCode
7537775388
T:SafariServices.SFExtension
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
## for compatibility we have extra code that return `false` if `url` is `null`
22
!extra-null-allowed! 'System.Boolean SafariServices.SSReadingList::SupportsUrl(Foundation.NSUrl)' has a extraneous [NullAllowed] on parameter #0
3+
4+
## this member references a framework which isn't available on Mac Catalyst
5+
!missing-protocol-member! SFAddToHomeScreenActivityItem::getWebAppManifestWithCompletionHandler: not found

tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-SafariServices.todo

Lines changed: 0 additions & 2 deletions
This file was deleted.

tests/xtro-sharpie/api-annotations-dotnet/iOS-SafariServices.todo

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)