| Differences between
and this patch
- a/Source/WebCore/ChangeLog +13 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2020-10-14  Jiewen Tan  <jiewen_tan@apple.com>
2
3
        [WebAuthn] Implement a dummy WebAuthnProcess
4
        https://bugs.webkit.org/show_bug.cgi?id=217559
5
        <rdar://problem/70168749>
6
7
        Reviewed by Brent Fulgham.
8
9
        No tests.
10
11
        * en.lproj/Localizable.strings:
12
        Provides a name for the WebAuthn process.
13
1
2020-10-15  Keith Rollin  <krollin@apple.com>
14
2020-10-15  Keith Rollin  <krollin@apple.com>
2
15
3
        Lessen the reliance on VPATH in WebCore/DerivedSources.make
16
        Lessen the reliance on VPATH in WebCore/DerivedSources.make
- a/Source/WebKit/ChangeLog +154 lines
Lines 1-3 a/Source/WebKit/ChangeLog_sec1
1
2020-10-14  Jiewen Tan  <jiewen_tan@apple.com>
2
3
        [WebAuthn] Implement a dummy WebAuthnProcess
4
        https://bugs.webkit.org/show_bug.cgi?id=217559
5
        <rdar://problem/70168749>
6
7
        Reviewed by Brent Fulgham.
8
9
        Previous patch r268248 introduces a new daemon to handle all WebAuthn requests. However, after more deeper investigations, the daemon
10
        story is not very compelling for WebKit. Here are the two major road blockers:
11
        1) The major one is on macOS. New daemons cannot be installed without a system update. It means relocatable Safari (e.g. STP)
12
        and staged Safari on downlevel OSes will not get this feature. And relocatable STP can only utilize the system daemon. This
13
        seems a bummer especially for the STP case given it is heavily used to test latest web features.
14
        2) Additional plumbing is needed for testing and engineering builds. This problem is specific to WebKit and is on both macOS and iOS.
15
        WebKit doesn't build roots to test engineering builds, which is required to update the plist on the above location. Hence, a separate
16
        configuration is needed to generate a different plist that points to the right engineering binary and additional scripts will be needed
17
        to ask launchd to load the plist before running any tests. Some extra exercises are probably needed to not confuse launchd about the
18
        engineering binary and system binary as well.
19
20
        Given the above constraints, a new architecture is proposed to make the daemon a WebKit XPC service/process instead and leave the launchd
21
        event handler to a new Safari daemon. The launchd related feature is only on iOS and therefore it really doesn't make sense to overcome
22
        all the above macOS constraints. Having different architectures on iOS (a daemon) and on macOS (a XPC service) accordingly will introduce
23
        tons of overhead for maintainance as well. That's why relying on a Safari daemon to do the job is the most reasonable option.
24
25
        This patch therefore focuses on making the WebAuthn process happen and removes the WebAuthn daemon.
26
27
        * CMakeLists.txt:
28
        * Configurations/WebAuthnService.xcconfig: Renamed from Source/WebKit/Configurations/WebAuthenticationAgent.xcconfig.
29
        * Configurations/WebKit.xcconfig:
30
        * Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements: Removed.
31
        * Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist: Removed.
32
        * DerivedSources-input.xcfilelist:
33
        * DerivedSources-output.xcfilelist:
34
        * DerivedSources.make:
35
        Paperwork for building the new WebAuthn process.
36
37
        * Platform/ExtraPrivateSymbolsForTAPI.h:
38
        * Shared/AuxiliaryProcess.h:
39
        * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
40
        * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
41
        (WebKit::XPCServiceEventHandler):
42
        * Shared/mac/AuxiliaryProcessMac.mm:
43
        (WebKit::processStorageClass):
44
        (WebKit::sandboxDirectory):
45
        Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.
46
47
        * Sources.txt:
48
        * SourcesCocoa.txt:
49
        Paperwork for building the new WebAuthn process.
50
51
        * UIProcess/AuxiliaryProcessProxy.cpp:
52
        (WebKit::AuxiliaryProcessProxy::getLaunchOptions):
53
        * UIProcess/Launcher/ProcessLauncher.h:
54
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
55
        (WebKit::serviceName):
56
        (WebKit::shouldLeakBoost):
57
        * UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: Added.
58
        (WebKit::WebAuthnProcessProxy::singleton):
59
        (WebKit::WebAuthnProcessProxy::WebAuthnProcessProxy):
60
        (WebKit::WebAuthnProcessProxy::getLaunchOptions):
61
        (WebKit::WebAuthnProcessProxy::connectionWillOpen):
62
        (WebKit::WebAuthnProcessProxy::processWillShutDown):
63
        (WebKit::WebAuthnProcessProxy::getWebAuthnProcessConnection):
64
        (WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):
65
        (WebKit::WebAuthnProcessProxy::didClose):
66
        (WebKit::WebAuthnProcessProxy::didReceiveInvalidMessage):
67
        (WebKit::WebAuthnProcessProxy::didFinishLaunching):
68
        (WebKit::WebAuthnProcessProxy::updateProcessAssertion):
69
        * UIProcess/WebAuthentication/WebAuthnProcessProxy.h: Added.
70
        * UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in: Added.
71
        * UIProcess/WebProcessPool.cpp:
72
        (WebKit::WebProcessPool::getWebAuthnProcessConnection):
73
        * UIProcess/WebProcessPool.h:
74
        * UIProcess/WebProcessProxy.cpp:
75
        (WebKit::WebProcessProxy::getWebAuthnProcessConnection):
76
        * UIProcess/WebProcessProxy.h:
77
        * UIProcess/WebProcessProxy.messages.in:
78
        * WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
79
        * WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
80
        * WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
81
        (WebKit::WebAuthnServiceInitializerDelegate::WebAuthnServiceInitializerDelegate):
82
        (WebKit::initializeAuxiliaryProcess<WebAuthnProcess>):
83
        (WEBAUTHEN_SERVICE_INITIALIZER):
84
        * WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp: Added.
85
        (WebKit::WebAuthnConnectionToWebProcess::create):
86
        (WebKit::WebAuthnConnectionToWebProcess::WebAuthnConnectionToWebProcess):
87
        (WebKit::WebAuthnConnectionToWebProcess::~WebAuthnConnectionToWebProcess):
88
        (WebKit::WebAuthnConnectionToWebProcess::didClose):
89
        (WebKit::WebAuthnConnectionToWebProcess::didReceiveInvalidMessage):
90
        * WebAuthnProcess/WebAuthnConnectionToWebProcess.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
91
        (WebKit::WebAuthnConnectionToWebProcess::connection):
92
        (WebKit::WebAuthnConnectionToWebProcess::WebAuthnProcessProcess):
93
        (WebKit::WebAuthnConnectionToWebProcess::webProcessIdentifier const):
94
        * WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in: Added.
95
        * WebAuthnProcess/WebAuthnProcess.cpp: Added.
96
        (WebKit::WebAuthnProcess::WebAuthnProcess):
97
        (WebKit::WebAuthnProcess::~WebAuthnProcess):
98
        (WebKit::WebAuthnProcess::createWebAuthnConnectionToWebProcess):
99
        (WebKit::WebAuthnProcess::removeWebAuthnConnectionToWebProcess):
100
        (WebKit::WebAuthnProcess::connectionToWebProcessClosed):
101
        (WebKit::WebAuthnProcess::shouldTerminate):
102
        (WebKit::WebAuthnProcess::didClose):
103
        (WebKit::WebAuthnProcess::lowMemoryHandler):
104
        (WebKit::WebAuthnProcess::initializeWebAuthnProcess):
105
        (WebKit::WebAuthnProcess::prepareToSuspend):
106
        (WebKit::WebAuthnProcess::processDidResume):
107
        (WebKit::WebAuthnProcess::resume):
108
        (WebKit::WebAuthnProcess::processDidTransitionToForeground):
109
        (WebKit::WebAuthnProcess::processDidTransitionToBackground):
110
        (WebKit::WebAuthnProcess::webProcessConnection const):
111
        * WebAuthnProcess/WebAuthnProcess.h: Added.
112
        * WebAuthnProcess/WebAuthnProcess.messages.in: Added.
113
        * WebAuthnProcess/WebAuthnProcessCreationParameters.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
114
        (WebKit::WebAuthnProcessCreationParameters::encode const):
115
        (WebKit::WebAuthnProcessCreationParameters::decode):
116
        * WebAuthnProcess/WebAuthnProcessCreationParameters.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
117
        * WebAuthnProcess/ios/WebAuthnProcessIOS.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
118
        (WebKit::WebAuthnProcess::initializeProcess):
119
        (WebKit::WebAuthnProcess::initializeProcessName):
120
        (WebKit::WebAuthnProcess::initializeSandbox):
121
        * WebAuthnProcess/mac/WebAuthnProcessMac.mm: Added.
122
        (WebKit::WebAuthnProcess::initializeProcess):
123
        (WebKit::WebAuthnProcess::initializeProcessName):
124
        (WebKit::WebAuthnProcess::initializeSandbox):
125
        Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.
126
127
        * WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in: Added.
128
        The sandbox profile is originally from the GPU Process with IOKit related rules removed. Will tighten it again after the process is fully functional.
129
130
        * WebKit.xcodeproj/project.pbxproj:
131
        Paperwork for building the new WebAuthn process.
132
133
        * WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
134
        (WebKit::WebAuthnProcessConnection::WebAuthnProcessConnection):
135
        (WebKit::WebAuthnProcessConnection::~WebAuthnProcessConnection):
136
        (WebKit::WebAuthnProcessConnection::didClose):
137
        (WebKit::WebAuthnProcessConnection::didReceiveInvalidMessage):
138
        * WebProcess/WebAuthentication/WebAuthnProcessConnection.h: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
139
        (WebKit::WebAuthnProcessConnection::create):
140
        (WebKit::WebAuthnProcessConnection::connection):
141
        * WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in: Added.
142
        * WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h: Added.
143
        (WebKit::WebAuthnProcessConnectionInfo::identifier const):
144
        (WebKit::WebAuthnProcessConnectionInfo::releaseIdentifier):
145
        (WebKit::WebAuthnProcessConnectionInfo::encode const):
146
        (WebKit::WebAuthnProcessConnectionInfo::decode):
147
        * WebProcess/WebProcess.cpp:
148
        (WebKit::getWebAuthnProcessConnection):
149
        (WebKit::WebProcess::ensureWebAuthnProcessConnection):
150
        (WebKit::WebProcess::webAuthnProcessConnectionClosed):
151
        * WebProcess/WebProcess.h:
152
        (WebKit::WebProcess::existingWebAuthnProcessConnection):
153
        Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.
154
1
2020-10-15  Jiewen Tan  <jiewen_tan@apple.com>
155
2020-10-15  Jiewen Tan  <jiewen_tan@apple.com>
2
156
3
        [WebAuthn] Move AppAttestInternal related code from WKA to OpenSource
157
        [WebAuthn] Move AppAttestInternal related code from WKA to OpenSource
