Title: [232604] trunk
Revision
232604
Author
[email protected]
Date
2018-06-07 16:14:04 -0700 (Thu, 07 Jun 2018)

Log Message

Don't try to allocate JIT memory if we don't have the JIT entitlement
https://bugs.webkit.org/show_bug.cgi?id=182605
<rdar://problem/38271229>

Patch by Tadeu Zagallo <[email protected]> on 2018-06-07
Reviewed by Mark Lam.

Source/_javascript_Core:

Check that the current process has the correct entitlements before
trying to allocate JIT memory to silence warnings.

* jit/ExecutableAllocator.cpp:
(JSC::allowJIT): Helper that checks entitlements on iOS and returns true in other platforms
(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): check allowJIT before trying to allocate

Source/WebKit:

Remove processHasEntitlement, which was moved into WTF and update all call sites.

* Shared/mac/SandboxUtilities.h:
* Shared/mac/SandboxUtilities.mm:
(WebKit::processHasEntitlement): Deleted.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/ApplicationStateTracker.mm:
(WebKit::applicationType):
* UIProcess/ios/WKActionSheetAssistant.mm:
(applicationHasAppLinkEntitlements):

Source/WTF:

Move processHasEntitlement from Source/WebKit/Shared/mac/SandboxUtilities.h
into WTF so _javascript_Core can also use it.

* WTF.xcodeproj/project.pbxproj:
* wtf/PlatformMac.cmake:
* wtf/cocoa/Entitlements.cpp:
(WTF::processHasEntitlement):
* wtf/cocoa/Entitlements.h:
* wtf/spi/cocoa/SecuritySPI.h:

Tools:

Add the Security framework to the TestWTF target, since it's required by the new function to check the entitlements.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (232603 => 232604)


--- trunk/Source/_javascript_Core/ChangeLog	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-06-07 23:14:04 UTC (rev 232604)
@@ -1,3 +1,18 @@
+2018-06-07  Tadeu Zagallo  <[email protected]>
+
+        Don't try to allocate JIT memory if we don't have the JIT entitlement
+        https://bugs.webkit.org/show_bug.cgi?id=182605
+        <rdar://problem/38271229>
+
+        Reviewed by Mark Lam.
+
+        Check that the current process has the correct entitlements before
+        trying to allocate JIT memory to silence warnings.
+
+        * jit/ExecutableAllocator.cpp:
+        (JSC::allowJIT): Helper that checks entitlements on iOS and returns true in other platforms
+        (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): check allowJIT before trying to allocate
+
 2018-06-07  Saam Barati  <[email protected]>
 
         TierUpCheckInjectionPhase systematically never puts the outer-most loop in an inner loop's vector of outer loops

Modified: trunk/Source/_javascript_Core/jit/ExecutableAllocator.cpp (232603 => 232604)


--- trunk/Source/_javascript_Core/jit/ExecutableAllocator.cpp	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/_javascript_Core/jit/ExecutableAllocator.cpp	2018-06-07 23:14:04 UTC (rev 232604)
@@ -38,6 +38,10 @@
 #include <sys/mman.h>
 #endif
 
+#if PLATFORM(IOS)
+#include <wtf/cocoa/Entitlements.h>
+#endif
+
 #include "LinkBuffer.h"
 #include "MacroAssembler.h"
 
@@ -110,6 +114,15 @@
 static uintptr_t startOfFixedWritableMemoryPool;
 #endif
 
