Changeset 142690 in webkit


Ignore:
Timestamp:
Feb 12, 2013 4:58:00 PM (11 years ago)
Author:
weinig@apple.com
Message:

Add skeleton of the OfflineStorageProcess
https://bugs.webkit.org/show_bug.cgi?id=109615

Reviewed by Anders Carlsson.

This adds the skeleton of a new process to contain Database and Local Storage
backends in (hence, offline storage). We're adding a new process, rather than
using the Network or UIProcesses, to allow us to tightly sandbox these activities
away from networking and full filesystem access.

  • Configurations/OfflineStorageProcess.xcconfig: Added.
  • Configurations/OfflineStorageService.Development.xcconfig: Added.
  • Configurations/OfflineStorageService.xcconfig: Added.
  • DerivedSources.make:
  • OfflineStorageProcess: Added.
  • OfflineStorageProcess/EntryPoint: Added.
  • OfflineStorageProcess/EntryPoint/mac: Added.
  • OfflineStorageProcess/EntryPoint/mac/LegacyProcess: Added.
  • OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist: Added.
  • OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm: Added.
  • OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/Info.plist: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/OfflineStorageServiceMain.Development.mm: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/Info.plist: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/OfflineStorageServiceMain.mm: Added.
  • OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageServiceEntryPoint.mm: Added.
  • OfflineStorageProcess/OfflineStorageProcess.cpp: Added.
  • OfflineStorageProcess/OfflineStorageProcess.h: Added.
  • OfflineStorageProcess/OfflineStorageProcess.messages.in: Added.
  • OfflineStorageProcess/mac: Added.
  • OfflineStorageProcess/mac/OfflineStorageProcessMac.mm: Added.

(WebKit::OfflineStorageProcess::initializeProcessName):
(WebKit::OfflineStorageProcess::initializeSandbox):

  • OfflineStorageProcess/mac/com.apple.WebKit.OfflineStorage.sb: Added.
  • Shared/OfflineStorage: Added.
  • Shared/OfflineStorage/OfflineStorageProcessCreationParameters.cpp: Added.
  • Shared/OfflineStorage/OfflineStorageProcessCreationParameters.h: Added.
  • Scripts/webkit2/messages.py:

(struct_or_class):
Added OfflineStorageProcessCreationParameters.

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
11 added
4 edited
16 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r142688 r142690  
     12013-02-12  Sam Weinig  <sam@webkit.org>
     2
     3        Add skeleton of the OfflineStorageProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=109615
     5
     6        Reviewed by Anders Carlsson.
     7
     8        This adds the skeleton of a new process to contain Database and Local Storage
     9        backends in (hence, offline storage). We're adding a new process, rather than
     10        using the Network or UIProcesses, to allow us to tightly sandbox these activities
     11        away from networking and full filesystem access.
     12
     13        * Configurations/OfflineStorageProcess.xcconfig: Added.
     14        * Configurations/OfflineStorageService.Development.xcconfig: Added.
     15        * Configurations/OfflineStorageService.xcconfig: Added.
     16        * DerivedSources.make:
     17        * OfflineStorageProcess: Added.
     18        * OfflineStorageProcess/EntryPoint: Added.
     19        * OfflineStorageProcess/EntryPoint/mac: Added.
     20        * OfflineStorageProcess/EntryPoint/mac/LegacyProcess: Added.
     21        * OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist: Added.
     22        * OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm: Added.
     23        * OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp: Added.
     24        * OfflineStorageProcess/EntryPoint/mac/XPCService: Added.
     25        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService: Added.
     26        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development: Added.
     27        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/Info.plist: Added.
     28        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/OfflineStorageServiceMain.Development.mm: Added.
     29        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/Info.plist: Added.
     30        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/OfflineStorageServiceMain.mm: Added.
     31        * OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageServiceEntryPoint.mm: Added.
     32        * OfflineStorageProcess/OfflineStorageProcess.cpp: Added.
     33        * OfflineStorageProcess/OfflineStorageProcess.h: Added.
     34        * OfflineStorageProcess/OfflineStorageProcess.messages.in: Added.
     35        * OfflineStorageProcess/mac: Added.
     36        * OfflineStorageProcess/mac/OfflineStorageProcessMac.mm: Added.
     37        (WebKit::OfflineStorageProcess::initializeProcessName):
     38        (WebKit::OfflineStorageProcess::initializeSandbox):
     39        * OfflineStorageProcess/mac/com.apple.WebKit.OfflineStorage.sb: Added.
     40        * Shared/OfflineStorage: Added.
     41        * Shared/OfflineStorage/OfflineStorageProcessCreationParameters.cpp: Added.
     42        * Shared/OfflineStorage/OfflineStorageProcessCreationParameters.h: Added.
     43
     44        * Scripts/webkit2/messages.py:
     45        (struct_or_class):
     46        Added OfflineStorageProcessCreationParameters.
     47
     48        * WebKit2.xcodeproj/project.pbxproj:
     49
    1502013-02-12  Jinwoo Song  <jinwoo7.song@samsung.com>
    251
  • trunk/Source/WebKit2/Configurations/OfflineStorageProcess.xcconfig

    r142576 r142690  
    1 // Copyright (C) 2012 Apple Inc. All rights reserved.
     1// Copyright (C) 2013 Apple Inc. All rights reserved.
    22//
    33// Redistribution and use in source and binary forms, with or without
     
    2525
    2626GCC_ENABLE_OBJC_GC = NO;
    27 PRODUCT_NAME = NetworkProcess;
    28 INFOPLIST_FILE = NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist;
     27PRODUCT_NAME = OfflineStorageProcess;
     28INFOPLIST_FILE = OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist;
    2929INSTALL_PATH = $(WEBKIT2_FRAMEWORKS_DIR)/WebKit2.framework;
    3030
  • trunk/Source/WebKit2/Configurations/OfflineStorageService.Development.xcconfig

    r142576 r142690  
    2424#include "BaseXPCService.xcconfig"
    2525
    26 PRODUCT_NAME = com.apple.WebKit.Networking.Development;
    27 INFOPLIST_FILE = NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist;
     26PRODUCT_NAME = com.apple.WebKit.OfflineStorage.Development;
     27INFOPLIST_FILE = OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/Info.plist;
  • trunk/Source/WebKit2/Configurations/OfflineStorageService.xcconfig

    r142576 r142690  
    1 // Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
     1// Copyright (C) 2013 Apple Inc. All rights reserved.
    22//
    33// Redistribution and use in source and binary forms, with or without
     
    2424#include "BaseXPCService.xcconfig"
    2525
    26 PRODUCT_NAME = com.apple.WebKit.Networking;
    27 INFOPLIST_FILE = NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist;
     26PRODUCT_NAME = com.apple.WebKit.OfflineStorage;
     27INFOPLIST_FILE = OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/Info.plist;
  • trunk/Source/WebKit2/DerivedSources.make

    r142518 r142690  
    3333    $(WebKit2)/Shared/Network/CustomProtocols \
    3434    $(WebKit2)/SharedWorkerProcess \
     35    $(WebKit2)/OfflineStorageProcess \
    3536    $(WebKit2)/WebProcess/ApplicationCache \
    3637    $(WebKit2)/WebProcess/Cookies \
     
    7071    NetworkProcessProxy \
    7172    NPObjectMessageReceiver \
     73    OfflineStorageProcess \
    7274    PluginControllerProxy \
    7375    PluginProcess \
  • trunk/Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm

    r142576 r142690  
    11/*
    2  * Copyright (C) 2012 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2626#import "config.h"
    2727
    28 #if ENABLE(NETWORK_PROCESS)
    29 
    3028#import "ChildProcessMain.h"
    31 #import "NetworkProcess.h"
     29#import "OfflineStorageProcess.h"
    3230#import "WKBase.h"
    3331
    3432using namespace WebKit;
    3533
    36 extern "C" WK_EXPORT int NetworkProcessMain(int argc, char** argv);
     34extern "C" WK_EXPORT int OfflineStorageProcessMain(int argc, char** argv);
    3735
    38 int NetworkProcessMain(int argc, char** argv)
     36int OfflineStorageProcessMain(int argc, char** argv)
    3937{
    40     return ChildProcessMain<NetworkProcess, ChildProcessMainDelegate>(argc, argv);
     38    return ChildProcessMain<OfflineStorageProcess, ChildProcessMainDelegate>(argc, argv);
    4139}
    42 
    43 #endif // ENABLE(NETWORK_PROCESS)
  • trunk/Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp

    r142576 r142690  
    2828int main(int argc, char** argv)
    2929{
    30     WebKitMainFunction mainFunction = getBootstrapMainFunction(argc, argv, "NetworkProcessMain");
     30    WebKitMainFunction mainFunction = getBootstrapMainFunction(argc, argv, "OfflineStorageProcessMain");
    3131    return mainFunction(argc, argv);
    3232}
  • trunk/Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/Info.plist

    r142576 r142690  
    1010        <string>${EXECUTABLE_NAME}</string>
    1111        <key>CFBundleIdentifier</key>
    12         <string>com.apple.WebKit.Networking.Development</string>
     12        <string>com.apple.WebKit.OfflineStorage.Development</string>
    1313        <key>CFBundleInfoDictionaryVersion</key>
    1414        <string>6.0</string>
     
    2525        <key>LSFileQuarantineEnabled</key>
    2626        <true/>
    27         <key>NSPrincipalClass</key>
    28         <string>NSApplication</string>
    2927        <key>WebKitEntryPoint</key>
    30         <string>NetworkServiceInitializer</string>
     28        <string>OfflineStorageServiceInitializer</string>
    3129        <key>LSUIElement</key>
    3230        <true/>
  • trunk/Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/Info.plist

    r142576 r142690  
    1010        <string>${EXECUTABLE_NAME}</string>
    1111        <key>CFBundleIdentifier</key>
    12         <string>com.apple.WebKit.Networking</string>
     12        <string>com.apple.WebKit.OfflineStorage</string>
    1313        <key>CFBundleInfoDictionaryVersion</key>
    1414        <string>6.0</string>
     
    2525        <key>LSFileQuarantineEnabled</key>
    2626        <true/>
    27         <key>NSPrincipalClass</key>
    28         <string>NSApplication</string>
    2927        <key>WebKitEntryPoint</key>
    30         <string>NetworkServiceInitializer</string>
     28        <string>OfflineStorageServiceInitializer</string>
    3129        <key>LSUIElement</key>
    3230        <true/>
     
    3937                <key>_MultipleInstances</key>
    4038                <true/>
    41                 <key>EnvironmentVariables</key>
    42                 <dict>
    43                         <key>DYLD_INSERT_LIBRARIES</key>
    44                         <string>$(WEBKIT2_FRAMEWORKS_DIR)/WebKit2.framework/WebProcess.app/Contents/MacOS/SecItemShim.dylib</string>
    45                 </dict>
    4639        </dict>
    4740</dict>
  • trunk/Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageServiceEntryPoint.mm

    r142576 r142690  
    2828#if HAVE(XPC)
    2929
    30 #import "EnvironmentUtilities.h"
    31 #import "NetworkProcess.h"
     30#import "OfflineStorageProcess.h"
    3231#import "WKBase.h"
    3332#import "XPCServiceEntryPoint.h"
     
    3534using namespace WebKit;
    3635
    37 extern "C" WK_EXPORT void NetworkServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage);
     36extern "C" WK_EXPORT void OfflineStorageServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage);
    3837
    39 void NetworkServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage)
     38void OfflineStorageServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage)
    4039{
    41     // Remove the SecItemShim from the DYLD_INSERT_LIBRARIES environment variable so any processes spawned by
    42     // the this process don't try to insert the shim and crash.
    43     EnvironmentUtilities::stripValuesEndingWithString("DYLD_INSERT_LIBRARIES", "/SecItemShim.dylib");
    44 
    45     XPCServiceInitializer<NetworkProcess, XPCServiceInitializerDelegate>(connection, initializerMessage);
     40    XPCServiceInitializer<OfflineStorageProcess, XPCServiceInitializerDelegate>(connection, initializerMessage);
    4641}
    4742
  • trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp

    r142576 r142690  
    11/*
    2  * Copyright (C) 2012 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#include "config.h"
    27 #include "NetworkProcess.h"
     27#include "OfflineStorageProcess.h"
    2828
    29 #if ENABLE(NETWORK_PROCESS)
    30 
    31 #include "ArgumentCoders.h"
    32 #include "Attachment.h"
    33 #include "AuthenticationManager.h"
    34 #include "CustomProtocolManager.h"
    35 #include "Logging.h"
    36 #include "NetworkConnectionToWebProcess.h"
    37 #include "NetworkProcessCreationParameters.h"
    38 #include "NetworkProcessProxyMessages.h"
    39 #include "RemoteNetworkingContext.h"
    40 #include "WebCookieManager.h"
    41 #include <WebCore/InitializeLogging.h>
    42 #include <WebCore/ResourceRequest.h>
     29#include "OfflineStorageProcessCreationParameters.h"
    4330#include <WebCore/RunLoop.h>
    44 #include <wtf/text/CString.h>
    45 
    46 #if USE(SECURITY_FRAMEWORK)
    47 #include "SecItemShim.h"
    48 #endif
    4931
    5032using namespace WebCore;
     
    5234namespace WebKit {
    5335
    54 NetworkProcess& NetworkProcess::shared()
     36OfflineStorageProcess& OfflineStorageProcess::shared()
    5537{
    56     DEFINE_STATIC_LOCAL(NetworkProcess, networkProcess, ());
    57     return networkProcess;
     38    DEFINE_STATIC_LOCAL(OfflineStorageProcess, offlineStorageProcess, ());
     39    return offlineStorageProcess;
    5840}
    5941
    60 NetworkProcess::NetworkProcess()
    61     : m_hasSetCacheModel(false)
    62     , m_cacheModel(CacheModelDocumentViewer)
    63 {
    64     addSupplement<AuthenticationManager>();
    65     addSupplement<WebCookieManager>();
    66     addSupplement<CustomProtocolManager>();
    67 }
    68 
    69 NetworkProcess::~NetworkProcess()
     42OfflineStorageProcess::OfflineStorageProcess()
    7043{
    7144}
    7245
    73 AuthenticationManager& NetworkProcess::authenticationManager()
     46OfflineStorageProcess::~OfflineStorageProcess()
    7447{
    75     return *supplement<AuthenticationManager>();
    7648}
    7749
    78 DownloadManager& NetworkProcess::downloadManager()
     50bool OfflineStorageProcess::shouldTerminate()
    7951{
    80     DEFINE_STATIC_LOCAL(DownloadManager, downloadManager, (this));
    81     return downloadManager;
    82 }
    83 
    84 void NetworkProcess::removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess* connection)
    85 {
    86     size_t vectorIndex = m_webProcessConnections.find(connection);
    87     ASSERT(vectorIndex != notFound);
    88 
    89     m_webProcessConnections.remove(vectorIndex);
    90 }
    91 
    92 bool NetworkProcess::shouldTerminate()
    93 {
    94     // Network process keeps session cookies and credentials, so it should never terminate (as long as UI process connection is alive).
     52    // FIXME: Implement.
    9553    return false;
    9654}
    9755
    98 void NetworkProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder)
     56void OfflineStorageProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder)
    9957{
    10058    if (messageReceiverMap().dispatchMessage(connection, decoder))
    10159        return;
    10260
    103     didReceiveNetworkProcessMessage(connection, decoder);
     61    didReceiveOfflineStorageProcessMessage(connection, decoder);
    10462}
    10563
    106 void NetworkProcess::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)
     64void OfflineStorageProcess::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)
    10765{
    10866    messageReceiverMap().dispatchSyncMessage(connection, decoder, replyEncoder);
    10967}
    11068
    111 void NetworkProcess::didClose(CoreIPC::Connection*)
     69void OfflineStorageProcess::didClose(CoreIPC::Connection*)
    11270{
    11371    // The UIProcess just crashed.
     
    11573}
    11674
    117 void NetworkProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::StringReference, CoreIPC::StringReference)
     75void OfflineStorageProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::StringReference, CoreIPC::StringReference)
    11876{
    11977    RunLoop::current()->stop();
    12078}
    12179
    122 void NetworkProcess::didCreateDownload()
     80void OfflineStorageProcess::initializeOfflineStorageProcess(const OfflineStorageProcessCreationParameters&)
    12381{
    124     disableTermination();
    125 }
    126 
    127 void NetworkProcess::didDestroyDownload()
    128 {
    129     enableTermination();
    130 }
    131 
    132 CoreIPC::Connection* NetworkProcess::downloadProxyConnection()
    133 {
    134     return parentProcessConnection();
    135 }
    136 
    137 AuthenticationManager& NetworkProcess::downloadsAuthenticationManager()
    138 {
    139     return authenticationManager();
    140 }
    141 
    142 void NetworkProcess::initializeNetworkProcess(const NetworkProcessCreationParameters& parameters)
    143 {
    144     platformInitializeNetworkProcess(parameters);
    145 
    146     setCacheModel(static_cast<uint32_t>(parameters.cacheModel));
    147 
    148 #if PLATFORM(MAC) || USE(CFNETWORK)
    149     RemoteNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase(parameters.uiProcessBundleIdentifier);
    150 #endif
    151 
    152     if (parameters.privateBrowsingEnabled)
    153         RemoteNetworkingContext::ensurePrivateBrowsingSession();
    154 
    155     NetworkProcessSupplementMap::const_iterator it = m_supplements.begin();
    156     NetworkProcessSupplementMap::const_iterator end = m_supplements.end();
    157     for (; it != end; ++it)
    158         it->value->initialize(parameters);
    159 }
    160 
    161 void NetworkProcess::initializeConnection(CoreIPC::Connection* connection)
    162 {
    163     ChildProcess::initializeConnection(connection);
    164 
    165 #if USE(SECURITY_FRAMEWORK)
    166     connection->addQueueClient(&SecItemShim::shared());
    167 #endif
    168 }
    169 
    170 void NetworkProcess::createNetworkConnectionToWebProcess()
    171 {
    172 #if PLATFORM(MAC)
    173     // Create the listening port.
    174     mach_port_t listeningPort;
    175     mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &listeningPort);
    176 
    177     // Create a listening connection.
    178     RefPtr<NetworkConnectionToWebProcess> connection = NetworkConnectionToWebProcess::create(CoreIPC::Connection::Identifier(listeningPort));
    179     m_webProcessConnections.append(connection.release());
    180 
    181     CoreIPC::Attachment clientPort(listeningPort, MACH_MSG_TYPE_MAKE_SEND);
    182     parentProcessConnection()->send(Messages::NetworkProcessProxy::DidCreateNetworkConnectionToWebProcess(clientPort), 0);
    183 #else
    184     notImplemented();
    185 #endif
    186 }
    187 
    188 void NetworkProcess::ensurePrivateBrowsingSession()
    189 {
    190     RemoteNetworkingContext::ensurePrivateBrowsingSession();
    191 }
    192 
    193 void NetworkProcess::destroyPrivateBrowsingSession()
    194 {
    195     RemoteNetworkingContext::destroyPrivateBrowsingSession();
    196 }
    197 
    198 void NetworkProcess::downloadRequest(uint64_t downloadID, const ResourceRequest& request)
    199 {
    200     downloadManager().startDownload(downloadID, request);
    201 }
    202 
    203 void NetworkProcess::cancelDownload(uint64_t downloadID)
    204 {
    205     downloadManager().cancelDownload(downloadID);
    206 }
    207 
    208 void NetworkProcess::setCacheModel(uint32_t cm)
    209 {
    210     CacheModel cacheModel = static_cast<CacheModel>(cm);
    211 
    212     if (!m_hasSetCacheModel || cacheModel != m_cacheModel) {
    213         m_hasSetCacheModel = true;
    214         m_cacheModel = cacheModel;
    215         platformSetCacheModel(cacheModel);
    216     }
    21782}
    21883
    21984#if !PLATFORM(MAC)
    220 void NetworkProcess::initializeProcessName(const ChildProcessInitializationParameters&)
     85void OfflineStorageProcess::initializeProcessName(const ChildProcessInitializationParameters&)
    22186{
    22287}
    22388
    224 void NetworkProcess::initializeSandbox(const ChildProcessInitializationParameters&, SandboxInitializationParameters&)
     89void OfflineStorageProcess::initializeSandbox(const ChildProcessInitializationParameters&, SandboxInitializationParameters&)
    22590{
    22691}
     
    22893
    22994} // namespace WebKit
    230 
    231 #endif // ENABLE(NETWORK_PROCESS)
  • trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.h

    r142576 r142690  
    11/*
    2  * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #ifndef NetworkProcess_h
    27 #define NetworkProcess_h
     26#ifndef OfflineStorageProcess_h
     27#define OfflineStorageProcess_h
    2828
    29 #if ENABLE(NETWORK_PROCESS)
    30 
    31 #include "CacheModel.h"
    3229#include "ChildProcess.h"
    33 #include "DownloadManager.h"
    34 #include "MessageReceiverMap.h"
    35 #include "NetworkResourceLoadScheduler.h"
    36 #include <wtf/Forward.h>
    37 
    38 namespace WebCore {
    39     class RunLoop;
    40 }
    4130
    4231namespace WebKit {
    4332
    44 class AuthenticationManager;
    45 class NetworkConnectionToWebProcess;
    46 class NetworkProcessSupplement;
    47 class PlatformCertificateInfo;
    48 struct NetworkProcessCreationParameters;
     33struct OfflineStorageProcessCreationParameters;
    4934
    50 class NetworkProcess : public ChildProcess, private DownloadManager::Client {
    51     WTF_MAKE_NONCOPYABLE(NetworkProcess);
     35class OfflineStorageProcess : public ChildProcess {
     36    WTF_MAKE_NONCOPYABLE(OfflineStorageProcess);
    5237public:
    53     static NetworkProcess& shared();
    54 
    55     template <typename T>
    56     T* supplement()
    57     {
    58         return static_cast<T*>(m_supplements.get(T::supplementName()));
    59     }
    60 
    61     template <typename T>
    62     void addSupplement()
    63     {
    64         m_supplements.add(T::supplementName(), adoptPtr<NetworkProcessSupplement>(new T(this)));
    65     }
    66 
    67     void removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess*);
    68 
    69     NetworkResourceLoadScheduler& networkResourceLoadScheduler() { return m_networkResourceLoadScheduler; }
    70 
    71     AuthenticationManager& authenticationManager();
    72     DownloadManager& downloadManager();
     38    static OfflineStorageProcess& shared();
    7339
    7440private:
    75     NetworkProcess();
    76     ~NetworkProcess();
    77 
    78     void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&);
     41    OfflineStorageProcess();
     42    ~OfflineStorageProcess();
    7943
    8044    // ChildProcess
    8145    virtual void initializeProcessName(const ChildProcessInitializationParameters&) OVERRIDE;
    8246    virtual void initializeSandbox(const ChildProcessInitializationParameters&, SandboxInitializationParameters&) OVERRIDE;
    83     virtual void initializeConnection(CoreIPC::Connection*) OVERRIDE;
    8447    virtual bool shouldTerminate() OVERRIDE;
    8548
     
    9053    virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::StringReference messageReceiverName, CoreIPC::StringReference messageName) OVERRIDE;
    9154
    92     // DownloadManager::Client
    93     virtual void didCreateDownload() OVERRIDE;
    94     virtual void didDestroyDownload() OVERRIDE;
    95     virtual CoreIPC::Connection* downloadProxyConnection() OVERRIDE;
    96     virtual AuthenticationManager& downloadsAuthenticationManager() OVERRIDE;
    97 
    9855    // Message Handlers
    99     void didReceiveNetworkProcessMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
    100     void initializeNetworkProcess(const NetworkProcessCreationParameters&);
    101     void createNetworkConnectionToWebProcess();
    102     void ensurePrivateBrowsingSession();
    103     void destroyPrivateBrowsingSession();
    104     void downloadRequest(uint64_t downloadID, const WebCore::ResourceRequest&);
    105     void cancelDownload(uint64_t downloadID);
    106     void setCacheModel(uint32_t);
    107 
    108     void allowSpecificHTTPSCertificateForHost(const PlatformCertificateInfo&, const String& host);
    109 
    110     // Platform Helpers
    111     void platformSetCacheModel(CacheModel);
    112 
    113     // Connections to WebProcesses.
    114     Vector<RefPtr<NetworkConnectionToWebProcess> > m_webProcessConnections;
    115 
    116     NetworkResourceLoadScheduler m_networkResourceLoadScheduler;
    117 
    118     String m_diskCacheDirectory;
    119     bool m_hasSetCacheModel;
    120     CacheModel m_cacheModel;
    121 
    122     typedef HashMap<const char*, OwnPtr<NetworkProcessSupplement>, PtrHash<const char*> > NetworkProcessSupplementMap;
    123     NetworkProcessSupplementMap m_supplements;
     56    void didReceiveOfflineStorageProcessMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
     57    void initializeOfflineStorageProcess(const OfflineStorageProcessCreationParameters&);
    12458};
    12559
    12660} // namespace WebKit
    12761
    128 #endif // ENABLE(NETWORK_PROCESS)
    129 
    130 #endif // NetworkProcess_h
     62#endif // OfflineStorageProcess_h
  • trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.messages.in

    r142576 r142690  
    1 # Copyright (C) 2012 Apple Inc. All rights reserved.
     1# Copyright (C) 2013 Apple Inc. All rights reserved.
    22#
    33# Redistribution and use in source and binary forms, with or without
     
    2121# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2222
    23 #if ENABLE(NETWORK_PROCESS)
    24 
    25 messages -> NetworkProcess LegacyReceiver {
    26     # Initializes the network process.
    27     InitializeNetworkProcess(WebKit::NetworkProcessCreationParameters processCreationParameters)
    28 
    29     # Creates a connection for communication with a WebProcess
    30     CreateNetworkConnectionToWebProcess()
    31 
    32     EnsurePrivateBrowsingSession()
    33     DestroyPrivateBrowsingSession()
    34 
    35     DownloadRequest(uint64_t downloadID, WebCore::ResourceRequest request)
    36     CancelDownload(uint64_t downloadID)
    37 
    38 #if PLATFORM(MAC)
    39     SetProcessSuppressionEnabled(bool flag)
    40 #endif
    41 
    42     AllowSpecificHTTPSCertificateForHost(WebKit::PlatformCertificateInfo certificate, WTF::String host)
     23messages -> OfflineStorageProcess LegacyReceiver {
     24    # Initializes the offline storage process.
     25    InitializeOfflineStorageProcess(WebKit::OfflineStorageProcessCreationParameters processCreationParameters)
    4326}
    44 
    45 #endif // ENABLE(NETWORK_PROCESS)
  • trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm

    r142576 r142690  
    11/*
    2  * Copyright (C) 2012 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#import "config.h"
    27 #import "NetworkProcess.h"
     27#import "OfflineStorageProcess.h"
    2828
    29 #if ENABLE(NETWORK_PROCESS)
    30 
    31 #import "NetworkProcessCreationParameters.h"
    32 #import "PlatformCertificateInfo.h"
    33 #import "SandboxExtension.h"
    3429#import "SandboxInitializationParameters.h"
    35 #import "StringUtilities.h"
    36 #import <WebCore/FileSystem.h>
    3730#import <WebCore/LocalizedStrings.h>
    3831#import <WebKitSystemInterface.h>
    39 #import <mach/host_info.h>
    40 #import <mach/mach.h>
    41 #import <mach/mach_error.h>
    42 #import <sysexits.h>
    43 #import <wtf/text/WTFString.h>
    44 
    45 #if USE(SECURITY_FRAMEWORK)
    46 #import "SecItemShim.h"
    47 #endif
    48 
    49 using namespace WebCore;
    50 
    51 @interface NSURLRequest (Details)
    52 + (void)setAllowsSpecificHTTPSCertificate:(NSArray *)allow forHost:(NSString *)host;
    53 @end
    5432
    5533namespace WebKit {
    5634
    57 void NetworkProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
     35void OfflineStorageProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
    5836{
    59     if (!parameters.uiProcessName.isNull()) {
    60         NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Networking", "visible name of the network process. The argument is the application name."), (NSString *)parameters.uiProcessName];
    61         WKSetVisibleApplicationName((CFStringRef)applicationName);
    62     }
     37    NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Offline Storage", "visible name of the offline storage process. The argument is the application name."), (NSString *)parameters.uiProcessName];
     38    WKSetVisibleApplicationName((CFStringRef)applicationName);
    6339}
    6440
    65 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
    66 static void overrideSystemProxies(const String& httpProxy, const String& httpsProxy)
    67 {
    68     NSMutableDictionary *proxySettings = [NSMutableDictionary dictionary];
    69 
    70     if (!httpProxy.isNull()) {
    71         KURL httpProxyURL(KURL(), httpProxy);
    72         if (httpProxyURL.isValid()) {
    73             [proxySettings setObject:nsStringFromWebCoreString(httpProxyURL.host()) forKey:(NSString *)kCFNetworkProxiesHTTPProxy];
    74             if (httpProxyURL.hasPort()) {
    75                 NSNumber *port = [NSNumber numberWithInt:httpProxyURL.port()];
    76                 [proxySettings setObject:port forKey:(NSString *)kCFNetworkProxiesHTTPPort];
    77             }
    78         }
    79         else
    80             NSLog(@"Malformed HTTP Proxy URL '%s'.  Expected 'http://<hostname>[:<port>]'\n", httpProxy.utf8().data());
    81     }
    82 
    83     if (!httpsProxy.isNull()) {
    84         KURL httpsProxyURL(KURL(), httpsProxy);
    85         if (httpsProxyURL.isValid()) {
    86             [proxySettings setObject:nsStringFromWebCoreString(httpsProxyURL.host()) forKey:(NSString *)kCFNetworkProxiesHTTPSProxy];
    87             if (httpsProxyURL.hasPort()) {
    88                 NSNumber *port = [NSNumber numberWithInt:httpsProxyURL.port()];
    89                 [proxySettings setObject:port forKey:(NSString *)kCFNetworkProxiesHTTPSPort];
    90             }
    91         } else
    92             NSLog(@"Malformed HTTPS Proxy URL '%s'.  Expected 'https://<hostname>[:<port>]'\n", httpsProxy.utf8().data());
    93     }
    94 
    95     if ([proxySettings count] > 0)
    96         WKCFNetworkSetOverrideSystemProxySettings((CFDictionaryRef)proxySettings);
    97 }
    98 #endif // __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
    99 
    100 void NetworkProcess::platformInitializeNetworkProcess(const NetworkProcessCreationParameters& parameters)
    101 {
    102     m_diskCacheDirectory = parameters.diskCacheDirectory;
    103 
    104     if (!m_diskCacheDirectory.isNull()) {
    105         SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle);
    106         NSUInteger cacheMemoryCapacity = parameters.nsURLCacheMemoryCapacity;
    107         NSUInteger cacheDiskCapacity = parameters.nsURLCacheDiskCapacity;
    108 
    109         RetainPtr<NSURLCache> parentProcessURLCache(AdoptNS, [[NSURLCache alloc] initWithMemoryCapacity:cacheMemoryCapacity diskCapacity:cacheDiskCapacity diskPath:parameters.diskCacheDirectory]);
    110         [NSURLCache setSharedURLCache:parentProcessURLCache.get()];
    111     }
    112 
    113 #if USE(SECURITY_FRAMEWORK)
    114     SecItemShim::shared().initialize(this);
    115 #endif
    116 
    117 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
    118     if (!parameters.httpProxy.isNull() || !parameters.httpsProxy.isNull())
    119         overrideSystemProxies(parameters.httpProxy, parameters.httpsProxy);
    120 #endif
    121 }
    122 
    123 static uint64_t memorySize()
    124 {
    125     static host_basic_info_data_t hostInfo;
    126 
    127     static dispatch_once_t once;
    128     dispatch_once(&once, ^() {
    129         mach_port_t host = mach_host_self();
    130         mach_msg_type_number_t count = HOST_BASIC_INFO_COUNT;
    131         kern_return_t r = host_info(host, HOST_BASIC_INFO, (host_info_t)&hostInfo, &count);
    132         mach_port_deallocate(mach_task_self(), host);
    133 
    134         if (r != KERN_SUCCESS)
    135             LOG_ERROR("%s : host_info(%d) : %s.\n", __FUNCTION__, r, mach_error_string(r));
    136     });
    137 
    138     return hostInfo.max_mem;
    139 }
    140 
    141 static uint64_t volumeFreeSize(const String& path)
    142 {
    143     NSDictionary *fileSystemAttributesDictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:(NSString *)path error:NULL];
    144     return [[fileSystemAttributesDictionary objectForKey:NSFileSystemFreeSize] unsignedLongLongValue];
    145 }
    146 
    147 void NetworkProcess::platformSetCacheModel(CacheModel cacheModel)
    148 {
    149 
    150     // As a fudge factor, use 1000 instead of 1024, in case the reported byte
    151     // count doesn't align exactly to a megabyte boundary.
    152     uint64_t memSize = memorySize() / 1024 / 1000;
    153     uint64_t diskFreeSize = volumeFreeSize(m_diskCacheDirectory) / 1024 / 1000;
    154 
    155     unsigned cacheTotalCapacity = 0;
    156     unsigned cacheMinDeadCapacity = 0;
    157     unsigned cacheMaxDeadCapacity = 0;
    158     double deadDecodedDataDeletionInterval = 0;
    159     unsigned pageCacheCapacity = 0;
    160     unsigned long urlCacheMemoryCapacity = 0;
    161     unsigned long urlCacheDiskCapacity = 0;
    162 
    163     calculateCacheSizes(cacheModel, memSize, diskFreeSize,
    164         cacheTotalCapacity, cacheMinDeadCapacity, cacheMaxDeadCapacity, deadDecodedDataDeletionInterval,
    165         pageCacheCapacity, urlCacheMemoryCapacity, urlCacheDiskCapacity);
    166 
    167 
    168     NSURLCache *nsurlCache = [NSURLCache sharedURLCache];
    169     [nsurlCache setMemoryCapacity:urlCacheMemoryCapacity];
    170     [nsurlCache setDiskCapacity:std::max<unsigned long>(urlCacheDiskCapacity, [nsurlCache diskCapacity])]; // Don't shrink a big disk cache, since that would cause churn.
    171 }
    172 
    173 void NetworkProcess::allowSpecificHTTPSCertificateForHost(const PlatformCertificateInfo& certificateInfo, const String& host)
    174 {
    175     [NSURLRequest setAllowsSpecificHTTPSCertificate:(NSArray *)certificateInfo.certificateChain() forHost:(NSString *)host];
    176 }
    177 
    178 void NetworkProcess::initializeSandbox(const ChildProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)
     41void OfflineStorageProcess::initializeSandbox(const ChildProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)
    17942{
    18043    // Need to overide the default, because service has a different bundle ID.
    18144    NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@"WKView")];
    182     sandboxParameters.setOverrideSandboxProfilePath([webkit2Bundle pathForResource:@"com.apple.WebKit.NetworkProcess" ofType:@"sb"]);
     45    sandboxParameters.setOverrideSandboxProfilePath([webkit2Bundle pathForResource:@"com.apple.WebKit.OfflineStorage" ofType:@"sb"]);
    18346
    18447    ChildProcess::initializeSandbox(parameters, sandboxParameters);
     
    18649
    18750} // namespace WebKit
    188 
    189 #endif // ENABLE(NETWORK_PROCESS)
  • trunk/Source/WebKit2/Scripts/webkit2/messages.py

    r141820 r142690  
    189189        'WebKit::EditorState',
    190190        'WebKit::NetworkProcessCreationParameters',
     191        'WebKit::OfflineStorageProcessCreationParameters',
    191192        'WebKit::PlatformPopupMenuData',
    192193        'WebKit::PluginCreationParameters',
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r142651 r142690  
    2121                                E13A8A4D16287A5B00392929 /* PBXTargetDependency */,
    2222                                510CC8481613C85300D03ED3 /* PBXTargetDependency */,
     23                                BCAF35EC16CA261500D4E9FC /* PBXTargetDependency */,
    2324                                BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
    2425                                BCAE9DFD160C0AB000A33217 /* PBXTargetDependency */,
     
    2728                                BC82844616B4FF6600A278FE /* PBXTargetDependency */,
    2829                                BC82844816B4FF6F00A278FE /* PBXTargetDependency */,
     30                                BCAF361816CA27BD00D4E9FC /* PBXTargetDependency */,
     31                                BCAF361A16CA27C000D4E9FC /* PBXTargetDependency */,
    2932                        );
    3033                        name = All;
     
    813816                BC82839916B48DC000A278FE /* WebContentServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839816B48DC000A278FE /* WebContentServiceEntryPoint.mm */; };
    814817                BC8283AC16B4BF3F00A278FE /* NetworkServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A816B4BD9100A278FE /* NetworkServiceEntryPoint.mm */; };
    815                 BC8283B316B4BF7700A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
    816                 BC8283C616B4BFA800A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
    817818                BC8283D816B4DB2A00A278FE /* NetworkServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A416B4BD9100A278FE /* NetworkServiceMain.mm */; };
    818819                BC8283D916B4DB2E00A278FE /* NetworkServiceMain.Development.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A716B4BD9100A278FE /* NetworkServiceMain.Development.mm */; };
    819820                BC8283DA16B4DB9300A278FE /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
    820                 BC8283FA16B4FDDE00A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
    821                 BC82842016B4FDF600A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
    822                 BC82843316B4FE1400A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
    823821                BC82844916B5004200A278FE /* PluginService.32.Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283E516B4F8E200A278FE /* PluginService.32.Main.mm */; };
    824822                BC82844B16B5004D00A278FE /* PluginService.64.Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283EB16B4F8E200A278FE /* PluginService.64.Main.mm */; };
     
    886884                BCAE9E08160C1C0700A33217 /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
    887885                BCAE9E09160C233B00A33217 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     886                BCAF35BC16CA1E2400D4E9FC /* OfflineStorageProcessMainBootstrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35B916CA1E2400D4E9FC /* OfflineStorageProcessMainBootstrapper.cpp */; };
     887                BCAF35D516CA212400D4E9FC /* OfflineStorageProcessMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35D116CA212400D4E9FC /* OfflineStorageProcessMac.mm */; };
     888                BCAF35D716CA212400D4E9FC /* OfflineStorageProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35D216CA212400D4E9FC /* OfflineStorageProcess.cpp */; };
     889                BCAF35D916CA212400D4E9FC /* OfflineStorageProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = BCAF35D316CA212400D4E9FC /* OfflineStorageProcess.h */; };
     890                BCAF35DD16CA214A00D4E9FC /* OfflineStorageProcessMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35B816CA1E2400D4E9FC /* OfflineStorageProcessMain.mm */; };
     891                BCAF35DE16CA217700D4E9FC /* OfflineStorageServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35C416CA1F9D00D4E9FC /* OfflineStorageServiceEntryPoint.mm */; };
     892                BCAF35E416CA24DA00D4E9FC /* OfflineStorageProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BCAF35DF16CA249300D4E9FC /* OfflineStorageProcessMessages.h */; };
     893                BCAF35E816CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35E616CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp */; };
     894                BCAF35E916CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35E616CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp */; };
     895                BCAF35EA16CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = BCAF35E716CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.h */; };
     896                BCAF361316CA26B800D4E9FC /* OfflineStorageServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35C016CA1F9D00D4E9FC /* OfflineStorageServiceMain.mm */; };
     897                BCAF361416CA26BB00D4E9FC /* OfflineStorageServiceMain.Development.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35C316CA1F9D00D4E9FC /* OfflineStorageServiceMain.Development.mm */; };
     898                BCAF361B16CA285400D4E9FC /* OfflineStorageProcess.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = BCAF359A16CA1D5700D4E9FC /* OfflineStorageProcess.app */; };
     899                BCAF361C16CA286700D4E9FC /* com.apple.WebKit.OfflineStorage.sb in Resources */ = {isa = PBXBuildFile; fileRef = BCAF361516CA274000D4E9FC /* com.apple.WebKit.OfflineStorage.sb */; };
     900                BCAF361D16CA28C100D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     901                BCAF361E16CA28C500D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     902                BCAF361F16CA28CD00D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     903                BCAF362016CA28D600D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     904                BCAF362116CA28F300D4E9FC /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
     905                BCAF362216CA292B00D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
     906                BCAF362516CA29A200D4E9FC /* OfflineStorageProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAF35E016CA249300D4E9FC /* OfflineStorageProcessMessageReceiver.cpp */; };
     907                BCAF362616CA2A4E00D4E9FC /* WebKit.icns in Resources */ = {isa = PBXBuildFile; fileRef = E133FD891423DD7F00FC7BFB /* WebKit.icns */; };
     908                BCAF362716CA2A5300D4E9FC /* WebKit.icns in Resources */ = {isa = PBXBuildFile; fileRef = E133FD891423DD7F00FC7BFB /* WebKit.icns */; };
    888909                BCB0AD33122F285800B1341E /* MutableArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCC8049D122F0D6B00103529 /* MutableArray.cpp */; };
    889910                BCB0AD34122F285800B1341E /* MutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = BCC8049E122F0D6B00103529 /* MutableArray.h */; };
     
    10601081                E134F01712EA5D33004EC58D /* WKPrintingView.h in Headers */ = {isa = PBXBuildFile; fileRef = E134F01512EA5D11004EC58D /* WKPrintingView.h */; };
    10611082                E134F01A12EA5D99004EC58D /* WKPrintingView.mm in Sources */ = {isa = PBXBuildFile; fileRef = E134F01912EA5D99004EC58D /* WKPrintingView.mm */; };
    1062                 E13A8A30162879AC00392929 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E13A8A2F162879AC00392929 /* Cocoa.framework */; };
    10631083                E1513C66166EABB200149FCB /* ChildProcessProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1513C64166EABB200149FCB /* ChildProcessProxy.cpp */; };
    10641084                E1513C67166EABB200149FCB /* ChildProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = E1513C65166EABB200149FCB /* ChildProcessProxy.h */; };
     
    12161236                        remoteInfo = WebProcessServiceForWebKitDevelopment;
    12171237                };
     1238                BCAF35EB16CA261500D4E9FC /* PBXContainerItemProxy */ = {
     1239                        isa = PBXContainerItemProxy;
     1240                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     1241                        proxyType = 1;
     1242                        remoteGlobalIDString = BCAF359916CA1D5700D4E9FC;
     1243                        remoteInfo = OfflineStorageProcess;
     1244                };
     1245                BCAF361716CA27BD00D4E9FC /* PBXContainerItemProxy */ = {
     1246                        isa = PBXContainerItemProxy;
     1247                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     1248                        proxyType = 1;
     1249                        remoteGlobalIDString = BCAF35F016CA263800D4E9FC;
     1250                        remoteInfo = OfflineStorage;
     1251                };
     1252                BCAF361916CA27C000D4E9FC /* PBXContainerItemProxy */ = {
     1253                        isa = PBXContainerItemProxy;
     1254                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     1255                        proxyType = 1;
     1256                        remoteGlobalIDString = BCAF360316CA266900D4E9FC;
     1257                        remoteInfo = OfflineStorage.Development;
     1258                };
     1259                BCAF362316CA295F00D4E9FC /* PBXContainerItemProxy */ = {
     1260                        isa = PBXContainerItemProxy;
     1261                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     1262                        proxyType = 1;
     1263                        remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
     1264                        remoteInfo = WebKit2;
     1265                };
     1266                BCCDE2D516C88DAA00D90310 /* PBXContainerItemProxy */ = {
     1267                        isa = PBXContainerItemProxy;
     1268                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
     1269                        proxyType = 1;
     1270                        remoteGlobalIDString = BC8283F816B4FDDE00A278FE;
     1271                        remoteInfo = Plugin.32;
     1272                };
    12181273                BCDE093513272496001259FB /* PBXContainerItemProxy */ = {
    12191274                        isa = PBXContainerItemProxy;
     
    12631318                                BCDE0ABF13272708001259FB /* PluginProcess.app in CopyFiles */,
    12641319                                1A50DB66110A3D57000D3FE5 /* WebProcess.app in CopyFiles */,
     1320                                BCAF361B16CA285400D4E9FC /* OfflineStorageProcess.app in CopyFiles */,
    12651321                        );
    12661322                        runOnlyForDeploymentPostprocessing = 0;
     
    15301586                1AB31A9416BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageManagerMessageReceiver.cpp; sourceTree = "<group>"; };
    15311587                1AB31A9516BC688100F6DBC9 /* StorageManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageManagerMessages.h; sourceTree = "<group>"; };
     1588                1AB779C916C99E6400E2CE41 /* PluginProcessConnectionManager.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = PluginProcessConnectionManager.messages.in; sourceTree = "<group>"; };
     1589                1AB779CA16C9A12600E2CE41 /* PluginProcessConnectionManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginProcessConnectionManagerMessageReceiver.cpp; sourceTree = "<group>"; };
     1590                1AB779CB16C9A12600E2CE41 /* PluginProcessConnectionManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginProcessConnectionManagerMessages.h; sourceTree = "<group>"; };
    15321591                1AB7D4C81288AAA700CFD08C /* DownloadProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DownloadProxy.h; sourceTree = "<group>"; };
    15331592                1AB7D4C91288AAA700CFD08C /* DownloadProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DownloadProxy.cpp; sourceTree = "<group>"; };
     
    21852244                BC8283AB16B4BEAD00A278FE /* NetworkService.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetworkService.xcconfig; sourceTree = "<group>"; };
    21862245                BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit.Networking.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
    2187                 BC8283B216B4BF7700A278FE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
    21882246                BC8283C516B4BFA800A278FE /* com.apple.WebKit.Networking.Development.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit.Networking.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
    21892247                BC8283E416B4F8E200A278FE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
     
    22592317                BCACC44416B24CAA00B6E092 /* WebContentServiceMain.Development.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContentServiceMain.Development.mm; sourceTree = "<group>"; };
    22602318                BCAE9DE9160C097400A33217 /* com.apple.WebKit.WebContent.Development.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit.WebContent.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
     2319                BCAF359A16CA1D5700D4E9FC /* OfflineStorageProcess.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OfflineStorageProcess.app; sourceTree = BUILT_PRODUCTS_DIR; };
     2320                BCAF35B716CA1E2400D4E9FC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
     2321                BCAF35B816CA1E2400D4E9FC /* OfflineStorageProcessMain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OfflineStorageProcessMain.mm; sourceTree = "<group>"; };
     2322                BCAF35B916CA1E2400D4E9FC /* OfflineStorageProcessMainBootstrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OfflineStorageProcessMainBootstrapper.cpp; sourceTree = "<group>"; };
     2323                BCAF35BF16CA1F9D00D4E9FC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
     2324                BCAF35C016CA1F9D00D4E9FC /* OfflineStorageServiceMain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OfflineStorageServiceMain.mm; sourceTree = "<group>"; };
     2325                BCAF35C216CA1F9D00D4E9FC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
     2326                BCAF35C316CA1F9D00D4E9FC /* OfflineStorageServiceMain.Development.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OfflineStorageServiceMain.Development.mm; sourceTree = "<group>"; };
     2327                BCAF35C416CA1F9D00D4E9FC /* OfflineStorageServiceEntryPoint.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OfflineStorageServiceEntryPoint.mm; sourceTree = "<group>"; };
     2328                BCAF35CA16CA204300D4E9FC /* OfflineStorageProcess.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = OfflineStorageProcess.xcconfig; sourceTree = "<group>"; };
     2329                BCAF35CB16CA204300D4E9FC /* OfflineStorageService.Development.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = OfflineStorageService.Development.xcconfig; sourceTree = "<group>"; };
     2330                BCAF35CC16CA204300D4E9FC /* OfflineStorageService.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = OfflineStorageService.xcconfig; sourceTree = "<group>"; };
     2331                BCAF35D116CA212400D4E9FC /* OfflineStorageProcessMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OfflineStorageProcessMac.mm; sourceTree = "<group>"; };
     2332                BCAF35D216CA212400D4E9FC /* OfflineStorageProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OfflineStorageProcess.cpp; sourceTree = "<group>"; };
     2333                BCAF35D316CA212400D4E9FC /* OfflineStorageProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfflineStorageProcess.h; sourceTree = "<group>"; };
     2334                BCAF35D416CA212400D4E9FC /* OfflineStorageProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = OfflineStorageProcess.messages.in; sourceTree = "<group>"; };
     2335                BCAF35DF16CA249300D4E9FC /* OfflineStorageProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfflineStorageProcessMessages.h; sourceTree = "<group>"; };
     2336                BCAF35E016CA249300D4E9FC /* OfflineStorageProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OfflineStorageProcessMessageReceiver.cpp; sourceTree = "<group>"; };
     2337                BCAF35E616CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OfflineStorageProcessCreationParameters.cpp; sourceTree = "<group>"; };
     2338                BCAF35E716CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfflineStorageProcessCreationParameters.h; sourceTree = "<group>"; };
     2339                BCAF35F116CA263800D4E9FC /* com.apple.WebKit.OfflineStorage.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit.OfflineStorage.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
     2340                BCAF360416CA266900D4E9FC /* com.apple.WebKit.OfflineStorage.Development.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit.OfflineStorage.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
     2341                BCAF361516CA274000D4E9FC /* com.apple.WebKit.OfflineStorage.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.OfflineStorage.sb; sourceTree = "<group>"; };
    22612342                BCB0AEE7122F53E300B1341E /* MutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableDictionary.h; sourceTree = "<group>"; };
    22622343                BCB0AEE8122F53E300B1341E /* MutableDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MutableDictionary.cpp; sourceTree = "<group>"; };
     
    24492530                E134F01912EA5D99004EC58D /* WKPrintingView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPrintingView.mm; sourceTree = "<group>"; };
    24502531                E13A8A2C162879AC00392929 /* SharedWorkerProcess.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SharedWorkerProcess.app; sourceTree = BUILT_PRODUCTS_DIR; };
    2451                 E13A8A2F162879AC00392929 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
    2452                 E13A8A32162879AC00392929 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
    2453                 E13A8A33162879AC00392929 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
    2454                 E13A8A34162879AC00392929 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
    24552532                E13A8A4B16287A1B00392929 /* SharedWorkerProcess.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SharedWorkerProcess.xcconfig; sourceTree = "<group>"; };
    24562533                E14E99F814D879B4001D221F /* PluginProcess.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PluginProcess.entitlements; sourceTree = "<group>"; };
     
    25662643                        buildActionMask = 2147483647;
    25672644                        files = (
    2568                                 BC8283B316B4BF7700A278FE /* Foundation.framework in Frameworks */,
     2645                                BCAF362016CA28D600D4E9FC /* Foundation.framework in Frameworks */,
    25692646                                BC8283DA16B4DB9300A278FE /* WebKit2.framework in Frameworks */,
    25702647                        );
     
    25752652                        buildActionMask = 2147483647;
    25762653                        files = (
    2577                                 BC8283C616B4BFA800A278FE /* Foundation.framework in Frameworks */,
     2654                                BCAF361F16CA28CD00D4E9FC /* Foundation.framework in Frameworks */,
    25782655                        );
    25792656                        runOnlyForDeploymentPostprocessing = 0;
     
    26012678                        buildActionMask = 2147483647;
    26022679                        files = (
    2603                                 BC82843316B4FE1400A278FE /* Foundation.framework in Frameworks */,
     2680                                BCAF362216CA292B00D4E9FC /* Foundation.framework in Frameworks */,
    26042681                        );
    26052682                        runOnlyForDeploymentPostprocessing = 0;
     
    26102687                        files = (
    26112688                                BCAE9E09160C233B00A33217 /* Foundation.framework in Frameworks */,
     2689                        );
     2690                        runOnlyForDeploymentPostprocessing = 0;
     2691                };
     2692                BCAF359716CA1D5700D4E9FC /* Frameworks */ = {
     2693                        isa = PBXFrameworksBuildPhase;
     2694                        buildActionMask = 2147483647;
     2695                        files = (
     2696                        );
     2697                        runOnlyForDeploymentPostprocessing = 0;
     2698                };
     2699                BCAF35EE16CA263800D4E9FC /* Frameworks */ = {
     2700                        isa = PBXFrameworksBuildPhase;
     2701                        buildActionMask = 2147483647;
     2702                        files = (
     2703                                BCAF361D16CA28C100D4E9FC /* Foundation.framework in Frameworks */,
     2704                                BCAF362116CA28F300D4E9FC /* WebKit2.framework in Frameworks */,
     2705                        );
     2706                        runOnlyForDeploymentPostprocessing = 0;
     2707                };
     2708                BCAF360116CA266900D4E9FC /* Frameworks */ = {
     2709                        isa = PBXFrameworksBuildPhase;
     2710                        buildActionMask = 2147483647;
     2711                        files = (
     2712                                BCAF361E16CA28C500D4E9FC /* Foundation.framework in Frameworks */,
    26122713                        );
    26132714                        runOnlyForDeploymentPostprocessing = 0;
     
    26262727                        buildActionMask = 2147483647;
    26272728                        files = (
    2628                                 E13A8A30162879AC00392929 /* Cocoa.framework in Frameworks */,
    26292729                        );
    26302730                        runOnlyForDeploymentPostprocessing = 0;
     
    26502750                                8DC2EF5B0486A6940098B216 /* WebKit2.framework */,
    26512751                                1A50DB1E110A3BDC000D3FE5 /* WebProcess.app */,
     2752                                BCAF359A16CA1D5700D4E9FC /* OfflineStorageProcess.app */,
     2753                                BCAF35F116CA263800D4E9FC /* com.apple.WebKit.OfflineStorage.xpc */,
     2754                                BCAF360416CA266900D4E9FC /* com.apple.WebKit.OfflineStorage.Development.xpc */,
    26522755                        );
    26532756                        name = Products;
     
    26692772                                1A0EC6B0124BBD36007EF4A5 /* PluginProcess */,
    26702773                                E13A8A35162879AC00392929 /* SharedWorkerProcess */,
     2774                                BCAF359D16CA1D5700D4E9FC /* OfflineStorageProcess */,
    26712775                                C0CE729D1247E71D00BC0EC4 /* Derived Sources */,
    26722776                                089C1665FE841158C02AAC07 /* Resources */,
     
    26742778                                1A4F9769100E7B6600637A18 /* Configurations */,
    26752779                                0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
    2676                                 E13A8A2E162879AC00392929 /* Frameworks */,
    26772780                                034768DFFF38A50411DB9C8B /* Products */,
    26782781                        );
     
    28052908                                BC8283AA16B4BEAD00A278FE /* NetworkService.Development.xcconfig */,
    28062909                                BC8283AB16B4BEAD00A278FE /* NetworkService.xcconfig */,
     2910                                BCAF35CA16CA204300D4E9FC /* OfflineStorageProcess.xcconfig */,
     2911                                BCAF35CB16CA204300D4E9FC /* OfflineStorageService.Development.xcconfig */,
     2912                                BCAF35CC16CA204300D4E9FC /* OfflineStorageService.xcconfig */,
    28072913                                BC122FA3132707F300F7EAC1 /* PluginProcess.xcconfig */,
    28082914                                BC8283F216B4FC5300A278FE /* PluginService.32.xcconfig */,
     
    29463052                                BC111B5A112F628200337BAB /* mac */,
    29473053                                51A8A60D1627F2AC000D90E9 /* Network */,
     3054                                BCAF35E516CA253B00D4E9FC /* OfflineStorage */,
    29483055                                1AAE058C1279DCD400852418 /* Plugins */,
    29493056                                1A3DD205125E5A2F004515E6 /* APIClient.h */,
     
    44464553                        sourceTree = "<group>";
    44474554                };
     4555                BCAF359D16CA1D5700D4E9FC /* OfflineStorageProcess */ = {
     4556                        isa = PBXGroup;
     4557                        children = (
     4558                                BCAF35B416CA1E2400D4E9FC /* EntryPoint */,
     4559                                BCAF35D016CA212400D4E9FC /* mac */,
     4560                                BCAF35D216CA212400D4E9FC /* OfflineStorageProcess.cpp */,
     4561                                BCAF35D316CA212400D4E9FC /* OfflineStorageProcess.h */,
     4562                                BCAF35D416CA212400D4E9FC /* OfflineStorageProcess.messages.in */,
     4563                        );
     4564                        path = OfflineStorageProcess;
     4565                        sourceTree = "<group>";
     4566                };
     4567                BCAF35B416CA1E2400D4E9FC /* EntryPoint */ = {
     4568                        isa = PBXGroup;
     4569                        children = (
     4570                                BCAF35B616CA1E2400D4E9FC /* LegacyProcess */,
     4571                                BCAF35BD16CA1F9D00D4E9FC /* XPCService */,
     4572                        );
     4573                        path = EntryPoint;
     4574                        sourceTree = "<group>";
     4575                };
     4576                BCAF35B616CA1E2400D4E9FC /* LegacyProcess */ = {
     4577                        isa = PBXGroup;
     4578                        children = (
     4579                                BCAF35B716CA1E2400D4E9FC /* Info.plist */,
     4580                                BCAF35B816CA1E2400D4E9FC /* OfflineStorageProcessMain.mm */,
     4581                                BCAF35B916CA1E2400D4E9FC /* OfflineStorageProcessMainBootstrapper.cpp */,
     4582                        );
     4583                        name = LegacyProcess;
     4584                        path = mac/LegacyProcess;
     4585                        sourceTree = "<group>";
     4586                };
     4587                BCAF35BD16CA1F9D00D4E9FC /* XPCService */ = {
     4588                        isa = PBXGroup;
     4589                        children = (
     4590                                BCAF35BE16CA1F9D00D4E9FC /* OfflineStorageService */,
     4591                                BCAF35C116CA1F9D00D4E9FC /* OfflineStorageService.Development */,
     4592                                BCAF35C416CA1F9D00D4E9FC /* OfflineStorageServiceEntryPoint.mm */,
     4593                        );
     4594                        name = XPCService;
     4595                        path = mac/XPCService;
     4596                        sourceTree = "<group>";
     4597                };
     4598                BCAF35BE16CA1F9D00D4E9FC /* OfflineStorageService */ = {
     4599                        isa = PBXGroup;
     4600                        children = (
     4601                                BCAF35BF16CA1F9D00D4E9FC /* Info.plist */,
     4602                                BCAF35C016CA1F9D00D4E9FC /* OfflineStorageServiceMain.mm */,
     4603                        );
     4604                        path = OfflineStorageService;
     4605                        sourceTree = "<group>";
     4606                };
     4607                BCAF35C116CA1F9D00D4E9FC /* OfflineStorageService.Development */ = {
     4608                        isa = PBXGroup;
     4609                        children = (
     4610                                BCAF35C216CA1F9D00D4E9FC /* Info.plist */,
     4611                                BCAF35C316CA1F9D00D4E9FC /* OfflineStorageServiceMain.Development.mm */,
     4612                        );
     4613                        path = OfflineStorageService.Development;
     4614                        sourceTree = "<group>";
     4615                };
     4616                BCAF35D016CA212400D4E9FC /* mac */ = {
     4617                        isa = PBXGroup;
     4618                        children = (
     4619                                BCAF361516CA274000D4E9FC /* com.apple.WebKit.OfflineStorage.sb */,
     4620                                BCAF35D116CA212400D4E9FC /* OfflineStorageProcessMac.mm */,
     4621                        );
     4622                        path = mac;
     4623                        sourceTree = "<group>";
     4624                };
     4625                BCAF35E516CA253B00D4E9FC /* OfflineStorage */ = {
     4626                        isa = PBXGroup;
     4627                        children = (
     4628                                BCAF35E616CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp */,
     4629                                BCAF35E716CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.h */,
     4630                        );
     4631                        path = OfflineStorage;
     4632                        sourceTree = "<group>";
     4633                };
    44484634                BCBAAC58144E38B90053F82F /* WKView Details */ = {
    44494635                        isa = PBXGroup;
     
    46394825                                1A2D8437127F65D5001EB962 /* NPObjectMessageReceiverMessageReceiver.cpp */,
    46404826                                1A2D8438127F65D5001EB962 /* NPObjectMessageReceiverMessages.h */,
     4827                                BCAF35E016CA249300D4E9FC /* OfflineStorageProcessMessageReceiver.cpp */,
     4828                                BCAF35DF16CA249300D4E9FC /* OfflineStorageProcessMessages.h */,
    46414829                                1A8EF96C1252AF6B00F7067F /* PluginControllerProxyMessageReceiver.cpp */,
    46424830                                1A8EF96D1252AF6B00F7067F /* PluginControllerProxyMessages.h */,
     
    47614949                        name = mac;
    47624950                        path = FullScreen/mac;
    4763                         sourceTree = "<group>";
    4764                 };
    4765                 E13A8A2E162879AC00392929 /* Frameworks */ = {
    4766                         isa = PBXGroup;
    4767                         children = (
    4768                                 E13A8A31162879AC00392929 /* Other Frameworks */,
    4769                                 E13A8A2F162879AC00392929 /* Cocoa.framework */,
    4770                                 BC8283B216B4BF7700A278FE /* Foundation.framework */,
    4771                         );
    4772                         name = Frameworks;
    4773                         sourceTree = "<group>";
    4774                 };
    4775                 E13A8A31162879AC00392929 /* Other Frameworks */ = {
    4776                         isa = PBXGroup;
    4777                         children = (
    4778                                 E13A8A32162879AC00392929 /* AppKit.framework */,
    4779                                 E13A8A33162879AC00392929 /* CoreData.framework */,
    4780                                 E13A8A34162879AC00392929 /* Foundation.framework */,
    4781                         );
    4782                         name = "Other Frameworks";
    47834951                        sourceTree = "<group>";
    47844952                };
     
    53825550                                BC2E6E8E1141971500A63B1E /* WorkQueue.h in Headers */,
    53835551                                BCBECDE816B6416800047A1A /* XPCServiceEntryPoint.h in Headers */,
     5552                                BCAF35D916CA212400D4E9FC /* OfflineStorageProcess.h in Headers */,
     5553                                BCAF35E416CA24DA00D4E9FC /* OfflineStorageProcessMessages.h in Headers */,
     5554                                BCAF35EA16CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.h in Headers */,
    53845555                                514BDED316C98EDD00E4E25E /* StatisticsRequest.h in Headers */,
    53855556                        );
     
    56045775                        productName = WebProcessServiceForWebKitDevelopment;
    56055776                        productReference = BCAE9DE9160C097400A33217 /* com.apple.WebKit.WebContent.Development.xpc */;
     5777                        productType = "com.apple.product-type.bundle";
     5778                };
     5779                BCAF359916CA1D5700D4E9FC /* OfflineStorageProcess */ = {
     5780                        isa = PBXNativeTarget;
     5781                        buildConfigurationList = BCAF35B216CA1D5700D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorageProcess" */;
     5782                        buildPhases = (
     5783                                BCAF359616CA1D5700D4E9FC /* Sources */,
     5784                                BCAF359716CA1D5700D4E9FC /* Frameworks */,
     5785                                BCAF359816CA1D5700D4E9FC /* Resources */,
     5786                        );
     5787                        buildRules = (
     5788                        );
     5789                        dependencies = (
     5790                                BCAF362416CA295F00D4E9FC /* PBXTargetDependency */,
     5791                        );
     5792                        name = OfflineStorageProcess;
     5793                        productName = OfflineStorageProcess;
     5794                        productReference = BCAF359A16CA1D5700D4E9FC /* OfflineStorageProcess.app */;
     5795                        productType = "com.apple.product-type.application";
     5796                };
     5797                BCAF35F016CA263800D4E9FC /* OfflineStorage */ = {
     5798                        isa = PBXNativeTarget;
     5799                        buildConfigurationList = BCAF35FC16CA263800D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorage" */;
     5800                        buildPhases = (
     5801                                BCAF35ED16CA263800D4E9FC /* Sources */,
     5802                                BCAF35EE16CA263800D4E9FC /* Frameworks */,
     5803                                BCAF35EF16CA263800D4E9FC /* Resources */,
     5804                        );
     5805                        buildRules = (
     5806                        );
     5807                        dependencies = (
     5808                        );
     5809                        name = OfflineStorage;
     5810                        productName = OfflineStorage;
     5811                        productReference = BCAF35F116CA263800D4E9FC /* com.apple.WebKit.OfflineStorage.xpc */;
     5812                        productType = "com.apple.product-type.bundle";
     5813                };
     5814                BCAF360316CA266900D4E9FC /* OfflineStorage.Development */ = {
     5815                        isa = PBXNativeTarget;
     5816                        buildConfigurationList = BCAF360F16CA266900D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorage.Development" */;
     5817                        buildPhases = (
     5818                                BCAF360016CA266900D4E9FC /* Sources */,
     5819                                BCAF360116CA266900D4E9FC /* Frameworks */,
     5820                                BCAF360216CA266900D4E9FC /* Resources */,
     5821                        );
     5822                        buildRules = (
     5823                        );
     5824                        dependencies = (
     5825                        );
     5826                        name = OfflineStorage.Development;
     5827                        productName = OfflineStorage.Development;
     5828                        productReference = BCAF360416CA266900D4E9FC /* com.apple.WebKit.OfflineStorage.Development.xpc */;
    56065829                        productType = "com.apple.product-type.bundle";
    56075830                };
     
    56745897                                510CC80D1613C79900D03ED3 /* NetworkProcess */,
    56755898                                E13A8A2B162879AC00392929 /* SharedWorkerProcess */,
     5899                                BCAF359916CA1D5700D4E9FC /* OfflineStorageProcess */,
    56765900                                C0CE72851247E66800BC0EC4 /* Derived Sources */,
    56775901                                1AC25FAF12A48EA700BD2671 /* PluginProcessShim */,
     
    56815905                                BC8283B016B4BF7700A278FE /* Networking */,
    56825906                                BC8283C416B4BFA800A278FE /* Networking.Development */,
     5907                                BCAF35F016CA263800D4E9FC /* OfflineStorage */,
     5908                                BCAF360316CA266900D4E9FC /* OfflineStorage.Development */,
    56835909                                BC8283F816B4FDDE00A278FE /* Plugin.32 */,
    56845910                                BC82841E16B4FDF600A278FE /* Plugin.64 */,
     
    57125938                                E11D35AD16B63D14006D23D7 /* com.apple.WebKit.SharedWorkerProcess.sb in Resources */,
    57135939                                E11D35AE16B63D1B006D23D7 /* com.apple.WebProcess.sb in Resources */,
     5940                                BCAF361C16CA286700D4E9FC /* com.apple.WebKit.OfflineStorage.sb in Resources */,
    57145941                                1CBC945E16515ED200D68AAE /* Dock.pdf in Resources */,
    57155942                                8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
     
    57665993                        runOnlyForDeploymentPostprocessing = 0;
    57675994                };
     5995                BCAF359816CA1D5700D4E9FC /* Resources */ = {
     5996                        isa = PBXResourcesBuildPhase;
     5997                        buildActionMask = 2147483647;
     5998                        files = (
     5999                                BCAF362716CA2A5300D4E9FC /* WebKit.icns in Resources */,
     6000                        );
     6001                        runOnlyForDeploymentPostprocessing = 0;
     6002                };
     6003                BCAF35EF16CA263800D4E9FC /* Resources */ = {
     6004                        isa = PBXResourcesBuildPhase;
     6005                        buildActionMask = 2147483647;
     6006                        files = (
     6007                        );
     6008                        runOnlyForDeploymentPostprocessing = 0;
     6009                };
     6010                BCAF360216CA266900D4E9FC /* Resources */ = {
     6011                        isa = PBXResourcesBuildPhase;
     6012                        buildActionMask = 2147483647;
     6013                        files = (
     6014                        );
     6015                        runOnlyForDeploymentPostprocessing = 0;
     6016                };
    57686017                BCDE093813272496001259FB /* Resources */ = {
    57696018                        isa = PBXResourcesBuildPhase;
     
    57776026                        buildActionMask = 2147483647;
    57786027                        files = (
     6028                                BCAF362616CA2A4E00D4E9FC /* WebKit.icns in Resources */,
    57796029                        );
    57806030                        runOnlyForDeploymentPostprocessing = 0;
     
    59006150                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.Plugin.64.xpc",
    59016151                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.Plugin.Development.xpc",
     6152                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.OfflineStorage.xpc",
     6153                                "$(BUILT_PRODUCTS_DIR)/com.apple.WebKit.OfflineStorage.Development.xpc",
    59026154                        );
    59036155                        name = "Copy XPC services for engineering builds";
     
    59106162                                "$(BUILT_PRODUCTS_DIR)/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.Plugin.64.xpc",
    59116163                                "$(BUILT_PRODUCTS_DIR)/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.Plugin.Development.xpc",
     6164                                "$(BUILT_PRODUCTS_DIR)/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.OfflineStorage.xpc",
     6165                                "$(BUILT_PRODUCTS_DIR)/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.OfflineStorage.Development.xpc",
    59126166                        );
    59136167                        runOnlyForDeploymentPostprocessing = 0;
    59146168                        shellPath = /bin/sh;
    5915                         shellScript = "if [[ \"${CONFIGURATION}\" == \"Production\" ]]; then\n    exit\nfi\n\nXPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices\"\nmkdir -p \"${XPC_SERVICES_PATH}\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.WebContent.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.WebContent.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.Development.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Networking.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Networking.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.Development.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.32.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.32.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.64.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.64.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.Development.xpc\"\n";
     6169                        shellScript = "if [[ \"${CONFIGURATION}\" == \"Production\" ]]; then\n    exit\nfi\n\nXPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/WebKit2.framework/Versions/A/XPCServices\"\nmkdir -p \"${XPC_SERVICES_PATH}\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.WebContent.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.WebContent.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.Development.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Networking.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Networking.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.Development.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.32.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.32.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.64.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.64.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.Plugin.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.Development.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.OfflineStorage.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.OfflineStorage.xpc\"\nditto \"${BUILT_PRODUCTS_DIR}/com.apple.WebKit.OfflineStorage.Development.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.OfflineStorage.Development.xpc\"\n";
    59166170                };
    59176171                C0CE72841247E66800BC0EC4 /* Generate Derived Sources */ = {
     
    65066760                                BC0092F8115837A300E0AE2A /* WorkQueueMac.cpp in Sources */,
    65076761                                BCBECDE716B6416800047A1A /* XPCServiceEntryPoint.mm in Sources */,
     6762                                BCAF35D516CA212400D4E9FC /* OfflineStorageProcessMac.mm in Sources */,
     6763                                BCAF35D716CA212400D4E9FC /* OfflineStorageProcess.cpp in Sources */,
     6764                                BCAF35DD16CA214A00D4E9FC /* OfflineStorageProcessMain.mm in Sources */,
     6765                                BCAF35DE16CA217700D4E9FC /* OfflineStorageServiceEntryPoint.mm in Sources */,
     6766                                BCAF35E816CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp in Sources */,
     6767                                BCAF362516CA29A200D4E9FC /* OfflineStorageProcessMessageReceiver.cpp in Sources */,
    65086768                                51A4D5A916CAC4FF000E615E /* StatisticsRequest.cpp in Sources */,
    65096769                        );
     
    65636823                        files = (
    65646824                                BCACC44A16B24D3600B6E092 /* WebContentServiceMain.Development.mm in Sources */,
     6825                        );
     6826                        runOnlyForDeploymentPostprocessing = 0;
     6827                };
     6828                BCAF359616CA1D5700D4E9FC /* Sources */ = {
     6829                        isa = PBXSourcesBuildPhase;
     6830                        buildActionMask = 2147483647;
     6831                        files = (
     6832                                BCAF35BC16CA1E2400D4E9FC /* OfflineStorageProcessMainBootstrapper.cpp in Sources */,
     6833                                BCAF35E916CA253B00D4E9FC /* OfflineStorageProcessCreationParameters.cpp in Sources */,
     6834                        );
     6835                        runOnlyForDeploymentPostprocessing = 0;
     6836                };
     6837                BCAF35ED16CA263800D4E9FC /* Sources */ = {
     6838                        isa = PBXSourcesBuildPhase;
     6839                        buildActionMask = 2147483647;
     6840                        files = (
     6841                                BCAF361316CA26B800D4E9FC /* OfflineStorageServiceMain.mm in Sources */,
     6842                        );
     6843                        runOnlyForDeploymentPostprocessing = 0;
     6844                };
     6845                BCAF360016CA266900D4E9FC /* Sources */ = {
     6846                        isa = PBXSourcesBuildPhase;
     6847                        buildActionMask = 2147483647;
     6848                        files = (
     6849                                BCAF361416CA26BB00D4E9FC /* OfflineStorageServiceMain.Development.mm in Sources */,
    65656850                        );
    65666851                        runOnlyForDeploymentPostprocessing = 0;
     
    66446929                        target = BCAE9DE8160C097400A33217 /* WebContent.Development */;
    66456930                        targetProxy = BCAE9DFC160C0AB000A33217 /* PBXContainerItemProxy */;
     6931                };
     6932                BCAF35EC16CA261500D4E9FC /* PBXTargetDependency */ = {
     6933                        isa = PBXTargetDependency;
     6934                        target = BCAF359916CA1D5700D4E9FC /* OfflineStorageProcess */;
     6935                        targetProxy = BCAF35EB16CA261500D4E9FC /* PBXContainerItemProxy */;
     6936                };
     6937                BCAF361816CA27BD00D4E9FC /* PBXTargetDependency */ = {
     6938                        isa = PBXTargetDependency;
     6939                        target = BCAF35F016CA263800D4E9FC /* OfflineStorage */;
     6940                        targetProxy = BCAF361716CA27BD00D4E9FC /* PBXContainerItemProxy */;
     6941                };
     6942                BCAF361A16CA27C000D4E9FC /* PBXTargetDependency */ = {
     6943                        isa = PBXTargetDependency;
     6944                        target = BCAF360316CA266900D4E9FC /* OfflineStorage.Development */;
     6945                        targetProxy = BCAF361916CA27C000D4E9FC /* PBXContainerItemProxy */;
     6946                };
     6947                BCAF362416CA295F00D4E9FC /* PBXTargetDependency */ = {
     6948                        isa = PBXTargetDependency;
     6949                        target = 8DC2EF4F0486A6940098B216 /* WebKit2 */;
     6950                        targetProxy = BCAF362316CA295F00D4E9FC /* PBXContainerItemProxy */;
     6951                };
     6952                BCCDE2D616C88DAA00D90310 /* PBXTargetDependency */ = {
     6953                        isa = PBXTargetDependency;
     6954                        target = BC8283F816B4FDDE00A278FE /* Plugin.32 */;
     6955                        targetProxy = BCCDE2D516C88DAA00D90310 /* PBXContainerItemProxy */;
    66466956                };
    66476957                BCDE093413272496001259FB /* PBXTargetDependency */ = {
     
    70127322                        name = Production;
    70137323                };
     7324                BCAF35AF16CA1D5700D4E9FC /* Debug */ = {
     7325                        isa = XCBuildConfiguration;
     7326                        baseConfigurationReference = BCAF35CA16CA204300D4E9FC /* OfflineStorageProcess.xcconfig */;
     7327                        buildSettings = {
     7328                        };
     7329                        name = Debug;
     7330                };
     7331                BCAF35B016CA1D5700D4E9FC /* Release */ = {
     7332                        isa = XCBuildConfiguration;
     7333                        baseConfigurationReference = BCAF35CA16CA204300D4E9FC /* OfflineStorageProcess.xcconfig */;
     7334                        buildSettings = {
     7335                        };
     7336                        name = Release;
     7337                };
     7338                BCAF35B116CA1D5700D4E9FC /* Production */ = {
     7339                        isa = XCBuildConfiguration;
     7340                        baseConfigurationReference = BCAF35CA16CA204300D4E9FC /* OfflineStorageProcess.xcconfig */;
     7341                        buildSettings = {
     7342                        };
     7343                        name = Production;
     7344                };
     7345                BCAF35FD16CA263800D4E9FC /* Debug */ = {
     7346                        isa = XCBuildConfiguration;
     7347                        baseConfigurationReference = BCAF35CC16CA204300D4E9FC /* OfflineStorageService.xcconfig */;
     7348                        buildSettings = {
     7349                        };
     7350                        name = Debug;
     7351                };
     7352                BCAF35FE16CA263800D4E9FC /* Release */ = {
     7353                        isa = XCBuildConfiguration;
     7354                        baseConfigurationReference = BCAF35CC16CA204300D4E9FC /* OfflineStorageService.xcconfig */;
     7355                        buildSettings = {
     7356                        };
     7357                        name = Release;
     7358                };
     7359                BCAF35FF16CA263800D4E9FC /* Production */ = {
     7360                        isa = XCBuildConfiguration;
     7361                        baseConfigurationReference = BCAF35CC16CA204300D4E9FC /* OfflineStorageService.xcconfig */;
     7362                        buildSettings = {
     7363                        };
     7364                        name = Production;
     7365                };
     7366                BCAF361016CA266900D4E9FC /* Debug */ = {
     7367                        isa = XCBuildConfiguration;
     7368                        baseConfigurationReference = BCAF35CB16CA204300D4E9FC /* OfflineStorageService.Development.xcconfig */;
     7369                        buildSettings = {
     7370                        };
     7371                        name = Debug;
     7372                };
     7373                BCAF361116CA266900D4E9FC /* Release */ = {
     7374                        isa = XCBuildConfiguration;
     7375                        baseConfigurationReference = BCAF35CB16CA204300D4E9FC /* OfflineStorageService.Development.xcconfig */;
     7376                        buildSettings = {
     7377                        };
     7378                        name = Release;
     7379                };
     7380                BCAF361216CA266900D4E9FC /* Production */ = {
     7381                        isa = XCBuildConfiguration;
     7382                        baseConfigurationReference = BCAF35CB16CA204300D4E9FC /* OfflineStorageService.Development.xcconfig */;
     7383                        buildSettings = {
     7384                        };
     7385                        name = Production;
     7386                };
    70147387                BCDE093F13272496001259FB /* Debug */ = {
    70157388                        isa = XCBuildConfiguration;
     
    72267599                        defaultConfigurationName = Production;
    72277600                };
     7601                BCAF35B216CA1D5700D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorageProcess" */ = {
     7602                        isa = XCConfigurationList;
     7603                        buildConfigurations = (
     7604                                BCAF35AF16CA1D5700D4E9FC /* Debug */,
     7605                                BCAF35B016CA1D5700D4E9FC /* Release */,
     7606                                BCAF35B116CA1D5700D4E9FC /* Production */,
     7607                        );
     7608                        defaultConfigurationIsVisible = 0;
     7609                };
     7610                BCAF35FC16CA263800D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorage" */ = {
     7611                        isa = XCConfigurationList;
     7612                        buildConfigurations = (
     7613                                BCAF35FD16CA263800D4E9FC /* Debug */,
     7614                                BCAF35FE16CA263800D4E9FC /* Release */,
     7615                                BCAF35FF16CA263800D4E9FC /* Production */,
     7616                        );
     7617                        defaultConfigurationIsVisible = 0;
     7618                };
     7619                BCAF360F16CA266900D4E9FC /* Build configuration list for PBXNativeTarget "OfflineStorage.Development" */ = {
     7620                        isa = XCConfigurationList;
     7621                        buildConfigurations = (
     7622                                BCAF361016CA266900D4E9FC /* Debug */,
     7623                                BCAF361116CA266900D4E9FC /* Release */,
     7624                                BCAF361216CA266900D4E9FC /* Production */,
     7625                        );
     7626                        defaultConfigurationIsVisible = 0;
     7627                };
    72287628                BCDE093E13272496001259FB /* Build configuration list for PBXNativeTarget "PluginProcess" */ = {
    72297629                        isa = XCConfigurationList;
Note: See TracChangeset for help on using the changeset viewer.