- a/Source/WebCore/en.lproj/Localizable.strings +3 lines
Lines 46-51 a/Source/WebCore/en.lproj/Localizable.strings_sec1
46
/* Visible name of Service Worker process. The argument is the application name. */
46
/* Visible name of Service Worker process. The argument is the application name. */
47
"%@ Service Worker (%@)" = "%@ Service Worker (%@)";
47
"%@ Service Worker (%@)" = "%@ Service Worker (%@)";
48
48
49
/* visible name of the WebAuthn process. The argument is the application name. */
50
"%@ Web Authentication" = "%@ Web Authentication";
51
49
/* Visible name of the web process. The argument is the application name. */
52
/* Visible name of the web process. The argument is the application name. */
50
"%@ Web Content" = "%@ Web Content";
53
"%@ Web Content" = "%@ Web Content";
51
54
- a/Source/WebKit/CMakeLists.txt +1 lines
Lines 71-76 set(WebKit_INCLUDE_DIRECTORIES a/Source/WebKit/CMakeLists.txt_sec1
71
    "${WEBKIT_DIR}/UIProcess/WebAuthentication"
71
    "${WEBKIT_DIR}/UIProcess/WebAuthentication"
72
    "${WEBKIT_DIR}/UIProcess/WebAuthentication/Mock"
72
    "${WEBKIT_DIR}/UIProcess/WebAuthentication/Mock"
73
    "${WEBKIT_DIR}/UIProcess/WebsiteData"
73
    "${WEBKIT_DIR}/UIProcess/WebsiteData"
74
    "${WEBKIT_DIR}/WebAuthnProcess"
74
    "${WEBKIT_DIR}/WebProcess"
75
    "${WEBKIT_DIR}/WebProcess"
75
    "${WEBKIT_DIR}/WebProcess/ApplePay"
76
    "${WEBKIT_DIR}/WebProcess/ApplePay"
76
    "${WEBKIT_DIR}/WebProcess/ApplicationCache"
77
    "${WEBKIT_DIR}/WebProcess/ApplicationCache"
- a/Source/WebKit/Configurations/WebAuthenticationAgent.xcconfig -37 lines
Lines 1-37 a/Source/WebKit/Configurations/WebAuthenticationAgent.xcconfig_sec1
1
// Copyright (C) 2020 Apple Inc. All rights reserved.
2
//
3
// Redistribution and use in source and binary forms, with or without
4
// modification, are permitted provided that the following conditions
5
// are met:
6
// 1. Redistributions of source code must retain the above copyright
7
//    notice, this list of conditions and the following disclaimer.
8
// 2. Redistributions in binary form must reproduce the above copyright
9
//    notice, this list of conditions and the following disclaimer in the
10
//    documentation and/or other materials provided with the distribution.
11
//
12
// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
13
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15
// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
16
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
18
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
19
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
20
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24
#include "BaseXPCService.xcconfig"
25
26
PRODUCT_NAME = com.apple.WebKit.WebAuthenticationAgent;
27
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_NAME);
28
INFOPLIST_FILE = Daemons/WebAuthenticationAgent/Info.plist;
29
30
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH) $(WK_RELOCATABLE_FRAMEWORKS_LDFLAGS);
31
32
ENTITLEMENTS_REQUIRED = $(ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_$(USE_INTERNAL_SDK))
33
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_ = NO;
34
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_NO = NO;
35
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_YES = $(ENTITLEMENTS_REQUIRED);
36
37
CODE_SIGN_ENTITLEMENTS = Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements;
- a/Source/WebKit/Configurations/WebAuthnService.xcconfig +36 lines
Line 0 a/Source/WebKit/Configurations/WebAuthnService.xcconfig_sec1
1
// Copyright (C) 2020 Apple Inc. All rights reserved.
2
//
3
// Redistribution and use in source and binary forms, with or without
4
// modification, are permitted provided that the following conditions
5
// are met:
6
// 1. Redistributions of source code must retain the above copyright
7
//    notice, this list of conditions and the following disclaimer.
8
// 2. Redistributions in binary form must reproduce the above copyright
9
//    notice, this list of conditions and the following disclaimer in the
10
//    documentation and/or other materials provided with the distribution.
11
//
12
// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
13
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15
// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
16
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
18
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
19
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
20
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24
#include "BaseXPCService.xcconfig"
25
26
PRODUCT_NAME = com.apple.WebKit.WebAuthn;
27
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_NAME);
28
INFOPLIST_FILE[sdk=embedded*] = WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist;
29
INFOPLIST_FILE[sdk=macosx*] = WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist;
30
31
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH) $(WK_RELOCATABLE_FRAMEWORKS_LDFLAGS);
32
33
ENTITLEMENTS_REQUIRED = $(ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_$(USE_INTERNAL_SDK))
34
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_ = NO;
35
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_NO = NO;
36
ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_YES = $(ENTITLEMENTS_REQUIRED);
- a/Source/WebKit/Configurations/WebKit.xcconfig -1 / +1 lines
Lines 154-160 SECTORDER_FLAGS_Production[sdk=iphoneos*] = -Wl,-order_file,$(SDKROOT)/AppleInte a/Source/WebKit/Configurations/WebKit.xcconfig_sec1
154
SECTORDER_FLAGS_Production[sdk=macosx*] = -Wl,-order_file,mac/WebKit2.order;
154
SECTORDER_FLAGS_Production[sdk=macosx*] = -Wl,-order_file,mac/WebKit2.order;
155
155
156
EXCLUDED_SOURCE_FILE_NAMES = Resources/ios/*;
156
EXCLUDED_SOURCE_FILE_NAMES = Resources/ios/*;
157
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = PluginProcessShim.dylib SecItemShim.dylib WebProcessShim.dylib *.pdf Resources/mac/* com.apple.WebKit.NetworkProcess.sb com.apple.WebKit.GPUProcess.sb com.apple.WebProcess.sb com.apple.WebKit.plugin-common.sb PlugInSandboxProfiles/*.sb;
157
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = PluginProcessShim.dylib SecItemShim.dylib WebProcessShim.dylib *.pdf Resources/mac/* com.apple.WebKit.NetworkProcess.sb com.apple.WebKit.GPUProcess.sb com.apple.WebKit.WebAuthnProcess.sb com.apple.WebProcess.sb com.apple.WebKit.plugin-common.sb PlugInSandboxProfiles/*.sb;
158
158
159
INSTALLHDRS_SCRIPT_PHASE = YES;
159
INSTALLHDRS_SCRIPT_PHASE = YES;
160
APPLY_RULES_IN_COPY_HEADERS = $(WK_USE_NEW_BUILD_SYSTEM);
160
APPLY_RULES_IN_COPY_HEADERS = $(WK_USE_NEW_BUILD_SYSTEM);
- a/Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist -34 lines
Lines 1-34 a/Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist_sec1
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleGetInfoString</key>
6
	<string>${BUNDLE_VERSION}, Copyright 2003-2020 Apple Inc.</string>
7
	<key>CFBundleDevelopmentRegion</key>
8
	<string>English</string>
9
	<key>CFBundleExecutable</key>
10
	<string>${EXECUTABLE_NAME}</string>
11
	<key>CFBundleIdentifier</key>
12
	<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
13
	<key>CFBundleInfoDictionaryVersion</key>
14
	<string>6.0</string>
15
	<key>CFBundleName</key>
16
	<string>${PRODUCT_NAME}</string>
17
	<key>CFBundlePackageType</key>
18
	<string>APPL</string>
19
	<key>CFBundleShortVersionString</key>
20
	<string>${SHORT_VERSION_STRING}</string>
21
	<key>CFBundleSignature</key>
22
	<string>????</string>
23
	<key>CFBundleVersion</key>
24
	<string>${BUNDLE_VERSION}</string>
25
	<key>LSFileQuarantineEnabled</key>
26
	<true/>
27
	<key>LSBackgroundOnly</key>
28
	<true/>
29
	<key>NSPrincipalClass</key>
30
	<string>NSApplication</string>
31
	<key>LSUIElement</key>
32
	<true/>
33
</dict>
34
</plist>
- a/Source/WebKit/Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements -5 lines
Lines 1-5 a/Source/WebKit/Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements_sec1
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict/>
5
</plist>
- a/Source/WebKit/Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist -19 lines
Lines 1-19 a/Source/WebKit/Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist_sec1
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>EnablePressuredExit</key>
6
	<true/>
7
	<key>KeepAlive</key>
8
	<false/>
9
	<key>Label</key>
10
	<string>com.apple.webkit.WebAuthenticationAgent</string>
11
	<key>MachServices</key>
12
	<dict>
13
		<key>com.apple.webkit.WebAuthenticationAgent</key>
14
		<true/>
15
	</dict>
16
	<key>Program</key>
17
	<string>/Users/jwtan/Documents/Build/Products/Debug/com.apple.WebKit.WebAuthenticationAgent.Development</string>
18
</dict>
19
</plist>
- a/Source/WebKit/Daemons/WebAuthenticationAgent/main.mm -37 lines
Lines 1-37 a/Source/WebKit/Daemons/WebAuthenticationAgent/main.mm_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#import "config.h"
27
28
int main(int argc, const char* argv[])
29
{
30
    @autoreleasepool {
31
        WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
32
    }
33
34
    [[NSRunLoop mainRunLoop] run];
35
36
    return 0;
37
}
- a/Source/WebKit/DerivedSources-input.xcfilelist +5 lines
Lines 105-110 $(PROJECT_DIR)/UIProcess/UserContent/WebUserContentControllerProxy.messages.in a/Source/WebKit/DerivedSources-input.xcfilelist_sec1
105
$(PROJECT_DIR)/UIProcess/ViewGestureController.messages.in
105
$(PROJECT_DIR)/UIProcess/ViewGestureController.messages.in
106
$(PROJECT_DIR)/UIProcess/VisitedLinkStore.messages.in
106
$(PROJECT_DIR)/UIProcess/VisitedLinkStore.messages.in
107
$(PROJECT_DIR)/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in
107
$(PROJECT_DIR)/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in
108
$(PROJECT_DIR)/UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in
108
$(PROJECT_DIR)/UIProcess/WebCookieManagerProxy.messages.in
109
$(PROJECT_DIR)/UIProcess/WebCookieManagerProxy.messages.in
109
$(PROJECT_DIR)/UIProcess/WebFullScreenManagerProxy.messages.in
110
$(PROJECT_DIR)/UIProcess/WebFullScreenManagerProxy.messages.in
110
$(PROJECT_DIR)/UIProcess/WebGeolocationManagerProxy.messages.in
111
$(PROJECT_DIR)/UIProcess/WebGeolocationManagerProxy.messages.in
Lines 116-121 $(PROJECT_DIR)/UIProcess/ios/EditableImageController.messages.in a/Source/WebKit/DerivedSources-input.xcfilelist_sec2
116
$(PROJECT_DIR)/UIProcess/ios/SmartMagnificationController.messages.in
117
$(PROJECT_DIR)/UIProcess/ios/SmartMagnificationController.messages.in
117
$(PROJECT_DIR)/UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.messages.in
118
$(PROJECT_DIR)/UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.messages.in
118
$(PROJECT_DIR)/UIProcess/mac/SecItemShimProxy.messages.in
119
$(PROJECT_DIR)/UIProcess/mac/SecItemShimProxy.messages.in
120
$(PROJECT_DIR)/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in
121
$(PROJECT_DIR)/WebAuthnProcess/WebAuthnProcess.messages.in
122
$(PROJECT_DIR)/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in
119
$(PROJECT_DIR)/WebProcess/ApplePay/WebPaymentCoordinator.messages.in
123
$(PROJECT_DIR)/WebProcess/ApplePay/WebPaymentCoordinator.messages.in
120
$(PROJECT_DIR)/WebProcess/Automation/WebAutomationSessionProxy.js
124
$(PROJECT_DIR)/WebProcess/Automation/WebAutomationSessionProxy.js
121
$(PROJECT_DIR)/WebProcess/Automation/WebAutomationSessionProxy.messages.in
125
$(PROJECT_DIR)/WebProcess/Automation/WebAutomationSessionProxy.messages.in
Lines 154-159 $(PROJECT_DIR)/WebProcess/Storage/WebSWClientConnection.messages.in a/Source/WebKit/DerivedSources-input.xcfilelist_sec3
154
$(PROJECT_DIR)/WebProcess/Storage/WebSWContextManagerConnection.messages.in
158
$(PROJECT_DIR)/WebProcess/Storage/WebSWContextManagerConnection.messages.in
155
$(PROJECT_DIR)/WebProcess/UserContent/WebUserContentController.messages.in
159
$(PROJECT_DIR)/WebProcess/UserContent/WebUserContentController.messages.in
156
$(PROJECT_DIR)/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.messages.in
160
$(PROJECT_DIR)/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.messages.in
161
$(PROJECT_DIR)/WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in
157
$(PROJECT_DIR)/WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.messages.in
162
$(PROJECT_DIR)/WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.messages.in
158
$(PROJECT_DIR)/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in
163
$(PROJECT_DIR)/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in
159
$(PROJECT_DIR)/WebProcess/WebPage/DrawingArea.messages.in
164
$(PROJECT_DIR)/WebProcess/WebPage/DrawingArea.messages.in
- a/Source/WebKit/DerivedSources-output.xcfilelist +13 lines
Lines 289-294 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorMessages a/Source/WebKit/DerivedSources-output.xcfilelist_sec1
289
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessageReceiver.cpp
289
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessageReceiver.cpp
290
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h
290
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h
291
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessagesReplies.h
291
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessagesReplies.h
292
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessageReceiver.cpp
293
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessages.h
294
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessagesReplies.h
295
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessageReceiver.cpp
296
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessages.h
297
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessagesReplies.h
298
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessageReceiver.cpp
299
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessages.h
300
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessagesReplies.h
301
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessageReceiver.cpp
302
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessages.h
303
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessagesReplies.h
292
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessageReceiver.cpp
304
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessageReceiver.cpp
293
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessages.h
305
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessages.h
294
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessagesReplies.h
306
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessagesReplies.h
Lines 422-426 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebUserContentControllerProxyMessag a/Source/WebKit/DerivedSources-output.xcfilelist_sec2
422
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebUserContentControllerProxyMessagesReplies.h
434
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebUserContentControllerProxyMessagesReplies.h
423
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.GPUProcess.sb
435
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.GPUProcess.sb
424
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.NetworkProcess.sb
436
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.NetworkProcess.sb
437
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.WebAuthnProcess.sb
425
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.plugin-common.sb
438
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.plugin-common.sb
426
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebProcess.sb
439
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebProcess.sb
- a/Source/WebKit/DerivedSources.make -1 / +8 lines
Lines 45-50 VPATH = \ a/Source/WebKit/DerivedSources.make_sec1
45
    $(WebKit2)/Shared/ApplePay \
45
    $(WebKit2)/Shared/ApplePay \
46
    $(WebKit2)/Shared/Authentication \
46
    $(WebKit2)/Shared/Authentication \
47
    $(WebKit2)/Shared/mac \
47
    $(WebKit2)/Shared/mac \
48
    $(WebKit2)/WebAuthnProcess \
49
    $(WebKit2)/WebAuthnProcess/mac \
48
    $(WebKit2)/WebProcess/ApplePay \
50
    $(WebKit2)/WebProcess/ApplePay \
49
    $(WebKit2)/WebProcess/ApplicationCache \
51
    $(WebKit2)/WebProcess/ApplicationCache \
50
    $(WebKit2)/WebProcess/Automation \
52
    $(WebKit2)/WebProcess/Automation \
Lines 140-145 MESSAGE_RECEIVERS = \ a/Source/WebKit/DerivedSources.make_sec2
140
	UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy \
142
	UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy \
141
	UIProcess/GPU/GPUProcessProxy \
143
	UIProcess/GPU/GPUProcessProxy \
142
	UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy \
144
	UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy \
145
	UIProcess/WebAuthentication/WebAuthnProcessProxy \
143
	UIProcess/WebPasteboardProxy \
146
	UIProcess/WebPasteboardProxy \
144
	UIProcess/UserContent/WebUserContentControllerProxy \
147
	UIProcess/UserContent/WebUserContentControllerProxy \
145
	UIProcess/Inspector/WebInspectorProxy \
148
	UIProcess/Inspector/WebInspectorProxy \
Lines 213-218 MESSAGE_RECEIVERS = \ a/Source/WebKit/DerivedSources.make_sec3
213
	WebProcess/WebPage/VisitedLinkTableController \
216
	WebProcess/WebPage/VisitedLinkTableController \
214
	WebProcess/WebPage/Cocoa/TextCheckingControllerProxy \
217
	WebProcess/WebPage/Cocoa/TextCheckingControllerProxy \
215
	WebProcess/WebPage/ViewUpdateDispatcher \
218
	WebProcess/WebPage/ViewUpdateDispatcher \
219
	WebProcess/WebAuthentication/WebAuthnProcessConnection \
216
	PluginProcess/WebProcessConnection \
220
	PluginProcess/WebProcessConnection \
217
	PluginProcess/PluginControllerProxy \
221
	PluginProcess/PluginControllerProxy \
218
	PluginProcess/PluginProcess \
222
	PluginProcess/PluginProcess \
Lines 239-244 MESSAGE_RECEIVERS = \ a/Source/WebKit/DerivedSources.make_sec4
239
	GPUProcess/media/RemoteLegacyCDMProxy \
243
	GPUProcess/media/RemoteLegacyCDMProxy \
240
	GPUProcess/media/RemoteMediaPlayerManagerProxy \
244
	GPUProcess/media/RemoteMediaPlayerManagerProxy \
241
	GPUProcess/media/RemoteAudioDestinationManager \
245
	GPUProcess/media/RemoteAudioDestinationManager \
246
	WebAuthnProcess/WebAuthnConnectionToWebProcess \
247
	WebAuthnProcess/WebAuthnProcess \
242
#
248
#
243
249
244
GENERATE_MESSAGE_RECEIVER_SCRIPT = $(WebKit2)/Scripts/generate-message-receiver.py
250
GENERATE_MESSAGE_RECEIVER_SCRIPT = $(WebKit2)/Scripts/generate-message-receiver.py
Lines 284-290 SANDBOX_PROFILES = \ a/Source/WebKit/DerivedSources.make_sec5
284
	com.apple.WebProcess.sb \
290
	com.apple.WebProcess.sb \
285
	com.apple.WebKit.plugin-common.sb \
291
	com.apple.WebKit.plugin-common.sb \
286
	com.apple.WebKit.NetworkProcess.sb \
292
	com.apple.WebKit.NetworkProcess.sb \
287
	com.apple.WebKit.GPUProcess.sb
293
	com.apple.WebKit.GPUProcess.sb \
294
	com.apple.WebKit.WebAuthnProcess.sb
288
295
289
all : $(SANDBOX_PROFILES)
296
all : $(SANDBOX_PROFILES)
290
297
- a/Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h +1 lines
Lines 34-39 void NetworkServiceInitializer(); a/Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h_sec1
34
void PluginServiceInitializer();
34
void PluginServiceInitializer();
35
void WebContentServiceInitializer();
35
void WebContentServiceInitializer();
36
void GPUServiceInitializer();
36
void GPUServiceInitializer();
37
void WebAuthnServiceInitializer();
37
38
38
#ifdef __cplusplus
39
#ifdef __cplusplus
39
}
40
}
- a/Source/WebKit/Shared/AuxiliaryProcess.h -2 / +5 lines
Lines 1-5 a/Source/WebKit/Shared/AuxiliaryProcess.h_sec1
1
/*
1
/*
2
 * Copyright (C) 2010-2019 Apple Inc. All rights reserved.
2
 * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
3
 *
3
 *
4
 * Redistribution and use in source and binary forms, with or without
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
5
 * modification, are permitted provided that the following conditions
Lines 49-55 public: a/Source/WebKit/Shared/AuxiliaryProcess.h_sec2
49
        Network,
49
        Network,
50
        Plugin,
50
        Plugin,
51
#if ENABLE(GPU_PROCESS)
51
#if ENABLE(GPU_PROCESS)
52
        GPU
52
        GPU,
53
#endif
54
#if ENABLE(WEB_AUTHN)
55
        WebAuthn
53
#endif
56
#endif
54
    };
57
    };
55
58
- a/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h +1 lines
Lines 42-47 extern "C" OS_NOTHROW void voucher_replace_default_voucher(void); a/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h_sec1
42
#define NETWORK_SERVICE_INITIALIZER NetworkServiceInitializer
42
#define NETWORK_SERVICE_INITIALIZER NetworkServiceInitializer
43
#define PLUGIN_SERVICE_INITIALIZER PluginServiceInitializer
43
#define PLUGIN_SERVICE_INITIALIZER PluginServiceInitializer
44
#define GPU_SERVICE_INITIALIZER GPUServiceInitializer
44
#define GPU_SERVICE_INITIALIZER GPUServiceInitializer
45
#define WEBAUTHN_SERVICE_INITIALIZER WebAuthnServiceInitializer
45
46
46
namespace WebKit {
47
namespace WebKit {
47
48
- a/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm +2 lines
Lines 70-75 static void XPCServiceEventHandler(xpc_connection_t peer) a/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm_sec1
70
                    entryPointFunctionName = CFSTR(STRINGIZE_VALUE_OF(PLUGIN_SERVICE_INITIALIZER));
70
                    entryPointFunctionName = CFSTR(STRINGIZE_VALUE_OF(PLUGIN_SERVICE_INITIALIZER));
71
                else if (!strcmp(serviceName, "com.apple.WebKit.GPU"))
71
                else if (!strcmp(serviceName, "com.apple.WebKit.GPU"))
72
                    entryPointFunctionName = CFSTR(STRINGIZE_VALUE_OF(GPU_SERVICE_INITIALIZER));
72
                    entryPointFunctionName = CFSTR(STRINGIZE_VALUE_OF(GPU_SERVICE_INITIALIZER));
73
                else if (!strcmp(serviceName, "com.apple.WebKit.WebAuthn"))
74
                    entryPointFunctionName = CFSTR(STRINGIZE_VALUE_OF(WEBAUTHN_SERVICE_INITIALIZER));
73
                else
75
                else
74
                    RELEASE_ASSERT_NOT_REACHED();
76
                    RELEASE_ASSERT_NOT_REACHED();
75
77
- a/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm +9 lines
Lines 230-235 constexpr const char* processStorageClass(AuxiliaryProcess::ProcessType type) a/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm_sec1
230
#if ENABLE(GPU_PROCESS)
230
#if ENABLE(GPU_PROCESS)
231
    case AuxiliaryProcess::ProcessType::GPU:
231
    case AuxiliaryProcess::ProcessType::GPU:
232
        return "WebKitGPUSandbox";
232
        return "WebKitGPUSandbox";
233
#endif
234
#if ENABLE(WEB_AUTHN)
235
    case AuxiliaryProcess::ProcessType::WebAuthn:
236
        return "WebKitWebAuthnSandbox";
233
#endif
237
#endif
234
    }
238
    }
235
}
239
}
Lines 292-297 static String sandboxDirectory(AuxiliaryProcess::ProcessType processType, const a/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm_sec2
292
    case AuxiliaryProcess::ProcessType::GPU:
296
    case AuxiliaryProcess::ProcessType::GPU:
293
        directory.append("/com.apple.WebKit.GPU.Sandbox");
297
        directory.append("/com.apple.WebKit.GPU.Sandbox");
294
        break;
298
        break;
299
#endif
300
#if ENABLE(WEB_AUTHN)
301
    case AuxiliaryProcess::ProcessType::WebAuthn:
302
        directory.append("/com.apple.WebKit.WebAuthn.Sandbox");
303
        break;
295
#endif
304
#endif
296
    }
305
    }
297
306
- a/Source/WebKit/Sources.txt +6 lines
Lines 472-483 UIProcess/WebAuthentication/AuthenticatorTransportService.cpp a/Source/WebKit/Sources.txt_sec1
472
UIProcess/WebAuthentication/Authenticator.cpp
472
UIProcess/WebAuthentication/Authenticator.cpp
473
UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp
473
UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp
474
UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp
474
UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp
475
UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp
475
476
476
UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp
477
UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp
477
UIProcess/WebsiteData/WebsiteDataRecord.cpp
478
UIProcess/WebsiteData/WebsiteDataRecord.cpp
478
UIProcess/WebsiteData/WebsiteDataStore.cpp
479
UIProcess/WebsiteData/WebsiteDataStore.cpp
479
UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
480
UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
480
481
482
WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp
483
WebAuthnProcess/WebAuthnProcess.cpp
484
WebAuthnProcess/WebAuthnProcessCreationParameters.cpp
485
481
WebProcess/WebConnectionToUIProcess.cpp
486
WebProcess/WebConnectionToUIProcess.cpp
482
WebProcess/WebProcess.cpp
487
WebProcess/WebProcess.cpp
483
WebProcess/WebSleepDisablerClient.cpp
488
WebProcess/WebSleepDisablerClient.cpp
Lines 626-631 WebProcess/Storage/WebServiceWorkerProvider.cpp a/Source/WebKit/Sources.txt_sec2
626
WebProcess/UserContent/WebUserContentController.cpp
631
WebProcess/UserContent/WebUserContentController.cpp
627
632
628
WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp
633
WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp
634
WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp
629
635
630
WebProcess/WebCoreSupport/SessionStateConversion.cpp
636
WebProcess/WebCoreSupport/SessionStateConversion.cpp
631
WebProcess/WebCoreSupport/WebChromeClient.cpp
637
WebProcess/WebCoreSupport/WebChromeClient.cpp
- a/Source/WebKit/SourcesCocoa.txt +4 lines
Lines 549-554 UIProcess/WebAuthentication/Mock/MockNfcService.mm a/Source/WebKit/SourcesCocoa.txt_sec1
549
549
550
UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
550
UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
551
551
552
WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm
553
WebAuthnProcess/ios/WebAuthnProcessIOS.mm
554
WebAuthnProcess/mac/WebAuthnProcessMac.mm
555
552
WebProcess/API/Cocoa/WKWebProcess.cpp
556
WebProcess/API/Cocoa/WKWebProcess.cpp
553
557
554
WebProcess/ApplePay/WebPaymentCoordinator.cpp
558
WebProcess/ApplePay/WebPaymentCoordinator.cpp
- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +5 lines
Lines 83-88 void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp_sec1
83
    case ProcessLauncher::ProcessType::GPU:
83
    case ProcessLauncher::ProcessType::GPU:
84
        varname = "GPU_PROCESS_CMD_PREFIX";
84
        varname = "GPU_PROCESS_CMD_PREFIX";
85
        break;
85
        break;
86
#endif
87
#if ENABLE(WEB_AUTHN)
88
    case ProcessLauncher::ProcessType::WebAuthn:
89
        varname = "WEBAUTHN_PROCESS_CMD_PREFIX";
90
        break;
86
#endif
91
#endif
87
    }
92
    }
88
    const char* processCmdPrefix = getenv(varname);
93
    const char* processCmdPrefix = getenv(varname);
- a/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h -1 / +4 lines
Lines 73-79 public: a/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h_sec1
73
#endif
73
#endif
74
        Network,
74
        Network,
75
#if ENABLE(GPU_PROCESS)
75
#if ENABLE(GPU_PROCESS)
76
        GPU
76
        GPU,
77
#endif
78
#if ENABLE(WEB_AUTHN)
79
        WebAuthn
77
#endif
80
#endif
78
    };
81
    };
79
82
- a/Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm -1 / +9 lines
Lines 60-65 static const char* serviceName(const ProcessLauncher::LaunchOptions& launchOptio a/Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm_sec1
60
    case ProcessLauncher::ProcessType::GPU:
60
    case ProcessLauncher::ProcessType::GPU:
61
        return "com.apple.WebKit.GPU";
61
        return "com.apple.WebKit.GPU";
62
#endif
62
#endif
63
#if ENABLE(WEB_AUTHN)
64
    case ProcessLauncher::ProcessType::WebAuthn:
65
        return "com.apple.WebKit.WebAuthn";
66
#endif
63
#if ENABLE(NETSCAPE_PLUGIN_API)
67
#if ENABLE(NETSCAPE_PLUGIN_API)
64
    case ProcessLauncher::ProcessType::Plugin:
68
    case ProcessLauncher::ProcessType::Plugin:
65
        return "com.apple.WebKit.Plugin.64";
69
        return "com.apple.WebKit.Plugin.64";
Lines 74-83 static bool shouldLeakBoost(const ProcessLauncher::LaunchOptions& launchOptions) a/Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm_sec2
74
    UNUSED_PARAM(launchOptions);
78
    UNUSED_PARAM(launchOptions);
75
    return true;
79
    return true;
76
#else
80
#else
77
    // On Mac, leak a boost onto the NetworkProcess and GPUProcess.
81
    // On Mac, leak a boost onto the NetworkProcess, GPUProcess, and WebAuthnProcess.
78
#if ENABLE(GPU_PROCESS)
82
#if ENABLE(GPU_PROCESS)
79
    if (launchOptions.processType == ProcessLauncher::ProcessType::GPU)
83
    if (launchOptions.processType == ProcessLauncher::ProcessType::GPU)
80
        return true;
84
        return true;
85
#endif
86
#if ENABLE(WEB_AUTHN)
87
    if (launchOptions.processType == ProcessLauncher::ProcessType::WebAuthn)
88
        return true;
81
#endif
89
#endif
82
    return launchOptions.processType == ProcessLauncher::ProcessType::Network;
90
    return launchOptions.processType == ProcessLauncher::ProcessType::Network;
83
#endif
91
#endif
- a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp +189 lines
Line 0 a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebAuthnProcessProxy.h"
28
29
#if ENABLE(WEB_AUTHN)
30
31
#include "Logging.h"
32
#include "WebAuthnProcessConnectionInfo.h"
33
#include "WebAuthnProcessCreationParameters.h"
34
#include "WebAuthnProcessMessages.h"
35
#include "WebAuthnProcessProxyMessages.h"
36
#include "WebPageMessages.h"
37
#include "WebPageProxy.h"
38
#include "WebProcessMessages.h"
39
#include "WebProcessPool.h"
40
#include "WebProcessProxy.h"
41
#include "WebProcessProxyMessages.h"
42
#include <WebCore/RuntimeApplicationChecks.h>
43
#include <wtf/CompletionHandler.h>
44
45
#if PLATFORM(IOS_FAMILY)
46
#include <wtf/spi/darwin/XPCSPI.h>
47
#endif
48
49
#define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, this->connection())
50
51
namespace WebKit {
52
using namespace WebCore;
53
54
WebAuthnProcessProxy& WebAuthnProcessProxy::singleton()
55
{
56
    ASSERT(RunLoop::isMain());
57
58
    static std::once_flag onceFlag;
59
    static LazyNeverDestroyed<WebAuthnProcessProxy> webAuthnProcess;
60
61
    std::call_once(onceFlag, [] {
62
        webAuthnProcess.construct();
63
64
        WebAuthnProcessCreationParameters parameters;
65
66
        // Initialize the WebAuthn process.
67
        webAuthnProcess->send(Messages::WebAuthnProcess::InitializeWebAuthnProcess(parameters), 0);
68
        webAuthnProcess->updateProcessAssertion();
69
    });
70
71
    return webAuthnProcess.get();
72
}
73
74
WebAuthnProcessProxy::WebAuthnProcessProxy()
75
    : AuxiliaryProcessProxy()
76
    , m_throttler(*this, false)
77
{
78
    connect();
79
}
80
81
WebAuthnProcessProxy::~WebAuthnProcessProxy() = default;
82
83
void WebAuthnProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
84
{
85
    launchOptions.processType = ProcessLauncher::ProcessType::WebAuthn;
86
    AuxiliaryProcessProxy::getLaunchOptions(launchOptions);
87
}
88
89
void WebAuthnProcessProxy::connectionWillOpen(IPC::Connection&)
90
{
91
}
92
93
void WebAuthnProcessProxy::processWillShutDown(IPC::Connection& connection)
94
{
95
    ASSERT_UNUSED(connection, this->connection() == &connection);
96
}
97
98
void WebAuthnProcessProxy::getWebAuthnProcessConnection(WebProcessProxy& webProcessProxy, Messages::WebProcessProxy::GetWebAuthnProcessConnection::DelayedReply&& reply)
99
{
100
    RELEASE_LOG(ProcessSuspension, "%p - WebAuthnProcessProxy is taking a background assertion because a web process is requesting a connection", this);
101
    sendWithAsyncReply(Messages::WebAuthnProcess::CreateWebAuthnConnectionToWebProcess { webProcessProxy.coreProcessIdentifier() }, [this, weakThis = makeWeakPtr(*this), reply = WTFMove(reply)](auto&& identifier) mutable {
102
        if (!weakThis) {
103
            RELEASE_LOG_ERROR(Process, "WebAuthnProcessProxy::getWebAuthnProcessConnection: WebAuthnProcessProxy deallocated during connection establishment");
104
            return reply({ });
105
        }
106
107
        if (!identifier) {
108
            RELEASE_LOG_ERROR(Process, "WebAuthnProcessProxy::getWebAuthnProcessConnection: connection identifier is empty");
109
            return reply({ });
110
        }
111
112
        MESSAGE_CHECK(MACH_PORT_VALID(identifier->port()));
113
        reply(WebAuthnProcessConnectionInfo { IPC::Attachment { identifier->port(), MACH_MSG_TYPE_MOVE_SEND } });
114
    }, 0, IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
115
}
116
117
void WebAuthnProcessProxy::webAuthnProcessCrashed()
118
{
119
    for (auto& processPool : WebProcessPool::allProcessPools())
120
        processPool->terminateAllWebContentProcesses();
121
}
122
123
void WebAuthnProcessProxy::didClose(IPC::Connection&)
124
{
125
    // This will cause us to be deleted.
126
    webAuthnProcessCrashed();
127
}
128
129
void WebAuthnProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::MessageName messageName)
130
{
131
    logInvalidMessage(connection, messageName);
132
133
    WebProcessPool::didReceiveInvalidMessage(messageName);
134
135
    // Terminate the WebAuthn process.
136
    terminate();
137
138
    // Since we've invalidated the connection we'll never get a IPC::Connection::Client::didClose
139
    // callback so we'll explicitly call it here instead.
140
    didClose(connection);
141
}
142
143
void WebAuthnProcessProxy::didFinishLaunching(ProcessLauncher* launcher, IPC::Connection::Identifier connectionIdentifier)
144
{
145
    AuxiliaryProcessProxy::didFinishLaunching(launcher, connectionIdentifier);
146
147
    if (!IPC::Connection::identifierIsValid(connectionIdentifier)) {
148
        webAuthnProcessCrashed();
149
        return;
150
    }
151
152
#if PLATFORM(IOS_FAMILY)
153
    if (xpc_connection_t connection = this->connection()->xpcConnection())
154
        m_throttler.didConnectToProcess(xpc_connection_get_pid(connection));
155
#endif
156
}
157
158
void WebAuthnProcessProxy::updateProcessAssertion()
159
{
160
    bool hasAnyForegroundWebProcesses = false;
161
    bool hasAnyBackgroundWebProcesses = false;
162
163
    for (auto& processPool : WebProcessPool::allProcessPools()) {
164
        hasAnyForegroundWebProcesses |= processPool->hasForegroundWebProcesses();
165
        hasAnyBackgroundWebProcesses |= processPool->hasBackgroundWebProcesses();
166
    }
167
168
    if (hasAnyForegroundWebProcesses) {
169
        if (!ProcessThrottler::isValidForegroundActivity(m_activityFromWebProcesses)) {
170
            m_activityFromWebProcesses = throttler().foregroundActivity("WebAuthn for foreground view(s)"_s);
171
            send(Messages::WebAuthnProcess::ProcessDidTransitionToForeground(), 0);
172
        }
173
        return;
174
    }
175
    if (hasAnyBackgroundWebProcesses) {
176
        if (!ProcessThrottler::isValidBackgroundActivity(m_activityFromWebProcesses)) {
177
            m_activityFromWebProcesses = throttler().backgroundActivity("WebAuthn for background view(s)"_s);
178
            send(Messages::WebAuthnProcess::ProcessDidTransitionToBackground(), 0);
179
        }
180
        return;
181
    }
182
    m_activityFromWebProcesses = nullptr;
183
}
184
185
} // namespace WebKit
186
187
#undef MESSAGE_CHECK
188
189
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h +89 lines
Line 0 a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
#include "AuxiliaryProcessProxy.h"
31
#include "ProcessLauncher.h"
32
#include "ProcessThrottler.h"
33
#include "ProcessThrottlerClient.h"
34
#include "WebPageProxyIdentifier.h"
35
#include "WebProcessProxyMessagesReplies.h"
36
#include <memory>
37
38
namespace WebKit {
39
40
class WebProcessProxy;
41
class WebsiteDataStore;
42
struct WebAuthnProcessCreationParameters;
43
44
class WebAuthnProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<WebAuthnProcessProxy> {
45
    WTF_MAKE_FAST_ALLOCATED;
46
    WTF_MAKE_NONCOPYABLE(WebAuthnProcessProxy);
47
    friend LazyNeverDestroyed<WebAuthnProcessProxy>;
48
public:
49
    static WebAuthnProcessProxy& singleton();
50
51
    void getWebAuthnProcessConnection(WebProcessProxy&, Messages::WebProcessProxy::GetWebAuthnProcessConnectionDelayedReply&&);
52
53
    ProcessThrottler& throttler() final { return m_throttler; }
54
    void updateProcessAssertion();
55
56
    // ProcessThrottlerClient
57
    void sendProcessDidResume() final { }
58
    ASCIILiteral clientName() const final { return "WebAuthnProcess"_s; }
59
60
private:
61
    explicit WebAuthnProcessProxy();
62
    ~WebAuthnProcessProxy();
63
64
    // AuxiliaryProcessProxy
65
    ASCIILiteral processName() const final { return "WebAuthn"_s; }
66
67
    void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
68
    void connectionWillOpen(IPC::Connection&) override;
69
    void processWillShutDown(IPC::Connection&) override;
70
71
    void webAuthnProcessCrashed();
72
73
    // ProcessThrottlerClient
74
    void sendPrepareToSuspend(IsSuspensionImminent, CompletionHandler<void()>&&) final { }
75
76
    // ProcessLauncher::Client
77
    void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) override;
78
79
    // IPC::Connection::Client
80
    void didClose(IPC::Connection&) override;
81
    void didReceiveInvalidMessage(IPC::Connection&, IPC::MessageName) override;
82
83
    ProcessThrottler m_throttler;
84
    ProcessThrottler::ActivityVariant m_activityFromWebProcesses;
85
};
86
87
} // namespace WebKit
88
89
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in +28 lines
Line 0 a/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in_sec1
1
# Copyright (C) 2020 Apple Inc. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or without
4
# modification, are permitted provided that the following conditions
5
# are met:
6
# 1.  Redistributions of source code must retain the above copyright
7
#     notice, this list of conditions and the following disclaimer.
8
# 2.  Redistributions in binary form must reproduce the above copyright
9
#     notice, this list of conditions and the following disclaimer in the
10
#     documentation and/or other materials provided with the distribution.
11
#
12
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
13
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
14
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
16
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23
#if ENABLE(WEB_AUTHN)
24
25
messages -> WebAuthnProcessProxy NotRefCounted {
26
}
27
28
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/UIProcess/WebProcessPool.cpp +19 lines
Lines 116-121 a/Source/WebKit/UIProcess/WebProcessPool.cpp_sec1
116
#include "GPUProcessProxy.h"
116
#include "GPUProcessProxy.h"
117
#endif
117
#endif
118
118
119
#if ENABLE(WEB_AUTHN)
120
#include "WebAuthnProcessConnectionInfo.h"
121
#include "WebAuthnProcessProxy.h"
122
#endif
123
119
#if ENABLE(REMOTE_INSPECTOR)
124
#if ENABLE(REMOTE_INSPECTOR)
120
#include <JavaScriptCore/RemoteInspector.h>
125
#include <JavaScriptCore/RemoteInspector.h>
121
#endif
126
#endif
Lines 496-501 void WebProcessPool::getGPUProcessConnection(WebProcessProxy& webProcessProxy, M a/Source/WebKit/UIProcess/WebProcessPool.cpp_sec2
496
}
501
}
497
#endif
502
#endif
498
503
504
#if ENABLE(WEB_AUTHN)
505
void WebProcessPool::getWebAuthnProcessConnection(WebProcessProxy& webProcessProxy, Messages::WebProcessProxy::GetWebAuthnProcessConnection::DelayedReply&& reply)
506
{
507
    WebAuthnProcessProxy::singleton().getWebAuthnProcessConnection(webProcessProxy, [this, weakThis = makeWeakPtr(*this), webProcessProxy = makeWeakPtr(webProcessProxy), reply = WTFMove(reply)] (auto& connectionInfo) mutable {
508
        if (UNLIKELY(!IPC::Connection::identifierIsValid(connectionInfo.identifier()) && webProcessProxy && weakThis)) {
509
            WEBPROCESSPOOL_RELEASE_LOG_ERROR(Process, "getWebAuthnProcessConnection: Failed first attempt, retrying");
510
            WebAuthnProcessProxy::singleton().getWebAuthnProcessConnection(*webProcessProxy, WTFMove(reply));
511
            return;
512
        }
513
        reply(connectionInfo);
514
    });
515
}
516
#endif
517
499
bool WebProcessPool::s_useSeparateServiceWorkerProcess = false;
518
bool WebProcessPool::s_useSeparateServiceWorkerProcess = false;
500
519
501
#if ENABLE(SERVICE_WORKER)
520
#if ENABLE(SERVICE_WORKER)
- a/Source/WebKit/UIProcess/WebProcessPool.h +4 lines
Lines 358-363 public: a/Source/WebKit/UIProcess/WebProcessPool.h_sec1
358
    void getGPUProcessConnection(WebProcessProxy&, Messages::WebProcessProxy::GetGPUProcessConnectionDelayedReply&&);
358
    void getGPUProcessConnection(WebProcessProxy&, Messages::WebProcessProxy::GetGPUProcessConnectionDelayedReply&&);
359
#endif
359
#endif
360
360
361
#if ENABLE(WEB_AUTHN)
362
    void getWebAuthnProcessConnection(WebProcessProxy&, Messages::WebProcessProxy::GetWebAuthnProcessConnectionDelayedReply&&);
363
#endif
364
361
    // Network Process Management
365
    // Network Process Management
362
    void networkProcessCrashed(NetworkProcessProxy&);
366
    void networkProcessCrashed(NetworkProcessProxy&);
363
367
- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +7 lines
Lines 769-774 void WebProcessProxy::gpuProcessCrashed() a/Source/WebKit/UIProcess/WebProcessProxy.cpp_sec1
769
}
769
}
770
#endif
770
#endif
771
771
772
#if ENABLE(WEB_AUTHN)
773
void WebProcessProxy::getWebAuthnProcessConnection(Messages::WebProcessProxy::GetWebAuthnProcessConnection::DelayedReply&& reply)
774
{
775
    m_processPool->getWebAuthnProcessConnection(*this, WTFMove(reply));
776
}
777
#endif
778
772
#if !PLATFORM(COCOA)
779
#if !PLATFORM(COCOA)
773
bool WebProcessProxy::platformIsBeingDebugged() const
780
bool WebProcessProxy::platformIsBeingDebugged() const
774
{
781
{
- a/Source/WebKit/UIProcess/WebProcessProxy.h +4 lines
Lines 451-456 private: a/Source/WebKit/UIProcess/WebProcessProxy.h_sec1
451
    void getGPUProcessConnection(Messages::WebProcessProxy::GetGPUProcessConnectionDelayedReply&&);
451
    void getGPUProcessConnection(Messages::WebProcessProxy::GetGPUProcessConnectionDelayedReply&&);
452
#endif
452
#endif
453
453
454
#if ENABLE(WEB_AUTHN)
455
    void getWebAuthnProcessConnection(Messages::WebProcessProxy::GetWebAuthnProcessConnectionDelayedReply&&);
456
#endif
457
454
    bool platformIsBeingDebugged() const;
458
    bool platformIsBeingDebugged() const;
455
    bool shouldAllowNonValidInjectedCode() const;
459
    bool shouldAllowNonValidInjectedCode() const;
456
460
- a/Source/WebKit/UIProcess/WebProcessProxy.messages.in +4 lines
Lines 42-47 messages -> WebProcessProxy LegacyReceiver { a/Source/WebKit/UIProcess/WebProcessProxy.messages.in_sec1
42
    GetGPUProcessConnection() -> (struct WebKit::GPUProcessConnectionInfo connectionInfo) Synchronous
42
    GetGPUProcessConnection() -> (struct WebKit::GPUProcessConnectionInfo connectionInfo) Synchronous
43
#endif
43
#endif
44
44
45
#if ENABLE(WEB_AUTHN)
46
    GetWebAuthnProcessConnection() -> (struct WebKit::WebAuthnProcessConnectionInfo connectionInfo) Synchronous
47
#endif
48
45
    SetIsHoldingLockedFiles(bool isHoldingLockedFiles)
49
    SetIsHoldingLockedFiles(bool isHoldingLockedFiles)
46
50
47
    DidExceedActiveMemoryLimit()
51
    DidExceedActiveMemoryLimit()
- a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist +43 lines
Line 0 a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist_sec1
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleGetInfoString</key>
6
	<string>${BUNDLE_VERSION}, Copyright 2003-2020 Apple Inc.</string>
7
	<key>CFBundleDevelopmentRegion</key>
8
	<string>English</string>
9
	<key>CFBundleExecutable</key>
10
	<string>${EXECUTABLE_NAME}</string>
11
	<key>CFBundleIdentifier</key>
12
	<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
13
	<key>CFBundleInfoDictionaryVersion</key>
14
	<string>6.0</string>
15
	<key>CFBundleName</key>
16
	<string>${PRODUCT_NAME}</string>
17
	<key>CFBundlePackageType</key>
18
	<string>XPC!</string>
19
	<key>CFBundleShortVersionString</key>
20
	<string>${SHORT_VERSION_STRING}</string>
21
	<key>CFBundleSignature</key>
22
	<string>????</string>
23
	<key>CFBundleVersion</key>
24
	<string>${BUNDLE_VERSION}</string>
25
	<key>LSFileQuarantineEnabled</key>
26
	<true/>
27
	<key>NSPrincipalClass</key>
28
	<string>NSApplication</string>
29
	<key>LSUIElement</key>
30
	<true/>
31
	<key>XPCService</key>
32
	<dict>
33
		<key>ServiceType</key>
34
		<string>Application</string>
35
		<key>JoinExistingSession</key>
36
		<true/>
37
		<key>RunLoopType</key>
38
		<string>NSRunLoop</string>
39
		<key>_MultipleInstances</key>
40
		<true/>
41
	</dict>
42
</dict>
43
</plist>
- a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist +43 lines
Line 0 a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist_sec1
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleGetInfoString</key>
6
	<string>${BUNDLE_VERSION}, Copyright 2003-2020 Apple Inc.</string>
7
	<key>CFBundleDevelopmentRegion</key>
8
	<string>English</string>
9
	<key>CFBundleExecutable</key>
10
	<string>${EXECUTABLE_NAME}</string>
11
	<key>CFBundleIdentifier</key>
12
	<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
13
	<key>CFBundleInfoDictionaryVersion</key>
14
	<string>6.0</string>
15
	<key>CFBundleName</key>
16
	<string>${PRODUCT_NAME}</string>
17
	<key>CFBundlePackageType</key>
18
	<string>XPC!</string>
19
	<key>CFBundleShortVersionString</key>
20
	<string>${SHORT_VERSION_STRING}</string>
21
	<key>CFBundleSignature</key>
22
	<string>????</string>
23
	<key>CFBundleVersion</key>
24
	<string>${BUNDLE_VERSION}</string>
25
	<key>LSFileQuarantineEnabled</key>
26
	<true/>
27
	<key>NSPrincipalClass</key>
28
	<string>NSApplication</string>
29
	<key>LSUIElement</key>
30
	<true/>
31
	<key>XPCService</key>
32
	<dict>
33
		<key>ServiceType</key>
34
		<string>Application</string>
35
		<key>RunLoopType</key>
36
		<string>NSRunLoop</string>
37
		<key>_MultipleInstances</key>
38
		<true/>
39
	</dict>
40
	<key>CanInheritApplicationStateFromOtherProcesses</key>
41
	<true/>
42
</dict>
43
</plist>
- a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm +64 lines
Line 0 a/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#import "config.h"
27
28
#import "EnvironmentUtilities.h"
29
#import "WKBase.h"
30
#import "WebAuthnProcess.h"
31
#import "XPCServiceEntryPoint.h"
32
33
#if ENABLE(WEB_AUTHN)
34
35
namespace WebKit {
36
37
class WebAuthnServiceInitializerDelegate : public XPCServiceInitializerDelegate {
38
public:
39
    WebAuthnServiceInitializerDelegate(OSObjectPtr<xpc_connection_t> connection, xpc_object_t initializerMessage)
40
        : XPCServiceInitializerDelegate(WTFMove(connection), initializerMessage)
41
    {
42
    }
43
};
44
45
template<>
46
void initializeAuxiliaryProcess<WebAuthnProcess>(AuxiliaryProcessInitializationParameters&& parameters)
47
{
48
    static NeverDestroyed<WebAuthnProcess> WebAuthnProcess(WTFMove(parameters));
49
}
50
51
} // namespace WebKit
52
53
#endif // ENABLE(WEB_AUTHN)
54
55
extern "C" WK_EXPORT void WEBAUTHN_SERVICE_INITIALIZER(xpc_connection_t connection, xpc_object_t initializerMessage, xpc_object_t priorityBoostMessage);
56
57
void WEBAUTHN_SERVICE_INITIALIZER(xpc_connection_t connection, xpc_object_t initializerMessage, xpc_object_t priorityBoostMessage)
58
{
59
    WTF::initializeMainThread();
60
61
#if ENABLE(WEB_AUTHN)
62
    WebKit::XPCServiceInitializer<WebKit::WebAuthnProcess, WebKit::WebAuthnServiceInitializerDelegate>(adoptOSObject(connection), initializerMessage, priorityBoostMessage);
63
#endif // ENABLE(WEB_AUTHN)
64
}
- a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp +67 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebAuthnConnectionToWebProcess.h"
28
29
#if ENABLE(WEB_AUTHN)
30
31
namespace WebKit {
32
using namespace WebCore;
33
34
Ref<WebAuthnConnectionToWebProcess> WebAuthnConnectionToWebProcess::create(WebAuthnProcess& WebAuthnProcess, WebCore::ProcessIdentifier webProcessIdentifier, IPC::Connection::Identifier connectionIdentifier)
35
{
36
    return adoptRef(*new WebAuthnConnectionToWebProcess(WebAuthnProcess, webProcessIdentifier, connectionIdentifier));
37
}
38
39
WebAuthnConnectionToWebProcess::WebAuthnConnectionToWebProcess(WebAuthnProcess& WebAuthnProcess, WebCore::ProcessIdentifier webProcessIdentifier, IPC::Connection::Identifier connectionIdentifier)
40
    : m_connection(IPC::Connection::createServerConnection(connectionIdentifier, *this))
41
    , m_WebAuthnProcess(WebAuthnProcess)
42
    , m_webProcessIdentifier(webProcessIdentifier)
43
{
44
    RELEASE_ASSERT(RunLoop::isMain());
45
    m_connection->open();
46
}
47
48
WebAuthnConnectionToWebProcess::~WebAuthnConnectionToWebProcess()
49
{
50
    RELEASE_ASSERT(RunLoop::isMain());
51
52
    m_connection->invalidate();
53
}
54
55
void WebAuthnConnectionToWebProcess::didClose(IPC::Connection&)
56
{
57
}
58
59
void WebAuthnConnectionToWebProcess::didReceiveInvalidMessage(IPC::Connection& connection, IPC::MessageName messageName)
60
{
61
    WTFLogAlways("Received an invalid message \"%s\" from the web process.\n", description(messageName));
62
    CRASH();
63
}
64
65
} // namespace WebKit
66
67
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.h +67 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.h_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
#include "Connection.h"
31
#include "WebAuthnConnectionToWebProcessMessages.h"
32
#include <WebCore/ProcessIdentifier.h>
33
#include <wtf/RefCounted.h>
34
35
namespace WebKit {
36
37
class WebAuthnProcess;
38
39
class WebAuthnConnectionToWebProcess
40
    : public RefCounted<WebAuthnConnectionToWebProcess>
41
    , IPC::Connection::Client {
42
public:
43
    static Ref<WebAuthnConnectionToWebProcess> create(WebAuthnProcess&, WebCore::ProcessIdentifier, IPC::Connection::Identifier);
44
    virtual ~WebAuthnConnectionToWebProcess();
45
46
    IPC::Connection& connection() { return m_connection.get(); }
47
    WebAuthnProcess& WebAuthnProcessProcess() { return m_WebAuthnProcess.get(); }
48
    WebCore::ProcessIdentifier webProcessIdentifier() const { return m_webProcessIdentifier; }
49
50
    void cleanupForSuspension(Function<void()>&&);
51
    void endSuspension();
52
53
private:
54
    WebAuthnConnectionToWebProcess(WebAuthnProcess&, WebCore::ProcessIdentifier, IPC::Connection::Identifier);
55
56
    // IPC::Connection::Client
57
    void didClose(IPC::Connection&) final;
58
    void didReceiveInvalidMessage(IPC::Connection&, IPC::MessageName) final;
59
60
    Ref<IPC::Connection> m_connection;
61
    Ref<WebAuthnProcess> m_WebAuthnProcess;
62
    const WebCore::ProcessIdentifier m_webProcessIdentifier;
63
};
64
65
} // namespace WebKit
66
67
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in +28 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in_sec1
1
# Copyright (C) 2020 Apple Inc. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or without
4
# modification, are permitted provided that the following conditions
5
# are met:
6
# 1.  Redistributions of source code must retain the above copyright
7
#     notice, this list of conditions and the following disclaimer.
8
# 2.  Redistributions in binary form must reproduce the above copyright
9
#     notice, this list of conditions and the following disclaimer in the
10
#     documentation and/or other materials provided with the distribution.
11
#
12
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
13
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
14
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
16
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23
#if ENABLE(WEB_AUTHN)
24
25
messages -> WebAuthnConnectionToWebProcess {
26
}
27
28
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.cpp +128 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.cpp_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebAuthnProcess.h"
28
29
#if ENABLE(WEB_AUTHN)
30
31
#include "Logging.h"
32
#include "WebAuthnConnectionToWebProcess.h"
33
#include "WebAuthnProcessCreationParameters.h"
34
#include <wtf/text/AtomString.h>
35
36
namespace WebKit {
37
using namespace WebCore;
38
39
40
WebAuthnProcess::WebAuthnProcess(AuxiliaryProcessInitializationParameters&& parameters)
41
{
42
    initialize(WTFMove(parameters));
43
}
44
45
WebAuthnProcess::~WebAuthnProcess()
46
{
47
}
48
49
void WebAuthnProcess::createWebAuthnConnectionToWebProcess(ProcessIdentifier identifier, CompletionHandler<void(Optional<IPC::Attachment>&&)>&& completionHandler)
50
{
51
    auto ipcConnection = createIPCConnectionPair();
52
    if (!ipcConnection) {
53
        completionHandler({ });
54
        return;
55
    }
56
57
    auto newConnection = WebAuthnConnectionToWebProcess::create(*this, identifier, ipcConnection->first);
58
59
    ASSERT(!m_webProcessConnections.contains(identifier));
60
    m_webProcessConnections.add(identifier, WTFMove(newConnection));
61
62
    completionHandler(WTFMove(ipcConnection->second));
63
}
64
65
void WebAuthnProcess::removeWebAuthnConnectionToWebProcess(WebAuthnConnectionToWebProcess& connection)
66
{
67
    ASSERT(m_webProcessConnections.contains(connection.webProcessIdentifier()));
68
    m_webProcessConnections.remove(connection.webProcessIdentifier());
69
}
70
71
void WebAuthnProcess::connectionToWebProcessClosed(IPC::Connection& connection)
72
{
73
}
74
75
bool WebAuthnProcess::shouldTerminate()
76
{
77
    return m_webProcessConnections.isEmpty();
78
}
79
80
void WebAuthnProcess::didClose(IPC::Connection&)
81
{
82
    ASSERT(RunLoop::isMain());
83
}
84
85
void WebAuthnProcess::lowMemoryHandler(Critical critical)
86
{
87
    WTF::releaseFastMallocFreeMemory();
88
}
89
90
void WebAuthnProcess::initializeWebAuthnProcess(WebAuthnProcessCreationParameters&& parameters)
91
{
92
    WTF::Thread::setCurrentThreadIsUserInitiated();
93
    AtomString::init();
94
}
95
96
void WebAuthnProcess::prepareToSuspend(bool isSuspensionImminent, CompletionHandler<void()>&& completionHandler)
97
{
98
    RELEASE_LOG(ProcessSuspension, "%p - WebAuthnProcess::prepareToSuspend(), isSuspensionImminent: %d", this, isSuspensionImminent);
99
100
    lowMemoryHandler(Critical::Yes);
101
}
102
103
void WebAuthnProcess::processDidResume()
104
{
105
    RELEASE_LOG(ProcessSuspension, "%p - WebAuthnProcess::processDidResume()", this);
106
    resume();
107
}
108
109
void WebAuthnProcess::resume()
110
{
111
}
112
113
void WebAuthnProcess::processDidTransitionToForeground()
114
{
115
}
116
117
void WebAuthnProcess::processDidTransitionToBackground()
118
{
119
}
120
121
WebAuthnConnectionToWebProcess* WebAuthnProcess::webProcessConnection(ProcessIdentifier identifier) const
122
{
123
    return m_webProcessConnections.get(identifier);
124
}
125
126
} // namespace WebKit
127
128
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h +84 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
#include "AuxiliaryProcess.h"
31
#include "WebAuthnProcessMessages.h"
32
#include <wtf/Function.h>
33
#include <wtf/MemoryPressureHandler.h>
34
#include <wtf/WeakPtr.h>
35
36
namespace WebKit {
37
38
class WebAuthnConnectionToWebProcess;
39
struct WebAuthnProcessCreationParameters;
40
41
class WebAuthnProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<WebAuthnProcess>, public CanMakeWeakPtr<WebAuthnProcess> {
42
    WTF_MAKE_NONCOPYABLE(WebAuthnProcess);
43
public:
44
    explicit WebAuthnProcess(AuxiliaryProcessInitializationParameters&&);
45
    ~WebAuthnProcess();
46
    static constexpr ProcessType processType = ProcessType::WebAuthn;
47
48
    void removeWebAuthnConnectionToWebProcess(WebAuthnConnectionToWebProcess&);
49
50
    void prepareToSuspend(bool isSuspensionImminent, CompletionHandler<void()>&&);
51
    void processDidResume();
52
    void resume();
53
54
    void connectionToWebProcessClosed(IPC::Connection&);
55
56
    WebAuthnConnectionToWebProcess* webProcessConnection(WebCore::ProcessIdentifier) const;
57
58
private:
59
    void lowMemoryHandler(Critical);
60
61
    // AuxiliaryProcess
62
    void initializeProcess(const AuxiliaryProcessInitializationParameters&) override;
63
    void initializeProcessName(const AuxiliaryProcessInitializationParameters&) override;
64
    void initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&) override;
65
    bool shouldTerminate() override;
66
67
    // IPC::Connection::Client
68
    void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
69
    void didClose(IPC::Connection&) override;
70
71
    // Message Handlers
72
    void initializeWebAuthnProcess(WebAuthnProcessCreationParameters&&);
73
    void createWebAuthnConnectionToWebProcess(WebCore::ProcessIdentifier, CompletionHandler<void(Optional<IPC::Attachment>&&)>&&);
74
75
    void processDidTransitionToForeground();
76
    void processDidTransitionToBackground();
77
78
    // Connections to WebProcesses.
79
    HashMap<WebCore::ProcessIdentifier, Ref<WebAuthnConnectionToWebProcess>> m_webProcessConnections;
80
};
81
82
} // namespace WebKit
83
84
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.messages.in +36 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnProcess.messages.in_sec1
1
# Copyright (C) 2019-2020 Apple Inc. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or without
4
# modification, are permitted provided that the following conditions
5
# are met:
6
# 1.  Redistributions of source code must retain the above copyright
7
#     notice, this list of conditions and the following disclaimer.
8
# 2.  Redistributions in binary form must reproduce the above copyright
9
#     notice, this list of conditions and the following disclaimer in the
10
#     documentation and/or other materials provided with the distribution.
11
#
12
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
13
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
14
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
16
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23
#if ENABLE(WEB_AUTHN)
24
25
messages -> WebAuthnProcess {
26
    # Initializes the WebAuthn process.
27
    InitializeWebAuthnProcess(struct WebKit::WebAuthnProcessCreationParameters processCreationParameters)
28
29
    # Creates a connection for communication with a WebProcess
30
    CreateWebAuthnConnectionToWebProcess(WebCore::ProcessIdentifier processIdentifier) -> (Optional<IPC::Attachment> connectionIdentifier) Async
31
32
    ProcessDidTransitionToForeground()
33
    ProcessDidTransitionToBackground()
34
}
35
36
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.cpp +53 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.cpp_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebAuthnProcessCreationParameters.h"
28
29
#if ENABLE(WEB_AUTHN)
30
31
#include "ArgumentCoders.h"
32
#include "WebCoreArgumentCoders.h"
33
34
#if PLATFORM(COCOA)
35
#include "ArgumentCodersCF.h"
36
#endif
37
38
namespace WebKit {
39
40
WebAuthnProcessCreationParameters::WebAuthnProcessCreationParameters() = default;
41
42
void WebAuthnProcessCreationParameters::encode(IPC::Encoder& encoder) const
43
{
44
}
45
46
bool WebAuthnProcessCreationParameters::decode(IPC::Decoder& decoder, WebAuthnProcessCreationParameters& result)
47
{
48
    return true;
49
}
50
51
} // namespace WebKit
52
53
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.h +46 lines
Line 0 a/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.h_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
namespace IPC {
31
class Decoder;
32
class Encoder;
33
}
34
35
namespace WebKit {
36
37
struct WebAuthnProcessCreationParameters {
38
    WebAuthnProcessCreationParameters();
39
40
    void encode(IPC::Encoder&) const;
41
    static WARN_UNUSED_RETURN bool decode(IPC::Decoder&, WebAuthnProcessCreationParameters&);
42
};
43
44
} // namespace WebKit
45
46
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/ios/WebAuthnProcessIOS.mm +53 lines
Line 0 a/Source/WebKit/WebAuthnProcess/ios/WebAuthnProcessIOS.mm_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#import "config.h"
27
#import "WebAuthnProcess.h"
28
29
#if ENABLE(WEB_AUTHN) && PLATFORM(IOS_FAMILY)
30
31
#import <WebCore/NotImplemented.h>
32
#import <WebCore/WebCoreThreadSystemInterface.h>
33
34
namespace WebKit {
35
using namespace WebCore;
36
37
void WebAuthnProcess::initializeProcess(const AuxiliaryProcessInitializationParameters&)
38
{
39
    InitWebCoreThreadSystemInterface();
40
}
41
42
void WebAuthnProcess::initializeProcessName(const AuxiliaryProcessInitializationParameters&)
43
{
44
    notImplemented();
45
}
46
47
void WebAuthnProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&)
48
{
49
}
50
51
} // namespace WebKit
52
53
#endif // ENABLE(WEB_AUTHN) && PLATFORM(IOS_FAMILY)
- a/Source/WebKit/WebAuthnProcess/mac/WebAuthnProcessMac.mm +71 lines
Line 0 a/Source/WebKit/WebAuthnProcess/mac/WebAuthnProcessMac.mm_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#import "config.h"
27
#import "WebAuthnProcess.h"
28
29
#if ENABLE(WEB_AUTHN) && PLATFORM(MAC)
30
31
#import "SandboxInitializationParameters.h"
32
#import "WKFoundation.h"
33
#import "WebAuthnProcessCreationParameters.h"
34
#import <WebCore/LocalizedStrings.h>
35
#import <pal/spi/cocoa/LaunchServicesSPI.h>
36
#import <pal/spi/mac/HIServicesSPI.h>
37
#import <sysexits.h>
38
#import <wtf/MemoryPressureHandler.h>
39
#import <wtf/text/WTFString.h>
40
41
namespace WebKit {
42
using namespace WebCore;
43
44
void WebAuthnProcess::initializeProcess(const AuxiliaryProcessInitializationParameters&)
45
{
46
    // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
47
    OSStatus error = SetApplicationIsDaemon(true);
48
    ASSERT_UNUSED(error, error == noErr);
49
50
    launchServicesCheckIn();
51
}
52
53
void WebAuthnProcess::initializeProcessName(const AuxiliaryProcessInitializationParameters& parameters)
54
{
55
    NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Web Authentication", "visible name of the WebAuthn process. The argument is the application name."), (NSString *)parameters.uiProcessName];
56
    _LSSetApplicationInformationItem(kLSDefaultSessionID, _LSGetCurrentApplicationASN(), _kLSDisplayNameKey, (CFStringRef)applicationName, nullptr);
57
}
58
59
void WebAuthnProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)
60
{
61
    // Need to override the default, because service has a different bundle ID.
62
    NSBundle *webKit2Bundle = [NSBundle bundleForClass:NSClassFromString(@"WKWebView")];
63
64
    sandboxParameters.setOverrideSandboxProfilePath([webKit2Bundle pathForResource:@"com.apple.WebKit.WebAuthnProcess" ofType:@"sb"]);
65
66
    AuxiliaryProcess::initializeSandbox(parameters, sandboxParameters);
67
}
68
69
} // namespace WebKit
70
71
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in +440 lines
Line 0 a/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in_sec1
1
; Copyright (C) 2010-2020 Apple Inc. All rights reserved.
2
;
3
; Redistribution and use in source and binary forms, with or without
4
; modification, are permitted provided that the following conditions
5
; are met:
6
; 1. Redistributions of source code must retain the above copyright
7
;    notice, this list of conditions and the following disclaimer.
8
; 2. Redistributions in binary form must reproduce the above copyright
9
;    notice, this list of conditions and the following disclaimer in the
10
;    documentation and/or other materials provided with the distribution.
11
;
12
; THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
13
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
14
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
16
; BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
17
; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
18
; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19
; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
20
; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21
; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
22
; THE POSSIBILITY OF SUCH DAMAGE.
23
24
(version 1)
25
(deny default (with partial-symbolication))
26
(allow system-audit file-read-metadata)
27
28
;;;
29
;;; The following rules were originally contained in 'system.sb'. We are duplicating them here so we can
30
;;; remove unneeded sandbox extensions.
31
;;;
32
33
;;; Allow registration of per-pid services.
34
(allow mach-register (local-name-prefix ""))
35
36
;;; Allow read access to standard system paths.
37
(allow file-read*
38
    (require-all (file-mode #o0004)
39
    (require-any (subpath "/Library/Filesystems/NetFSPlugins")
40
    (subpath "/Library/Apple/System")
41
    (subpath "/Library/Preferences/Logging")      ; Logging Rethink
42
    (subpath "/System")
43
    (subpath "/private/var/db/dyld")
44
    (subpath "/private/var/db/timezone")
45
    (subpath "/usr/lib")
46
    (subpath "/usr/share"))))
47
48
;;; Allow reading internal profiles on development builds
49
(allow file-read*
50
    (require-all (file-mode #o0004)
51
    (subpath "/AppleInternal/Library/Preferences/Logging")
52
    (system-attribute apple-internal)))
53
54
;;; Allow mapping of system frameworks + dylibs
55
(allow file-map-executable
56
    (subpath "/Library/Apple/System/Library/Frameworks")
57
    (subpath "/Library/Apple/System/Library/PrivateFrameworks")
58
    (subpath "/System/Library/Frameworks")
59
    (subpath "/System/Library/PrivateFrameworks")
60
    (subpath "/usr/lib")
61
    (subpath "/usr/appleinternal/lib/sanitizers"))
62
63
(allow file-read-metadata
64
    (literal "/etc")
65
    (literal "/tmp")
66
    (literal "/var")
67
    (literal "/private/etc/localtime"))
68
69
70
;;; Allow access to standard special files.
71
(allow file-read*
72
    (literal "/dev/autofs_nowait")
73
    (literal "/dev/random")
74
    (literal "/dev/urandom")
75
    (literal "/private/etc/master.passwd")
76
    (literal "/private/etc/passwd"))
77
78
(allow file-read*
79
       file-write-data
80
    (literal "/dev/null")
81
    (literal "/dev/zero"))
82
83
(allow file-read*
84
       file-write-data
85
       file-ioctl
86
    (literal "/dev/dtracehelper"))
87
88
;;; Allow creation of core dumps.
89
(allow file-write-create
90
    (require-all (prefix "/cores/")
91
        (vnode-type REGULAR-FILE)))
92
93
;;; Allow IPC to standard system agents.
94
(allow ipc-posix-shm-read*
95
    (ipc-posix-name "apple.shm.notification_center")
96
    (ipc-posix-name-prefix "apple.cfprefs."))
97
98
;;;
99
;;; End rules originally copied from 'system.sb'
100
;;;
101
102
;;; process-info* defaults to allow; deny it and then allow operations we actually need.
103
(deny process-info*)
104
(allow process-info-pidinfo)
105
(allow process-info-setcontrol (target self))
106
(allow process-codesigning-status*)
107
108
(deny sysctl*)
109
(allow sysctl-read
110
    (sysctl-name
111
        "hw.byteorder"
112
        "hw.busfrequency_max"
113
        "hw.cputype"
114
        "hw.machine"
115
        "hw.memsize"
116
        "hw.model"
117
        "hw.ncpu"
118
        "hw.vectorunit"
119
        "kern.bootargs" ;; <rdar://problem/47738015>
120
        "kern.hostname"
121
        "kern.maxfilesperproc"
122
        "kern.memorystatus_level"
123
        "kern.osproductversion" ;; <rdar://problem/51756739>
124
        "kern.osversion"
125
        "kern.safeboot"
126
        "kern.version"
127
        "machdep.cpu.brand_string"
128
        "security.mac.sandbox.sentinel"
129
        "kern.tcsm_enable"
130
        "kern.tcsm_available"
131
        "vm.footprint_suspend")
132
    (sysctl-name-regex #"^hw.(active|avail)cpu")
133
    (sysctl-name-regex #"^hw.(busfrequency|cachelinesize|cpufrequency(|_max)|pagesize|tbfrequency)(|_compat)")
134
    (sysctl-name-regex #"^hw.l.+cachesize")
135
    (sysctl-name-regex #"^hw.(logical|physical)cpu_max")
136
    (sysctl-name-regex #"^hw.optional\.")
137
    (sysctl-name-regex #"^kern.os(release|type|variant_status|version)")
138
    (sysctl-name-regex #"^net.routetable")
139
)
140
141
(allow sysctl-write
142
    (sysctl-name
143
        "kern.tcsm_enable"))
144
145
(deny mach-lookup (xpc-service-name-prefix ""))
146
(allow mach-lookup
147
    (xpc-service-name "com.apple.PerformanceAnalysis.animationperfd")
148
    (xpc-service-name "com.apple.accessibility.mediaaccessibilityd")
149
    (xpc-service-name "com.apple.audio.SandboxHelper")
150
    (xpc-service-name "com.apple.coremedia.videodecoder")
151
    (xpc-service-name "com.apple.coremedia.videoencoder")
152
    (xpc-service-name "com.apple.hiservices-xpcservice")
153
    (xpc-service-name "com.apple.print.normalizerd")
154
)
155
156
;; Utility functions for home directory relative path filters
157
(define (home-regex home-relative-regex)
158
  (regex (string-append "^" (regex-quote (param "HOME_DIR")) home-relative-regex)))
159
160
(define (home-subpath home-relative-subpath)
161
  (subpath (string-append (param "HOME_DIR") home-relative-subpath)))
162
163
(define (home-literal home-relative-literal)
164
  (literal (string-append (param "HOME_DIR") home-relative-literal)))
165
166
(define (allow-read-directory-and-issue-read-extensions path)
167
    (if path
168
        (begin
169
            (allow file-read* (subpath path))
170
            (allow file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read") (subpath path))))))
171
172
(define (allow-read-write-directory-and-issue-read-write-extensions path)
173
    (if path
174
        (begin
175
            (allow file-read* file-write* (subpath path))
176
            (allow file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read") (subpath path)))
177
            (allow file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read-write") (subpath path))))))
178
179
;; Remove when <rdar://problem/29646094> is fixed.
180
(define (HEX-pattern-match-generator pattern-descriptor)
181
    (letrec ((pattern-string ""))
182
        (for-each  (lambda (repeat-count)
183
            (if (zero? repeat-count)
184
                (set! pattern-string (string-append  pattern-string "-"))
185
                (let appender ((count repeat-count))
186
                    (if (> count 0)
187
                        (begin
188
                            (set! pattern-string (string-append  pattern-string "[0-9A-F]"))
189
                            (appender (- count 1)))))))
190
            pattern-descriptor)
191
    pattern-string))
192
193
;; return a regex pattern matching string for 8-4-4-4-12 UUIDs:
194
(define (uuid-HEX-pattern-match-string)
195
    (HEX-pattern-match-generator '(8 0 4 0 4 0 4 0 12)))
196
197
;; global to hold the computed UUID matching pattern.
198
(define *uuid-pattern* "")
199
200
(define (uuid-regex-string)
201
    (if (zero? (string-length *uuid-pattern*))
202
        (set! *uuid-pattern* (uuid-HEX-pattern-match-string)))
203
    *uuid-pattern*)
204
205
;; Read-only preferences and data
206
(allow file-read*
207
    ;; Basic system paths
208
    (subpath "/Library/Dictionaries")
209
    (subpath "/Library/Fonts")
210
    (subpath "/Library/Frameworks")
211
    (subpath "/Library/Managed Preferences")
212
    (subpath "/Library/Speech/Synthesizers")
213
    (regex #"^/private/etc/(hosts|group|passwd)$")
214
215
    (literal "/Library/Application Support/CrashReporter/SubmitDiagInfo.domains")
216
217
    ;; System and user preferences
218
    (home-literal "/.CFUserTextEncoding")
219
220
    ;; FIXME: This should be removed when <rdar://problem/8957845> is fixed.
221
    (home-subpath "/Library/Fonts")
222
223
    (subpath "/Library/Audio/Plug-Ins/HAL")
224
225
    (home-subpath "/Library/Dictionaries"))
226
227
(allow file-read-data
228
    (literal "/usr/local/lib/log") ; <rdar://problem/36629495>
229
    ;; Needed for AES3 support
230
    (subpath "/Library/Audio/Plug-Ins/Components"))
231
232
;; Preferences support
233
(allow user-preference-read
234
    (preference-domain
235
        "kCFPreferencesAnyApplication"
236
        "com.apple.Accessibility"
237
        "com.apple.ATS"
238
        "com.apple.CoreGraphics"
239
        "com.apple.DownloadAssessment"
240
        "com.apple.HIToolbox"
241
        "com.apple.LaunchServices"
242
        "com.apple.MultitouchSupport" ;; FIXME: Remove when <rdar://problem/13011633> is fixed.
243
        "com.apple.ServicesMenu.Services" ;; Needed for NSAttributedString <rdar://problem/10844321>
244
        "com.apple.ViewBridge" ;; Needed for Input elements.
245
        "com.apple.WebFoundation"
246
        "com.apple.avfoundation"
247
        "com.apple.avfoundation.frecents" ;; <rdar://problem/33137029>
248
        "com.apple.avfoundation.videoperformancehud" ;; <rdar://problem/31594568>
249
        "com.apple.coremedia"
250
        "com.apple.crypto"
251
        "com.apple.driver.AppleBluetoothMultitouch.mouse"
252
        "com.apple.driver.AppleBluetoothMultitouch.trackpad"
253
        "com.apple.driver.AppleHIDMouse"
254
        "com.apple.lookup.shared"
255
        "com.apple.mediaaccessibility" ;; Needed for custom caption styles
256
        "com.apple.networkConnect"
257
        "com.apple.speech.voice.prefs"
258
        "com.apple.systemsound"
259
        "com.apple.universalaccess"
260
        "edu.mit.Kerberos"
261
        "pbs" ;; Needed for NSAttributedString <rdar://problem/10844321>
262
))
263
264
; (Temporary) backward compatibility with non-CFPreferences readers.
265
(allow file-read*
266
    (literal "/Library/Preferences/com.apple.ViewBridge.plist"))
267
268
; FIXME: This is needed for some security framework calls (that use non-CFPreferences readers)
269
(allow file-read-data
270
    (literal "/Library/Preferences/com.apple.security.plist")
271
    (home-subpath "/Library/Preferences/com.apple.security.plist"))
272
273
;; On-disk WebKit2 framework location, to account for debug installations outside of /System/Library/Frameworks,
274
;; and to allow issuing extensions.
275
(allow-read-directory-and-issue-read-extensions (param "WEBKIT2_FRAMEWORK_DIR"))
276
277
;; Allow issuing extensions to system libraries that the Network process can already read.
278
;; This is to avoid warnings attempting to create extensions for these resources.
279
(allow-read-directory-and-issue-read-extensions "/System/Library/PrivateFrameworks/WebInspectorUI.framework")
280
281
;; Sandbox extensions
282
(define (apply-read-and-issue-extension op path-filter)
283
    (op file-read* path-filter)
284
    (op file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read") path-filter)))
285
(define (apply-write-and-issue-extension op path-filter)
286
    (op file-write* path-filter)
287
    (op file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read-write") path-filter)))
288
(define (read-only-and-issue-extensions path-filter)
289
    (apply-read-and-issue-extension allow path-filter))
290
(define (read-write-and-issue-extensions path-filter)
291
    (apply-read-and-issue-extension allow path-filter)
292
    (apply-write-and-issue-extension allow path-filter))
293
(read-only-and-issue-extensions (extension "com.apple.app-sandbox.read"))
294
(read-write-and-issue-extensions (extension "com.apple.app-sandbox.read-write"))
295
(allow mach-lookup (extension "com.apple.app-sandbox.mach")) ;; FIXME: Should be removed when <rdar://problem/13066206> is fixed.
296
297
(allow mach-lookup
298
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
299
    (with report) (with telemetry)
300
#endif
301
    (global-name "com.apple.audio.AudioComponentRegistrar")
302
    (global-name "com.apple.awdd")
303
    (global-name "com.apple.cfprefsd.agent")
304
    (global-name "com.apple.cookied")
305
    (global-name "com.apple.diagnosticd")
306
    (global-name "com.apple.iconservices")
307
    (global-name "com.apple.iconservices.store")
308
    (global-name "com.apple.mobileassetd")
309
    (global-name "com.apple.powerlog.plxpclogger.xpc")
310
    (global-name "com.apple.system.logger")
311
)
312
313
;; Various services required by AppKit and other frameworks
314
(allow mach-lookup
315
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 101400
316
       (global-name "com.apple.FontObjectsServer")
317
#endif
318
       (global-name "com.apple.PowerManagement.control")
319
       (global-name "com.apple.SystemConfiguration.configd")
320
       (global-name "com.apple.analyticsd")
321
       (global-name "com.apple.assertiond.processassertionconnection")
322
       (global-name "com.apple.audio.SystemSoundServer-OSX")
323
       (global-name "com.apple.audio.audiohald")
324
       (global-name "com.apple.cfprefsd.daemon")
325
       (global-name "com.apple.coreservices.launchservicesd")
326
       (global-name "com.apple.fonts")
327
       (global-name "com.apple.mediaremoted.xpc")
328
       (global-name "com.apple.logd")
329
       (global-name "com.apple.logd.events")
330
       (global-name "com.apple.lsd.mapdb")
331
       (global-name "com.apple.lskdd") ;; <rdar://problem/49123855>
332
       (global-name "com.apple.tccd")
333
       (global-name "com.apple.tccd.system")
334
       (global-name "com.apple.trustd.agent")
335
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 || PLATFORM(MACCATALYST)
336
       (global-name "com.apple.CARenderServer") ; Needed for [CAContext remoteContextWithOptions]
337
#else
338
       (global-name "com.apple.windowserver.active")
339
#endif
340
)
341
342
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 || PLATFORM(MACCATALYST)
343
;; <rdar://problem/47268166>
344
(allow mach-lookup (xpc-service-name "com.apple.MTLCompilerService"))
345
#endif
346
347
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 || PLATFORM(MACCATALYST)
348
(deny mach-lookup (with no-log)
349
    (global-name "com.apple.CoreServices.coreservicesd")
350
    (global-name "com.apple.DiskArbitration.diskarbitrationd")
351
    (global-name "com.apple.ViewBridgeAuxiliary")
352
    (global-name "com.apple.windowserver.active"))
353
#endif
354
355
;; Needed to support encrypted media playback <rdar://problem/40038478>
356
(allow mach-lookup
357
    (global-name "com.apple.SecurityServer")
358
    (global-name "com.apple.ocspd"))
359
360
(allow file-read* file-write* (subpath "/private/var/db/mds/system")) ;; FIXME: This should be removed when <rdar://problem/9538414> is fixed.
361
362
(allow file-read*
363
       (subpath "/private/var/db/mds")
364
       (literal "/private/var/db/DetachedSignatures"))
365
366
(allow ipc-posix-shm-read* ipc-posix-shm-write-data ipc-posix-shm-write-create
367
       (ipc-posix-name "com.apple.AppleDatabaseChanged"))
368
369
;; CoreFoundation. We don't import com.apple.corefoundation.sb, because it allows unnecessary access to pasteboard.
370
(allow mach-lookup
371
    (global-name-regex #"^com.apple.distributed_notifications")
372
#if !HAVE(CSCHECKFIXDISABLE)
373
    (global-name "com.apple.CoreServices.coreservicesd")
374
#endif
375
)
376
377
(allow file-read-data
378
    (literal "/dev/autofs_nowait")) ; Used by CF to circumvent automount triggers
379
(allow ipc-posix-shm
380
    (ipc-posix-name-regex #"^CFPBS:")) ; <rdar://problem/13757475>
381
(allow system-fsctl (fsctl-command (_IO "h" 47)))
382
383
;; Graphics
384
(system-graphics)
385
386
;; Networking
387
(allow network-outbound
388
       ;; Local mDNSResponder for DNS, arbitrary outbound TCP
389
       ;; Note: This is needed for some media playback features. <rdar://problem/38191574>
390
       ;; Remove this permission when <rdar://problem/38240572> is fixed.
391
       (literal "/private/var/run/mDNSResponder")
392
       ;; ObjC map_images needs to send logging data to syslog. <rdar://problem/39778918>
393
       (literal "/private/var/run/syslog")
394
       (remote tcp))
395
396
;; CFNetwork
397
(allow file-read-data (path "/private/var/db/nsurlstoraged/dafsaData.bin"))
398
399
#if PLATFORM(MAC)
400
;; FIXME should be removed when <rdar://problem/9347205> + related radar in Safari is fixed
401
(allow mach-lookup
402
       (global-name "com.apple.system.logger")
403
       (global-name "com.apple.system.notification_center"))
404
#endif
405
406
(if (defined? 'vnode-type)
407
        (deny file-write-create (vnode-type SYMLINK)))
408
409
;; Reserve a namespace for additional protected extended attributes.
410
(deny file-read-xattr file-write-xattr (xattr-regex #"^com\.apple\.security\.private\."))
411
412
(deny file-read* file-write* (with no-log)
413
       ;; FIXME: Should be removed after <rdar://problem/10463881> is fixed.
414
       (home-literal "/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2")
415
       (home-literal "/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2-journal"))
416
417
;; Deny access needed for unnecessary NSApplication initialization.
418
;; FIXME: This can be removed once <rdar://problem/13011633> is fixed.
419
(deny file-read* (with no-log)
420
       (subpath "/Library/InputManagers")
421
       (home-subpath "/Library/InputManagers"))
422
(deny user-preference-read (with no-log)
423
    (preference-domain "com.apple.speech.recognition.AppleSpeechRecognition.prefs"))
424
(deny mach-lookup (with no-log)
425
       (global-name "com.apple.coreservices.appleevents")
426
       (global-name "com.apple.pasteboard.1")
427
       (global-name "com.apple.speech.recognitionserver"))
428
#if PLATFORM(MAC)
429
;; Also part of unnecessary NSApplication initialization, but we can't block access to these yet, see <rdar://problem/13869765>.
430
(allow file-read*
431
       (subpath "/Library/Components")
432
       (subpath "/Library/Keyboard Layouts")
433
       (subpath "/Library/Input Methods")
434
       (home-subpath "/Library/Components")
435
       (home-subpath "/Library/Keyboard Layouts")
436
       (home-subpath "/Library/Input Methods"))
437
#endif
438
439
;; Data Detectors
440
(allow file-read* (subpath "/private/var/db/datadetectors/sys"))
- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj -100 / +247 lines
Lines 14-20 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec1
14
				BCFFCA8A160D6DEA003DF315 /* Add XPCServices symlink */,