+static bool allowJIT()
+{
+#if PLATFORM(IOS) && (CPU(ARM64) || CPU(ARM))
+    return processHasEntitlement("dynamic-codesigning");
+#else
+    return true;
+#endif
+}
+
 class FixedVMPoolExecutableAllocator : public MetaAllocator {
     WTF_MAKE_FAST_ALLOCATED;
 public:
@@ -116,6 +129,9 @@
     FixedVMPoolExecutableAllocator()
         : MetaAllocator(jitAllocationGranule) // round up all allocations to 32 bytes
     {
+        if (!allowJIT())
+            return;
+
         size_t reservationSize;
         if (Options::jitMemoryReservationSize())
             reservationSize = Options::jitMemoryReservationSize();

Modified: trunk/Source/WTF/ChangeLog (232603 => 232604)


--- trunk/Source/WTF/ChangeLog	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WTF/ChangeLog	2018-06-07 23:14:04 UTC (rev 232604)
@@ -1,3 +1,21 @@
+2018-06-07  Tadeu Zagallo  <[email protected]>
+
+        Don't try to allocate JIT memory if we don't have the JIT entitlement
+        https://bugs.webkit.org/show_bug.cgi?id=182605
+        <rdar://problem/38271229>
+
+        Reviewed by Mark Lam.
+
+        Move processHasEntitlement from Source/WebKit/Shared/mac/SandboxUtilities.h
+        into WTF so _javascript_Core can also use it.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/PlatformMac.cmake:
+        * wtf/cocoa/Entitlements.cpp:
+        (WTF::processHasEntitlement):
+        * wtf/cocoa/Entitlements.h:
+        * wtf/spi/cocoa/SecuritySPI.h:
+
 2018-06-05  Darin Adler  <[email protected]>
 
         [Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers

Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (232603 => 232604)


--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2018-06-07 23:14:04 UTC (rev 232604)
@@ -44,6 +44,7 @@
 		0FEC3C5E1F368A9700F59B6C /* ReadWriteLock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEC3C5C1F368A9700F59B6C /* ReadWriteLock.cpp */; };
 		0FFF19DC1BB334EB00886D91 /* ParallelHelperPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FFF19DA1BB334EB00886D91 /* ParallelHelperPool.cpp */; };
 		14022F4118F5C3FC007FF0EB /* libbmalloc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 14022F4018F5C3FC007FF0EB /* libbmalloc.a */; };
+		143DDE9620C8BC37007F76FA /* Entitlements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143DDE9520C8BC37007F76FA /* Entitlements.cpp */; };
 		143F611F1565F0F900DB514A /* RAMSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143F611D1565F0F900DB514A /* RAMSize.cpp */; };
 		1447AEC618FCE57700B3D7FF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1447AEC518FCE57700B3D7FF /* Foundation.framework */; };
 		1447AEC718FCE58000B3D7FF /* libWTF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D247B6214689B8600E78B76 /* libWTF.a */; };
@@ -268,6 +269,8 @@
 		0FFF19DB1BB334EB00886D91 /* ParallelHelperPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParallelHelperPool.h; sourceTree = "<group>"; };
 		132743924FC54E469F5A8E6E /* StdUnorderedSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdUnorderedSet.h; sourceTree = "<group>"; };
 		14022F4018F5C3FC007FF0EB /* libbmalloc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libbmalloc.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		143DDE9520C8BC37007F76FA /* Entitlements.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Entitlements.cpp; sourceTree = "<group>"; };
+		143DDE9720C8BE99007F76FA /* Entitlements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = "<group>"; };
 		143F611D1565F0F900DB514A /* RAMSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RAMSize.cpp; sourceTree = "<group>"; };
 		143F611E1565F0F900DB514A /* RAMSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAMSize.h; sourceTree = "<group>"; };
 		1447AEBE18FCE56900B3D7FF /* libmbmalloc.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libmbmalloc.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1315,6 +1318,8 @@
 			isa = PBXGroup;
 			children = (
 				E38C41241EB4E04C0042957D /* CPUTimeCocoa.mm */,
+				143DDE9520C8BC37007F76FA /* Entitlements.cpp */,
+				143DDE9720C8BE99007F76FA /* Entitlements.h */,
 				7A6EBA3320746C34004F9C44 /* MachSendRight.cpp */,
 				ADF2CE651E39F106006889DB /* MemoryFootprintCocoa.cpp */,
 				AD89B6B91E64150F0090707F /* MemoryPressureHandlerCocoa.mm */,
@@ -1465,6 +1470,7 @@
 				A8A473AE151A825B004123FF /* diy-fp.cc in Sources */,
 				A8A473B0151A825B004123FF /* double-conversion.cc in Sources */,
 				A8A473BA151A825B004123FF /* dtoa.cpp in Sources */,
+				143DDE9620C8BC37007F76FA /* Entitlements.cpp in Sources */,
 				A8A473B3151A825B004123FF /* fast-dtoa.cc in Sources */,
 				0F7C5FB61D885CF20044F5E2 /* FastBitVector.cpp in Sources */,
 				A8A473C3151A825B004123FF /* FastMalloc.cpp in Sources */,

Modified: trunk/Source/WTF/wtf/PlatformMac.cmake (232603 => 232604)


