From the macOS Sierra Appkit release notes:
You must statically declare your app’s intended use of protected data classes by including the appropriate purpose string keys in your Info.plist file. For example, you must include the NSCalendarsUsageDescription key to access the user’s Calendar data. If you don’t include the relevant purpose string keys, your app exits the first time it tries to access the data.
I believe the complete list is: NSBluetoothPeripheralUsageDescription, NSCalendarsUsageDescription, NSCameraUsageDescription, NSContactsUsageDescription, NSMicrophoneUsageDescription, NSPhotoLibraryUsageDescription, NSRemindersUsageDescription.
I've tried accessing various resources on my Sierra machine and Chrome isn't exiting. I'm not confident I'm actually accessing those resources, but if the OS enforces this for all apps there will be a ton of software that no longer works. It's likely the auto-exiting only applies to apps compiled against the 10.12 SDK.
From what I can tell each of these keys is meant to sit at the top level of the Info.plist, with a string value. That string value is a message describing the reason the app wants to access the user’s resource. The docs say, "When the system prompts the user to allow access, this string is displayed as part of the dialog box." So for NSBluetoothPeripheralUsageDescription something perhaps like, "Allow bluetooth-enabled websites to access your bluetooth devices", localized for all the languages we support in the localized Info.plist files.
Comment 1 by sheriffbot@chromium.org
, Sep 1 2017Status: Untriaged (was: Available)