14
				BCFFCA8A160D6DEA003DF315 /* Add XPCServices symlink */,
15
			);
15
			);
16
			dependencies = (
16
			dependencies = (
17
				57A9FF0C252C31D6006A2040 /* PBXTargetDependency */,
17
				5742A2FA2535619D00B7BA14 /* PBXTargetDependency */,
18
				BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
18
				BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
19
				372EBB492017E6CF00085064 /* PBXTargetDependency */,
19
				372EBB492017E6CF00085064 /* PBXTargetDependency */,
20
				BC82844616B4FF6600A278FE /* PBXTargetDependency */,
20
				BC82844616B4FF6600A278FE /* PBXTargetDependency */,
Lines 1099-1106 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec2
1099
		572EBBDA2538F6B4000552B3 /* AppAttestInternalSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 572EBBD82538F6A1000552B3 /* AppAttestInternalSoftLink.mm */; };
1099
		572EBBDA2538F6B4000552B3 /* AppAttestInternalSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 572EBBD82538F6A1000552B3 /* AppAttestInternalSoftLink.mm */; };
1100
		572EBBDB2538F6B6000552B3 /* AppAttestInternalSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */; };
1100
		572EBBDB2538F6B6000552B3 /* AppAttestInternalSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */; };
1101
		572EBBDD25392181000552B3 /* AppAttestSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBDC25392181000552B3 /* AppAttestSPI.h */; };
