Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XamlIslands readiness: code audit #3567

Closed
kmelmon opened this issue Oct 30, 2019 · 4 comments
Closed

XamlIslands readiness: code audit #3567

kmelmon opened this issue Oct 30, 2019 · 4 comments

Comments

@kmelmon
Copy link
Contributor

kmelmon commented Oct 30, 2019

In order to make RN4W work correctly when used in a XamlIsland context we need to avoid using certain XAML APIs.

This issue is tracking doing a code audit for all "non-xaml-Islands-friendly" APIs. We'll need to use "xaml-islands-friendly" equivalents to meet the requirement. I expect we'll find some code that needs to be converted. We can track those with follow-up bugs.

The doc that has the list of APIs is here:
https://microsoft.sharepoint.com/:w:/r/teams/specstore/_layouts/15/Doc.aspx?sourcedoc=%7B45E349E7-0241-4B31-B535-BABCC40575AD%7D&file=%5B17468132%5D%20Xaml%20Islands%20ContentRoot%20API%20Spec.docx&wdLOR=c2A16AF8C-CD56-4096-A2DF-4109E715BD47&action=default&mobileredirect=true

Note carefully that this doc doesn't cover APIs that require package identity, which won't work in a win32 context. There isn't a definitive doc on which APIs do require package identity, but we have this:

MikeHillberg says: Here’s some data from Tanaka (Jimha), manually collected (there’s no tooling for this), circa I think 19h1 or Vb (so it’s a longer list for earlier versions). My take overall: not as bad as I expected.

Windows.ApplicationModel.Background.PushNotificationTrigger

