Diff
Modified: trunk/Source/WebKit/ChangeLog (232320 => 232321)
--- trunk/Source/WebKit/ChangeLog 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/ChangeLog 2018-05-31 00:08:35 UTC (rev 232321)
@@ -1,3 +1,53 @@
+2018-05-30 Brent Fulgham <[email protected]>
+
+ [macOS] WebProcess needs TCC entitlements for media capture (Take 2)
+ https://bugs.webkit.org/show_bug.cgi?id=185526
+ <rdar://problem/36674649>
+
+ Reviewed by Alexey Proskuryakov.
+
+ In Bug 181995 I added TCC entitlements for media capture to the macOS entitlements used for
+ relocatable builds. These changes also need to apply to system builds of WebKit.
+
+ Previously we had not needed an entitlements file for system builds of WebKit, so only provided
+ an entitlements file for our relocatable build targets. Now we need entitlements when building
+ on recent macOS targets using internal SDKs.
+
+ Since these various scenarios are beginning to multiple, this patch dynamically generates the
+ entitlements file.
+
+ This patch does the following:
+
+ 1. Changes the "WebContent-OSX.entitlements" to hold the TCC entitlements needed for media capture, and rename
+ to "WebContent-OSX-restricted.entitlements".
+ 2. Removes the unneeded "com.apple.private.xpc.domain-extension" from WebContent-OSX.entitlement, and dynamically
+ adds it using a new build step using the script 'process-webcontent-entitlements.sh'
+ 3. Updates DebugRelease.xcconfig to use the 'Safari Engineering' signing key for internal builds.
+ 4. Updates WebContentService.xcconfig to remove the CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_YES target
+ since we no longer need a custom entitlement file for this case.
+ 5. Updates WebContentService.Development.xcconfig to remove CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO since it is no
+ longer needed.
+ 6. Deletes the file Configurations/WebContent.Development.entitlements since it is no longer needed.
+ 7. Revises the WebContent process sandbox to allow camera and microphone access without needing TCC
+ entitlements, since those cannot be applied without an internal SDK.
+ 8. Revises the UserMediaProcessManager to not pass dynamic sandbox extensions to the WebContent process
+ when building with the public SDK since those entitlements cannot be added or consumed in Open
+ Source builds.
+
+ We want to use the TCC entitlements when building with the internal SDK on recent macOS builds.
+
+ * Configurations/Base.xcconfig:
+ * Configurations/DebugRelease.xcconfig:
+ * Configurations/WebContent-OSX-restricted.entitlements: Renamed from Source/WebKit/Configurations/WebContent-OSX.entitlements.
+ * Configurations/WebContent.Development.entitlements: Removed.
+ * Configurations/WebContentService.Development.xcconfig:
+ * Configurations/WebContentService.xcconfig:
+ * Scripts/process-webcontent-entitlements.sh: Added.
+ * UIProcess/UserMediaProcessManager.cpp:
+ (WebKit::UserMediaProcessManager::willCreateMediaStream): Don't bother creating and sending sandbox extensions for
+ camera and microphone control for builds that cannot support them.
+ * WebKit.xcodeproj/project.pbxproj:
+
2018-05-30 Daniel Bates <[email protected]>
NavigationAction does not need to hold initiating DOM Event
Modified: trunk/Source/WebKit/Configurations/Base.xcconfig (232320 => 232321)
--- trunk/Source/WebKit/Configurations/Base.xcconfig 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/Base.xcconfig 2018-05-31 00:08:35 UTC (rev 232321)
@@ -160,3 +160,5 @@
WK_MACOS_WEAK_FRAMEWORK = $(WK_MACOS_WEAK_FRAMEWORK_$(WK_COCOA_TOUCH));
WK_MACOS_WEAK_FRAMEWORK_cocoatouch = -framework
WK_MACOS_WEAK_FRAMEWORK_ = -weak_framework
+
+WK_USE_RESTRICTED_ENTITLEMENTS = $(USE_INTERNAL_SDK);
Modified: trunk/Source/WebKit/Configurations/DebugRelease.xcconfig (232320 => 232321)
--- trunk/Source/WebKit/Configurations/DebugRelease.xcconfig 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/DebugRelease.xcconfig 2018-05-31 00:08:35 UTC (rev 232321)
@@ -43,6 +43,10 @@
SDKROOT_ = macosx;
SDKROOT_YES = macosx.internal;
+CODE_SIGN_IDENTITY[sdk=macosx*] = $(CODE_SIGN_IDENTITY_$(WK_USE_RESTRICTED_ENTITLEMENTS))
+CODE_SIGN_IDENTITY_NO = -;
+CODE_SIGN_IDENTITY_YES = $(WK_ENGINEERING_CODE_SIGN_IDENTITY);
+
WK_RELOCATABLE_FRAMEWORKS = YES;
WK_XPC_SERVICE_SUFFIX[sdk=macosx*] = .Development;
WK_XPC_SERVICE_SUFFIX[sdk=*simulator*] = .Development;
Copied: trunk/Source/WebKit/Configurations/WebContent-OSX-restricted.entitlements (from rev 232320, trunk/Source/WebKit/Configurations/WebContent-OSX.entitlements) (0 => 232321)
--- trunk/Source/WebKit/Configurations/WebContent-OSX-restricted.entitlements (rev 0)
+++ trunk/Source/WebKit/Configurations/WebContent-OSX-restricted.entitlements 2018-05-31 00:08:35 UTC (rev 232321)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.apple.tcc.delegated-services</key>
+ <array>
+ <string>kTCCServiceCamera</string>
+ <string>kTCCServiceMicrophone</string>
+ </array>
+</dict>
+</plist>
Deleted: trunk/Source/WebKit/Configurations/WebContent-OSX.entitlements (232320 => 232321)
--- trunk/Source/WebKit/Configurations/WebContent-OSX.entitlements 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/WebContent-OSX.entitlements 2018-05-31 00:08:35 UTC (rev 232321)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>com.apple.tcc.delegated-services</key>
- <array>
- <string>kTCCServiceCamera</string>
- <string>kTCCServiceMicrophone</string>
- </array>
- <key>com.apple.private.xpc.domain-extension</key>
- <true/>
-</dict>
-</plist>
Deleted: trunk/Source/WebKit/Configurations/WebContent.Development.entitlements (232320 => 232321)
--- trunk/Source/WebKit/Configurations/WebContent.Development.entitlements 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/WebContent.Development.entitlements 2018-05-31 00:08:35 UTC (rev 232321)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>com.apple.security.cs.disable-library-validation</key>
- <true/>
-</dict>
-</plist>
Modified: trunk/Source/WebKit/Configurations/WebContentService.Development.xcconfig (232320 => 232321)
--- trunk/Source/WebKit/Configurations/WebContentService.Development.xcconfig 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/WebContentService.Development.xcconfig 2018-05-31 00:08:35 UTC (rev 232321)
@@ -26,6 +26,4 @@
SKIP_INSTALL = YES;
SKIP_INSTALL[sdk=macosx*] = $(WK_RELOCATABLE_FRAMEWORKS);
-CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO = Configurations/WebContent.Development.entitlements;
-
WK_XPC_SERVICE_VARIANT = Development;
Modified: trunk/Source/WebKit/Configurations/WebContentService.xcconfig (232320 => 232321)
--- trunk/Source/WebKit/Configurations/WebContentService.xcconfig 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/Configurations/WebContentService.xcconfig 2018-05-31 00:08:35 UTC (rev 232321)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2016 Apple Inc. All rights reserved.
+// Copyright (C) 2012-2018 Apple Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
@@ -33,7 +33,6 @@
WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE_iphoneminimalsimulator = WebContent-iOS-minimalsimulator;
CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO = $(CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_$(WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT));
-CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_YES = Configurations/WebContent-OSX.entitlements;
OTHER_CODE_SIGN_FLAGS = $(WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS);
PRODUCT_NAME = $(PRODUCT_NAME_$(WK_XPC_SERVICE_VARIANT));
Added: trunk/Source/WebKit/Scripts/process-webcontent-entitlements.sh (0 => 232321)
--- trunk/Source/WebKit/Scripts/process-webcontent-entitlements.sh (rev 0)
+++ trunk/Source/WebKit/Scripts/process-webcontent-entitlements.sh 2018-05-31 00:08:35 UTC (rev 232321)
@@ -0,0 +1,26 @@
+#!/bin/sh
+set -e
+
+PROCESSED_XCENT_FILE="${TEMP_FILE_DIR}/${FULL_PRODUCT_NAME}.xcent"
+
+if [[ ${WK_PLATFORM_NAME} == "macosx" ]]; then
+
+ if [[ ${WK_USE_RESTRICTED_ENTITLEMENTS} == "YES" ]]; then
+ echo "Processing restricted entitlements for Internal SDK";
+
+ if (( ${TARGET_MAC_OS_X_VERSION_MAJOR} >= 101400 )); then
+ echo "Adding macOS platform entitlements.";
+ /usr/libexec/PlistBuddy -c "Merge Configurations/WebContent-OSX-restricted.entitlements" "${PROCESSED_XCENT_FILE}";
+ fi
+
+ if [[ ${WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT} == "YES" ]]; then
+ echo "Adding domain extension entitlement for relocatable build.";
+ /usr/libexec/PlistBuddy -c "Add :com.apple.private.xpc.domain-extension bool YES" "${PROCESSED_XCENT_FILE}";
+ fi
+
+ if [[ ${WK_XPC_SERVICE_VARIANT} == "Development" ]]; then
+ echo "Disabling library validation for development build.";
+ /usr/libexec/PlistBuddy -c "Add :com.apple.security.cs.disable-library-validation bool YES" "${PROCESSED_XCENT_FILE}";
+ fi
+ fi
+fi
Property changes on: trunk/Source/WebKit/Scripts/process-webcontent-entitlements.sh
___________________________________________________________________
Added: svn:executable
+*
\ No newline at end of property
Modified: trunk/Source/WebKit/UIProcess/UserMediaProcessManager.cpp (232320 => 232321)
--- trunk/Source/WebKit/UIProcess/UserMediaProcessManager.cpp 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/UIProcess/UserMediaProcessManager.cpp 2018-05-31 00:08:35 UTC (rev 232321)
@@ -128,7 +128,7 @@
bool UserMediaProcessManager::willCreateMediaStream(UserMediaPermissionRequestManagerProxy& proxy, bool withAudio, bool withVideo)
{
-#if ENABLE(SANDBOX_EXTENSIONS)
+#if ENABLE(SANDBOX_EXTENSIONS) && USE(APPLE_INTERNAL_SDK)
auto& processStartingCapture = proxy.page().process();
ASSERT(stateMap().contains(&processStartingCapture));
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (232320 => 232321)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-05-31 00:02:07 UTC (rev 232320)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-05-31 00:08:35 UTC (rev 232321)
@@ -1321,6 +1321,8 @@
7AAD175F1EA6AF99003B0894 /* WebResourceLoadStatisticsStoreCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7AAD175E1EA6AF37003B0894 /* WebResourceLoadStatisticsStoreCocoa.mm */; };
7AB6EA451EEAAE3800037B2B /* APIIconDatabaseClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AB6EA441EEAAE2300037B2B /* APIIconDatabaseClient.h */; };
7AB6EA471EEAB6B800037B2B /* APIGeolocationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AB6EA461EEAB6B000037B2B /* APIGeolocationProvider.h */; };
+ 7ACFAAD920B88D5000C53203 /* process-webcontent-entitlements.sh in Resources */ = {isa = PBXBuildFile; fileRef = 7ACFAAD820B88D4F00C53203 /* process-webcontent-entitlements.sh */; };
+ 7ACFAADA20B88D5000C53203 /* process-webcontent-entitlements.sh in Resources */ = {isa = PBXBuildFile; fileRef = 7ACFAAD820B88D4F00C53203 /* process-webcontent-entitlements.sh */; };
7AF236201E79A3E400438A05 /* WebErrors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF2361E1E79A3B400438A05 /* WebErrors.cpp */; };
7AF236211E79A40800438A05 /* WebErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF2361F1E79A3D800438A05 /* WebErrors.h */; };
7AF236231E79A44400438A05 /* WebErrorsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7AF236221E79A43100438A05 /* WebErrorsCocoa.mm */; };
@@ -3190,7 +3192,6 @@
37183D55182F4E700080C811 /* WKNSURLExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSURLExtras.h; sourceTree = "<group>"; };
371A193F1824D29300F32A5E /* WKNSDictionary.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSDictionary.mm; sourceTree = "<group>"; };
371A19401824D29300F32A5E /* WKNSDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSDictionary.h; sourceTree = "<group>"; };
- 37209CAB2079D4BA0009E25B /* WebContent.Development.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WebContent.Development.entitlements; sourceTree = "<group>"; };
372CAF091833FD910040AC27 /* WKNSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSError.h; sourceTree = "<group>"; };
372CAF0A1833FD910040AC27 /* WKNSError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSError.mm; sourceTree = "<group>"; };
372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.WebContent.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -3249,7 +3250,7 @@
37A64E5618F38F4600EB30F1 /* _WKFormInputSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKFormInputSession.h; sourceTree = "<group>"; };
37A709A61E3EA0FD00CA5969 /* WKDataDetectorTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDataDetectorTypes.h; sourceTree = "<group>"; };
37A709A81E3EA40C00CA5969 /* WKDataDetectorTypesInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDataDetectorTypesInternal.h; sourceTree = "<group>"; };
- 37B418EB1C9624F20031E63B /* WebContent-OSX.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "WebContent-OSX.entitlements"; sourceTree = "<group>"; };
+ 37B418EB1C9624F20031E63B /* WebContent-OSX-restricted.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "WebContent-OSX-restricted.entitlements"; sourceTree = "<group>"; };
37B47E2C1D64DB76005F4EFF /* objcSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objcSPI.h; sourceTree = "<group>"; };
37B5045119EEF31300CE2CF8 /* WKErrorPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKErrorPrivate.h; sourceTree = "<group>"; };
37BEC4DE19491486008B4286 /* CompletionHandlerCallChecker.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CompletionHandlerCallChecker.mm; sourceTree = "<group>"; };
@@ -3791,6 +3792,7 @@
7AAD175E1EA6AF37003B0894 /* WebResourceLoadStatisticsStoreCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebResourceLoadStatisticsStoreCocoa.mm; sourceTree = "<group>"; };
7AB6EA441EEAAE2300037B2B /* APIIconDatabaseClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIIconDatabaseClient.h; sourceTree = "<group>"; };
7AB6EA461EEAB6B000037B2B /* APIGeolocationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIGeolocationProvider.h; sourceTree = "<group>"; };
+ 7ACFAAD820B88D4F00C53203 /* process-webcontent-entitlements.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "process-webcontent-entitlements.sh"; sourceTree = "<group>"; };
7AF2361E1E79A3B400438A05 /* WebErrors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebErrors.cpp; sourceTree = "<group>"; };
7AF2361F1E79A3D800438A05 /* WebErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebErrors.h; sourceTree = "<group>"; };
7AF236221E79A43100438A05 /* WebErrorsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebErrorsCocoa.mm; sourceTree = "<group>"; };
@@ -5058,8 +5060,7 @@
51A60B29180CCD9000F3BF50 /* StorageService.xcconfig */,
1A4F976E100E7B6600637A18 /* Version.xcconfig */,
7C0BB9A818DCDE890006C086 /* WebContent-iOS.entitlements */,
- 37B418EB1C9624F20031E63B /* WebContent-OSX.entitlements */,
- 37209CAB2079D4BA0009E25B /* WebContent.Development.entitlements */,
+ 37B418EB1C9624F20031E63B /* WebContent-OSX-restricted.entitlements */,
372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */,
BCACC40E16B0B8A800B6E092 /* WebContentService.xcconfig */,
BCB86F4B116AAACD00CE20B7 /* WebKit.xcconfig */,
@@ -8485,6 +8486,7 @@
0FC0856F187CE0A900780D86 /* messages.py */,
0FC08570187CE0A900780D86 /* model.py */,
0FC08571187CE0A900780D86 /* parser.py */,
+ 7ACFAAD820B88D4F00C53203 /* process-webcontent-entitlements.sh */,
);
path = Scripts;
sourceTree = "<group>";
@@ -9847,9 +9849,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 372EBB422017E64300085064 /* Build configuration list for PBXNativeTarget "WebContent.Development" */;
buildPhases = (
+ 7A35F25120BDB80C003958EC /* Remove stale entitlement file */,
372EBB3B2017E64300085064 /* Sources */,
372EBB3D2017E64300085064 /* Frameworks */,
372EBB402017E64300085064 /* Resources */,
+ 7A35F24F20BDAF8B003958EC /* Unlock keychain */,
+ 7AFCBD5520B8917D00F55C9C /* Process WebContent entitlements */,
);
buildRules = (
);
@@ -9940,9 +9945,12 @@
isa = PBXNativeTarget;
buildConfigurationList = BC3DE47615A91764008D26FC /* Build configuration list for PBXNativeTarget "WebContent" */;
buildPhases = (
+ 7A35F25020BDB7CC003958EC /* Remove stale entitlement file */,
BC3DE46215A91763008D26FC /* Sources */,
BCDC308D15FDB99A006B6695 /* Frameworks */,
BC3DE46415A91763008D26FC /* Resources */,
+ 7A35F24E20BDAE40003958EC /* Unlock keychain */,
+ 7AFCBD5420B8911D00F55C9C /* Process WebContent entitlements */,
);
buildRules = (
);
@@ -10054,6 +10062,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 7ACFAADA20B88D5000C53203 /* process-webcontent-entitlements.sh in Resources */,
372EBB412017E64300085064 /* WebContentProcess.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -10083,6 +10092,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 7ACFAAD920B88D5000C53203 /* process-webcontent-entitlements.sh in Resources */,
E1D26A53175964D90095BFD1 /* WebContentProcess.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -10324,6 +10334,116 @@
shellPath = /bin/sh;
shellScript = "if [ \"${ACTION}\" = \"installhdrs\" ] || [ \"${ACTION}\" = \"installapi\" ]; then\n exit 0;\nfi\n\nif [ -f ../../Tools/Scripts/check-for-inappropriate-files-in-framework ]; then\n ../../Tools/Scripts/check-for-inappropriate-files-in-framework || exit $?\nfi\n";
};
+ 7A35F24E20BDAE40003958EC /* Unlock keychain */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Unlock keychain";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "UNLOCK_SCRIPT_PATH=\"${SRCROOT}/../../../Internal/Tools/Scripts/unlock-safari-engineering-keychain-if-needed\"\n\n[[ -x \"${UNLOCK_SCRIPT_PATH}\" ]] && exec \"${UNLOCK_SCRIPT_PATH}\"\n\nexit 0\n";
+ };
+ 7A35F24F20BDAF8B003958EC /* Unlock keychain */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Unlock keychain";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "UNLOCK_SCRIPT_PATH=\"${SRCROOT}/../../../Internal/Tools/Scripts/unlock-safari-engineering-keychain-if-needed\"\n\n[[ -x \"${UNLOCK_SCRIPT_PATH}\" ]] && exec \"${UNLOCK_SCRIPT_PATH}\"\n\nexit 0\n";
+ };
+ 7A35F25020BDB7CC003958EC /* Remove stale entitlement file */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Remove stale entitlement file";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# We autogenerate this file, so don't want to retain an old copy during builds.\nrm -f ${TEMP_FILE_DIR}/${FULL_PRODUCT_NAME}.xcent\n";
+ };
+ 7A35F25120BDB80C003958EC /* Remove stale entitlement file */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Remove stale entitlement file";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# We autogenerate this file, so don't want to retain an old copy during builds.\nrm -f ${TEMP_FILE_DIR}/${FULL_PRODUCT_NAME}.xcent\n";
+ };
+ 7AFCBD5420B8911D00F55C9C /* Process WebContent entitlements */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(TEMP_FILE_DIR)/$(FULL_PRODUCT_NAME).xcent",
+ );
+ name = "Process WebContent entitlements";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "Scripts/process-webcontent-entitlements.sh\n";
+ };
+ 7AFCBD5520B8917D00F55C9C /* Process WebContent entitlements */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(TEMP_FILE_DIR)/$(FULL_PRODUCT_NAME).xcent",
+ );
+ name = "Process WebContent entitlements";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "Scripts/process-webcontent-entitlements.sh\n";
+ };
99CA3862207286DB00BAD578 /* Copy WebDriver Atoms to Framework Private Headers */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;