Changeset 227582 in webkit


Ignore:
Timestamp:
Jan 24, 2018 3:30:23 PM (6 years ago)
Author:
mitz@apple.com
Message:

Enable library validation on the Web Content service
Part 1 of https://bugs.webkit.org/show_bug.cgi?id=172365
<rdar://problem/26470661>

Reviewed by David Kilzer.

This makes the Web Content process signed with the Library Validation flag in production
builds. Because doing so would prevent engineering builds of Apple apps that use an
injected bundle from working, this also adds a Development version of the service, which
does not enforce Library Validation. The UI process chooses to use the Development service
iff it would need to load an injected bundle that is not part of the OS.

  • Configurations/DebugRelease.xcconfig: Disable Library Validation in engineering builds.
  • Configurations/WebContentService.Development.xcconfig: Added. Like the normal service, but only installed when WebKit is installed in the OS, and uses a Development variant.
  • Configurations/WebContentService.xcconfig: For the Development variant, append ".Development" to the product name, which is also the service identifier. Enable Library Validation for the Normal variant of the service when WK_LIBRARY_VALIDATION_ENABLED allows it.
  • UIProcess/Launcher/ProcessLauncher.h: Add nonValidInjectedCodeAllowed member to LaunchOptions, false by default.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName): Use the Development variant if nonValidInjectedCodeAllowed is true.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions): Initialize nonValidInjectedCodeAllowed using

the new shouldAllowNonValidInjectedCode().

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Generic implementation

that returns false.

  • UIProcess/WebProcessProxy.h: Declared shouldAllowNonValidInjectedCode.
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return true if this is

system WebKit with a non-system injected bundle.

  • WebKit.xcodeproj/project.pbxproj: Added new service target.
