Domain-specific instances of NSFileProviderExtension share the same process

Number:rdar://33845281 Date Originated:2017-08-10
Status:Open Resolved:
Product:iOS Product Version:11b6
Classification: Reproducible:
# Description:
Contrary to certain initial expectations, new instances of NSFileProviderExtension are created within a shared process space.

# Steps to Repro:
 1. Implement rudimentary support for a File Provider in the project
 2. Add new NSFileProviderDomains via the NSFileProviderManager

# Expected Results:
New process, with a separate memory limit, is created to host new, domain-specific, instances of the NSFileProviderExtension.

# Observed Results:
The existing NSFileProviderExtension object relevant to the nil domain is abandoned. A new extension object that will host the newly added domain is instantiated in the same process. This is repeated for every new extension.

# Additional Notes:
Hosting multiple extension objects within the same process, and thus within the same jetsam memory limit, is extremely issue prone. Each of the instantiated extensions requires independent access to local databases, current caches, and remote connection. Furthermore, very limited assumptions can be taken about the usage of static objects, including dispatch tokens.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!