1101
		572EBBDD25392181000552B3 /* AppAttestSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBDC25392181000552B3 /* AppAttestSPI.h */; };
1102
		572EBBBF2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 572EBBBB2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp */; };
1103
		572EBBC02536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBBC2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h */; };
1104
		572EBBC12536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 572EBBBD2536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp */; };
1105
		572EBBC22536A60A000552B3 /* WebAuthnProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBBE2536A60A000552B3 /* WebAuthnProcessMessages.h */; };
1106
		572EBBC42536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb in Resources */ = {isa = PBXBuildFile; fileRef = 572EBBC32536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb */; };
1107
		572EBBC92536AFD5000552B3 /* WebAuthnProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBC62536AFD5000552B3 /* WebAuthnProcessProxy.h */; };
1108
		572EBBCC2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBCB2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h */; };
1109
		572EBBCF2536BB11000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 572EBBCD2536BB10000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp */; };
1110
		572EBBD02536BB11000552B3 /* WebAuthnProcessProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBCE2536BB10000552B3 /* WebAuthnProcessProxyMessages.h */; };
1111
		572EBBD52536C885000552B3 /* WebAuthnProcessConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBD22536C885000552B3 /* WebAuthnProcessConnection.h */; };
1112
		572EBBD72537EBAE000552B3 /* ExtraPrivateSymbolsForTAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = ECA680D31E6904B500731D20 /* ExtraPrivateSymbolsForTAPI.h */; };