Windows.ApplicationModel.Background.StorageLibraryChangeTrackerTrigger
Windows.ApplicationModel.Background.ToastNotificationActionTrigger
Windows.ApplicationModel.Background.ToastNotificationHistoryChangedTrigger
Windows.ApplicationModel.Background.UserNotificationChangedTrigger
Windows.ApplicationModel.ExtendedExecution.ExtendedExecutionSession
Windows.ApplicationModel.ExtendedExecution.Foreground.ExtendedExecutionForegroundSession
Windows.ApplicationModel.FullTrustProcessLauncher
Windows.ApplicationModel.Payments.PaymentAddress
Windows.ApplicationModel.Payments.PaymentCanMakePaymentResult
Windows.ApplicationModel.Payments.PaymentCurrencyAmount
Windows.ApplicationModel.Payments.PaymentDetails
Windows.ApplicationModel.Payments.PaymentDetailsModifier
Windows.ApplicationModel.Payments.PaymentItem
Windows.ApplicationModel.Payments.PaymentMerchantInfo
Windows.ApplicationModel.Payments.PaymentMethodData
Windows.ApplicationModel.Payments.PaymentOptions
Windows.ApplicationModel.Payments.PaymentRequest
Windows.ApplicationModel.Payments.PaymentRequestChangedResult
Windows.ApplicationModel.Payments.PaymentShippingOption
Windows.ApplicationModel.Payments.PaymentToken
Windows.ApplicationModel.Resources.Core.ResourceContext
Windows.ApplicationModel.Resources.ResourceLoader
Windows.ApplicationModel.Store.CurrentApp
Windows.ApplicationModel.Store.CurrentAppSimulator
Windows.ApplicationModel.Store.LicenseManagement.LicenseManager
Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager
Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallOptions
Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions
Windows.ApplicationModel.Store.Preview.StoreConfiguration
Windows.ApplicationModel.Store.Preview.StorePreview
Windows.ApplicationModel.Store.Preview.WebAuthenticationCoreManagerHelper
Windows.ApplicationModel.Store.ProductPurchaseDisplayProperties
Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile
Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager
Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage
Windows.Devices.SmartCards.SmartCardAppletIdGroup
Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics
Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics
Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep
Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics
Windows.Globalization.ApplicationLanguages
Windows.Media.Capture.CameraCaptureUI
Windows.Media.ContentRestrictions.RatedContentDescription
Windows.Media.ContentRestrictions.RatedContentRestrictions
Windows.Media.Protection.PlayReady.PlayReadyContentHeader
Windows.Media.Protection.PlayReady.PlayReadyContentResolver
Windows.Media.Protection.PlayReady.PlayReadyDomainIterable
Windows.Media.Protection.PlayReady.PlayReadyDomainJoinServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyDomainLeaveServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyIndividualizationServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyITADataGenerator
Windows.Media.Protection.PlayReady.PlayReadyLicenseAcquisitionServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyLicenseIterable
Windows.Media.Protection.PlayReady.PlayReadyLicenseManagement
Windows.Media.Protection.PlayReady.PlayReadyLicenseSession
Windows.Media.Protection.PlayReady.PlayReadyMeteringReportServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyRevocationServiceRequest
Windows.Media.Protection.PlayReady.PlayReadySecureStopIterable
Windows.Media.Protection.PlayReady.PlayReadySecureStopServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyStatics
Windows.Networking.Proximity.PeerFinder
Windows.Networking.PushNotifications.PushNotificationChannelManager
Windows.Security.Authentication.Web.WebAuthenticationBroker
Windows.Storage.AccessCache.StorageApplicationPermissions
Windows.Storage.CachedFileManager
Windows.Storage.DownloadsFolder
Windows.Storage.FileIO
Windows.Storage.PathIO
Windows.Storage.Pickers.FileOpenPicker
Windows.Storage.Pickers.FileSavePicker
Windows.Storage.Pickers.FolderPicker
Windows.Storage.Provider.CachedFileUpdater
Windows.Storage.Search.IndexableContent
Windows.Storage.Search.QueryOptions
Windows.Storage.Streams.InMemoryRandomAccessStream
Windows.Storage.Streams.RandomAccessStream
Windows.System.MemoryManager
Windows.System.Profile.SystemIdentification
Windows.System.UserProfile.AdvertisingManager
Windows.UI.Notifications.AdaptiveNotificationText
Windows.UI.Notifications.BadgeNotification
Windows.UI.Notifications.BadgeUpdateManager
Windows.UI.Notifications.KnownAdaptiveNotificationHints
Windows.UI.Notifications.KnownAdaptiveNotificationTextStyles
Windows.UI.Notifications.KnownNotificationBindings
Windows.UI.Notifications.Notification
Windows.UI.Notifications.NotificationData
Windows.UI.Notifications.ScheduledTileNotification
Windows.UI.Notifications.ScheduledToastNotification
Windows.UI.Notifications.TileFlyoutNotification
Windows.UI.Notifications.TileFlyoutUpdateManager
Windows.UI.Notifications.TileNotification
Windows.UI.Notifications.TileUpdateManager
Windows.UI.StartScreen.SecondaryTile

@ghost ghost added the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Oct 30, 2019
@chrisglein chrisglein added this to the MVP+ (vNext M5) milestone Nov 6, 2019
@chrisglein
Copy link
Member

@licanhua You did a scrub over the code for this some time ago. Did the above linked list match what you were looking for?

@chrisglein
Copy link
Member

@htpiv Feel free to add issues you find here as you see them.

@chrisglein chrisglein removed the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Nov 6, 2019
@chrisglein chrisglein removed the vnext label Mar 18, 2020
@chrisglein
Copy link
Member

@asklar You've been finding these sorts of issues from a place of what's blocking. Do you think there's another way to do a deep audit? Is this issue providing value?

@asklar
Copy link
Member

asklar commented Jul 13, 2020

@chrisglein I think this is still useful. Once I get everything working in the context of playground-win32 and playground, this provides a second layer or "things to go look at" so I'd vote or keeping it open for now.

@chrisglein chrisglein modified the milestones: 0.63, Backlog Jul 14, 2020
@asklar asklar removed their assignment Apr 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants