Skip to content

Commit

Permalink
Don't try to allocate JIT memory if we don't have the JIT entitlement
Browse files Browse the repository at this point in the history
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/JavaScriptCore:

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@232604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
[email protected] committed Jun 7, 2018
1 parent c298f47 commit b311a04
Show file tree
Hide file tree
Showing 16 changed files with 186 additions and 23 deletions.
15 changes: 15 additions & 0 deletions Source/JavaScriptCore/ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
16 changes: 16 additions & 0 deletions Source/JavaScriptCore/jit/ExecutableAllocator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@
#include <sys/mman.h>
#endif

#if PLATFORM(IOS)
#include <wtf/cocoa/Entitlements.h>
#endif

#include "LinkBuffer.h"
#include "MacroAssembler.h"

Expand Down Expand Up @@ -110,12 +114,24 @@ JS_EXPORT_PRIVATE JITWriteSeparateHeapsFunction jitWriteSeparateHeapsFunction;
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:
FixedVMPoolExecutableAllocator()
: MetaAllocator(jitAllocationGranule) // round up all allocations to 32 bytes
{
if (!allowJIT())
return;

size_t reservationSize;
if (Options::jitMemoryReservationSize())
reservationSize = Options::jitMemoryReservationSize();
Expand Down
18 changes: 18 additions & 0 deletions Source/WTF/ChangeLog
Original file line number Diff line number Diff line change
@@ -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 JavaScriptCore 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
Expand Down
6 changes: 6 additions & 0 deletions Source/WTF/WTF.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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 */; };
Expand Down Expand Up @@ -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; };
Expand Down Expand Up @@ -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 */,
Expand Down Expand Up @@ -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 */,
Expand Down
2 changes: 2 additions & 0 deletions Source/WTF/wtf/PlatformMac.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ list(APPEND WTF_LIBRARIES
list(APPEND WTF_PUBLIC_HEADERS
cf/TypeCastsCF.h

cocoa/Entitlements.h
cocoa/MachSendRight.h
cocoa/SoftLinking.h

Expand Down Expand Up @@ -43,6 +44,7 @@ list(APPEND WTF_SOURCES
text/mac/TextBreakIteratorInternalICUMac.mm

cocoa/CPUTimeCocoa.mm
cocoa/Entitlements.cpp
cocoa/MachSendRight.cpp
cocoa/MemoryFootprintCocoa.cpp
cocoa/MemoryPressureHandlerCocoa.mm
Expand Down
51 changes: 51 additions & 0 deletions Source/WTF/wtf/cocoa/Entitlements.cpp
Original file line number Diff line number Diff line change
@@ -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
34 changes: 34 additions & 0 deletions Source/WTF/wtf/cocoa/Entitlements.h
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions Source/WTF/wtf/spi/cocoa/SecuritySPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@

#else

#include <Security/SecBase.h>

typedef uint32_t SecSignatureHashAlgorithm;
enum {
kSecSignatureHashAlgorithmUnknown = 0,
Expand All @@ -59,6 +61,7 @@ WTF_EXTERN_C_END
#endif

typedef struct __SecTask *SecTaskRef;
typedef struct __SecTrust *SecTrustRef;

WTF_EXTERN_C_BEGIN

Expand Down
20 changes: 20 additions & 0 deletions Source/WebKit/ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 0 additions & 1 deletion Source/WebKit/Shared/mac/SandboxUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ bool processHasContainer();
// 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);

}
18 changes: 1 addition & 17 deletions Source/WebKit/Shared/mac/SandboxUtilities.mm
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -77,22 +77,6 @@ String pathForProcessContainer()
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));
Expand Down
4 changes: 2 additions & 2 deletions Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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__)

Expand Down Expand Up @@ -618,7 +618,7 @@ - (void)_initializeWithConfiguration:(WKWebViewConfiguration *)configuration
#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

Expand Down
3 changes: 2 additions & 1 deletion Source/WebKit/UIProcess/ApplicationStateTracker.mm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -54,7 +55,7 @@ static ApplicationType applicationType(UIWindow *window)
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;
Expand Down
4 changes: 2 additions & 2 deletions Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#if PLATFORM(IOS)

#import "APIUIClient.h"
#import "SandboxUtilities.h"
#import "TCCSPI.h"
#import "UIKitSPI.h"
#import "WKActionSheet.h"
Expand All @@ -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)
Expand All @@ -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;
}

Expand Down
12 changes: 12 additions & 0 deletions Tools/ChangeLog
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 2 additions & 0 deletions Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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 */; };
Expand Down Expand Up @@ -2020,6 +2021,7 @@
buildActionMask = 2147483647;
files = (
93F56DA71E5F9174003EDE84 /* libicucore.dylib in Frameworks */,
143DDE9820C9018B007F76FA /* Security.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down

0 comments on commit b311a04

Please sign in to comment.