1102
		572FD44322265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */; };
1113
		572FD44322265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */; };
1103
		574217922400E286002B303D /* LocalAuthenticationSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 574217912400E098002B303D /* LocalAuthenticationSPI.h */; };
1114
		574217922400E286002B303D /* LocalAuthenticationSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 574217912400E098002B303D /* LocalAuthenticationSPI.h */; };
1115
		5742A2EB2535613F00B7BA14 /* AuxiliaryProcessMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CE9120F2293C25F005BEC78 /* AuxiliaryProcessMain.cpp */; };
1116
		5742A2EC2535613F00B7BA14 /* XPCServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839616B47EC400A278FE /* XPCServiceMain.mm */; };
1117
		5742A2EE2535613F00B7BA14 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
1118
		5742A2EF2535613F00B7BA14 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; };
1119
		5742A30825358A0400B7BA14 /* WebAuthnProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5742A30625358A0400B7BA14 /* WebAuthnProcessCreationParameters.h */; };
1120
		5742A30D25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 5742A30A25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h */; };
1121
		5742A318253648E500B7BA14 /* WebAuthnProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 5742A315253648E400B7BA14 /* WebAuthnProcess.h */; };
1104
		574728D123456E98001700AF /* _WKWebAuthenticationPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */; settings = {ATTRIBUTES = (Private, ); }; };
1122
		574728D123456E98001700AF /* _WKWebAuthenticationPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */; settings = {ATTRIBUTES = (Private, ); }; };
1105
		574728D4234570AE001700AF /* _WKWebAuthenticationPanelInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728D3234570AE001700AF /* _WKWebAuthenticationPanelInternal.h */; };
1123
		574728D4234570AE001700AF /* _WKWebAuthenticationPanelInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728D3234570AE001700AF /* _WKWebAuthenticationPanelInternal.h */; };
1106
		57597EB921811D9A0037F924 /* CtapHidDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 57597EB721811D9A0037F924 /* CtapHidDriver.h */; };
1124
		57597EB921811D9A0037F924 /* CtapHidDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 57597EB721811D9A0037F924 /* CtapHidDriver.h */; };
Lines 1108-1114 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec3
1108
		575B1BB823CE9BFC0020639A /* WebAutomationSessionProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C0A19441C8FF1A800FE0EBB /* WebAutomationSessionProxy.cpp */; };
1126
		575B1BB823CE9BFC0020639A /* WebAutomationSessionProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C0A19441C8FF1A800FE0EBB /* WebAutomationSessionProxy.cpp */; };
1109
		575B1BB923CE9C0B0020639A /* SimulatedInputDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 995226D5207D184600F78420 /* SimulatedInputDispatcher.cpp */; };
1127
		575B1BB923CE9C0B0020639A /* SimulatedInputDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 995226D5207D184600F78420 /* SimulatedInputDispatcher.cpp */; };
1110
		575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */; };
1128
		575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */; };
1111
		576BCD5E252FD22D00CE9F87 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
1112
		576CA9D722B862180030143C /* SOAuthorizationNSURLExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317322B35148008D0E8B /* SOAuthorizationNSURLExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
1129
		576CA9D722B862180030143C /* SOAuthorizationNSURLExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317322B35148008D0E8B /* SOAuthorizationNSURLExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
1113
		5772F206217DBD6A0056BF2C /* HidService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5772F204217DBD6A0056BF2C /* HidService.h */; };
1130
		5772F206217DBD6A0056BF2C /* HidService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5772F204217DBD6A0056BF2C /* HidService.h */; };
1114
		577FF7822346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 577FF7812346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h */; };
1131
		577FF7822346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 577FF7812346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h */; };
Lines 1117-1124 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec4
1117
		579F1BF623C80DB600C7D4B4 /* _WKWebAuthenticationAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BF423C80DB600C7D4B4 /* _WKWebAuthenticationAssertionResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
1134
		579F1BF623C80DB600C7D4B4 /* _WKWebAuthenticationAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BF423C80DB600C7D4B4 /* _WKWebAuthenticationAssertionResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
1118
		579F1BF923C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BF823C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h */; };
1135
		579F1BF923C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BF823C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h */; };
1119
		579F1BFC23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BFA23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h */; };
1136
		579F1BFC23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BFA23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h */; };
1120
		57A9FF09252BEAF0006A2040 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57A9FF08252BEAF0006A2040 /* main.mm */; };
1121
		57A9FF1D252C6CE6006A2040 /* libWTF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57A9FF15252C6AEF006A2040 /* libWTF.a */; };
1122
		57AC8F50217FEED90055438C /* HidConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 57AC8F4E217FEED90055438C /* HidConnection.h */; };
1137
		57AC8F50217FEED90055438C /* HidConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 57AC8F4E217FEED90055438C /* HidConnection.h */; };
1123
		57B4B46020B504AC00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B4B45E20B504AB00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h */; };
1138
		57B4B46020B504AC00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B4B45E20B504AB00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h */; };
1124
		57B826412304EB3E00B72EB0 /* NearFieldSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B826402304EB3E00B72EB0 /* NearFieldSPI.h */; };
1139
		57B826412304EB3E00B72EB0 /* NearFieldSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B826402304EB3E00B72EB0 /* NearFieldSPI.h */; };
Lines 1128-1134 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec5
1128
		57B8264C230603C100B72EB0 /* MockNfcService.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B8264A230603C100B72EB0 /* MockNfcService.h */; };
1143
		57B8264C230603C100B72EB0 /* MockNfcService.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B8264A230603C100B72EB0 /* MockNfcService.h */; };
1129
		57BBEA6D22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 57BBEA6C22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h */; };
1144
		57BBEA6D22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 57BBEA6C22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h */; };
1130
		57C6244B234679A400383FE7 /* WebAuthenticationFlags.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */; };
1145
		57C6244B234679A400383FE7 /* WebAuthenticationFlags.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */; };
1131
		57DCED6F2142EE630016B847 /* WebAuthenticatorCoordinatorMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */; };
1132
		57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */; };
1146
		57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */; };
1133
		57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */; };
1147
		57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */; };
1134
		57DCEDAC214C60270016B847 /* LocalAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCEDA12149C1E20016B847 /* LocalAuthenticator.h */; };
1148
		57DCEDAC214C60270016B847 /* LocalAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCEDA12149C1E20016B847 /* LocalAuthenticator.h */; };
Lines 1977-1988 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec6
1977
			remoteGlobalIDString = C0CE72851247E66800BC0EC4;
1991
			remoteGlobalIDString = C0CE72851247E66800BC0EC4;
1978
			remoteInfo = "Derived Sources";
1992
			remoteInfo = "Derived Sources";
1979
		};
1993
		};
1980
		57A9FF0B252C31D6006A2040 /* PBXContainerItemProxy */ = {
1994
		5742A2E72535613F00B7BA14 /* PBXContainerItemProxy */ = {
1981
			isa = PBXContainerItemProxy;
1995
			isa = PBXContainerItemProxy;
1982
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
1996
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
1983
			proxyType = 1;
1997
			proxyType = 1;
1984
			remoteGlobalIDString = 57A9FEFB252BD8AA006A2040;
1998
			remoteGlobalIDString = E1AC2E2720F7B94C00B0897D;
1985
			remoteInfo = WebAuthenticationAgent;
1999
			remoteInfo = "Unlock Keychain";
2000
		};
2001
		5742A2E92535613F00B7BA14 /* PBXContainerItemProxy */ = {
2002
			isa = PBXContainerItemProxy;
2003
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
2004
			proxyType = 1;
2005
			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
2006
			remoteInfo = WebKit;
2007
		};
2008
		5742A2F92535619D00B7BA14 /* PBXContainerItemProxy */ = {
2009
			isa = PBXContainerItemProxy;
2010
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
2011
			proxyType = 1;
2012
			remoteGlobalIDString = 5742A2E52535613F00B7BA14;
2013
			remoteInfo = WebAuthentication;
1986
		};
2014
		};
1987
		BC8283D416B4C01F00A278FE /* PBXContainerItemProxy */ = {
2015
		BC8283D416B4C01F00A278FE /* PBXContainerItemProxy */ = {
1988
			isa = PBXContainerItemProxy;
2016
			isa = PBXContainerItemProxy;
Lines 2096-2110 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec7
2096
			name = "Copy Shims";
2124
			name = "Copy Shims";
2097
			runOnlyForDeploymentPostprocessing = 0;
2125
			runOnlyForDeploymentPostprocessing = 0;
2098
		};
2126
		};
2099
		57A9FEFA252BD8AA006A2040 /* CopyFiles */ = {
2100
			isa = PBXCopyFilesBuildPhase;
2101
			buildActionMask = 2147483647;
2102
			dstPath = /usr/share/man/man1/;
2103
			dstSubfolderSpec = 0;
2104
			files = (
2105
			);
2106
			runOnlyForDeploymentPostprocessing = 1;
2107
		};