--- trunk/Source/WTF/wtf/PlatformMac.cmake	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WTF/wtf/PlatformMac.cmake	2018-06-07 23:14:04 UTC (rev 232604)
@@ -10,6 +10,7 @@
 list(APPEND WTF_PUBLIC_HEADERS
     cf/TypeCastsCF.h
 
+    cocoa/Entitlements.h
     cocoa/MachSendRight.h
     cocoa/SoftLinking.h
 
@@ -43,6 +44,7 @@
     text/mac/TextBreakIteratorInternalICUMac.mm
 
     cocoa/CPUTimeCocoa.mm
+    cocoa/Entitlements.cpp
     cocoa/MachSendRight.cpp
     cocoa/MemoryFootprintCocoa.cpp
     cocoa/MemoryPressureHandlerCocoa.mm

Copied: trunk/Source/WTF/wtf/cocoa/Entitlements.cpp (from rev 232603, trunk/Source/WebKit/Shared/mac/SandboxUtilities.h) (0 => 232604)


--- trunk/Source/WTF/wtf/cocoa/Entitlements.cpp	                        (rev 0)
+++ trunk/Source/WTF/wtf/cocoa/Entitlements.cpp	2018-06-07 23:14:04 UTC (rev 232604)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 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
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Entitlements.h"
+
+#include <wtf/RetainPtr.h>
+#include <wtf/spi/cocoa/SecuritySPI.h>
+
+namespace WTF {
+
+bool processHasEntitlement(const char* entitlement)
+{
+    auto task = adoptCF(SecTaskCreateFromSelf(kCFAllocatorDefault));
+    if (!task)
+        return false;
+
+    auto cfEntitlement = adoptCF(CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, entitlement, kCFStringEncodingUTF8, kCFAllocatorNull));
+    auto value = adoptCF(SecTaskCopyValueForEntitlement(task.get(), cfEntitlement.get(), nullptr));
+    if (!value)
+        return false;
+
+    if (CFGetTypeID(value.get()) != CFBooleanGetTypeID())
+        return false;
+
+    return CFBooleanGetValue(static_cast<CFBooleanRef>(value.get()));
+}
+
+} // namespace WTF

Copied: trunk/Source/WTF/wtf/cocoa/Entitlements.h (from rev 232603, trunk/Source/WebKit/Shared/mac/SandboxUtilities.h) (0 => 232604)


--- trunk/Source/WTF/wtf/cocoa/Entitlements.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/cocoa/Entitlements.h	2018-06-07 23:14:04 UTC (rev 232604)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 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
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if PLATFORM(COCOA)
+
+namespace WTF {
+
+WTF_EXPORT bool processHasEntitlement(const char* entitlement);
+
+} // namespace WTF
+
+#endif

Modified: trunk/Source/WTF/wtf/spi/cocoa/SecuritySPI.h (232603 => 232604)


--- trunk/Source/WTF/wtf/spi/cocoa/SecuritySPI.h	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WTF/wtf/spi/cocoa/SecuritySPI.h	2018-06-07 23:14:04 UTC (rev 232604)
@@ -37,6 +37,8 @@
 
 #else
 
+#include <Security/SecBase.h>
+
 typedef uint32_t SecSignatureHashAlgorithm;
 enum {
     kSecSignatureHashAlgorithmUnknown = 0,
@@ -59,6 +61,7 @@
 #endif
 
 typedef struct __SecTask *SecTaskRef;
+typedef struct __SecTrust *SecTrustRef;
 
 WTF_EXTERN_C_BEGIN
 

Modified: trunk/Source/WebKit/ChangeLog (232603 => 232604)


--- trunk/Source/WebKit/ChangeLog	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/ChangeLog	2018-06-07 23:14:04 UTC (rev 232604)
@@ -1,3 +1,23 @@
+2018-06-07  Tadeu Zagallo  <[email protected]>
+
+        Don't try to allocate JIT memory if we don't have the JIT entitlement
+        https://bugs.webkit.org/show_bug.cgi?id=182605
+        <rdar://problem/38271229>
+
+        Reviewed by Mark Lam.
+
+        Remove processHasEntitlement, which was moved into WTF and update all call sites.
+
+        * Shared/mac/SandboxUtilities.h:
+        * Shared/mac/SandboxUtilities.mm:
+        (WebKit::processHasEntitlement): Deleted.
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+        * UIProcess/ApplicationStateTracker.mm:
+        (WebKit::applicationType):
+        * UIProcess/ios/WKActionSheetAssistant.mm:
+        (applicationHasAppLinkEntitlements):
+
 2018-06-07  Tim Horton  <[email protected]>
 
         REGRESSION (r232544): Pages are blank after homing out and then resuming on iPad

Modified: trunk/Source/WebKit/Shared/mac/SandboxUtilities.h (232603 => 232604)


--- trunk/Source/WebKit/Shared/mac/SandboxUtilities.h	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/Shared/mac/SandboxUtilities.h	2018-06-07 23:14:04 UTC (rev 232604)
@@ -38,7 +38,6 @@
 // Returns an empty string if the process is not in a container.
 String pathForProcessContainer();
 
-bool processHasEntitlement(NSString *entitlement);
 bool connectedProcessHasEntitlement(xpc_connection_t, const char *entitlement);
 
 }

