blob: 3debbb3034fd5bf57439798fefdbb277c368acab [file] [log] [blame] [edit]
#!/bin/bash
set -e
function plistbuddy()
{
/usr/libexec/PlistBuddy -c "$*" "${WK_PROCESSED_XCENT_FILE}"
}
function plistbuddy_base()
{
if [[ "${WK_PLATFORM_NAME}" =~ .*simulator ]]
then
/usr/libexec/PlistBuddy -c "$*" "${WK_PROCESSED_SIMULATOR_XCENT_FILE}"
else
plistbuddy "$*"
fi
}
# ========================================
# Common entitlements
# ========================================
process_base_testwebkitapi_entitlements()
{
if [[ "${CONFIGURATION}" != Production ]]
then
plistbuddy_base Add :com.apple.security.get-task-allow bool YES
fi
}
process_restricted_testwebkitapi_entitlements()
{
plistbuddy Add :keychain-access-groups array
plistbuddy Add :keychain-access-groups:0 string com.apple.TestWebKitAPIAlternate
plistbuddy Add :keychain-access-groups:1 string com.apple.TestWebKitAPI
plistbuddy Add :com.apple.private.webkit.adattributiond.testing bool YES
plistbuddy Add :com.apple.private.webkit.webpush bool YES
plistbuddy Add :com.apple.private.webkit.webpush.inject bool YES
}
# ========================================
# Mac entitlements
# ========================================
function process_mac_testwebkitapi_entitlements()
{
process_base_testwebkitapi_entitlements
plistbuddy Add :com.apple.security.temporary-exception.sbpl array
plistbuddy Add :com.apple.security.temporary-exception.sbpl:0 string '(allow mach-issue-extension (require-all (extension-class \"com.apple.webkit.extension.mach\")))'
plistbuddy Add :com.apple.security.temporary-exception.sbpl:1 string '(allow iokit-issue-extension (require-all (extension-class \"com.apple.webkit.extension.iokit\")))'
if [[ "${WK_USE_RESTRICTED_ENTITLEMENTS}" == YES ]]
then
process_restricted_testwebkitapi_entitlements
plistbuddy Add :com.apple.hid.manager.user-access-device bool YES
plistbuddy Add :com.apple.private.hid.client.event-filter bool YES
fi
}
# ========================================
# iOS Family entitlements
# ========================================
function process_ios_family_testwebkitapi_entitlements()
{
process_base_testwebkitapi_entitlements
process_restricted_testwebkitapi_entitlements
plistbuddy Add :com.apple.developer.WebKit.ServiceWorkers bool YES
plistbuddy Add :com.apple.Pasteboard.paste-unchecked bool YES
plistbuddy Add :com.apple.private.xpc.launchd.job-manager string TestWebKitAPI
plistbuddy Add :com.apple.CommCenter.fine-grained array
plistbuddy Add :com.apple.CommCenter.fine-grained:0 string public-cellular-plan
if [[ "${PRODUCT_BUNDLE_IDENTIFIER}" == org.webkit.TestWebKitAPI ]]
then
plistbuddy Add :com.apple.developer.web-browser bool YES
plistbuddy Add :com.apple.developer.web-browser-engine.host bool YES
fi
}
plistbuddy Clear dict
plistbuddy_base Clear dict
if [[ "${WK_PLATFORM_NAME}" == macosx || "${WK_PLATFORM_NAME}" == maccatalyst ]]
then
process_mac_testwebkitapi_entitlements
elif [[ "${WK_IS_COCOA_TOUCH}" == YES ]]
then
process_ios_family_testwebkitapi_entitlements
else
echo "Unsupported/unknown platform: ${WK_PLATFORM_NAME}"
exit 1
fi
exit 0