2108
		7CB16FEE1724BA05007A0A95 /* Copy Plug-in Sandbox Profiles */ = {
2127
		7CB16FEE1724BA05007A0A95 /* Copy Plug-in Sandbox Profiles */ = {
2109
			isa = PBXCopyFilesBuildPhase;
2128
			isa = PBXCopyFilesBuildPhase;
2110
			buildActionMask = 2147483647;
2129
			buildActionMask = 2147483647;
Lines 3641-3648 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec8
3641
		510523711C73D22B007993CB /* WebIDBConnectionToServer.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebIDBConnectionToServer.messages.in; sourceTree = "<group>"; };
3660
		510523711C73D22B007993CB /* WebIDBConnectionToServer.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebIDBConnectionToServer.messages.in; sourceTree = "<group>"; };
3642
		510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebIDBConnectionToServerMessageReceiver.cpp; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3661
		510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebIDBConnectionToServerMessageReceiver.cpp; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3643
		510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebIDBConnectionToServerMessages.h; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3662
		510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebIDBConnectionToServerMessages.h; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3644
		510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebIDBConnectionToClientMessageReceiver.cpp; path = DerivedSources/WebKit2/WebIDBConnectionToClientMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3645
		510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebIDBConnectionToClientMessages.h; path = DerivedSources/WebKit2/WebIDBConnectionToClientMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3646
		5105B0D4162F7A7A00E27709 /* NetworkProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnection.cpp; path = Network/NetworkProcessConnection.cpp; sourceTree = "<group>"; };
3663
		5105B0D4162F7A7A00E27709 /* NetworkProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnection.cpp; path = Network/NetworkProcessConnection.cpp; sourceTree = "<group>"; };
3647
		5105B0D5162F7A7A00E27709 /* NetworkProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnection.h; path = Network/NetworkProcessConnection.h; sourceTree = "<group>"; };
3664
		5105B0D5162F7A7A00E27709 /* NetworkProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnection.h; path = Network/NetworkProcessConnection.h; sourceTree = "<group>"; };
3648
		5105B0F31630872E00E27709 /* NetworkProcessProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = NetworkProcessProxy.messages.in; sourceTree = "<group>"; };
3665
		5105B0F31630872E00E27709 /* NetworkProcessProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = NetworkProcessProxy.messages.in; sourceTree = "<group>"; };
Lines 3663-3674 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec9
3663
		511065FB23EC956B005443D6 /* WKContentWorldInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentWorldInternal.h; sourceTree = "<group>"; };
3680
		511065FB23EC956B005443D6 /* WKContentWorldInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentWorldInternal.h; sourceTree = "<group>"; };
3664
		5110AE0A133C16CB0072717A /* WKIconDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKIconDatabase.cpp; sourceTree = "<group>"; };
3681
		5110AE0A133C16CB0072717A /* WKIconDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKIconDatabase.cpp; sourceTree = "<group>"; };
3665
		5110AE0B133C16CB0072717A /* WKIconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKIconDatabase.h; sourceTree = "<group>"; };
3682
		5110AE0B133C16CB0072717A /* WKIconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKIconDatabase.h; sourceTree = "<group>"; };
3666
		5118E9A21F295963003EF9F5 /* StorageProcessProxyMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageProcessProxyMessages.h; path = DerivedSources/WebKit2/StorageProcessProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3667
		5118E9A31F295963003EF9F5 /* StorageToWebProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageToWebProcessConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageToWebProcessConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3668
		5118E9A41F295963003EF9F5 /* StorageToWebProcessConnectionMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageToWebProcessConnectionMessages.h; path = DerivedSources/WebKit2/StorageToWebProcessConnectionMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3669
		5118E9A51F295963003EF9F5 /* StorageProcessMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageProcessMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageProcessMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3670
		5118E9A61F295963003EF9F5 /* StorageProcessMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageProcessMessages.h; path = DerivedSources/WebKit2/StorageProcessMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3671
		5118E9A71F295963003EF9F5 /* StorageProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageProcessProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageProcessProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3672
		511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsiteDataStoreParameters.cpp; sourceTree = "<group>"; };
3683
		511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsiteDataStoreParameters.cpp; sourceTree = "<group>"; };
3673
		511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsiteDataStoreParameters.h; sourceTree = "<group>"; };
3684
		511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsiteDataStoreParameters.h; sourceTree = "<group>"; };
3674
		511F8A77138B460900A95F44 /* SecItemShimLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SecItemShimLibrary.h; path = ../../WebProcess/mac/SecItemShimLibrary.h; sourceTree = "<group>"; };
3685
		511F8A77138B460900A95F44 /* SecItemShimLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SecItemShimLibrary.h; path = ../../WebProcess/mac/SecItemShimLibrary.h; sourceTree = "<group>"; };
Lines 3916-3923 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec10
3916
		572EBBD82538F6A1000552B3 /* AppAttestInternalSoftLink.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AppAttestInternalSoftLink.mm; sourceTree = "<group>"; };
3927
		572EBBD82538F6A1000552B3 /* AppAttestInternalSoftLink.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AppAttestInternalSoftLink.mm; sourceTree = "<group>"; };
3917
		572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestInternalSoftLink.h; sourceTree = "<group>"; };
3928
		572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestInternalSoftLink.h; sourceTree = "<group>"; };
3918
		572EBBDC25392181000552B3 /* AppAttestSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestSPI.h; sourceTree = "<group>"; };
3929
		572EBBDC25392181000552B3 /* AppAttestSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestSPI.h; sourceTree = "<group>"; };
3930
		572EBBB92536A06E000552B3 /* Info-iOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = "Info-iOS.plist"; path = "WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist"; sourceTree = SOURCE_ROOT; };
3931
		572EBBBA2536A06E000552B3 /* Info-OSX.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = "Info-OSX.plist"; path = "WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist"; sourceTree = SOURCE_ROOT; };
3932
		572EBBBB2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnConnectionToWebProcessMessageReceiver.cpp; sourceTree = "<group>"; };
3933
		572EBBBC2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnConnectionToWebProcessMessages.h; sourceTree = "<group>"; };
3934
		572EBBBD2536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessMessageReceiver.cpp; sourceTree = "<group>"; };
3935
		572EBBBE2536A60A000552B3 /* WebAuthnProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessMessages.h; sourceTree = "<group>"; };
3936
		572EBBC32536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.WebAuthnProcess.sb; sourceTree = "<group>"; };
3937
		572EBBC52536AFD5000552B3 /* WebAuthnProcessProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessProxy.cpp; sourceTree = "<group>"; };
3938
		572EBBC62536AFD5000552B3 /* WebAuthnProcessProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessProxy.h; sourceTree = "<group>"; };
3939
		572EBBC72536AFD5000552B3 /* WebAuthnProcessProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcessProxy.messages.in; sourceTree = "<group>"; };
3940
		572EBBCB2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessConnectionInfo.h; sourceTree = "<group>"; };
3941
		572EBBCD2536BB10000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessProxyMessageReceiver.cpp; sourceTree = "<group>"; };
3942
		572EBBCE2536BB10000552B3 /* WebAuthnProcessProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessProxyMessages.h; sourceTree = "<group>"; };
3943
		572EBBD12536C885000552B3 /* WebAuthnProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessConnection.cpp; sourceTree = "<group>"; };
3944
		572EBBD22536C885000552B3 /* WebAuthnProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessConnection.h; sourceTree = "<group>"; };
3945
		572EBBD32536C885000552B3 /* WebAuthnProcessConnection.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcessConnection.messages.in; sourceTree = "<group>"; };
3919
		572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebViewDidMoveToWindowObserver.h; sourceTree = "<group>"; };
3946
		572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebViewDidMoveToWindowObserver.h; sourceTree = "<group>"; };
3920
		574217912400E098002B303D /* LocalAuthenticationSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalAuthenticationSPI.h; sourceTree = "<group>"; };
3947
		574217912400E098002B303D /* LocalAuthenticationSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalAuthenticationSPI.h; sourceTree = "<group>"; };
3948
		5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.WebAuthn.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
3949
		5742A30625358A0400B7BA14 /* WebAuthnProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessCreationParameters.h; sourceTree = "<group>"; };
3950
		5742A30725358A0400B7BA14 /* WebAuthnProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessCreationParameters.cpp; sourceTree = "<group>"; };
3951
		5742A30A25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnConnectionToWebProcess.h; sourceTree = "<group>"; };
3952
		5742A30B25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnConnectionToWebProcess.messages.in; sourceTree = "<group>"; };
3953
		5742A30C25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnConnectionToWebProcess.cpp; sourceTree = "<group>"; };
3954
		5742A313253648E400B7BA14 /* WebAuthnProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcess.messages.in; sourceTree = "<group>"; };
3955
		5742A314253648E400B7BA14 /* WebAuthnProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcess.cpp; sourceTree = "<group>"; };
3956
		5742A315253648E400B7BA14 /* WebAuthnProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcess.h; sourceTree = "<group>"; };
3957
		5742A31A253675E900B7BA14 /* WebAuthnProcessIOS.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnProcessIOS.mm; sourceTree = "<group>"; };
3958
		5742A31C253675F600B7BA14 /* WebAuthnProcessMac.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnProcessMac.mm; sourceTree = "<group>"; };
3959
		5742A31D253675F600B7BA14 /* com.apple.WebKit.WebAuthnProcess.sb.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = com.apple.WebKit.WebAuthnProcess.sb.in; sourceTree = "<group>"; };
3960
		5742A31E2536949300B7BA14 /* WebAuthnServiceEntryPoint.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnServiceEntryPoint.mm; sourceTree = "<group>"; };
3921
		574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationPanel.h; sourceTree = "<group>"; };
3961
		574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationPanel.h; sourceTree = "<group>"; };
3922
		574728D023456E98001700AF /* _WKWebAuthenticationPanel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebAuthenticationPanel.mm; sourceTree = "<group>"; };
3962
		574728D023456E98001700AF /* _WKWebAuthenticationPanel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebAuthenticationPanel.mm; sourceTree = "<group>"; };
3923
		574728D3234570AE001700AF /* _WKWebAuthenticationPanelInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationPanelInternal.h; sourceTree = "<group>"; };
3963
		574728D3234570AE001700AF /* _WKWebAuthenticationPanelInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationPanelInternal.h; sourceTree = "<group>"; };
Lines 3947-3958 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec11
3947
		579F1BF823C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationAssertionResponseInternal.h; sourceTree = "<group>"; };
3987
		579F1BF823C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationAssertionResponseInternal.h; sourceTree = "<group>"; };
3948
		579F1BFA23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APIWebAuthenticationAssertionResponse.h; sourceTree = "<group>"; };
3988
		579F1BFA23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APIWebAuthenticationAssertionResponse.h; sourceTree = "<group>"; };
3949
		579F1BFB23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebAuthenticationAssertionResponse.cpp; sourceTree = "<group>"; };
3989
		579F1BFB23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebAuthenticationAssertionResponse.cpp; sourceTree = "<group>"; };
3950
		57A9FEFC252BD8AA006A2040 /* com.apple.WebKit.WebAuthenticationAgent.Development */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = com.apple.WebKit.WebAuthenticationAgent.Development; sourceTree = BUILT_PRODUCTS_DIR; };
3990
		57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebAuthnService.xcconfig; sourceTree = "<group>"; };
3951
		57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebAuthenticationAgent.xcconfig; sourceTree = "<group>"; };
3952
		57A9FF08252BEAF0006A2040 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = Daemons/WebAuthenticationAgent/main.mm; sourceTree = SOURCE_ROOT; };
3953
		57A9FF0A252BF5C3006A2040 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
3954
		57A9FF0D252C397A006A2040 /* com.apple.webkit.WebAuthenticationAgent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = com.apple.webkit.WebAuthenticationAgent.plist; sourceTree = "<group>"; };
3955
		57A9FF0F252C5D9D006A2040 /* WebAuthenticationAgent.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WebAuthenticationAgent.entitlements; sourceTree = "<group>"; };
3956
		57A9FF15252C6AEF006A2040 /* libWTF.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWTF.a; sourceTree = BUILT_PRODUCTS_DIR; };
3991
		57A9FF15252C6AEF006A2040 /* libWTF.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWTF.a; sourceTree = BUILT_PRODUCTS_DIR; };
3957
		57AC8F4E217FEED90055438C /* HidConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HidConnection.h; sourceTree = "<group>"; };
3992
		57AC8F4E217FEED90055438C /* HidConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HidConnection.h; sourceTree = "<group>"; };
3958
		57AC8F4F217FEED90055438C /* HidConnection.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = HidConnection.mm; sourceTree = "<group>"; };
3993
		57AC8F4F217FEED90055438C /* HidConnection.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = HidConnection.mm; sourceTree = "<group>"; };
Lines 3970-3977 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec12
3970
		57BBEA6C22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SOAuthorizationLoadPolicy.h; sourceTree = "<group>"; };
4005
		57BBEA6C22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SOAuthorizationLoadPolicy.h; sourceTree = "<group>"; };
3971
		57C3E8AC242490D5001E2209 /* WebAuthenticationRequestData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthenticationRequestData.cpp; sourceTree = "<group>"; };
4006
		57C3E8AC242490D5001E2209 /* WebAuthenticationRequestData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthenticationRequestData.cpp; sourceTree = "<group>"; };
3972
		57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebAuthenticationFlags.h; sourceTree = "<group>"; };
4007
		57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebAuthenticationFlags.h; sourceTree = "<group>"; };
3973
		57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAuthenticatorCoordinatorMessages.h; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3974
		57DCED6B2142EAE20016B847 /* WebAuthenticatorCoordinatorMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAuthenticatorCoordinatorMessageReceiver.cpp; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3975
		57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
4008
		57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
3976
		57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAuthenticatorCoordinatorProxyMessages.h; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
4009
		57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAuthenticatorCoordinatorProxyMessages.h; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
3977
		57DCED842147363A0016B847 /* AuthenticatorManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticatorManager.h; sourceTree = "<group>"; };
4010
		57DCED842147363A0016B847 /* AuthenticatorManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticatorManager.h; sourceTree = "<group>"; };
Lines 5299-5305 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec13
5299
		DF84CEE2249AA21F009096F6 /* WKPDFHUDView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKPDFHUDView.mm; path = PDF/WKPDFHUDView.mm; sourceTree = "<group>"; };
5332
		DF84CEE2249AA21F009096F6 /* WKPDFHUDView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKPDFHUDView.mm; path = PDF/WKPDFHUDView.mm; sourceTree = "<group>"; };
5300
		DF84CEE3249AA21F009096F6 /* WKPDFHUDView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKPDFHUDView.h; path = PDF/WKPDFHUDView.h; sourceTree = "<group>"; };
5333
		DF84CEE3249AA21F009096F6 /* WKPDFHUDView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKPDFHUDView.h; path = PDF/WKPDFHUDView.h; sourceTree = "<group>"; };
5301
		E105FE5318D7B9DE008F57A8 /* EditingRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingRange.h; sourceTree = "<group>"; };
5334
		E105FE5318D7B9DE008F57A8 /* EditingRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingRange.h; sourceTree = "<group>"; };
5302
		E115C715190F8A2500ECC516 /* com.apple.WebKit.Storage.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = com.apple.WebKit.Storage.sb; path = DerivedSources/WebKit2/com.apple.WebKit.Storage.sb; sourceTree = BUILT_PRODUCTS_DIR; };
5303
		E133FD891423DD7F00FC7BFB /* WebKit.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = WebKit.icns; path = Resources/WebKit.icns; sourceTree = "<group>"; };
5335
		E133FD891423DD7F00FC7BFB /* WebKit.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = WebKit.icns; path = Resources/WebKit.icns; sourceTree = "<group>"; };
5304
		E14A954716E016A40068DE82 /* NetworkProcessPlatformStrategies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessPlatformStrategies.cpp; sourceTree = "<group>"; };
5336
		E14A954716E016A40068DE82 /* NetworkProcessPlatformStrategies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessPlatformStrategies.cpp; sourceTree = "<group>"; };
5305
		E14A954816E016A40068DE82 /* NetworkProcessPlatformStrategies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkProcessPlatformStrategies.h; sourceTree = "<group>"; };
5337
		E14A954816E016A40068DE82 /* NetworkProcessPlatformStrategies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkProcessPlatformStrategies.h; sourceTree = "<group>"; };
Lines 5484-5495 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec14
5484
			);
5516
			);
5485
			runOnlyForDeploymentPostprocessing = 0;
5517
			runOnlyForDeploymentPostprocessing = 0;
5486
		};
5518
		};
5487
		57A9FEF9252BD8AA006A2040 /* Frameworks */ = {
5519
		5742A2ED2535613F00B7BA14 /* Frameworks */ = {
5488
			isa = PBXFrameworksBuildPhase;
5520
			isa = PBXFrameworksBuildPhase;
5489
			buildActionMask = 2147483647;
5521
			buildActionMask = 2147483647;
5490
			files = (
5522
			files = (
5491
				576BCD5E252FD22D00CE9F87 /* Foundation.framework in Frameworks */,
5523
				5742A2EE2535613F00B7BA14 /* Foundation.framework in Frameworks */,
5492
				57A9FF1D252C6CE6006A2040 /* libWTF.a in Frameworks */,
5524
				5742A2EF2535613F00B7BA14 /* WebKit.framework in Frameworks */,
5493
			);
5525
			);
5494
			runOnlyForDeploymentPostprocessing = 0;
5526
			runOnlyForDeploymentPostprocessing = 0;
5495
		};
5527
		};
Lines 5541-5547 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec15
5541
				2D9FB228237523830049F936 /* com.apple.WebKit.GPU.xpc */,
5573
				2D9FB228237523830049F936 /* com.apple.WebKit.GPU.xpc */,
5542
				BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */,
5574
				BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */,
5543
				BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */,
5575
				BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */,
5544
				57A9FEFC252BD8AA006A2040 /* com.apple.WebKit.WebAuthenticationAgent.Development */,
5576
				5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */,
5545
				372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */,
5577
				372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */,
5546
				BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */,
5578
				BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */,
5547
				1AC25FB012A48EA700BD2671 /* PluginProcessShim.dylib */,
5579
				1AC25FB012A48EA700BD2671 /* PluginProcessShim.dylib */,
Lines 5688-5694 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec16
5688
				C0CE72DB1247E8F700BC0EC4 /* DerivedSources.make */,
5720
				C0CE72DB1247E8F700BC0EC4 /* DerivedSources.make */,
5689
				1A1D2117191D996C0001619F /* MigrateHeadersFromWebKitLegacy.make */,
5721
				1A1D2117191D996C0001619F /* MigrateHeadersFromWebKitLegacy.make */,
5690
				1A1D2116191D995C0001619F /* postprocess-framework-headers.sh */,
5722
				1A1D2116191D995C0001619F /* postprocess-framework-headers.sh */,
5691
				57A9FEEF252BB70C006A2040 /* Daemons */,
5692
				BC2E6E74114196F000A63B1E /* Platform */,
5723
				BC2E6E74114196F000A63B1E /* Platform */,
5693
				1AADDF4B10D82AF000D3D63D /* Shared */,
5724
				1AADDF4B10D82AF000D3D63D /* Shared */,
5694
				BC032DC310F438260058C15A /* UIProcess */,
5725
				BC032DC310F438260058C15A /* UIProcess */,
Lines 5696-5701 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec17
5696
				510CC7DA16138E0100D03ED3 /* NetworkProcess */,
5727
				510CC7DA16138E0100D03ED3 /* NetworkProcess */,
5697
				1A0EC6B0124BBD36007EF4A5 /* PluginProcess */,
5728
				1A0EC6B0124BBD36007EF4A5 /* PluginProcess */,
5698
				2D9FB1FF2375209D0049F936 /* GPUProcess */,
5729
				2D9FB1FF2375209D0049F936 /* GPUProcess */,
5730
				5742A2FF2535758000B7BA14 /* WebAuthnProcess */,
5699
				C0CE729D1247E71D00BC0EC4 /* Derived Sources */,
5731
				C0CE729D1247E71D00BC0EC4 /* Derived Sources */,
5700
				1DEC97AB246B6865007C83F4 /* FeatureFlags */,
5732
				1DEC97AB246B6865007C83F4 /* FeatureFlags */,
5701
				089C1665FE841158C02AAC07 /* Resources */,
5733
				089C1665FE841158C02AAC07 /* Resources */,
Lines 5897-5903 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec18
5897
				A1EDD2DC1884B9B500BBFE98 /* SecItemShim.xcconfig */,
5929
				A1EDD2DC1884B9B500BBFE98 /* SecItemShim.xcconfig */,
5898
				5183B3931379F85C00E8754E /* Shim.xcconfig */,
5930
				5183B3931379F85C00E8754E /* Shim.xcconfig */,
5899
				1A4F976E100E7B6600637A18 /* Version.xcconfig */,
5931
				1A4F976E100E7B6600637A18 /* Version.xcconfig */,
5900
				57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */,
5932
				57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */,
5901
				372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */,
5933
				372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */,
5902
				BCACC40E16B0B8A800B6E092 /* WebContentService.xcconfig */,
5934
				BCACC40E16B0B8A800B6E092 /* WebContentService.xcconfig */,
5903
				BCB86F4B116AAACD00CE20B7 /* WebKit.xcconfig */,
5935
				BCB86F4B116AAACD00CE20B7 /* WebKit.xcconfig */,
Lines 8135-8140 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec19
8135
			path = cocoa;
8167
			path = cocoa;
8136
			sourceTree = "<group>";
8168
			sourceTree = "<group>";
8137
		};
8169
		};
