Title: [232321] trunk/Source/WebKit
Revision
232321
Author
[email protected]
Date
2018-05-30 17:08:35 -0700 (Wed, 30 May 2018)

Log Message

[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:

Modified Paths

Added Paths

Removed Paths

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;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to