Modified: trunk/Source/WebKit/Shared/mac/SandboxUtilities.mm (232603 => 232604)


--- trunk/Source/WebKit/Shared/mac/SandboxUtilities.mm	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/Shared/mac/SandboxUtilities.mm	2018-06-07 23:14:04 UTC (rev 232604)
@@ -29,7 +29,7 @@
 #import <array>
 #import <sys/param.h>
 #import <wtf/OSObjectPtr.h>
-#import <wtf/spi/cocoa/SecuritySPI.h>
+#import <wtf/cocoa/Entitlements.h>
 #import <wtf/spi/darwin/SandboxSPI.h>
 #import <wtf/spi/darwin/XPCSPI.h>
 #import <wtf/text/WTFString.h>
@@ -77,22 +77,6 @@
     return String::fromUTF8(path.data());
 }
 
-bool processHasEntitlement(NSString *entitlement)
-{
-    auto task = adoptCF(SecTaskCreateFromSelf(CFAllocatorGetDefault()));
-    if (!task)
-        return false;
-
-    auto value = adoptCF(SecTaskCopyValueForEntitlement(task.get(), (__bridge CFStringRef)entitlement, nullptr));
-    if (!value)
-        return false;
-
-    if (CFGetTypeID(value.get()) != CFBooleanGetTypeID())
-        return false;
-
-    return CFBooleanGetValue(static_cast<CFBooleanRef>(value.get()));
-}
-
 bool connectedProcessHasEntitlement(xpc_connection_t connection, const char *entitlement)
 {
     auto value = adoptOSObject(xpc_connection_copy_entitlement_value(connection, entitlement));

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (232603 => 232604)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2018-06-07 23:14:04 UTC (rev 232604)
@@ -46,7 +46,6 @@
 #import "RemoteLayerTreeTransaction.h"
 #import "RemoteObjectRegistry.h"
 #import "RemoteObjectRegistryMessages.h"
-#import "SandboxUtilities.h"
 #import "UIDelegate.h"
 #import "UserMediaProcessManager.h"
 #import "VersionChecks.h"
@@ -151,6 +150,7 @@
 #import <WebCore/WebSQLiteDatabaseTrackerClient.h>
 #import <pal/spi/cg/CoreGraphicsSPI.h>
 #import <pal/spi/cocoa/QuartzCoreSPI.h>
+#import <wtf/cocoa/Entitlements.h>
 
 #define RELEASE_LOG_IF_ALLOWED(...) RELEASE_LOG_IF(_page && _page->isAlwaysOnLoggingAllowed(), ViewState, __VA_ARGS__)
 
@@ -618,7 +618,7 @@
 #endif
 
 #if PLATFORM(IOS) && ENABLE(SERVICE_WORKER)
-    if (!WebKit::processHasEntitlement(@"com.apple.developer.WebKit.ServiceWorkers"))
+    if (!WTF::processHasEntitlement("com.apple.developer.WebKit.ServiceWorkers"))
         pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::serviceWorkersEnabledKey(), WebKit::WebPreferencesStore::Value(false));
 #endif
 

Modified: trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm (232603 => 232604)


--- trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm	2018-06-07 23:14:04 UTC (rev 232604)
@@ -32,6 +32,7 @@
 #import "SandboxUtilities.h"
 #import "UIKitSPI.h"
 #import <wtf/ObjcRuntimeExtras.h>