8170
		5742A2FF2535758000B7BA14 /* WebAuthnProcess */ = {
8171
			isa = PBXGroup;
8172
			children = (
8173
				5742A3002535758000B7BA14 /* EntryPoint */,
8174
				5742A319253675E900B7BA14 /* ios */,
8175
				5742A31B253675F600B7BA14 /* mac */,
8176
				5742A30C25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.cpp */,
8177
				5742A30A25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h */,
8178
				5742A30B25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.messages.in */,
8179
				5742A314253648E400B7BA14 /* WebAuthnProcess.cpp */,
8180
				5742A315253648E400B7BA14 /* WebAuthnProcess.h */,
8181
				5742A313253648E400B7BA14 /* WebAuthnProcess.messages.in */,
8182
				5742A30725358A0400B7BA14 /* WebAuthnProcessCreationParameters.cpp */,
8183
				5742A30625358A0400B7BA14 /* WebAuthnProcessCreationParameters.h */,
8184
			);
8185
			path = WebAuthnProcess;
8186
			sourceTree = "<group>";
8187
		};
8188
		5742A3002535758000B7BA14 /* EntryPoint */ = {
8189
			isa = PBXGroup;
8190
			children = (
8191
				5742A3012535758000B7BA14 /* Cocoa */,
8192
			);
8193
			path = EntryPoint;
8194
			sourceTree = "<group>";
8195
		};
8196
		5742A3012535758000B7BA14 /* Cocoa */ = {
8197
			isa = PBXGroup;
8198
			children = (
8199
				5742A3022535758000B7BA14 /* XPCService */,
8200
			);
8201
			path = Cocoa;
8202
			sourceTree = "<group>";
8203
		};
8204
		5742A3022535758000B7BA14 /* XPCService */ = {
8205
			isa = PBXGroup;
8206
			children = (
8207
				5742A3032535758000B7BA14 /* WebAuthnService */,
8208
				5742A31E2536949300B7BA14 /* WebAuthnServiceEntryPoint.mm */,
8209
			);
8210
			path = XPCService;
8211
			sourceTree = "<group>";
8212
		};
8213
		5742A3032535758000B7BA14 /* WebAuthnService */ = {
8214
			isa = PBXGroup;
8215
			children = (
8216
				572EBBB92536A06E000552B3 /* Info-iOS.plist */,
8217
				572EBBBA2536A06E000552B3 /* Info-OSX.plist */,
8218
			);
8219
			path = WebAuthnService;
8220
			sourceTree = "<group>";
8221
		};
8222
		5742A319253675E900B7BA14 /* ios */ = {
8223
			isa = PBXGroup;
8224
			children = (
8225
				5742A31A253675E900B7BA14 /* WebAuthnProcessIOS.mm */,
8226
			);
8227
			path = ios;
8228
			sourceTree = "<group>";
8229
		};
8230
		5742A31B253675F600B7BA14 /* mac */ = {
8231
			isa = PBXGroup;
8232
			children = (
8233
				5742A31D253675F600B7BA14 /* com.apple.WebKit.WebAuthnProcess.sb.in */,
8234
				5742A31C253675F600B7BA14 /* WebAuthnProcessMac.mm */,
8235
			);
8236
			path = mac;
8237
			sourceTree = "<group>";
8238
		};
8138
		575075A620AB75AB00693EA9 /* mac */ = {
8239
		575075A620AB75AB00693EA9 /* mac */ = {
8139
			isa = PBXGroup;
8240
			isa = PBXGroup;
8140
			children = (
8241
			children = (
Lines 8178-8183 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec20
8178
			children = (
8279
			children = (
8179
				5760828C2029854200116678 /* WebAuthenticatorCoordinator.cpp */,
8280
				5760828C2029854200116678 /* WebAuthenticatorCoordinator.cpp */,
8180
				5760828B2029854200116678 /* WebAuthenticatorCoordinator.h */,
8281
				5760828B2029854200116678 /* WebAuthenticatorCoordinator.h */,
8282
				572EBBD12536C885000552B3 /* WebAuthnProcessConnection.cpp */,
8283
				572EBBD22536C885000552B3 /* WebAuthnProcessConnection.h */,
8284
				572EBBD32536C885000552B3 /* WebAuthnProcessConnection.messages.in */,
8285
				572EBBCB2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h */,
8181
			);
8286
			);
8182
			path = WebAuthentication;
8287
			path = WebAuthentication;
8183
			sourceTree = "<group>";
8288
			sourceTree = "<group>";
Lines 8200-8228 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec21
8200
				57608296202BD8BA00116678 /* WebAuthenticatorCoordinatorProxy.cpp */,
8305
				57608296202BD8BA00116678 /* WebAuthenticatorCoordinatorProxy.cpp */,
8201
				57608295202BD8BA00116678 /* WebAuthenticatorCoordinatorProxy.h */,
8306
				57608295202BD8BA00116678 /* WebAuthenticatorCoordinatorProxy.h */,
8202
				57608299202BDAE200116678 /* WebAuthenticatorCoordinatorProxy.messages.in */,
8307
				57608299202BDAE200116678 /* WebAuthenticatorCoordinatorProxy.messages.in */,
8308
				572EBBC52536AFD5000552B3 /* WebAuthnProcessProxy.cpp */,
8309
				572EBBC62536AFD5000552B3 /* WebAuthnProcessProxy.h */,
8310
				572EBBC72536AFD5000552B3 /* WebAuthnProcessProxy.messages.in */,
8203
			);
8311
			);
8204
			path = WebAuthentication;
8312
			path = WebAuthentication;
8205
			sourceTree = "<group>";
8313
			sourceTree = "<group>";
8206
		};
8314
		};
8207
		57A9FEEF252BB70C006A2040 /* Daemons */ = {
8208
			isa = PBXGroup;
8209
			children = (
8210
				57A9FEF0252BB740006A2040 /* WebAuthenticationAgent */,
8211
			);
8212
			path = Daemons;
8213
			sourceTree = "<group>";
8214
		};
8215
		57A9FEF0252BB740006A2040 /* WebAuthenticationAgent */ = {
8216
			isa = PBXGroup;
8217
			children = (
8218
				57A9FF0D252C397A006A2040 /* com.apple.webkit.WebAuthenticationAgent.plist */,
8219
				57A9FF0A252BF5C3006A2040 /* Info.plist */,
8220
				57A9FF08252BEAF0006A2040 /* main.mm */,
8221
				57A9FF0F252C5D9D006A2040 /* WebAuthenticationAgent.entitlements */,
8222
			);
8223
			path = WebAuthenticationAgent;
8224
			sourceTree = "<group>";
8225
		};
8226
		57B4B45C20B5048B00D4AD79 /* cocoa */ = {
8315
		57B4B45C20B5048B00D4AD79 /* cocoa */ = {
8227
			isa = PBXGroup;
8316
			isa = PBXGroup;
8228
			children = (
8317
			children = (
Lines 10083-10089 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec22
10083
				E17AE2C216B9C63A001C42F2 /* com.apple.WebKit.GPUProcess.sb */,
10172
				E17AE2C216B9C63A001C42F2 /* com.apple.WebKit.GPUProcess.sb */,
10084
				E17AE2C216B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb */,
10173
				E17AE2C216B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb */,
10085
				7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */,
10174
				7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */,
10086
				E115C715190F8A2500ECC516 /* com.apple.WebKit.Storage.sb */,
10175
				572EBBC32536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb */,
10087
				E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */,
10176
				E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */,
10088
				1AB7D6171288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp */,
10177
				1AB7D6171288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp */,
10089
				1AB7D6181288B9D900CFD08C /* DownloadProxyMessages.h */,
10178
				1AB7D6181288B9D900CFD08C /* DownloadProxyMessages.h */,
Lines 10198-10209 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec23
10198
				1A334DEC16DE8F88006A8E38 /* StorageAreaMapMessages.h */,
10287
				1A334DEC16DE8F88006A8E38 /* StorageAreaMapMessages.h */,
10199
				9368EEDC2303A8D800BDB11A /* StorageManagerSetMessageReceiver.cpp */,
10288
				9368EEDC2303A8D800BDB11A /* StorageManagerSetMessageReceiver.cpp */,
10200
				9368EEDD2303A8D800BDB11A /* StorageManagerSetMessages.h */,
10289
				9368EEDD2303A8D800BDB11A /* StorageManagerSetMessages.h */,
10201
				5118E9A51F295963003EF9F5 /* StorageProcessMessageReceiver.cpp */,
10202
				5118E9A61F295963003EF9F5 /* StorageProcessMessages.h */,
10203
				5118E9A71F295963003EF9F5 /* StorageProcessProxyMessageReceiver.cpp */,
10204
				5118E9A21F295963003EF9F5 /* StorageProcessProxyMessages.h */,
10205
				5118E9A31F295963003EF9F5 /* StorageToWebProcessConnectionMessageReceiver.cpp */,
10206
				5118E9A41F295963003EF9F5 /* StorageToWebProcessConnectionMessages.h */,
10207
				CD491B0B1E732E4D00009066 /* UserMediaCaptureManagerMessageReceiver.cpp */,
10290
				CD491B0B1E732E4D00009066 /* UserMediaCaptureManagerMessageReceiver.cpp */,
10208
				CD491B0C1E732E4D00009066 /* UserMediaCaptureManagerMessages.h */,
10291
				CD491B0C1E732E4D00009066 /* UserMediaCaptureManagerMessages.h */,
10209
				CD491B151E73525500009066 /* UserMediaCaptureManagerProxyMessageReceiver.cpp */,
10292
				CD491B151E73525500009066 /* UserMediaCaptureManagerProxyMessageReceiver.cpp */,
Lines 10222-10231 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec24
10222
				1A60224B18C16B9F00C3E8C9 /* VisitedLinkStoreMessages.h */,
10305
				1A60224B18C16B9F00C3E8C9 /* VisitedLinkStoreMessages.h */,
10223
				1A8E7D3A18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp */,
10306
				1A8E7D3A18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp */,
10224
				1A8E7D3B18C15149005A702A /* VisitedLinkTableControllerMessages.h */,
10307
				1A8E7D3B18C15149005A702A /* VisitedLinkTableControllerMessages.h */,
10225
				57DCED6B2142EAE20016B847 /* WebAuthenticatorCoordinatorMessageReceiver.cpp */,
10226
				57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */,
10227
				57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */,
10308
				57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */,
10228
				57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */,
10309
				57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */,
10310
				572EBBBB2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp */,
10311
				572EBBBC2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h */,
10312
				572EBBBD2536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp */,
10313
				572EBBBE2536A60A000552B3 /* WebAuthnProcessMessages.h */,
10314
				572EBBCD2536BB10000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp */,
10315
				572EBBCE2536BB10000552B3 /* WebAuthnProcessProxyMessages.h */,
10229
				1C0A19551C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp */,
10316
				1C0A19551C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp */,
10230
				1C0A19561C90068F00FE0EBB /* WebAutomationSessionMessages.h */,
10317
				1C0A19561C90068F00FE0EBB /* WebAutomationSessionMessages.h */,
10231
				1C0A19511C8FFDFB00FE0EBB /* WebAutomationSessionProxyMessageReceiver.cpp */,
10318
				1C0A19511C8FFDFB00FE0EBB /* WebAutomationSessionProxyMessageReceiver.cpp */,
Lines 10249-10256 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec25
10249
				BC0E606012D6BA910012A72A /* WebGeolocationManagerMessages.h */,
10336
				BC0E606012D6BA910012A72A /* WebGeolocationManagerMessages.h */,
10250
				BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */,
10337
				BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */,
10251
				BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */,
10338
				BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */,
10252
				510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */,
10253
				510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */,
10254
				510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */,
10339
				510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */,
10255
				510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */,
10340
				510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */,
10256
				933E835823A1ADF500DEF289 /* WebIDBServerMessageReceiver.cpp */,
10341
				933E835823A1ADF500DEF289 /* WebIDBServerMessageReceiver.cpp */,
Lines 10905-10910 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec26
10905
				CDCDC99D248FE8DA00A69522 /* EndowmentStateTracker.h in Headers */,
10990
				CDCDC99D248FE8DA00A69522 /* EndowmentStateTracker.h in Headers */,
10906
				51B15A8513843A3900321AD8 /* EnvironmentUtilities.h in Headers */,
10991
				51B15A8513843A3900321AD8 /* EnvironmentUtilities.h in Headers */,
10907
				1AA575FB1496B52600A4EE06 /* EventDispatcher.h in Headers */,
10992
				1AA575FB1496B52600A4EE06 /* EventDispatcher.h in Headers */,
10993
				572EBBD72537EBAE000552B3 /* ExtraPrivateSymbolsForTAPI.h in Headers */,
10908
				57B8264823050C5100B72EB0 /* FidoService.h in Headers */,
10994
				57B8264823050C5100B72EB0 /* FidoService.h in Headers */,
10909
				00B9661A18E25AE100CE1F88 /* FindClient.h in Headers */,
10995
				00B9661A18E25AE100CE1F88 /* FindClient.h in Headers */,
10910
				1A90C1F41264FD71003E44D4 /* FindController.h in Headers */,
10996
				1A90C1F41264FD71003E44D4 /* FindController.h in Headers */,
Lines 11291-11299 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec27
11291
				57C6244B234679A400383FE7 /* WebAuthenticationFlags.h in Headers */,
11377
				57C6244B234679A400383FE7 /* WebAuthenticationFlags.h in Headers */,
11292
				577FF7852346ECAA004EDFB9 /* WebAuthenticationPanelClient.h in Headers */,
11378
				577FF7852346ECAA004EDFB9 /* WebAuthenticationPanelClient.h in Headers */,
11293
				57DCEDB2214C604C0016B847 /* WebAuthenticationRequestData.h in Headers */,
11379
				57DCEDB2214C604C0016B847 /* WebAuthenticationRequestData.h in Headers */,
11294
				57DCED6F2142EE630016B847 /* WebAuthenticatorCoordinatorMessages.h in Headers */,
11295
				57DCEDB3214C60530016B847 /* WebAuthenticatorCoordinatorProxy.h in Headers */,
11380
				57DCEDB3214C60530016B847 /* WebAuthenticatorCoordinatorProxy.h in Headers */,
11296
				57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */,
11381
				57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */,
11382
				5742A30D25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h in Headers */,
11383
				572EBBC02536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h in Headers */,
11384
				5742A318253648E500B7BA14 /* WebAuthnProcess.h in Headers */,
11385
				572EBBD52536C885000552B3 /* WebAuthnProcessConnection.h in Headers */,
11386
				572EBBCC2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h in Headers */,
11387
				5742A30825358A0400B7BA14 /* WebAuthnProcessCreationParameters.h in Headers */,
11388
				572EBBC22536A60A000552B3 /* WebAuthnProcessMessages.h in Headers */,
11389
				572EBBC92536AFD5000552B3 /* WebAuthnProcessProxy.h in Headers */,
11390
				572EBBD02536BB11000552B3 /* WebAuthnProcessProxyMessages.h in Headers */,
11297
				F42D634122A0EFDF00D2FB3A /* WebAutocorrectionData.h in Headers */,
11391
				F42D634122A0EFDF00D2FB3A /* WebAutocorrectionData.h in Headers */,
11298
				990D39F5243BE64800199388 /* WebAutomationDOMWindowObserver.h in Headers */,
11392
				990D39F5243BE64800199388 /* WebAutomationDOMWindowObserver.h in Headers */,
11299
				9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */,
11393
				9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */,
Lines 12024-12045 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec28
12024
			productReference = 510031F61379CACB00C8DFE4 /* SecItemShim.dylib */;
12118
			productReference = 510031F61379CACB00C8DFE4 /* SecItemShim.dylib */;
12025
			productType = "com.apple.product-type.library.dynamic";
12119
			productType = "com.apple.product-type.library.dynamic";
12026
		};
12120
		};
12027
		57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */ = {
12121
		5742A2E52535613F00B7BA14 /* WebAuthn */ = {
12028
			isa = PBXNativeTarget;
12122
			isa = PBXNativeTarget;
12029
			buildConfigurationList = 57A9FF00252BD8AB006A2040 /* Build configuration list for PBXNativeTarget "WebAuthenticationAgent" */;
12123
			buildConfigurationList = 5742A2F32535613F00B7BA14 /* Build configuration list for PBXNativeTarget "WebAuthn" */;
12030
			buildPhases = (
12124
			buildPhases = (
12031
				57A9FEF8252BD8AA006A2040 /* Sources */,
12125
				5742A2EA2535613F00B7BA14 /* Sources */,
12032
				57A9FEF9252BD8AA006A2040 /* Frameworks */,
12126
				5742A2ED2535613F00B7BA14 /* Frameworks */,
12033
				57A9FEFA252BD8AA006A2040 /* CopyFiles */,
12127
				5742A2F02535613F00B7BA14 /* Resources */,
12128
				5742A2F12535613F00B7BA14 /* Unlock keychain */,
12129
				5742A2F22535613F00B7BA14 /* Process WebAuthentication entitlements */,
12034
			);
12130
			);
12035
			buildRules = (
12131
			buildRules = (
12036
			);
12132
			);
12037
			dependencies = (
12133
			dependencies = (
12134
				5742A2E62535613F00B7BA14 /* PBXTargetDependency */,
12135
				5742A2E82535613F00B7BA14 /* PBXTargetDependency */,
12038
			);
12136
			);
12039
			name = WebAuthenticationAgent;
12137
			name = WebAuthn;
12040
			productName = WebAuthenticationAgent;
12138
			productName = Networking;
12041
			productReference = 57A9FEFC252BD8AA006A2040 /* com.apple.WebKit.WebAuthenticationAgent.Development */;
12139
			productReference = 5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */;
12042
			productType = "com.apple.product-type.tool";
12140
			productType = "com.apple.product-type.xpc-service";
12043
		};
12141
		};
12044
		8DC2EF4F0486A6940098B216 /* WebKit */ = {
12142
		8DC2EF4F0486A6940098B216 /* WebKit */ = {
12045
			isa = PBXNativeTarget;
12143
			isa = PBXNativeTarget;
Lines 12165-12173 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec29
12165
						CreatedOnToolsVersion = 10.1;
12263
						CreatedOnToolsVersion = 10.1;
12166
						ProvisioningStyle = Automatic;
12264
						ProvisioningStyle = Automatic;
12167
					};
12265
					};
12168
					57A9FEFB252BD8AA006A2040 = {
12169
						CreatedOnToolsVersion = 12.0;
12170
					};
12171
					E1AC2E2720F7B94C00B0897D = {
12266
					E1AC2E2720F7B94C00B0897D = {
12172
						CreatedOnToolsVersion = 9.3;
12267
						CreatedOnToolsVersion = 9.3;
12173
						ProvisioningStyle = Automatic;
12268
						ProvisioningStyle = Automatic;
Lines 12197-12207 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec30
12197
				372EBB382017E64300085064 /* WebContent.Development */,
12292
				372EBB382017E64300085064 /* WebContent.Development */,
12198
				BC8283B016B4BF7700A278FE /* Networking */,
12293
				BC8283B016B4BF7700A278FE /* Networking */,
12199
				2D9FB216237523830049F936 /* GPU */,
12294
				2D9FB216237523830049F936 /* GPU */,
12295
				5742A2E52535613F00B7BA14 /* WebAuthn */,
12200
				BC82841E16B4FDF600A278FE /* Plugin.64 */,
12296
				BC82841E16B4FDF600A278FE /* Plugin.64 */,
12201
				A7AADA1019395CA9003EA1C7 /* Sandbox Profiles */,
12297
				A7AADA1019395CA9003EA1C7 /* Sandbox Profiles */,
12202
				E1AC2E2720F7B94C00B0897D /* Unlock Keychain */,
12298
				E1AC2E2720F7B94C00B0897D /* Unlock Keychain */,
12203
				5325BDCD21DFF47700A0DEE1 /* Apply Configuration to XCFileLists */,
12299
				5325BDCD21DFF47700A0DEE1 /* Apply Configuration to XCFileLists */,
12204
				57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */,
12205
			);
12300
			);
12206
		};
12301
		};
12207
/* End PBXProject section */
12302
/* End PBXProject section */
Lines 12222-12233 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec31
12222
			);
12317
			);
12223
			runOnlyForDeploymentPostprocessing = 0;
12318
			runOnlyForDeploymentPostprocessing = 0;
12224
		};
12319
		};
12320
		5742A2F02535613F00B7BA14 /* Resources */ = {
12321
			isa = PBXResourcesBuildPhase;
12322
			buildActionMask = 2147483647;
12323
			files = (
12324
			);
12325
			runOnlyForDeploymentPostprocessing = 0;
12326
		};