Location:
trunk/Source/WebKit
Files:
9 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r227566 r227582  
     12018-01-24  Dan Bernstein  <mitz@apple.com>
     2
     3        Enable library validation on the Web Content service
     4        Part 1 of https://bugs.webkit.org/show_bug.cgi?id=172365
     5        <rdar://problem/26470661>
     6
     7        Reviewed by David Kilzer.
     8
     9        This makes the Web Content process signed with the Library Validation flag in production
     10        builds. Because doing so would prevent engineering builds of Apple apps that use an
     11        injected bundle from working, this also adds a Development version of the service, which
     12        does not enforce Library Validation. The UI process chooses to use the Development service
     13        iff it would need to load an injected bundle that is not part of the OS.
     14
     15        * Configurations/DebugRelease.xcconfig: Disable Library Validation in engineering builds.
     16
     17        * Configurations/WebContentService.Development.xcconfig: Added. Like the normal service, but
     18          only installed when WebKit is installed in the OS, and uses a Development variant.
     19
     20        * Configurations/WebContentService.xcconfig: For the Development variant, append
     21          ".Development" to the product name, which is also the service identifier. Enable Library
     22          Validation for the Normal variant of the service when WK_LIBRARY_VALIDATION_ENABLED allows
     23          it.
     24
     25        * UIProcess/Launcher/ProcessLauncher.h: Add nonValidInjectedCodeAllowed member to
     26          LaunchOptions, false by default.
     27
     28        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
     29        (WebKit::serviceName): Use the Development variant if nonValidInjectedCodeAllowed is true.
     30
     31        * UIProcess/WebProcessProxy.cpp:
     32        (WebKit::WebProcessProxy::getLaunchOptions): Initialize nonValidInjectedCodeAllowed using
     33           the new shouldAllowNonValidInjectedCode().
     34        (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Generic implementation
     35          that returns false.
     36        * UIProcess/WebProcessProxy.h: Declared shouldAllowNonValidInjectedCode.
     37        * UIProcess/mac/WebProcessProxyMac.mm:
     38        (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return true if this is
     39          system WebKit with a non-system injected bundle.
     40
     41        * WebKit.xcodeproj/project.pbxproj: Added new service target.
     42
    1432018-01-24  Chris Dumez  <cdumez@apple.com>
    244
  • trunk/Source/WebKit/Configurations/DebugRelease.xcconfig

    r227156 r227582  
    4848WK_XPC_SERVICE_SUFFIX[sdk=*simulator*] = .Development;
    4949
     50WK_LIBRARY_VALIDATION_ENABLED = NO;
    5051WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT = NO;
    5152WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG[sdk=macosx*] = YES;
  • trunk/Source/WebKit/Configurations/WebContentService.Development.xcconfig

    r227581 r227582  
    1 // Copyright (C) 2009, 2013-2016 Apple Inc. All rights reserved.
     1// Copyright (C) 2018 Apple Inc. All rights reserved.
    22//
    33// Redistribution and use in source and binary forms, with or without
     
    2222// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2323
    24 #include "Base.xcconfig"
     24#include "WebContentService.xcconfig"
    2525
    26 ARCHS = $(ARCHS_STANDARD_32_64_BIT);
     26SKIP_INSTALL = YES;
     27SKIP_INSTALL[sdk=macosx*] = $(WK_RELOCATABLE_FRAMEWORKS);
    2728
    28 ONLY_ACTIVE_ARCH = YES;
    29 
    30 TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
    31 
    32 MACOSX_DEPLOYMENT_TARGET = $(MACOSX_DEPLOYMENT_TARGET_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
    33 MACOSX_DEPLOYMENT_TARGET_macosx_101100 = 10.11;
    34 MACOSX_DEPLOYMENT_TARGET_macosx_101200 = 10.12;
    35 MACOSX_DEPLOYMENT_TARGET_macosx_101300 = 10.13;
    36 MACOSX_DEPLOYMENT_TARGET_macosx_101400 = 10.14;
    37 MACOSX_DEPLOYMENT_TARGET_macosx_101500 = 10.15;
    38 
    39 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
    40 DEBUG_INFORMATION_FORMAT = dwarf;
    41 
    42 SDKROOT = $(SDKROOT_$(USE_INTERNAL_SDK));
    43 SDKROOT_ = macosx;
    44 SDKROOT_YES = macosx.internal;
    45 
    46 WK_RELOCATABLE_FRAMEWORKS = YES;
    47 WK_XPC_SERVICE_SUFFIX[sdk=macosx*] = .Development;
    48 WK_XPC_SERVICE_SUFFIX[sdk=*simulator*] = .Development;
    49 
    50 WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT = NO;
    51 WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG[sdk=macosx*] = YES;
    52 
    53 WK_CCACHE_DIR = $(SRCROOT)/../../Tools/ccache;
    54 #include "../../../Tools/ccache/ccache.xcconfig"
     29WK_XPC_SERVICE_VARIANT = Development;
  • trunk/Source/WebKit/Configurations/WebContentService.xcconfig

    r226807 r227582  
    2828CODE_SIGN_ENTITLEMENTS[sdk=macosx*] = $(CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_$(WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT));
    2929CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_YES = Configurations/WebContent-OSX.entitlements;
    30 OTHER_CODE_SIGN_FLAGS[sdk=macosx*] = $(WK_XPC_DOMAIN_EXTENSION_CODE_SIGN_FLAGS);
     30OTHER_CODE_SIGN_FLAGS[sdk=macosx*] = $(WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS);
    3131
    32 PRODUCT_NAME = com.apple.WebKit.WebContent;
     32PRODUCT_NAME = $(PRODUCT_NAME_$(WK_XPC_SERVICE_VARIANT));
     33PRODUCT_NAME_ = $(PRODUCT_NAME_Normal);
     34PRODUCT_NAME_Normal = com.apple.WebKit.WebContent;
     35PRODUCT_NAME_Development = com.apple.WebKit.WebContent.Development;
     36
    3337PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_NAME);
    3438INFOPLIST_FILE[sdk=iphone*] = WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist;
     
    4347WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT_YES = $(WK_RELOCATABLE_FRAMEWORKS);
    4448
     49WK_LIBRARY_VALIDATION_ENABLED = $(WK_LIBRARY_VALIDATION_ENABLED_$(WK_EMPTY_$(WK_LIBRARY_VALIDATION_ENABLED)));
     50WK_LIBRARY_VALIDATION_ENABLED_ = $(WK_LIBRARY_VALIDATION_ENABLED_NO);
     51WK_LIBRARY_VALIDATION_ENABLED_NO = $(WK_LIBRARY_VALIDATION_ENABLED);
     52WK_LIBRARY_VALIDATION_ENABLED_YES = YES;
     53
    4554WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG = $(WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG_$(WK_EMPTY_$(WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG)));
    4655WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG_ = $(WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG_NO);
     
    4857WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG_YES = $(USE_STAGING_INSTALL_PATH);
    4958
    50 WK_XPC_DOMAIN_EXTENSION_CODE_SIGN_FLAGS = $(WK_XPC_DOMAIN_EXTENSION_CODE_SIGN_FLAGS_$(WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT));
    51 WK_XPC_DOMAIN_EXTENSION_CODE_SIGN_FLAGS_YES = -o library;
     59WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS = $(WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_$(WK_XPC_SERVICE_VARIANT));
     60WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_ = $(WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_Normal);
     61WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_Normal = $(WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_$(WK_LIBRARY_VALIDATION_ENABLED));
     62WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS_YES = -o library;
    5263
    5364RUNLOOP_TYPE[sdk=macosx*] = NSRunLoop;
  • trunk/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h

    r226308 r227582  
    6161        WebCore::ProcessIdentifier processIdentifier;
    6262        HashMap<String, String> extraInitializationData;
     63        bool nonValidInjectedCodeAllowed { false };
    6364
    6465#if ENABLE(DEVELOPER_MODE) && (PLATFORM(GTK) || PLATFORM(WPE))
  • trunk/Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm

    r226308 r227582  
    5252    switch (launchOptions.processType) {
    5353    case ProcessLauncher::ProcessType::Web:
    54         return "com.apple.WebKit.WebContent";
     54        return launchOptions.nonValidInjectedCodeAllowed ? "com.apple.WebKit.WebContent.Development" : "com.apple.WebKit.WebContent";
    5555    case ProcessLauncher::ProcessType::Network:
    5656        return "com.apple.WebKit.Networking";
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r227566 r227582  
    168168        launchOptions.extraInitializationData.add(ASCIILiteral("OverrideLanguages"), languageString.toString());
    169169    }
     170
     171    launchOptions.nonValidInjectedCodeAllowed = shouldAllowNonValidInjectedCode();
    170172}
    171173
     
    611613#endif
    612614
     615#if !PLATFORM(MAC)
     616bool WebProcessProxy::shouldAllowNonValidInjectedCode() const
     617{
     618    return false;
     619}
     620#endif
     621
    613622void WebProcessProxy::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder)
    614623{
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.h

    r227566 r227582  
    248248
    249249    bool platformIsBeingDebugged() const;
     250    bool shouldAllowNonValidInjectedCode() const;
    250251
    251252    static const HashSet<String>& platformPathsWithAssumedReadAccess();
  • trunk/Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm

    r196500 r227582  
    2525 
    2626#import "config.h"
     27#import "WebProcessPool.h"
    2728#import "WebProcessProxy.h"
    2829
     
    3839}
    3940
     41bool WebProcessProxy::shouldAllowNonValidInjectedCode() const
     42{
     43    static bool isSystemWebKit = [] {
     44#if WK_API_ENABLED
     45        NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@"WKWebView")];
     46#else
     47        NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@"WKView")];
     48#endif
     49        return [webkit2Bundle.bundlePath hasPrefix:@"/System/"];
     50    }();
     51
     52    if (!isSystemWebKit)
     53        return false;
     54
     55    const String& path = m_processPool->configuration().injectedBundlePath();
     56    return !path.isEmpty() && !path.startsWith("/System/");
     57}
     58
    4059} // namespace WebKit
    4160
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r227364 r227582  
    1717                        dependencies = (
    1818                                BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
     19                                372EBB492017E6CF00085064 /* PBXTargetDependency */,
    1920                                51A60B2E180CCF1700F3BF50 /* PBXTargetDependency */,
    2021                                BC77F95616D0459100F8F78A /* PBXTargetDependency */,
     
    795796                372CAF0B1833FD910040AC27 /* WKNSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 372CAF091833FD910040AC27 /* WKNSError.h */; };
    796797                372CAF0C1833FD910040AC27 /* WKNSError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 372CAF0A1833FD910040AC27 /* WKNSError.mm */; };
     798                372EBB3C2017E64300085064 /* XPCServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839616B47EC400A278FE /* XPCServiceMain.mm */; };
     799                372EBB3E2017E64300085064 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     800                372EBB3F2017E64300085064 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; };
     801                372EBB412017E64300085064 /* WebContentProcess.xib in Resources */ = {isa = PBXBuildFile; fileRef = E1D26A4C1759634E0095BFD1 /* WebContentProcess.xib */; };
    797802                373CEAD5185417AE008C363D /* WKNSData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 373CEAD3185417AE008C363D /* WKNSData.mm */; };
    798803                373CEAD6185417AE008C363D /* WKNSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 373CEAD4185417AE008C363D /* WKNSData.h */; };
     
    21292134
    21302135/* Begin PBXContainerItemProxy section */
     2136                372EBB3A2017E64300085064 /* PBXContainerItemProxy */ = {
     2137                        isa = PBXContainerItemProxy;
     2138                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     2139                        proxyType = 1;
     2140                        remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
     2141                        remoteInfo = WebKit;
     2142                };
     2143                372EBB482017E6CF00085064 /* PBXContainerItemProxy */ = {
     2144                        isa = PBXContainerItemProxy;
     2145                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     2146                        proxyType = 1;
     2147                        remoteGlobalIDString = 372EBB382017E64300085064;
     2148                        remoteInfo = WebContent.Development;
     2149                };
    21312150                375E0626191EA8CC004E3CAF /* PBXContainerItemProxy */ = {
    21322151                        isa = PBXContainerItemProxy;
     
    31263145                372CAF091833FD910040AC27 /* WKNSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSError.h; sourceTree = "<group>"; };
    31273146                372CAF0A1833FD910040AC27 /* WKNSError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSError.mm; sourceTree = "<group>"; };
     3147                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; };
     3148                372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebContentService.Development.xcconfig; sourceTree = "<group>"; };
    31283149                373CEAD3185417AE008C363D /* WKNSData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSData.mm; sourceTree = "<group>"; };
    31293150                373CEAD4185417AE008C363D /* WKNSData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSData.h; sourceTree = "<group>"; };
     
    46154636                        runOnlyForDeploymentPostprocessing = 0;
    46164637                };
     4638                372EBB3D2017E64300085064 /* Frameworks */ = {
     4639                        isa = PBXFrameworksBuildPhase;
     4640                        buildActionMask = 2147483647;
     4641                        files = (
     4642                                372EBB3E2017E64300085064 /* Foundation.framework in Frameworks */,
     4643                                372EBB3F2017E64300085064 /* WebKit.framework in Frameworks */,
     4644                        );
     4645                        runOnlyForDeploymentPostprocessing = 0;
     4646                };
    46174647                510031EE1379CACB00C8DFE4 /* Frameworks */ = {
    46184648                        isa = PBXFrameworksBuildPhase;
     
    47014731                                8DC2EF5B0486A6940098B216 /* WebKit.framework */,
    47024732                                CDC3830617211799008A2FC3 /* WebProcessShim.dylib */,
     4733                                372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */,
    47034734                        );
    47044735                        name = Products;
     
    49304961                                37B418EB1C9624F20031E63B /* WebContent-OSX.entitlements */,
    49314962                                BCACC40E16B0B8A800B6E092 /* WebContentService.xcconfig */,
     4963                                372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */,
    49324964                                BCB86F4B116AAACD00CE20B7 /* WebKit.xcconfig */,
    49334965                                A1EDD2DD1884B9E300BBFE98 /* WebProcessShim.xcconfig */,
     
    95719603                        productType = "com.apple.product-type.library.dynamic";
    95729604                };
     9605                372EBB382017E64300085064 /* WebContent.Development */ = {
     9606                        isa = PBXNativeTarget;
     9607                        buildConfigurationList = 372EBB422017E64300085064 /* Build configuration list for PBXNativeTarget "WebContent.Development" */;
     9608                        buildPhases = (
     9609                                372EBB3B2017E64300085064 /* Sources */,
     9610                                372EBB3D2017E64300085064 /* Frameworks */,
     9611                                372EBB402017E64300085064 /* Resources */,
     9612                        );
     9613                        buildRules = (
     9614                        );
     9615                        dependencies = (
     9616                                372EBB392017E64300085064 /* PBXTargetDependency */,
     9617                        );
     9618                        name = WebContent.Development;
     9619                        productName = WebKit2Service;
     9620                        productReference = 372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */;
     9621                        productType = "com.apple.product-type.xpc-service";
     9622                };
    95739623                510031EA1379CACB00C8DFE4 /* SecItemShim */ = {
    95749624                        isa = PBXNativeTarget;
     
    97679817                                CDC382FB17211799008A2FC3 /* WebProcessShim */,
    97689818                                BC3DE46515A91763008D26FC /* WebContent */,
     9819                                372EBB382017E64300085064 /* WebContent.Development */,
    97699820                                BC8283B016B4BF7700A278FE /* Networking */,
    97709821                                BC8283F816B4FDDE00A278FE /* Plugin.32 */,
     
    97779828
    97789829/* Begin PBXResourcesBuildPhase section */
     9830                372EBB402017E64300085064 /* Resources */ = {
     9831                        isa = PBXResourcesBuildPhase;
     9832                        buildActionMask = 2147483647;
     9833                        files = (
     9834                                372EBB412017E64300085064 /* WebContentProcess.xib in Resources */,
     9835                        );
     9836                        runOnlyForDeploymentPostprocessing = 0;
     9837                };
    97799838                51F7DC45180CC93600212CA3 /* Resources */ = {
    97809839                        isa = PBXResourcesBuildPhase;
     
    1007010129                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.Plugin.64.xpc",
    1007110130                                "$(BUILT_PRODUCTS_DIR)/$(WK_STORAGE_SERVICE_PRODUCT_NAME).xpc",
     10131                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.WebContent.Development.xpc",
    1007210132                        );
    1007310133                        name = "Copy XPC services for engineering builds";
     
    1007810138                                "$(BUILT_PRODUCTS_DIR)/WebKit.framework/XPCServices/com.apple.WebKit.Plugin.64.xpc",
    1007910139                                "$(BUILT_PRODUCTS_DIR)/WebKit.framework/XPCServices/$(WK_STORAGE_SERVICE_PRODUCT_NAME).xpc",
     10140                                "$(BUILT_PRODUCTS_DIR)/WebKit.framework/XPCServices/com.apple.WebKit.WebContent.Development.xpc",
    1008010141                        );
    1008110142                        runOnlyForDeploymentPostprocessing = 0;
     
    1010510166                        files = (
    1010610167                                1AC25FC212A48F6000BD2671 /* PluginProcessShim.mm in Sources */,
     10168                        );
     10169                        runOnlyForDeploymentPostprocessing = 0;
     10170                };
     10171                372EBB3B2017E64300085064 /* Sources */ = {
     10172                        isa = PBXSourcesBuildPhase;
     10173                        buildActionMask = 2147483647;
     10174                        files = (
     10175                                372EBB3C2017E64300085064 /* XPCServiceMain.mm in Sources */,
    1010710176                        );
    1010810177                        runOnlyForDeploymentPostprocessing = 0;
     
    1112411193
    1112511194/* Begin PBXTargetDependency section */
     11195                372EBB392017E64300085064 /* PBXTargetDependency */ = {
     11196                        isa = PBXTargetDependency;
     11197                        target = 8DC2EF4F0486A6940098B216 /* WebKit */;
     11198                        targetProxy = 372EBB3A2017E64300085064 /* PBXContainerItemProxy */;
     11199                };
     11200                372EBB492017E6CF00085064 /* PBXTargetDependency */ = {
     11201                        isa = PBXTargetDependency;
     11202                        target = 372EBB382017E64300085064 /* WebContent.Development */;
     11203                        targetProxy = 372EBB482017E6CF00085064 /* PBXContainerItemProxy */;
     11204                };
    1112611205                375E0627191EA8CC004E3CAF /* PBXTargetDependency */ = {
    1112711206                        isa = PBXTargetDependency;
     
    1128311362                        name = Release;
    1128411363                };
     11364                372EBB432017E64300085064 /* Debug */ = {
     11365                        isa = XCBuildConfiguration;
     11366                        baseConfigurationReference = 372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */;
     11367                        buildSettings = {
     11368                        };
     11369                        name = Debug;
     11370                };
     11371                372EBB442017E64300085064 /* Release */ = {
     11372                        isa = XCBuildConfiguration;
     11373                        baseConfigurationReference = 372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */;
     11374                        buildSettings = {
     11375                        };
     11376                        name = Release;
     11377                };
     11378                372EBB452017E64300085064 /* Production */ = {
     11379                        isa = XCBuildConfiguration;
     11380                        baseConfigurationReference = 372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */;
     11381                        buildSettings = {
     11382                        };
     11383                        name = Production;
     11384                };
    1128511385                510031F31379CACB00C8DFE4 /* Debug */ = {
    1128611386                        isa = XCBuildConfiguration;
     
    1155511655                        defaultConfigurationName = Production;
    1155611656                };
     11657                372EBB422017E64300085064 /* Build configuration list for PBXNativeTarget "WebContent.Development" */ = {
     11658                        isa = XCConfigurationList;
     11659                        buildConfigurations = (
     11660                                372EBB432017E64300085064 /* Debug */,
     11661                                372EBB442017E64300085064 /* Release */,
     11662                                372EBB452017E64300085064 /* Production */,
     11663                        );
     11664                        defaultConfigurationIsVisible = 0;
     11665                        defaultConfigurationName = Production;
     11666                };
    1155711667                510031F21379CACB00C8DFE4 /* Build configuration list for PBXNativeTarget "SecItemShim" */ = {
    1155811668                        isa = XCConfigurationList;
Note: See TracChangeset for help on using the changeset viewer.