+#import <wtf/cocoa/Entitlements.h>
 #import <wtf/spi/cocoa/SecuritySPI.h>
 
 @interface UIWindow (WKDetails)
@@ -54,7 +55,7 @@
     if (_UIApplicationIsExtension())
         return ApplicationType::Extension;
 
-    if (processHasEntitlement(@"com.apple.UIKit.vends-view-services") && window._isHostedInAnotherProcess)
+    if (WTF::processHasEntitlement("com.apple.UIKit.vends-view-services") && window._isHostedInAnotherProcess)
         return ApplicationType::ViewService;
 
     return ApplicationType::Application;

Modified: trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm (232603 => 232604)


--- trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm	2018-06-07 23:14:04 UTC (rev 232604)
@@ -29,7 +29,6 @@
 #if PLATFORM(IOS)
 
 #import "APIUIClient.h"
-#import "SandboxUtilities.h"
 #import "TCCSPI.h"
 #import "UIKitSPI.h"
 #import "WKActionSheet.h"
@@ -45,6 +44,7 @@
 #import <WebCore/WebCoreNSURLExtras.h>
 #import <wtf/SoftLinking.h>
 #import <wtf/WeakObjCPtr.h>
+#import <wtf/cocoa/Entitlements.h>
 #import <wtf/text/WTFString.h>
 
 #if HAVE(APP_LINKS)
@@ -66,7 +66,7 @@
 #if HAVE(APP_LINKS)
 static bool applicationHasAppLinkEntitlements()
 {
-    static bool hasEntitlement = processHasEntitlement(@"com.apple.private.canGetAppLinkInfo") && processHasEntitlement(@"com.apple.private.canModifyAppLinkPermissions");
+    static bool hasEntitlement = WTF::processHasEntitlement("com.apple.private.canGetAppLinkInfo") && WTF::processHasEntitlement("com.apple.private.canModifyAppLinkPermissions");
     return hasEntitlement;
 }
 

Modified: trunk/Tools/ChangeLog (232603 => 232604)


--- trunk/Tools/ChangeLog	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Tools/ChangeLog	2018-06-07 23:14:04 UTC (rev 232604)
@@ -1,3 +1,15 @@
+2018-06-07  Tadeu Zagallo  <[email protected]>
+
+        Don't try to allocate JIT memory if we don't have the JIT entitlement
+        https://bugs.webkit.org/show_bug.cgi?id=182605
+        <rdar://problem/38271229>
+
+        Reviewed by Mark Lam.
+
+        Add the Security framework to the TestWTF target, since it's required by the new function to check the entitlements.
+
+        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+
 2018-06-07  Mark Lam  <[email protected]>
 
         Enhance run-jsc-stress-tests to allow a test to specify test specific options required for it to run.

Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (232603 => 232604)


--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2018-06-07 22:07:37 UTC (rev 232603)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2018-06-07 23:14:04 UTC (rev 232604)
@@ -47,6 +47,7 @@
 		0F5651F71FCE4DDC00310FBC /* NoHistoryItemScrollToFragment.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F5651F61FCE4DDB00310FBC /* NoHistoryItemScrollToFragment.mm */; };
 		0F5651F91FCE513500310FBC /* scroll-to-anchor.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 0F5651F81FCE50E800310FBC /* scroll-to-anchor.html */; };
 		115EB3431EE0BA03003C2C0A /* ViewportSizeForViewportUnits.mm in Sources */ = {isa = PBXBuildFile; fileRef = 115EB3421EE0B720003C2C0A /* ViewportSizeForViewportUnits.mm */; };
+		143DDE9820C9018B007F76FA /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 574F55D0204D471C002948C6 /* Security.framework */; };
 		1A02C870125D4CFD00E3F4BD /* find.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1A02C84B125D4A5E00E3F4BD /* find.html */; };
 		1A3524AE1D63A4FB0031729B /* Scope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3524AC1D63A4FB0031729B /* Scope.cpp */; };
 		1A4F81CF1BDFFD53004E672E /* RemoteObjectRegistryPlugIn.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A4F81CD1BDFFD53004E672E /* RemoteObjectRegistryPlugIn.mm */; };
@@ -2020,6 +2021,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				93F56DA71E5F9174003EDE84 /* libicucore.dylib in Frameworks */,
+				143DDE9820C9018B007F76FA /* Security.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to