12225
		8DC2EF520486A6940098B216 /* Resources */ = {
12327
		8DC2EF520486A6940098B216 /* Resources */ = {
12226
			isa = PBXResourcesBuildPhase;
12328
			isa = PBXResourcesBuildPhase;
12227
			buildActionMask = 2147483647;
12329
			buildActionMask = 2147483647;
12228
			files = (
12330
			files = (
12229
				E17AE2C316B9C63A001C42F2 /* com.apple.WebKit.GPUProcess.sb in Resources */,
12331
				E17AE2C316B9C63A001C42F2 /* com.apple.WebKit.GPUProcess.sb in Resources */,
12230
				E17AE2C316B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb in Resources */,
12332
				E17AE2C316B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb in Resources */,
12333
				572EBBC42536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb in Resources */,
12231
				E11D35AE16B63D1B006D23D7 /* com.apple.WebProcess.sb in Resources */,
12334
				E11D35AE16B63D1B006D23D7 /* com.apple.WebProcess.sb in Resources */,
12232
				414DD37920BF43F5006959FB /* com.cisco.webex.plugin.gpc64.sb in Resources */,
12335
				414DD37920BF43F5006959FB /* com.cisco.webex.plugin.gpc64.sb in Resources */,
12233
				6BE969C11E54D452008B7483 /* corePrediction_model in Resources */,
12336
				6BE969C11E54D452008B7483 /* corePrediction_model in Resources */,
Lines 12563-12568 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec32
12563
			shellPath = /bin/sh;
12666
			shellPath = /bin/sh;
12564
			shellScript = "Scripts/check-xcfilelists.sh\n";
12667
			shellScript = "Scripts/check-xcfilelists.sh\n";
12565
		};
12668
		};
12669
		5742A2F12535613F00B7BA14 /* Unlock keychain */ = {
12670
			isa = PBXShellScriptBuildPhase;
12671
			buildActionMask = 2147483647;
12672
			files = (
12673
			);
12674
			inputPaths = (
12675
			);
12676
			name = "Unlock keychain";
12677
			outputPaths = (
12678
			);
12679
			runOnlyForDeploymentPostprocessing = 0;
12680
			shellPath = /bin/sh;
12681
			shellScript = "UNLOCK_SCRIPT_PATH=\"${SRCROOT}/../../../Internal/Tools/Scripts/unlock-safari-engineering-keychain-if-needed\"\n\n[[ -x \"${UNLOCK_SCRIPT_PATH}\" ]] && exec \"${UNLOCK_SCRIPT_PATH}\"\n\nexit 0\n";
12682
		};
12683
		5742A2F22535613F00B7BA14 /* Process WebAuthentication entitlements */ = {
12684
			isa = PBXShellScriptBuildPhase;
12685
			buildActionMask = 2147483647;
12686
			files = (
12687
			);
12688
			inputPaths = (
12689
				"$(SRCROOT)/Scripts/process-entitlements.sh",
12690
			);
12691
			name = "Process WebAuthentication entitlements";
12692
			outputPaths = (
12693
				"$(WK_PROCESSED_XCENT_FILE)",
12694
			);
12695
			runOnlyForDeploymentPostprocessing = 0;
12696
			shellPath = /bin/sh;
12697
			shellScript = "Scripts/process-entitlements.sh\n";
12698
		};
12566
		5DF408C5131DD46700130071 /* Check For Weak VTables and Externals */ = {
12699
		5DF408C5131DD46700130071 /* Check For Weak VTables and Externals */ = {
12567
			isa = PBXShellScriptBuildPhase;
12700
			isa = PBXShellScriptBuildPhase;
12568
			buildActionMask = 2147483647;
12701
			buildActionMask = 2147483647;
Lines 12672-12678 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec33
12672
			);
12805
			);
12673
			runOnlyForDeploymentPostprocessing = 0;
12806
			runOnlyForDeploymentPostprocessing = 0;
12674
			shellPath = /bin/sh;
12807
			shellPath = /bin/sh;
12675
			shellScript = "if [[ \"${DEPLOYMENT_LOCATION}\" == \"YES\" ]]; then\n    exit\nfi\n\nif [[ ${WK_PLATFORM_NAME} != \"macosx\" ]]; then\n    XPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/XPCServices\"\n    BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES=\"../..\"\nelse\n    XPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Versions/A/XPCServices\"\n    BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES=\"../../../..\"\nfi\n\nmkdir -p \"${XPC_SERVICES_PATH}\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.WebContent.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.xpc\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.Networking.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.xpc\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.GPU.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.GPU.xpc\"\n\nif [[ ${WK_PLATFORM_NAME} == macosx ]]; then\n    ln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.Plugin.64.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.64.xpc\"\nfi\n";
12808
			shellScript = "if [[ \"${DEPLOYMENT_LOCATION}\" == \"YES\" ]]; then\n    exit\nfi\n\nif [[ ${WK_PLATFORM_NAME} != \"macosx\" ]]; then\n    XPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/XPCServices\"\n    BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES=\"../..\"\nelse\n    XPC_SERVICES_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Versions/A/XPCServices\"\n    BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES=\"../../../..\"\nfi\n\nmkdir -p \"${XPC_SERVICES_PATH}\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.WebContent.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebContent.xpc\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.Networking.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Networking.xpc\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.GPU.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.GPU.xpc\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.WebAuthn.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.WebAuthn.xpc\"\n\nif [[ ${WK_PLATFORM_NAME} == macosx ]]; then\n    ln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_XPC_SERVICES}/com.apple.WebKit.Plugin.64.xpc\" \"${XPC_SERVICES_PATH}/com.apple.WebKit.Plugin.64.xpc\"\nfi\n";
12676
		};
12809
		};
12677
		99CA3862207286DB00BAD578 /* Copy WebDriver Atoms to Framework Private Headers */ = {
12810
		99CA3862207286DB00BAD578 /* Copy WebDriver Atoms to Framework Private Headers */ = {
12678
			isa = PBXShellScriptBuildPhase;
12811
			isa = PBXShellScriptBuildPhase;
Lines 12811-12821 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec34
12811
			);
12944
			);
12812
			runOnlyForDeploymentPostprocessing = 0;
12945
			runOnlyForDeploymentPostprocessing = 0;
12813
		};
12946
		};
12814
		57A9FEF8252BD8AA006A2040 /* Sources */ = {
12947
		5742A2EA2535613F00B7BA14 /* Sources */ = {
12815
			isa = PBXSourcesBuildPhase;
12948
			isa = PBXSourcesBuildPhase;
12816
			buildActionMask = 2147483647;
12949
			buildActionMask = 2147483647;
12817
			files = (
12950
			files = (
12818
				57A9FF09252BEAF0006A2040 /* main.mm in Sources */,
12951
				5742A2EB2535613F00B7BA14 /* AuxiliaryProcessMain.cpp in Sources */,
12952
				5742A2EC2535613F00B7BA14 /* XPCServiceMain.mm in Sources */,
12819
			);
12953
			);
12820
			runOnlyForDeploymentPostprocessing = 0;
12954
			runOnlyForDeploymentPostprocessing = 0;
12821
		};
12955
		};
Lines 13147-13152 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec35
13147
				1A60224C18C16B9F00C3E8C9 /* VisitedLinkStoreMessageReceiver.cpp in Sources */,
13281
				1A60224C18C16B9F00C3E8C9 /* VisitedLinkStoreMessageReceiver.cpp in Sources */,
13148
				1A8E7D3C18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp in Sources */,
13282
				1A8E7D3C18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp in Sources */,
13149
				57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */,
13283
				57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */,
13284
				572EBBBF2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp in Sources */,
13285
				572EBBC12536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp in Sources */,
13286
				572EBBCF2536BB11000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp in Sources */,
13150
				575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */,
13287
				575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */,
13151
				1C0A19571C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp in Sources */,
13288
				1C0A19571C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp in Sources */,
13152
				575B1BB823CE9BFC0020639A /* WebAutomationSessionProxy.cpp in Sources */,
13289
				575B1BB823CE9BFC0020639A /* WebAutomationSessionProxy.cpp in Sources */,
Lines 13321-13330 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec36
13321
			target = C0CE72851247E66800BC0EC4 /* Derived Sources */;
13458
			target = C0CE72851247E66800BC0EC4 /* Derived Sources */;
13322
			targetProxy = 37F7407812721F740093869B /* PBXContainerItemProxy */;
13459
			targetProxy = 37F7407812721F740093869B /* PBXContainerItemProxy */;
13323
		};
13460
		};
13324
		57A9FF0C252C31D6006A2040 /* PBXTargetDependency */ = {
13461
		5742A2E62535613F00B7BA14 /* PBXTargetDependency */ = {
13462
			isa = PBXTargetDependency;
13463
			target = E1AC2E2720F7B94C00B0897D /* Unlock Keychain */;
13464
			targetProxy = 5742A2E72535613F00B7BA14 /* PBXContainerItemProxy */;
13465
		};
13466
		5742A2E82535613F00B7BA14 /* PBXTargetDependency */ = {
13467
			isa = PBXTargetDependency;
13468
			target = 8DC2EF4F0486A6940098B216 /* WebKit */;
13469
			targetProxy = 5742A2E92535613F00B7BA14 /* PBXContainerItemProxy */;
13470
		};
13471
		5742A2FA2535619D00B7BA14 /* PBXTargetDependency */ = {
13325
			isa = PBXTargetDependency;
13472
			isa = PBXTargetDependency;
13326
			target = 57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */;
13473
			target = 5742A2E52535613F00B7BA14 /* WebAuthn */;
13327
			targetProxy = 57A9FF0B252C31D6006A2040 /* PBXContainerItemProxy */;
13474
			targetProxy = 5742A2F92535619D00B7BA14 /* PBXContainerItemProxy */;
13328
		};
13475
		};
13329
		BC8283D516B4C01F00A278FE /* PBXTargetDependency */ = {
13476
		BC8283D516B4C01F00A278FE /* PBXTargetDependency */ = {
13330
			isa = PBXTargetDependency;
13477
			isa = PBXTargetDependency;
Lines 13582-13604 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec37
13582
			};
13729
			};
13583
			name = Production;
13730
			name = Production;
13584
		};
13731
		};
13585
		57A9FF01252BD8AB006A2040 /* Debug */ = {
13732
		5742A2F42535613F00B7BA14 /* Debug */ = {
13586
			isa = XCBuildConfiguration;
13733
			isa = XCBuildConfiguration;
13587
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
13734
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
13588
			buildSettings = {
13735
			buildSettings = {
13589
			};
13736
			};
13590
			name = Debug;
13737
			name = Debug;
13591
		};
13738
		};
13592
		57A9FF02252BD8AB006A2040 /* Release */ = {
13739
		5742A2F52535613F00B7BA14 /* Release */ = {
13593
			isa = XCBuildConfiguration;
13740
			isa = XCBuildConfiguration;
13594
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
13741
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
13595
			buildSettings = {
13742
			buildSettings = {
13596
			};
13743
			};
13597
			name = Release;
13744
			name = Release;
13598
		};
13745
		};
13599
		57A9FF03252BD8AB006A2040 /* Production */ = {
13746
		5742A2F62535613F00B7BA14 /* Production */ = {
13600
			isa = XCBuildConfiguration;
13747
			isa = XCBuildConfiguration;
13601
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
13748
			baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
13602
			buildSettings = {
13749
			buildSettings = {
13603
			};
13750
			};
13604
			name = Production;
13751
			name = Production;
Lines 13859-13870 a/Source/WebKit/WebKit.xcodeproj/project.pbxproj_sec38
13859
			defaultConfigurationIsVisible = 0;
14006
			defaultConfigurationIsVisible = 0;
13860
			defaultConfigurationName = Production;
14007
			defaultConfigurationName = Production;
13861
		};
14008
		};
13862
		57A9FF00252BD8AB006A2040 /* Build configuration list for PBXNativeTarget "WebAuthenticationAgent" */ = {
14009
		5742A2F32535613F00B7BA14 /* Build configuration list for PBXNativeTarget "WebAuthn" */ = {
13863
			isa = XCConfigurationList;
14010
			isa = XCConfigurationList;
13864
			buildConfigurations = (
14011
			buildConfigurations = (
13865
				57A9FF01252BD8AB006A2040 /* Debug */,
14012
				5742A2F42535613F00B7BA14 /* Debug */,
13866
				57A9FF02252BD8AB006A2040 /* Release */,
14013
				5742A2F52535613F00B7BA14 /* Release */,
13867
				57A9FF03252BD8AB006A2040 /* Production */,
14014
				5742A2F62535613F00B7BA14 /* Production */,
13868
			);
14015
			);
13869
			defaultConfigurationIsVisible = 0;
14016
			defaultConfigurationIsVisible = 0;
13870
			defaultConfigurationName = Production;
14017
			defaultConfigurationName = Production;
- a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp +59 lines
Line 0 a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebAuthnProcessConnection.h"
28
29
#if ENABLE(WEB_AUTHN)
30
31
#include "WebAuthnConnectionToWebProcessMessages.h"
32
#include "WebPageMessages.h"
33
#include "WebProcess.h"
34
35
namespace WebKit {
36
using namespace WebCore;
37
38
WebAuthnProcessConnection::WebAuthnProcessConnection(IPC::Connection::Identifier connectionIdentifier)
39
    : m_connection(IPC::Connection::createClientConnection(connectionIdentifier, *this))
40
{
41
    m_connection->open();
42
}
43
44
WebAuthnProcessConnection::~WebAuthnProcessConnection()
45
{
46
    m_connection->invalidate();
47
}
48
49
void WebAuthnProcessConnection::didClose(IPC::Connection&)
50
{
51
}
52
53
void WebAuthnProcessConnection::didReceiveInvalidMessage(IPC::Connection&, IPC::MessageName)
54
{
55
}
56
57
} // namespace WebKit
58
59
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.h +59 lines
Line 0 a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.h_sec1
1
/*
2
 * Copyright (C) 2020 Apple Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
 * THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
#include "Connection.h"
31
#include <wtf/RefCounted.h>
32
#include <wtf/text/WTFString.h>
33
34
namespace WebKit {
35
36
class WebAuthnProcessConnection : public RefCounted<WebAuthnProcessConnection>, IPC::Connection::Client {
37
public:
38
    static Ref<WebAuthnProcessConnection> create(IPC::Connection::Identifier connectionIdentifier)
39
    {
40
        return adoptRef(*new WebAuthnProcessConnection(connectionIdentifier));
41
    }
42
    ~WebAuthnProcessConnection();
43
44
    IPC::Connection& connection() { return m_connection.get(); }
45
46
private:
47
    WebAuthnProcessConnection(IPC::Connection::Identifier);
48
49
    // IPC::Connection::Client
50
    void didClose(IPC::Connection&) override;
51
    void didReceiveInvalidMessage(IPC::Connection&, IPC::MessageName) override;
52
53
    // The connection from the web process to the WebAuthn process.
54
    Ref<IPC::Connection> m_connection;
55
};
56
57
} // namespace WebKit
58
59
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in +28 lines
Line 0 a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in_sec1
1
# Copyright (C) 2019 Apple Inc. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or without
4
# modification, are permitted provided that the following conditions
5
# are met:
6
# 1.  Redistributions of source code must retain the above copyright
7
#     notice, this list of conditions and the following disclaimer.
8
# 2.  Redistributions in binary form must reproduce the above copyright
9
#     notice, this list of conditions and the following disclaimer in the
10
#     documentation and/or other materials provided with the distribution.
11
#
12
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
13
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
14
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
16
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23
#if ENABLE(WEB_AUTHN)
24
25
messages -> WebAuthnProcessConnection {
26
}
27
28
#endif // ENABLE(WEB_AUTHN)
- a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h +62 lines
Line 0 a/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h_sec1
1
/*
2
* Copyright (C) 2020 Apple Inc. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
* 1. Redistributions of source code must retain the above copyright
8
*    notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
*    notice, this list of conditions and the following disclaimer in the
11
*    documentation and/or other materials provided with the distribution.
12
*
13
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
* THE POSSIBILITY OF SUCH DAMAGE.
24
*/
25
26
#pragma once
27
28
#if ENABLE(WEB_AUTHN)
29
30
namespace WebKit {
31
32
struct WebAuthnProcessConnectionInfo {
33
    IPC::Attachment connection;
34
35
    IPC::Connection::Identifier identifier() const
36
    {
37
        return IPC::Connection::Identifier(connection.port());
38
    }
39
40
    IPC::Connection::Identifier releaseIdentifier()
41
    {
42
        auto returnValue = identifier();
43
        connection = { };
44
        return returnValue;
45
    }
46
47
    void encode(IPC::Encoder& encoder) const
48
    {
49
        encoder << connection;
50
    }
51
52
    static WARN_UNUSED_RETURN bool decode(IPC::Decoder& decoder, WebAuthnProcessConnectionInfo& info)
53
    {
54
        if (!decoder.decode(info.connection))
55
            return false;
56
        return true;
57
    }
58
};
59
60
} // namespace WebKit
61
62
#endif // ENABLE(GPU_PROCESS)
- a/Source/WebKit/WebProcess/WebProcess.cpp +53 lines
Lines 165-170 a/Source/WebKit/WebProcess/WebProcess.cpp_sec1
165
#include "GPUProcessConnectionInfo.h"
165
#include "GPUProcessConnectionInfo.h"
166
#endif
166
#endif
167
167
168
#if ENABLE(WEB_AUTHN)
169
#include "WebAuthnConnectionToWebProcessMessages.h"
170
#include "WebAuthnProcessConnection.h"
171
#include "WebAuthnProcessConnectionInfo.h"
172
#endif
173
168
#if ENABLE(REMOTE_INSPECTOR)
174
#if ENABLE(REMOTE_INSPECTOR)
169
#include <JavaScriptCore/RemoteInspector.h>
175
#include <JavaScriptCore/RemoteInspector.h>
170
#endif
176
#endif
Lines 1316-1321 LibWebRTCCodecs& WebProcess::libWebRTCCodecs() a/Source/WebKit/WebProcess/WebProcess.cpp_sec2
1316
1322
1317
#endif // ENABLE(GPU_PROCESS)
1323
#endif // ENABLE(GPU_PROCESS)
1318
1324
1325
#if ENABLE(WEB_AUTHN)
1326
1327
static WebAuthnProcessConnectionInfo getWebAuthnProcessConnection(IPC::Connection& connection)
1328
{
1329
    WebAuthnProcessConnectionInfo connectionInfo;
1330
    if (!connection.sendSync(Messages::WebProcessProxy::GetWebAuthnProcessConnection(), Messages::WebProcessProxy::GetWebAuthnProcessConnection::Reply(connectionInfo), 0)) {
1331
        // If we failed the first time, retry once. The attachment may have become invalid
1332
        // before it was received by the web process if the network process crashed.
1333
        if (!connection.sendSync(Messages::WebProcessProxy::GetWebAuthnProcessConnection(), Messages::WebProcessProxy::GetWebAuthnProcessConnection::Reply(connectionInfo), 0))
1334
            CRASH();
1335
    }
1336
1337
    return connectionInfo;
1338
}
1339
1340
WebAuthnProcessConnection& WebProcess::ensureWebAuthnProcessConnection()
1341
{
1342
    RELEASE_ASSERT(RunLoop::isMain());
1343
1344
    // If we've lost our connection to the WebAuthn process (e.g. it crashed) try to re-establish it.
1345
    if (!m_webAuthnProcessConnection) {
1346
        auto connectionInfo = getWebAuthnProcessConnection(*parentProcessConnection());
1347
1348
        // Retry once if the IPC to get the connectionIdentifier succeeded but the connectionIdentifier we received
1349
        // is invalid. This may indicate that the WebAuthn process has crashed.
1350
        if (!IPC::Connection::identifierIsValid(connectionInfo.identifier()))
1351
            connectionInfo = getWebAuthnProcessConnection(*parentProcessConnection());
1352
1353
        if (!IPC::Connection::identifierIsValid(connectionInfo.identifier()))
1354
            CRASH();
1355
1356
        m_webAuthnProcessConnection = WebAuthnProcessConnection::create(connectionInfo.releaseIdentifier());
1357
    }
1358
1359
    return *m_webAuthnProcessConnection;
1360
}
1361
1362
void WebProcess::webAuthnProcessConnectionClosed(WebAuthnProcessConnection* connection)
1363
{
1364
    ASSERT(m_webAuthnProcessConnection);
1365
    ASSERT_UNUSED(connection, m_webAuthnProcessConnection == connection);
1366
1367
    m_webAuthnProcessConnection = nullptr;
1368
}
1369
1370
#endif // ENABLE(WEB_AUTHN)
1371
1319
void WebProcess::setEnhancedAccessibility(bool flag)
1372
void WebProcess::setEnhancedAccessibility(bool flag)
1320
{
1373
{
1321
    WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility(flag);
1374
    WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility(flag);
- a/Source/WebKit/WebProcess/WebProcess.h +11 lines
Lines 115-120 struct ServiceWorkerInitializationData; a/Source/WebKit/WebProcess/WebProcess.h_sec1
115
class StorageAreaMap;
115
class StorageAreaMap;
116
class UserData;
116
class UserData;
117
class WaylandCompositorDisplay;
117
class WaylandCompositorDisplay;
118
class WebAuthnProcessConnection;
118
class WebAutomationSessionProxy;
119
class WebAutomationSessionProxy;
119
class WebCacheStorageProvider;
120
class WebCacheStorageProvider;
120
class WebCookieJar;
121
class WebCookieJar;
Lines 232-237 public: a/Source/WebKit/WebProcess/WebProcess.h_sec2
232
233
233
#endif // ENABLE(GPU_PROCESS)
234
#endif // ENABLE(GPU_PROCESS)
234
235
236
#if ENABLE(WEB_AUTHN)
237
    WebAuthnProcessConnection& ensureWebAuthnProcessConnection();
238
    void webAuthnProcessConnectionClosed(WebAuthnProcessConnection*);
239
    WebAuthnProcessConnection* existingWebAuthnProcessConnection() { return m_webAuthnProcessConnection.get(); }
240
#endif
241
235
    LibWebRTCNetwork& libWebRTCNetwork();
242
    LibWebRTCNetwork& libWebRTCNetwork();
236
243
237
    void setCacheModel(CacheModel);
244
    void setCacheModel(CacheModel);
Lines 586-591 private: a/Source/WebKit/WebProcess/WebProcess.h_sec3
586
#endif
593
#endif
587
#endif
594
#endif
588
595
596
#if ENABLE(WEB_AUTHN)
597
    RefPtr<WebAuthnProcessConnection> m_webAuthnProcessConnection;
598
#endif
599
589
    Ref<WebCacheStorageProvider> m_cacheStorageProvider;
600
    Ref<WebCacheStorageProvider> m_cacheStorageProvider;
590
    Ref<WebCookieJar> m_cookieJar;
601
    Ref<WebCookieJar> m_cookieJar;
591
    WebSocketChannelManager m_webSocketChannelManager;
602
    WebSocketChannelManager m_webSocketChannelManager;

Return to Bug 217559