Changeset 268605 in webkit


Ignore:
Timestamp:
Oct 16, 2020 12:38:48 PM (4 years ago)
Author:
jiewen_tan@apple.com
Message:

[WebAuthn] Implement a dummy WebAuthnProcess
https://bugs.webkit.org/show_bug.cgi?id=217559
<rdar://problem/70168749>

Reviewed by Brent Fulgham.

Source/WebCore:

No tests.

  • en.lproj/Localizable.strings:

Provides a name for the WebAuthn process.

Source/WebKit:

Previous patch r268248 introduces a new daemon to handle all WebAuthn requests. However, after more deeper investigations, the daemon
story is not very compelling for WebKit. Here are the two major road blockers:
1) The major one is on macOS. New daemons cannot be installed without a system update. It means relocatable Safari (e.g. STP)
and staged Safari on downlevel OSes will not get this feature. And relocatable STP can only utilize the system daemon. This
seems a bummer especially for the STP case given it is heavily used to test latest web features.
2) Additional plumbing is needed for testing and engineering builds. This problem is specific to WebKit and is on both macOS and iOS.
WebKit doesn't build roots to test engineering builds, which is required to update the plist on the above location. Hence, a separate
configuration is needed to generate a different plist that points to the right engineering binary and additional scripts will be needed
to ask launchd to load the plist before running any tests. Some extra exercises are probably needed to not confuse launchd about the
engineering binary and system binary as well.

Given the above constraints, a new architecture is proposed to make the daemon a WebKit XPC service/process instead and leave the launchd
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
all the above macOS constraints. Having different architectures on iOS (a daemon) and on macOS (a XPC service) accordingly will introduce
tons of overhead for maintainance as well. That's why relying on a Safari daemon to do the job is the most reasonable option.

This patch therefore focuses on making the WebAuthn process happen and removes the WebAuthn daemon.

  • CMakeLists.txt:
  • Configurations/WebAuthnService.xcconfig: Renamed from Source/WebKit/Configurations/WebAuthenticationAgent.xcconfig.
  • Configurations/WebKit.xcconfig:
  • Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements: Removed.
  • Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist: Removed.
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Paperwork for building the new WebAuthn process.

  • Platform/ExtraPrivateSymbolsForTAPI.h:
  • Shared/AuxiliaryProcess.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::processStorageClass):
(WebKit::sandboxDirectory):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

  • Sources.txt:
  • SourcesCocoa.txt:

Paperwork for building the new WebAuthn process.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):
(WebKit::shouldLeakBoost):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: Added.

(WebKit::WebAuthnProcessProxy::singleton):
(WebKit::WebAuthnProcessProxy::WebAuthnProcessProxy):
(WebKit::WebAuthnProcessProxy::getLaunchOptions):
(WebKit::WebAuthnProcessProxy::connectionWillOpen):
(WebKit::WebAuthnProcessProxy::processWillShutDown):
(WebKit::WebAuthnProcessProxy::getWebAuthnProcessConnection):
(WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):
(WebKit::WebAuthnProcessProxy::didClose):
(WebKit::WebAuthnProcessProxy::didReceiveInvalidMessage):
(WebKit::WebAuthnProcessProxy::didFinishLaunching):
(WebKit::WebAuthnProcessProxy::updateProcessAssertion):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h: Added.
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in: Added.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getWebAuthnProcessConnection):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getWebAuthnProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnServiceInitializerDelegate::WebAuthnServiceInitializerDelegate):
(WebKit::initializeAuxiliaryProcess<WebAuthnProcess>):
(WEBAUTHEN_SERVICE_INITIALIZER):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp: Added.

(WebKit::WebAuthnConnectionToWebProcess::create):
(WebKit::WebAuthnConnectionToWebProcess::WebAuthnConnectionToWebProcess):
(WebKit::WebAuthnConnectionToWebProcess::~WebAuthnConnectionToWebProcess):
(WebKit::WebAuthnConnectionToWebProcess::didClose):
(WebKit::WebAuthnConnectionToWebProcess::didReceiveInvalidMessage):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnConnectionToWebProcess::connection):
(WebKit::WebAuthnConnectionToWebProcess::WebAuthnProcessProcess):
(WebKit::WebAuthnConnectionToWebProcess::webProcessIdentifier const):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in: Added.
  • WebAuthnProcess/WebAuthnProcess.cpp: Added.

(WebKit::WebAuthnProcess::WebAuthnProcess):
(WebKit::WebAuthnProcess::~WebAuthnProcess):
(WebKit::WebAuthnProcess::createWebAuthnConnectionToWebProcess):
(WebKit::WebAuthnProcess::removeWebAuthnConnectionToWebProcess):
(WebKit::WebAuthnProcess::connectionToWebProcessClosed):
(WebKit::WebAuthnProcess::shouldTerminate):
(WebKit::WebAuthnProcess::didClose):
(WebKit::WebAuthnProcess::lowMemoryHandler):
(WebKit::WebAuthnProcess::initializeWebAuthnProcess):
(WebKit::WebAuthnProcess::prepareToSuspend):
(WebKit::WebAuthnProcess::processDidResume):
(WebKit::WebAuthnProcess::resume):
(WebKit::WebAuthnProcess::processDidTransitionToForeground):
(WebKit::WebAuthnProcess::processDidTransitionToBackground):
(WebKit::WebAuthnProcess::webProcessConnection const):

  • WebAuthnProcess/WebAuthnProcess.h: Added.
  • WebAuthnProcess/WebAuthnProcess.messages.in: Added.
  • WebAuthnProcess/WebAuthnProcessCreationParameters.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessCreationParameters::encode const):
(WebKit::WebAuthnProcessCreationParameters::decode):

  • WebAuthnProcess/WebAuthnProcessCreationParameters.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
  • WebAuthnProcess/ios/WebAuthnProcessIOS.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcess::initializeProcess):
(WebKit::WebAuthnProcess::initializeProcessName):
(WebKit::WebAuthnProcess::initializeSandbox):

  • WebAuthnProcess/mac/WebAuthnProcessMac.mm: Added.

(WebKit::WebAuthnProcess::initializeProcess):
(WebKit::WebAuthnProcess::initializeProcessName):
(WebKit::WebAuthnProcess::initializeSandbox):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in: Added.

The sandbox profile is originally from the GPU Process with IOKit related rules removed. Will tighten it again after the process is fully functional.

  • WebKit.xcodeproj/project.pbxproj:

Paperwork for building the new WebAuthn process.

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessConnection::WebAuthnProcessConnection):
(WebKit::WebAuthnProcessConnection::~WebAuthnProcessConnection):
(WebKit::WebAuthnProcessConnection::didClose):
(WebKit::WebAuthnProcessConnection::didReceiveInvalidMessage):

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.h: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessConnection::create):
(WebKit::WebAuthnProcessConnection::connection):

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in: Added.
  • WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h: Added.

(WebKit::WebAuthnProcessConnectionInfo::identifier const):
(WebKit::WebAuthnProcessConnectionInfo::releaseIdentifier):
(WebKit::WebAuthnProcessConnectionInfo::encode const):
(WebKit::WebAuthnProcessConnectionInfo::decode):

  • WebProcess/WebProcess.cpp:

(WebKit::getWebAuthnProcessConnection):
(WebKit::WebProcess::ensureWebAuthnProcessConnection):
(WebKit::WebProcess::webAuthnProcessConnectionClosed):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::existingWebAuthnProcessConnection):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

Location:
trunk/Source
Files:
19 added
1 deleted
26 edited
9 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r268603 r268605  
     12020-10-16  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
    1142020-10-16  Don Olmstead  <don.olmstead@sony.com>
    215
  • trunk/Source/WebCore/en.lproj/Localizable.strings

    r267414 r268605  
    4747"%@ Service Worker (%@)" = "%@ Service Worker (%@)";
    4848
     49/* visible name of the WebAuthn process. The argument is the application name. */
     50"%@ Web Authentication" = "%@ Web Authentication";
     51
    4952/* Visible name of the web process. The argument is the application name. */
    5053"%@ Web Content" = "%@ Web Content";
  • trunk/Source/WebKit/CMakeLists.txt

    r268577 r268605  
    7272    "${WEBKIT_DIR}/UIProcess/WebAuthentication/Mock"
    7373    "${WEBKIT_DIR}/UIProcess/WebsiteData"
     74    "${WEBKIT_DIR}/WebAuthnProcess"
    7475    "${WEBKIT_DIR}/WebProcess"
    7576    "${WEBKIT_DIR}/WebProcess/ApplePay"
  • trunk/Source/WebKit/ChangeLog

    r268602 r268605  
     12020-10-16  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
    11552020-10-16  Jiewen Tan  <jiewen_tan@apple.com>
    2156
  • trunk/Source/WebKit/Configurations/WebAuthnService.xcconfig

    r268604 r268605  
    2424#include "BaseXPCService.xcconfig"
    2525
    26 PRODUCT_NAME = com.apple.WebKit.WebAuthenticationAgent;
     26PRODUCT_NAME = com.apple.WebKit.WebAuthn;
    2727PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_NAME);
    28 INFOPLIST_FILE = Daemons/WebAuthenticationAgent/Info.plist;
     28INFOPLIST_FILE[sdk=embedded*] = WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist;
     29INFOPLIST_FILE[sdk=macosx*] = WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist;
    2930
    3031OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH) $(WK_RELOCATABLE_FRAMEWORKS_LDFLAGS);
     
    3435ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_NO = NO;
    3536ENTITLEMENTS_REQUIRED_USE_INTERNAL_SDK_YES = $(ENTITLEMENTS_REQUIRED);
    36 
    37 CODE_SIGN_ENTITLEMENTS = Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements;
  • trunk/Source/WebKit/Configurations/WebKit.xcconfig

    r268377 r268605  
    155155
    156156EXCLUDED_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;
     157EXCLUDED_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;
    158158
    159159INSTALLHDRS_SCRIPT_PHASE = YES;
  • trunk/Source/WebKit/DerivedSources-input.xcfilelist

    r268577 r268605  
    106106$(PROJECT_DIR)/UIProcess/VisitedLinkStore.messages.in
    107107$(PROJECT_DIR)/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in
     108$(PROJECT_DIR)/UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in
    108109$(PROJECT_DIR)/UIProcess/WebCookieManagerProxy.messages.in
    109110$(PROJECT_DIR)/UIProcess/WebFullScreenManagerProxy.messages.in
     
    117118$(PROJECT_DIR)/UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.messages.in
    118119$(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
    119123$(PROJECT_DIR)/WebProcess/ApplePay/WebPaymentCoordinator.messages.in
    120124$(PROJECT_DIR)/WebProcess/Automation/WebAutomationSessionProxy.js
     
    156160$(PROJECT_DIR)/WebProcess/UserContent/WebUserContentController.messages.in
    157161$(PROJECT_DIR)/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.messages.in
     162$(PROJECT_DIR)/WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in
    158163$(PROJECT_DIR)/WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.messages.in
    159164$(PROJECT_DIR)/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in
  • trunk/Source/WebKit/DerivedSources-output.xcfilelist

    r268577 r268605  
    293293$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h
    294294$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessagesReplies.h
     295$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessageReceiver.cpp
     296$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessages.h
     297$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnConnectionToWebProcessMessagesReplies.h
     298$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessageReceiver.cpp
     299$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessages.h
     300$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessConnectionMessagesReplies.h
     301$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessageReceiver.cpp
     302$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessages.h
     303$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessMessagesReplies.h
     304$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessageReceiver.cpp
     305$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessages.h
     306$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAuthnProcessProxyMessagesReplies.h
    295307$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessageReceiver.cpp
    296308$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebAutomationSessionMessages.h
     
    426438$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.GPUProcess.sb
    427439$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.NetworkProcess.sb
     440$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.WebAuthnProcess.sb
    428441$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebKit.plugin-common.sb
    429442$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/com.apple.WebProcess.sb
  • trunk/Source/WebKit/DerivedSources.make

    r268577 r268605  
    4646    $(WebKit2)/Shared/Authentication \
    4747    $(WebKit2)/Shared/mac \
     48    $(WebKit2)/WebAuthnProcess \
     49    $(WebKit2)/WebAuthnProcess/mac \
    4850    $(WebKit2)/WebProcess/ApplePay \
    4951    $(WebKit2)/WebProcess/ApplicationCache \
     
    141143        UIProcess/GPU/GPUProcessProxy \
    142144        UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy \
     145        UIProcess/WebAuthentication/WebAuthnProcessProxy \
    143146        UIProcess/WebPasteboardProxy \
    144147        UIProcess/UserContent/WebUserContentControllerProxy \
     
    215218        WebProcess/WebPage/Cocoa/TextCheckingControllerProxy \
    216219        WebProcess/WebPage/ViewUpdateDispatcher \
     220        WebProcess/WebAuthentication/WebAuthnProcessConnection \
    217221        PluginProcess/WebProcessConnection \
    218222        PluginProcess/PluginControllerProxy \
     
    241245        GPUProcess/media/RemoteMediaPlayerManagerProxy \
    242246        GPUProcess/media/RemoteAudioDestinationManager \
     247        WebAuthnProcess/WebAuthnConnectionToWebProcess \
     248        WebAuthnProcess/WebAuthnProcess \
    243249#
    244250
     
    286292        com.apple.WebKit.plugin-common.sb \
    287293        com.apple.WebKit.NetworkProcess.sb \
    288         com.apple.WebKit.GPUProcess.sb
     294        com.apple.WebKit.GPUProcess.sb \
     295        com.apple.WebKit.WebAuthnProcess.sb
    289296
    290297all : $(SANDBOX_PROFILES)
  • trunk/Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h

    r253098 r268605  
    3535void WebContentServiceInitializer();
    3636void GPUServiceInitializer();
     37void WebAuthnServiceInitializer();
    3738
    3839#ifdef __cplusplus
  • trunk/Source/WebKit/Shared/AuxiliaryProcess.h

    r261254 r268605  
    11/*
    2  * Copyright (C) 2010-2019 Apple Inc. All rights reserved.
     2 * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    5050        Plugin,
    5151#if ENABLE(GPU_PROCESS)
    52         GPU
     52        GPU,
     53#endif
     54#if ENABLE(WEB_AUTHN)
     55        WebAuthn
    5356#endif
    5457    };
  • trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h

    r261094 r268605  
    4343#define PLUGIN_SERVICE_INITIALIZER PluginServiceInitializer
    4444#define GPU_SERVICE_INITIALIZER GPUServiceInitializer
     45#define WEBAUTHN_SERVICE_INITIALIZER WebAuthnServiceInitializer
    4546
    4647namespace WebKit {
  • trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm

    r268570 r268605  
    7171                else if (!strcmp(serviceName, "com.apple.WebKit.GPU"))
    7272                    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));
    7375                else
    7476                    RELEASE_ASSERT_NOT_REACHED();
  • trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm

    r263857 r268605  
    232232        return "WebKitGPUSandbox";
    233233#endif
     234#if ENABLE(WEB_AUTHN)
     235    case AuxiliaryProcess::ProcessType::WebAuthn:
     236        return "WebKitWebAuthnSandbox";
     237#endif
    234238    }
    235239}
     
    294298        break;
    295299#endif
     300#if ENABLE(WEB_AUTHN)
     301    case AuxiliaryProcess::ProcessType::WebAuthn:
     302        directory.append("/com.apple.WebKit.WebAuthn.Sandbox");
     303        break;
     304#endif
    296305    }
    297306
  • trunk/Source/WebKit/Sources.txt

    r268287 r268605  
    473473UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp
    474474UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp
     475UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp
    475476
    476477UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp
     
    478479UIProcess/WebsiteData/WebsiteDataStore.cpp
    479480UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
     481
     482WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp
     483WebAuthnProcess/WebAuthnProcess.cpp
     484WebAuthnProcess/WebAuthnProcessCreationParameters.cpp
    480485
    481486WebProcess/WebConnectionToUIProcess.cpp
     
    627632
    628633WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp
     634WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp
    629635
    630636WebProcess/WebCoreSupport/SessionStateConversion.cpp
  • trunk/Source/WebKit/SourcesCocoa.txt

    r268577 r268605  
    551551UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
    552552
     553WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm
     554WebAuthnProcess/ios/WebAuthnProcessIOS.mm
     555WebAuthnProcess/mac/WebAuthnProcessMac.mm
     556
    553557WebProcess/API/Cocoa/WKWebProcess.cpp
    554558
  • trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

    r263248 r268605  
    8585        break;
    8686#endif
     87#if ENABLE(WEB_AUTHN)
     88    case ProcessLauncher::ProcessType::WebAuthn:
     89        varname = "WEBAUTHN_PROCESS_CMD_PREFIX";
     90        break;
     91#endif
    8792    }
    8893    const char* processCmdPrefix = getenv(varname);
  • trunk/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h

    r264178 r268605  
    7474        Network,
    7575#if ENABLE(GPU_PROCESS)
    76         GPU
     76        GPU,
     77#endif
     78#if ENABLE(WEB_AUTHN)
     79        WebAuthn
    7780#endif
    7881    };
  • trunk/Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm

    r264178 r268605  
    6161        return "com.apple.WebKit.GPU";
    6262#endif
     63#if ENABLE(WEB_AUTHN)
     64    case ProcessLauncher::ProcessType::WebAuthn:
     65        return "com.apple.WebKit.WebAuthn";
     66#endif
    6367#if ENABLE(NETSCAPE_PLUGIN_API)
    6468    case ProcessLauncher::ProcessType::Plugin:
     
    7579    return true;
    7680#else
    77     // On Mac, leak a boost onto the NetworkProcess and GPUProcess.
     81    // On Mac, leak a boost onto the NetworkProcess, GPUProcess, and WebAuthnProcess.
    7882#if ENABLE(GPU_PROCESS)
    7983    if (launchOptions.processType == ProcessLauncher::ProcessType::GPU)
     84        return true;
     85#endif
     86#if ENABLE(WEB_AUTHN)
     87    if (launchOptions.processType == ProcessLauncher::ProcessType::WebAuthn)
    8088        return true;
    8189#endif
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r268449 r268605  
    117117#endif
    118118
     119#if ENABLE(WEB_AUTHN)
     120#include "WebAuthnProcessConnectionInfo.h"
     121#include "WebAuthnProcessProxy.h"
     122#endif
     123
    119124#if ENABLE(REMOTE_INSPECTOR)
    120125#include <JavaScriptCore/RemoteInspector.h>
     
    490495            WEBPROCESSPOOL_RELEASE_LOG_ERROR(Process, "getGPUProcessConnection: Failed first attempt, retrying");
    491496            GPUProcessProxy::singleton().getGPUProcessConnection(*webProcessProxy, WTFMove(reply));
     497            return;
     498        }
     499        reply(connectionInfo);
     500    });
     501}
     502#endif
     503
     504#if ENABLE(WEB_AUTHN)
     505void 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));
    492511            return;
    493512        }
  • trunk/Source/WebKit/UIProcess/WebProcessPool.h

    r268065 r268605  
    359359#endif
    360360
     361#if ENABLE(WEB_AUTHN)
     362    void getWebAuthnProcessConnection(WebProcessProxy&, Messages::WebProcessProxy::GetWebAuthnProcessConnectionDelayedReply&&);
     363#endif
     364
    361365    // Network Process Management
    362366    void networkProcessCrashed(NetworkProcessProxy&);
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r268517 r268605  
    770770#endif
    771771
     772#if ENABLE(WEB_AUTHN)
     773void WebProcessProxy::getWebAuthnProcessConnection(Messages::WebProcessProxy::GetWebAuthnProcessConnection::DelayedReply&& reply)
     774{
     775    m_processPool->getWebAuthnProcessConnection(*this, WTFMove(reply));
     776}
     777#endif
     778
    772779#if !PLATFORM(COCOA)
    773780bool WebProcessProxy::platformIsBeingDebugged() const
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.h

    r268497 r268605  
    452452#endif
    453453
     454#if ENABLE(WEB_AUTHN)
     455    void getWebAuthnProcessConnection(Messages::WebProcessProxy::GetWebAuthnProcessConnectionDelayedReply&&);
     456#endif
     457
    454458    bool platformIsBeingDebugged() const;
    455459    bool shouldAllowNonValidInjectedCode() const;
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.messages.in

    r263038 r268605  
    4343#endif
    4444
     45#if ENABLE(WEB_AUTHN)
     46    GetWebAuthnProcessConnection() -> (struct WebKit::WebAuthnProcessConnectionInfo connectionInfo) Synchronous
     47#endif
     48
    4549    SetIsHoldingLockedFiles(bool isHoldingLockedFiles)
    4650
  • trunk/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist

    r268604 r268605  
    1616        <string>${PRODUCT_NAME}</string>
    1717        <key>CFBundlePackageType</key>
    18         <string>APPL</string>
     18        <string>XPC!</string>
    1919        <key>CFBundleShortVersionString</key>
    2020        <string>${SHORT_VERSION_STRING}</string>
     
    2525        <key>LSFileQuarantineEnabled</key>
    2626        <true/>
    27         <key>LSBackgroundOnly</key>
    28         <true/>
    2927        <key>NSPrincipalClass</key>
    3028        <string>NSApplication</string>
    3129        <key>LSUIElement</key>
    3230        <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>
    3342</dict>
    3443</plist>
  • trunk/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist

    r268604 r268605  
    1616        <string>${PRODUCT_NAME}</string>
    1717        <key>CFBundlePackageType</key>
    18         <string>APPL</string>
     18        <string>XPC!</string>
    1919        <key>CFBundleShortVersionString</key>
    2020        <string>${SHORT_VERSION_STRING}</string>
     
    2525        <key>LSFileQuarantineEnabled</key>
    2626        <true/>
    27         <key>LSBackgroundOnly</key>
    28         <true/>
    2927        <key>NSPrincipalClass</key>
    3028        <string>NSApplication</string>
    3129        <key>LSUIElement</key>
    3230        <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/>
    3342</dict>
    3443</plist>
  • trunk/Source/WebKit/WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm

    r268604 r268605  
    2626#import "config.h"
    2727
    28 int main(int argc, const char* argv[])
     28#import "EnvironmentUtilities.h"
     29#import "WKBase.h"
     30#import "WebAuthnProcess.h"
     31#import "XPCServiceEntryPoint.h"
     32
     33#if ENABLE(WEB_AUTHN)
     34
     35namespace WebKit {
     36
     37class WebAuthnServiceInitializerDelegate : public XPCServiceInitializerDelegate {
     38public:
     39    WebAuthnServiceInitializerDelegate(OSObjectPtr<xpc_connection_t> connection, xpc_object_t initializerMessage)
     40        : XPCServiceInitializerDelegate(WTFMove(connection), initializerMessage)
     41    {
     42    }
     43};
     44
     45template<>
     46void initializeAuxiliaryProcess<WebAuthnProcess>(AuxiliaryProcessInitializationParameters&& parameters)
    2947{
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     48    static NeverDestroyed<WebAuthnProcess> WebAuthnProcess(WTFMove(parameters));
     49}
    3350
    34     [[NSRunLoop mainRunLoop] run];
     51} // namespace WebKit
    3552
    36     return 0;
     53#endif // ENABLE(WEB_AUTHN)
     54
     55extern "C" WK_EXPORT void WEBAUTHN_SERVICE_INITIALIZER(xpc_connection_t connection, xpc_object_t initializerMessage, xpc_object_t priorityBoostMessage);
     56
     57void 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)
    3764}
  • trunk/Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.h

    r268604 r268605  
    2424 */
    2525
    26 #import "config.h"
     26#pragma once
    2727
    28 int main(int argc, const char* argv[])
    29 {
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     28#if ENABLE(WEB_AUTHN)
    3329
    34     [[NSRunLoop mainRunLoop] run];
     30#include "Connection.h"
     31#include "WebAuthnConnectionToWebProcessMessages.h"
     32#include <WebCore/ProcessIdentifier.h>
     33#include <wtf/RefCounted.h>
    3534
    36     return 0;
    37 }
     35namespace WebKit {
     36
     37class WebAuthnProcess;
     38
     39class WebAuthnConnectionToWebProcess
     40    : public RefCounted<WebAuthnConnectionToWebProcess>
     41    , IPC::Connection::Client {
     42public:
     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
     53private:
     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)
  • trunk/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.cpp

    r268604 r268605  
    2424 */
    2525
    26 #import "config.h"
     26#include "config.h"
     27#include "WebAuthnProcessCreationParameters.h"
    2728
    28 int main(int argc, const char* argv[])
     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
     38namespace WebKit {
     39
     40WebAuthnProcessCreationParameters::WebAuthnProcessCreationParameters() = default;
     41
     42void WebAuthnProcessCreationParameters::encode(IPC::Encoder& encoder) const
    2943{
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     44}
    3345
    34     [[NSRunLoop mainRunLoop] run];
     46bool WebAuthnProcessCreationParameters::decode(IPC::Decoder& decoder, WebAuthnProcessCreationParameters& result)
     47{
     48    return true;
     49}
    3550
    36     return 0;
    37 }
     51} // namespace WebKit
     52
     53#endif // ENABLE(WEB_AUTHN)
  • trunk/Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.h

    r268604 r268605  
    2424 */
    2525
    26 #import "config.h"
     26#pragma once
    2727
    28 int main(int argc, const char* argv[])
    29 {
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     28#if ENABLE(WEB_AUTHN)
    3329
    34     [[NSRunLoop mainRunLoop] run];
     30namespace IPC {
     31class Decoder;
     32class Encoder;
     33}
    3534
    36     return 0;
    37 }
     35namespace WebKit {
     36
     37struct 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)
  • trunk/Source/WebKit/WebAuthnProcess/ios/WebAuthnProcessIOS.mm

    r268604 r268605  
    2525
    2626#import "config.h"
     27#import "WebAuthnProcess.h"
    2728
    28 int main(int argc, const char* argv[])
     29#if ENABLE(WEB_AUTHN) && PLATFORM(IOS_FAMILY)
     30
     31#import <WebCore/NotImplemented.h>
     32#import <WebCore/WebCoreThreadSystemInterface.h>
     33
     34namespace WebKit {
     35using namespace WebCore;
     36
     37void WebAuthnProcess::initializeProcess(const AuxiliaryProcessInitializationParameters&)
    2938{
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     39    InitWebCoreThreadSystemInterface();
     40}
    3341
    34     [[NSRunLoop mainRunLoop] run];
     42void WebAuthnProcess::initializeProcessName(const AuxiliaryProcessInitializationParameters&)
     43{
     44    notImplemented();
     45}
    3546
    36     return 0;
     47void WebAuthnProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&)
     48{
    3749}
     50
     51} // namespace WebKit
     52
     53#endif // ENABLE(WEB_AUTHN) && PLATFORM(IOS_FAMILY)
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r268577 r268605  
    1515                        );
    1616                        dependencies = (
    17                                 57A9FF0C252C31D6006A2040 /* PBXTargetDependency */,
     17                                5742A2FA2535619D00B7BA14 /* PBXTargetDependency */,
    1818                                BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
    1919                                372EBB492017E6CF00085064 /* PBXTargetDependency */,
     
    11001100                572EBBDB2538F6B6000552B3 /* AppAttestInternalSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */; };
    11011101                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 */; };
    11021113                572FD44322265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */; };
    11031114                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 */; };
    11041122                574728D123456E98001700AF /* _WKWebAuthenticationPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11051123                574728D4234570AE001700AF /* _WKWebAuthenticationPanelInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 574728D3234570AE001700AF /* _WKWebAuthenticationPanelInternal.h */; };
     
    11091127                575B1BB923CE9C0B0020639A /* SimulatedInputDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 995226D5207D184600F78420 /* SimulatedInputDispatcher.cpp */; };
    11101128                575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */; };
    1111                 576BCD5E252FD22D00CE9F87 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
    11121129                576CA9D722B862180030143C /* SOAuthorizationNSURLExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317322B35148008D0E8B /* SOAuthorizationNSURLExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11131130                5772F206217DBD6A0056BF2C /* HidService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5772F204217DBD6A0056BF2C /* HidService.h */; };
     
    11181135                579F1BF923C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F1BF823C80EC600C7D4B4 /* _WKWebAuthenticationAssertionResponseInternal.h */; };
    11191136                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 */; };
    11221137                57AC8F50217FEED90055438C /* HidConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 57AC8F4E217FEED90055438C /* HidConnection.h */; };
    11231138                57B4B46020B504AC00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B4B45E20B504AB00D4AD79 /* ClientCertificateAuthenticationXPCConstants.h */; };
     
    11291144                57BBEA6D22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 57BBEA6C22BC0BFE00273995 /* SOAuthorizationLoadPolicy.h */; };
    11301145                57C6244B234679A400383FE7 /* WebAuthenticationFlags.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */; };
    1131                 57DCED6F2142EE630016B847 /* WebAuthenticatorCoordinatorMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */; };
    11321146                57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */; };
    11331147                57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */; };
     
    19781992                        remoteInfo = "Derived Sources";
    19791993                };
    1980                 57A9FF0B252C31D6006A2040 /* PBXContainerItemProxy */ = {
     1994                5742A2E72535613F00B7BA14 /* PBXContainerItemProxy */ = {
    19811995                        isa = PBXContainerItemProxy;
    19821996                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
    19831997                        proxyType = 1;
    1984                         remoteGlobalIDString = 57A9FEFB252BD8AA006A2040;
    1985                         remoteInfo = WebAuthenticationAgent;
     1998                        remoteGlobalIDString = E1AC2E2720F7B94C00B0897D;
     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;
    19862014                };
    19872015                BC8283D416B4C01F00A278FE /* PBXContainerItemProxy */ = {
     
    20962124                        name = "Copy Shims";
    20972125                        runOnlyForDeploymentPostprocessing = 0;
    2098                 };
    2099                 57A9FEFA252BD8AA006A2040 /* CopyFiles */ = {
    2100                         isa = PBXCopyFilesBuildPhase;
    2101                         buildActionMask = 2147483647;
    2102                         dstPath = /usr/share/man/man1/;
    2103                         dstSubfolderSpec = 0;
    2104                         files = (
    2105                         );
    2106                         runOnlyForDeploymentPostprocessing = 1;
    21072126                };
    21082127                7CB16FEE1724BA05007A0A95 /* Copy Plug-in Sandbox Profiles */ = {
     
    36473666                510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebIDBConnectionToServerMessageReceiver.cpp; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    36483667                510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebIDBConnectionToServerMessages.h; path = DerivedSources/WebKit2/WebIDBConnectionToServerMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    3649                 510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebIDBConnectionToClientMessageReceiver.cpp; path = DerivedSources/WebKit2/WebIDBConnectionToClientMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    3650                 510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebIDBConnectionToClientMessages.h; path = DerivedSources/WebKit2/WebIDBConnectionToClientMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    36513668                5105B0D4162F7A7A00E27709 /* NetworkProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnection.cpp; path = Network/NetworkProcessConnection.cpp; sourceTree = "<group>"; };
    36523669                5105B0D5162F7A7A00E27709 /* NetworkProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnection.h; path = Network/NetworkProcessConnection.h; sourceTree = "<group>"; };
     
    36693686                5110AE0A133C16CB0072717A /* WKIconDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKIconDatabase.cpp; sourceTree = "<group>"; };
    36703687                5110AE0B133C16CB0072717A /* WKIconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKIconDatabase.h; sourceTree = "<group>"; };
    3671                 5118E9A21F295963003EF9F5 /* StorageProcessProxyMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageProcessProxyMessages.h; path = DerivedSources/WebKit2/StorageProcessProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    3672                 5118E9A31F295963003EF9F5 /* StorageToWebProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageToWebProcessConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageToWebProcessConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    3673                 5118E9A41F295963003EF9F5 /* StorageToWebProcessConnectionMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageToWebProcessConnectionMessages.h; path = DerivedSources/WebKit2/StorageToWebProcessConnectionMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    3674                 5118E9A51F295963003EF9F5 /* StorageProcessMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageProcessMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageProcessMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    3675                 5118E9A61F295963003EF9F5 /* StorageProcessMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = StorageProcessMessages.h; path = DerivedSources/WebKit2/StorageProcessMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    3676                 5118E9A71F295963003EF9F5 /* StorageProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StorageProcessProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/StorageProcessProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    36773688                511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsiteDataStoreParameters.cpp; sourceTree = "<group>"; };
    36783689                511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsiteDataStoreParameters.h; sourceTree = "<group>"; };
     
    39223933                572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestInternalSoftLink.h; sourceTree = "<group>"; };
    39233934                572EBBDC25392181000552B3 /* AppAttestSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppAttestSPI.h; sourceTree = "<group>"; };
     3935                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; };
     3936                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; };
     3937                572EBBBB2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnConnectionToWebProcessMessageReceiver.cpp; sourceTree = "<group>"; };
     3938                572EBBBC2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnConnectionToWebProcessMessages.h; sourceTree = "<group>"; };
     3939                572EBBBD2536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessMessageReceiver.cpp; sourceTree = "<group>"; };
     3940                572EBBBE2536A60A000552B3 /* WebAuthnProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessMessages.h; sourceTree = "<group>"; };
     3941                572EBBC32536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.WebAuthnProcess.sb; sourceTree = "<group>"; };
     3942                572EBBC52536AFD5000552B3 /* WebAuthnProcessProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessProxy.cpp; sourceTree = "<group>"; };
     3943                572EBBC62536AFD5000552B3 /* WebAuthnProcessProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessProxy.h; sourceTree = "<group>"; };
     3944                572EBBC72536AFD5000552B3 /* WebAuthnProcessProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcessProxy.messages.in; sourceTree = "<group>"; };
     3945                572EBBCB2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessConnectionInfo.h; sourceTree = "<group>"; };
     3946                572EBBCD2536BB10000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessProxyMessageReceiver.cpp; sourceTree = "<group>"; };
     3947                572EBBCE2536BB10000552B3 /* WebAuthnProcessProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessProxyMessages.h; sourceTree = "<group>"; };
     3948                572EBBD12536C885000552B3 /* WebAuthnProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessConnection.cpp; sourceTree = "<group>"; };
     3949                572EBBD22536C885000552B3 /* WebAuthnProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessConnection.h; sourceTree = "<group>"; };
     3950                572EBBD32536C885000552B3 /* WebAuthnProcessConnection.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcessConnection.messages.in; sourceTree = "<group>"; };
    39243951                572FD44122265CE200A1ECC3 /* WebViewDidMoveToWindowObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebViewDidMoveToWindowObserver.h; sourceTree = "<group>"; };
    39253952                574217912400E098002B303D /* LocalAuthenticationSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalAuthenticationSPI.h; sourceTree = "<group>"; };
     3953                5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.WebAuthn.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
     3954                5742A30625358A0400B7BA14 /* WebAuthnProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcessCreationParameters.h; sourceTree = "<group>"; };
     3955                5742A30725358A0400B7BA14 /* WebAuthnProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcessCreationParameters.cpp; sourceTree = "<group>"; };
     3956                5742A30A25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnConnectionToWebProcess.h; sourceTree = "<group>"; };
     3957                5742A30B25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnConnectionToWebProcess.messages.in; sourceTree = "<group>"; };
     3958                5742A30C25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnConnectionToWebProcess.cpp; sourceTree = "<group>"; };
     3959                5742A313253648E400B7BA14 /* WebAuthnProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAuthnProcess.messages.in; sourceTree = "<group>"; };
     3960                5742A314253648E400B7BA14 /* WebAuthnProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthnProcess.cpp; sourceTree = "<group>"; };
     3961                5742A315253648E400B7BA14 /* WebAuthnProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAuthnProcess.h; sourceTree = "<group>"; };
     3962                5742A31A253675E900B7BA14 /* WebAuthnProcessIOS.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnProcessIOS.mm; sourceTree = "<group>"; };
     3963                5742A31C253675F600B7BA14 /* WebAuthnProcessMac.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnProcessMac.mm; sourceTree = "<group>"; };
     3964                5742A31D253675F600B7BA14 /* com.apple.WebKit.WebAuthnProcess.sb.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = com.apple.WebKit.WebAuthnProcess.sb.in; sourceTree = "<group>"; };
     3965                5742A31E2536949300B7BA14 /* WebAuthnServiceEntryPoint.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAuthnServiceEntryPoint.mm; sourceTree = "<group>"; };
    39263966                574728CF23456E98001700AF /* _WKWebAuthenticationPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _WKWebAuthenticationPanel.h; sourceTree = "<group>"; };
    39273967                574728D023456E98001700AF /* _WKWebAuthenticationPanel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebAuthenticationPanel.mm; sourceTree = "<group>"; };
     
    39533993                579F1BFA23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APIWebAuthenticationAssertionResponse.h; sourceTree = "<group>"; };
    39543994                579F1BFB23C811CF00C7D4B4 /* APIWebAuthenticationAssertionResponse.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebAuthenticationAssertionResponse.cpp; sourceTree = "<group>"; };
    3955                 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; };
    3956                 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebAuthenticationAgent.xcconfig; sourceTree = "<group>"; };
    3957                 57A9FF08252BEAF0006A2040 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = Daemons/WebAuthenticationAgent/main.mm; sourceTree = SOURCE_ROOT; };
    3958                 57A9FF0A252BF5C3006A2040 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
    3959                 57A9FF0D252C397A006A2040 /* com.apple.webkit.WebAuthenticationAgent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = com.apple.webkit.WebAuthenticationAgent.plist; sourceTree = "<group>"; };
    3960                 57A9FF0F252C5D9D006A2040 /* WebAuthenticationAgent.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WebAuthenticationAgent.entitlements; sourceTree = "<group>"; };
     3995                57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebAuthnService.xcconfig; sourceTree = "<group>"; };
    39613996                57A9FF15252C6AEF006A2040 /* libWTF.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWTF.a; sourceTree = BUILT_PRODUCTS_DIR; };
    39623997                57AC8F4E217FEED90055438C /* HidConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HidConnection.h; sourceTree = "<group>"; };
     
    39764011                57C3E8AC242490D5001E2209 /* WebAuthenticationRequestData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebAuthenticationRequestData.cpp; sourceTree = "<group>"; };
    39774012                57C6244A234679A400383FE7 /* WebAuthenticationFlags.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebAuthenticationFlags.h; sourceTree = "<group>"; };
    3978                 57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAuthenticatorCoordinatorMessages.h; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
    3979                 57DCED6B2142EAE20016B847 /* WebAuthenticatorCoordinatorMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAuthenticatorCoordinatorMessageReceiver.cpp; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    39804013                57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    39814014                57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAuthenticatorCoordinatorProxyMessages.h; path = DerivedSources/WebKit2/WebAuthenticatorCoordinatorProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
     
    53055338                DF84CEE3249AA21F009096F6 /* WKPDFHUDView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKPDFHUDView.h; path = PDF/WKPDFHUDView.h; sourceTree = "<group>"; };
    53065339                E105FE5318D7B9DE008F57A8 /* EditingRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingRange.h; sourceTree = "<group>"; };
    5307                 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; };
    53085340                E133FD891423DD7F00FC7BFB /* WebKit.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = WebKit.icns; path = Resources/WebKit.icns; sourceTree = "<group>"; };
    53095341                E14A954716E016A40068DE82 /* NetworkProcessPlatformStrategies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessPlatformStrategies.cpp; sourceTree = "<group>"; };
     
    54905522                        runOnlyForDeploymentPostprocessing = 0;
    54915523                };
    5492                 57A9FEF9252BD8AA006A2040 /* Frameworks */ = {
     5524                5742A2ED2535613F00B7BA14 /* Frameworks */ = {
    54935525                        isa = PBXFrameworksBuildPhase;
    54945526                        buildActionMask = 2147483647;
    54955527                        files = (
    5496                                 576BCD5E252FD22D00CE9F87 /* Foundation.framework in Frameworks */,
    5497                                 57A9FF1D252C6CE6006A2040 /* libWTF.a in Frameworks */,
     5528                                5742A2EE2535613F00B7BA14 /* Foundation.framework in Frameworks */,
     5529                                5742A2EF2535613F00B7BA14 /* WebKit.framework in Frameworks */,
    54985530                        );
    54995531                        runOnlyForDeploymentPostprocessing = 0;
     
    55475579                                BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */,
    55485580                                BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */,
    5549                                 57A9FEFC252BD8AA006A2040 /* com.apple.WebKit.WebAuthenticationAgent.Development */,
     5581                                5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */,
    55505582                                372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */,
    55515583                                BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */,
     
    56995731                                1A1D2117191D996C0001619F /* MigrateHeadersFromWebKitLegacy.make */,
    57005732                                1A1D2116191D995C0001619F /* postprocess-framework-headers.sh */,
    5701                                 57A9FEEF252BB70C006A2040 /* Daemons */,
    57025733                                BC2E6E74114196F000A63B1E /* Platform */,
    57035734                                1AADDF4B10D82AF000D3D63D /* Shared */,
     
    57075738                                1A0EC6B0124BBD36007EF4A5 /* PluginProcess */,
    57085739                                2D9FB1FF2375209D0049F936 /* GPUProcess */,
     5740                                5742A2FF2535758000B7BA14 /* WebAuthnProcess */,
    57095741                                C0CE729D1247E71D00BC0EC4 /* Derived Sources */,
    57105742                                1DEC97AB246B6865007C83F4 /* FeatureFlags */,
     
    59085940                                5183B3931379F85C00E8754E /* Shim.xcconfig */,
    59095941                                1A4F976E100E7B6600637A18 /* Version.xcconfig */,
    5910                                 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */,
     5942                                57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */,
    59115943                                372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */,
    59125944                                BCACC40E16B0B8A800B6E092 /* WebContentService.xcconfig */,
     
    81468178                        sourceTree = "<group>";
    81478179                };
     8180                5742A2FF2535758000B7BA14 /* WebAuthnProcess */ = {
     8181                        isa = PBXGroup;
     8182                        children = (
     8183                                5742A3002535758000B7BA14 /* EntryPoint */,
     8184                                5742A319253675E900B7BA14 /* ios */,
     8185                                5742A31B253675F600B7BA14 /* mac */,
     8186                                5742A30C25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.cpp */,
     8187                                5742A30A25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h */,
     8188                                5742A30B25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.messages.in */,
     8189                                5742A314253648E400B7BA14 /* WebAuthnProcess.cpp */,
     8190                                5742A315253648E400B7BA14 /* WebAuthnProcess.h */,
     8191                                5742A313253648E400B7BA14 /* WebAuthnProcess.messages.in */,
     8192                                5742A30725358A0400B7BA14 /* WebAuthnProcessCreationParameters.cpp */,
     8193                                5742A30625358A0400B7BA14 /* WebAuthnProcessCreationParameters.h */,
     8194                        );
     8195                        path = WebAuthnProcess;
     8196                        sourceTree = "<group>";
     8197                };
     8198                5742A3002535758000B7BA14 /* EntryPoint */ = {
     8199                        isa = PBXGroup;
     8200                        children = (
     8201                                5742A3012535758000B7BA14 /* Cocoa */,
     8202                        );
     8203                        path = EntryPoint;
     8204                        sourceTree = "<group>";
     8205                };
     8206                5742A3012535758000B7BA14 /* Cocoa */ = {
     8207                        isa = PBXGroup;
     8208                        children = (
     8209                                5742A3022535758000B7BA14 /* XPCService */,
     8210                        );
     8211                        path = Cocoa;
     8212                        sourceTree = "<group>";
     8213                };
     8214                5742A3022535758000B7BA14 /* XPCService */ = {
     8215                        isa = PBXGroup;
     8216                        children = (
     8217                                5742A3032535758000B7BA14 /* WebAuthnService */,
     8218                                5742A31E2536949300B7BA14 /* WebAuthnServiceEntryPoint.mm */,
     8219                        );
     8220                        path = XPCService;
     8221                        sourceTree = "<group>";
     8222                };
     8223                5742A3032535758000B7BA14 /* WebAuthnService */ = {
     8224                        isa = PBXGroup;
     8225                        children = (
     8226                                572EBBB92536A06E000552B3 /* Info-iOS.plist */,
     8227                                572EBBBA2536A06E000552B3 /* Info-OSX.plist */,
     8228                        );
     8229                        path = WebAuthnService;
     8230                        sourceTree = "<group>";
     8231                };
     8232                5742A319253675E900B7BA14 /* ios */ = {
     8233                        isa = PBXGroup;
     8234                        children = (
     8235                                5742A31A253675E900B7BA14 /* WebAuthnProcessIOS.mm */,
     8236                        );
     8237                        path = ios;
     8238                        sourceTree = "<group>";
     8239                };
     8240                5742A31B253675F600B7BA14 /* mac */ = {
     8241                        isa = PBXGroup;
     8242                        children = (
     8243                                5742A31D253675F600B7BA14 /* com.apple.WebKit.WebAuthnProcess.sb.in */,
     8244                                5742A31C253675F600B7BA14 /* WebAuthnProcessMac.mm */,
     8245                        );
     8246                        path = mac;
     8247                        sourceTree = "<group>";
     8248                };
    81488249                575075A620AB75AB00693EA9 /* mac */ = {
    81498250                        isa = PBXGroup;
     
    81898290                                5760828C2029854200116678 /* WebAuthenticatorCoordinator.cpp */,
    81908291                                5760828B2029854200116678 /* WebAuthenticatorCoordinator.h */,
     8292                                572EBBD12536C885000552B3 /* WebAuthnProcessConnection.cpp */,
     8293                                572EBBD22536C885000552B3 /* WebAuthnProcessConnection.h */,
     8294                                572EBBD32536C885000552B3 /* WebAuthnProcessConnection.messages.in */,
     8295                                572EBBCB2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h */,
    81918296                        );
    81928297                        path = WebAuthentication;
     
    82118316                                57608295202BD8BA00116678 /* WebAuthenticatorCoordinatorProxy.h */,
    82128317                                57608299202BDAE200116678 /* WebAuthenticatorCoordinatorProxy.messages.in */,
     8318                                572EBBC52536AFD5000552B3 /* WebAuthnProcessProxy.cpp */,
     8319                                572EBBC62536AFD5000552B3 /* WebAuthnProcessProxy.h */,
     8320                                572EBBC72536AFD5000552B3 /* WebAuthnProcessProxy.messages.in */,
    82138321                        );
    82148322                        path = WebAuthentication;
    8215                         sourceTree = "<group>";
    8216                 };
    8217                 57A9FEEF252BB70C006A2040 /* Daemons */ = {
    8218                         isa = PBXGroup;
    8219                         children = (
    8220                                 57A9FEF0252BB740006A2040 /* WebAuthenticationAgent */,
    8221                         );
    8222                         path = Daemons;
    8223                         sourceTree = "<group>";
    8224                 };
    8225                 57A9FEF0252BB740006A2040 /* WebAuthenticationAgent */ = {
    8226                         isa = PBXGroup;
    8227                         children = (
    8228                                 57A9FF0D252C397A006A2040 /* com.apple.webkit.WebAuthenticationAgent.plist */,
    8229                                 57A9FF0A252BF5C3006A2040 /* Info.plist */,
    8230                                 57A9FF08252BEAF0006A2040 /* main.mm */,
    8231                                 57A9FF0F252C5D9D006A2040 /* WebAuthenticationAgent.entitlements */,
    8232                         );
    8233                         path = WebAuthenticationAgent;
    82348323                        sourceTree = "<group>";
    82358324                };
     
    1009410183                                E17AE2C216B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb */,
    1009510184                                7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */,
    10096                                 E115C715190F8A2500ECC516 /* com.apple.WebKit.Storage.sb */,
     10185                                572EBBC32536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb */,
    1009710186                                E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */,
    1009810187                                1AB7D6171288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp */,
     
    1020910298                                9368EEDC2303A8D800BDB11A /* StorageManagerSetMessageReceiver.cpp */,
    1021010299                                9368EEDD2303A8D800BDB11A /* StorageManagerSetMessages.h */,
    10211                                 5118E9A51F295963003EF9F5 /* StorageProcessMessageReceiver.cpp */,
    10212                                 5118E9A61F295963003EF9F5 /* StorageProcessMessages.h */,
    10213                                 5118E9A71F295963003EF9F5 /* StorageProcessProxyMessageReceiver.cpp */,
    10214                                 5118E9A21F295963003EF9F5 /* StorageProcessProxyMessages.h */,
    10215                                 5118E9A31F295963003EF9F5 /* StorageToWebProcessConnectionMessageReceiver.cpp */,
    10216                                 5118E9A41F295963003EF9F5 /* StorageToWebProcessConnectionMessages.h */,
    1021710300                                CD491B0B1E732E4D00009066 /* UserMediaCaptureManagerMessageReceiver.cpp */,
    1021810301                                CD491B0C1E732E4D00009066 /* UserMediaCaptureManagerMessages.h */,
     
    1023310316                                1A8E7D3A18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp */,
    1023410317                                1A8E7D3B18C15149005A702A /* VisitedLinkTableControllerMessages.h */,
    10235                                 57DCED6B2142EAE20016B847 /* WebAuthenticatorCoordinatorMessageReceiver.cpp */,
    10236                                 57DCED6A2142EAE20016B847 /* WebAuthenticatorCoordinatorMessages.h */,
    1023710318                                57DCED6C2142EAF90016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp */,
    1023810319                                57DCED6D2142EAFA0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h */,
     10320                                572EBBBB2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp */,
     10321                                572EBBBC2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h */,
     10322                                572EBBBD2536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp */,
     10323                                572EBBBE2536A60A000552B3 /* WebAuthnProcessMessages.h */,
     10324                                572EBBCD2536BB10000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp */,
     10325                                572EBBCE2536BB10000552B3 /* WebAuthnProcessProxyMessages.h */,
    1023910326                                1C0A19551C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp */,
    1024010327                                1C0A19561C90068F00FE0EBB /* WebAutomationSessionMessages.h */,
     
    1026010347                                BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */,
    1026110348                                BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */,
    10262                                 510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */,
    10263                                 510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */,
    1026410349                                510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */,
    1026510350                                510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */,
     
    1091611001                                51B15A8513843A3900321AD8 /* EnvironmentUtilities.h in Headers */,
    1091711002                                1AA575FB1496B52600A4EE06 /* EventDispatcher.h in Headers */,
     11003                                572EBBD72537EBAE000552B3 /* ExtraPrivateSymbolsForTAPI.h in Headers */,
    1091811004                                57B8264823050C5100B72EB0 /* FidoService.h in Headers */,
    1091911005                                00B9661A18E25AE100CE1F88 /* FindClient.h in Headers */,
     
    1130211388                                577FF7852346ECAA004EDFB9 /* WebAuthenticationPanelClient.h in Headers */,
    1130311389                                57DCEDB2214C604C0016B847 /* WebAuthenticationRequestData.h in Headers */,
    11304                                 57DCED6F2142EE630016B847 /* WebAuthenticatorCoordinatorMessages.h in Headers */,
    1130511390                                57DCEDB3214C60530016B847 /* WebAuthenticatorCoordinatorProxy.h in Headers */,
    1130611391                                57DCED712142EE6C0016B847 /* WebAuthenticatorCoordinatorProxyMessages.h in Headers */,
     11392                                5742A30D25358EFD00B7BA14 /* WebAuthnConnectionToWebProcess.h in Headers */,
     11393                                572EBBC02536A60A000552B3 /* WebAuthnConnectionToWebProcessMessages.h in Headers */,
     11394                                5742A318253648E500B7BA14 /* WebAuthnProcess.h in Headers */,
     11395                                572EBBD52536C885000552B3 /* WebAuthnProcessConnection.h in Headers */,
     11396                                572EBBCC2536B04F000552B3 /* WebAuthnProcessConnectionInfo.h in Headers */,
     11397                                5742A30825358A0400B7BA14 /* WebAuthnProcessCreationParameters.h in Headers */,
     11398                                572EBBC22536A60A000552B3 /* WebAuthnProcessMessages.h in Headers */,
     11399                                572EBBC92536AFD5000552B3 /* WebAuthnProcessProxy.h in Headers */,
     11400                                572EBBD02536BB11000552B3 /* WebAuthnProcessProxyMessages.h in Headers */,
    1130711401                                F42D634122A0EFDF00D2FB3A /* WebAutocorrectionData.h in Headers */,
    1130811402                                990D39F5243BE64800199388 /* WebAutomationDOMWindowObserver.h in Headers */,
     
    1203512129                        productType = "com.apple.product-type.library.dynamic";
    1203612130                };
    12037                 57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */ = {
     12131                5742A2E52535613F00B7BA14 /* WebAuthn */ = {
    1203812132                        isa = PBXNativeTarget;
    12039                         buildConfigurationList = 57A9FF00252BD8AB006A2040 /* Build configuration list for PBXNativeTarget "WebAuthenticationAgent" */;
     12133                        buildConfigurationList = 5742A2F32535613F00B7BA14 /* Build configuration list for PBXNativeTarget "WebAuthn" */;
    1204012134                        buildPhases = (
    12041                                 57A9FEF8252BD8AA006A2040 /* Sources */,
    12042                                 57A9FEF9252BD8AA006A2040 /* Frameworks */,
    12043                                 57A9FEFA252BD8AA006A2040 /* CopyFiles */,
     12135                                5742A2EA2535613F00B7BA14 /* Sources */,
     12136                                5742A2ED2535613F00B7BA14 /* Frameworks */,
     12137                                5742A2F02535613F00B7BA14 /* Resources */,
     12138                                5742A2F12535613F00B7BA14 /* Unlock keychain */,
     12139                                5742A2F22535613F00B7BA14 /* Process WebAuthentication entitlements */,
    1204412140                        );
    1204512141                        buildRules = (
    1204612142                        );
    1204712143                        dependencies = (
    12048                         );
    12049                         name = WebAuthenticationAgent;
    12050                         productName = WebAuthenticationAgent;
    12051                         productReference = 57A9FEFC252BD8AA006A2040 /* com.apple.WebKit.WebAuthenticationAgent.Development */;
    12052                         productType = "com.apple.product-type.tool";
     12144                                5742A2E62535613F00B7BA14 /* PBXTargetDependency */,
     12145                                5742A2E82535613F00B7BA14 /* PBXTargetDependency */,
     12146                        );
     12147                        name = WebAuthn;
     12148                        productName = Networking;
     12149                        productReference = 5742A2F72535613F00B7BA14 /* com.apple.WebKit.WebAuthn.xpc */;
     12150                        productType = "com.apple.product-type.xpc-service";
    1205312151                };
    1205412152                8DC2EF4F0486A6940098B216 /* WebKit */ = {
     
    1217612274                                                ProvisioningStyle = Automatic;
    1217712275                                        };
    12178                                         57A9FEFB252BD8AA006A2040 = {
    12179                                                 CreatedOnToolsVersion = 12.0;
    12180                                         };
    1218112276                                        E1AC2E2720F7B94C00B0897D = {
    1218212277                                                CreatedOnToolsVersion = 9.3;
     
    1220812303                                BC8283B016B4BF7700A278FE /* Networking */,
    1220912304                                2D9FB216237523830049F936 /* GPU */,
     12305                                5742A2E52535613F00B7BA14 /* WebAuthn */,
    1221012306                                BC82841E16B4FDF600A278FE /* Plugin.64 */,
    1221112307                                A7AADA1019395CA9003EA1C7 /* Sandbox Profiles */,
    1221212308                                E1AC2E2720F7B94C00B0897D /* Unlock Keychain */,
    1221312309                                5325BDCD21DFF47700A0DEE1 /* Apply Configuration to XCFileLists */,
    12214                                 57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */,
    1221512310                        );
    1221612311                };
     
    1223312328                        runOnlyForDeploymentPostprocessing = 0;
    1223412329                };
     12330                5742A2F02535613F00B7BA14 /* Resources */ = {
     12331                        isa = PBXResourcesBuildPhase;
     12332                        buildActionMask = 2147483647;
     12333                        files = (
     12334                        );
     12335                        runOnlyForDeploymentPostprocessing = 0;
     12336                };
    1223512337                8DC2EF520486A6940098B216 /* Resources */ = {
    1223612338                        isa = PBXResourcesBuildPhase;
     
    1223912341                                E17AE2C316B9C63A001C42F2 /* com.apple.WebKit.GPUProcess.sb in Resources */,
    1224012342                                E17AE2C316B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb in Resources */,
     12343                                572EBBC42536AB84000552B3 /* com.apple.WebKit.WebAuthnProcess.sb in Resources */,
    1224112344                                E11D35AE16B63D1B006D23D7 /* com.apple.WebProcess.sb in Resources */,
    1224212345                                414DD37920BF43F5006959FB /* com.cisco.webex.plugin.gpc64.sb in Resources */,
     
    1257412677                        shellScript = "Scripts/check-xcfilelists.sh\n";
    1257512678                };
     12679                5742A2F12535613F00B7BA14 /* Unlock keychain */ = {
     12680                        isa = PBXShellScriptBuildPhase;
     12681                        buildActionMask = 2147483647;
     12682                        files = (
     12683                        );
     12684                        inputPaths = (
     12685                        );
     12686                        name = "Unlock keychain";
     12687                        outputPaths = (
     12688                        );
     12689                        runOnlyForDeploymentPostprocessing = 0;
     12690                        shellPath = /bin/sh;
     12691                        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";
     12692                };
     12693                5742A2F22535613F00B7BA14 /* Process WebAuthentication entitlements */ = {
     12694                        isa = PBXShellScriptBuildPhase;
     12695                        buildActionMask = 2147483647;
     12696                        files = (
     12697                        );
     12698                        inputPaths = (
     12699                                "$(SRCROOT)/Scripts/process-entitlements.sh",
     12700                        );
     12701                        name = "Process WebAuthentication entitlements";
     12702                        outputPaths = (
     12703                                "$(WK_PROCESSED_XCENT_FILE)",
     12704                        );
     12705                        runOnlyForDeploymentPostprocessing = 0;
     12706                        shellPath = /bin/sh;
     12707                        shellScript = "Scripts/process-entitlements.sh\n";
     12708                };
    1257612709                5DF408C5131DD46700130071 /* Check For Weak VTables and Externals */ = {
    1257712710                        isa = PBXShellScriptBuildPhase;
     
    1268312816                        runOnlyForDeploymentPostprocessing = 0;
    1268412817                        shellPath = /bin/sh;
    12685                         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";
     12818                        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";
    1268612819                };
    1268712820                99CA3862207286DB00BAD578 /* Copy WebDriver Atoms to Framework Private Headers */ = {
     
    1282212955                        runOnlyForDeploymentPostprocessing = 0;
    1282312956                };
    12824                 57A9FEF8252BD8AA006A2040 /* Sources */ = {
     12957                5742A2EA2535613F00B7BA14 /* Sources */ = {
    1282512958                        isa = PBXSourcesBuildPhase;
    1282612959                        buildActionMask = 2147483647;
    1282712960                        files = (
    12828                                 57A9FF09252BEAF0006A2040 /* main.mm in Sources */,
     12961                                5742A2EB2535613F00B7BA14 /* AuxiliaryProcessMain.cpp in Sources */,
     12962                                5742A2EC2535613F00B7BA14 /* XPCServiceMain.mm in Sources */,
    1282912963                        );
    1283012964                        runOnlyForDeploymentPostprocessing = 0;
     
    1315813292                                1A8E7D3C18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp in Sources */,
    1315913293                                57DCED702142EE680016B847 /* WebAuthenticatorCoordinatorProxyMessageReceiver.cpp in Sources */,
     13294                                572EBBBF2536A60A000552B3 /* WebAuthnConnectionToWebProcessMessageReceiver.cpp in Sources */,
     13295                                572EBBC12536A60A000552B3 /* WebAuthnProcessMessageReceiver.cpp in Sources */,
     13296                                572EBBCF2536BB11000552B3 /* WebAuthnProcessProxyMessageReceiver.cpp in Sources */,
    1316013297                                575B1BBA23CE9C130020639A /* WebAutomationSession.cpp in Sources */,
    1316113298                                1C0A19571C90068F00FE0EBB /* WebAutomationSessionMessageReceiver.cpp in Sources */,
     
    1333213469                        targetProxy = 37F7407812721F740093869B /* PBXContainerItemProxy */;
    1333313470                };
    13334                 57A9FF0C252C31D6006A2040 /* PBXTargetDependency */ = {
     13471                5742A2E62535613F00B7BA14 /* PBXTargetDependency */ = {
    1333513472                        isa = PBXTargetDependency;
    13336                         target = 57A9FEFB252BD8AA006A2040 /* WebAuthenticationAgent */;
    13337                         targetProxy = 57A9FF0B252C31D6006A2040 /* PBXContainerItemProxy */;
     13473                        target = E1AC2E2720F7B94C00B0897D /* Unlock Keychain */;
     13474                        targetProxy = 5742A2E72535613F00B7BA14 /* PBXContainerItemProxy */;
     13475                };
     13476                5742A2E82535613F00B7BA14 /* PBXTargetDependency */ = {
     13477                        isa = PBXTargetDependency;
     13478                        target = 8DC2EF4F0486A6940098B216 /* WebKit */;
     13479                        targetProxy = 5742A2E92535613F00B7BA14 /* PBXContainerItemProxy */;
     13480                };
     13481                5742A2FA2535619D00B7BA14 /* PBXTargetDependency */ = {
     13482                        isa = PBXTargetDependency;
     13483                        target = 5742A2E52535613F00B7BA14 /* WebAuthn */;
     13484                        targetProxy = 5742A2F92535619D00B7BA14 /* PBXContainerItemProxy */;
    1333813485                };
    1333913486                BC8283D516B4C01F00A278FE /* PBXTargetDependency */ = {
     
    1359313740                        name = Production;
    1359413741                };
    13595                 57A9FF01252BD8AB006A2040 /* Debug */ = {
     13742                5742A2F42535613F00B7BA14 /* Debug */ = {
    1359613743                        isa = XCBuildConfiguration;
    13597                         baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
     13744                        baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
    1359813745                        buildSettings = {
    1359913746                        };
    1360013747                        name = Debug;
    1360113748                };
    13602                 57A9FF02252BD8AB006A2040 /* Release */ = {
     13749                5742A2F52535613F00B7BA14 /* Release */ = {
    1360313750                        isa = XCBuildConfiguration;
    13604                         baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
     13751                        baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
    1360513752                        buildSettings = {
    1360613753                        };
    1360713754                        name = Release;
    1360813755                };
    13609                 57A9FF03252BD8AB006A2040 /* Production */ = {
     13756                5742A2F62535613F00B7BA14 /* Production */ = {
    1361013757                        isa = XCBuildConfiguration;
    13611                         baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthenticationAgent.xcconfig */;
     13758                        baseConfigurationReference = 57A9FF07252BE6E0006A2040 /* WebAuthnService.xcconfig */;
    1361213759                        buildSettings = {
    1361313760                        };
     
    1387014017                        defaultConfigurationName = Production;
    1387114018                };
    13872                 57A9FF00252BD8AB006A2040 /* Build configuration list for PBXNativeTarget "WebAuthenticationAgent" */ = {
     14019                5742A2F32535613F00B7BA14 /* Build configuration list for PBXNativeTarget "WebAuthn" */ = {
    1387314020                        isa = XCConfigurationList;
    1387414021                        buildConfigurations = (
    13875                                 57A9FF01252BD8AB006A2040 /* Debug */,
    13876                                 57A9FF02252BD8AB006A2040 /* Release */,
    13877                                 57A9FF03252BD8AB006A2040 /* Production */,
     14022                                5742A2F42535613F00B7BA14 /* Debug */,
     14023                                5742A2F52535613F00B7BA14 /* Release */,
     14024                                5742A2F62535613F00B7BA14 /* Production */,
    1387814025                        );
    1387914026                        defaultConfigurationIsVisible = 0;
  • trunk/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp

    r268604 r268605  
    2424 */
    2525
    26 #import "config.h"
     26#include "config.h"
     27#include "WebAuthnProcessConnection.h"
    2728
    28 int main(int argc, const char* argv[])
     29#if ENABLE(WEB_AUTHN)
     30
     31#include "WebAuthnConnectionToWebProcessMessages.h"
     32#include "WebPageMessages.h"
     33#include "WebProcess.h"
     34
     35namespace WebKit {
     36using namespace WebCore;
     37
     38WebAuthnProcessConnection::WebAuthnProcessConnection(IPC::Connection::Identifier connectionIdentifier)
     39    : m_connection(IPC::Connection::createClientConnection(connectionIdentifier, *this))
    2940{
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
    32     }
     41    m_connection->open();
     42}
    3343
    34     [[NSRunLoop mainRunLoop] run];
     44WebAuthnProcessConnection::~WebAuthnProcessConnection()
     45{
     46    m_connection->invalidate();
     47}
    3548
    36     return 0;
     49void WebAuthnProcessConnection::didClose(IPC::Connection&)
     50{
    3751}
     52
     53void WebAuthnProcessConnection::didReceiveInvalidMessage(IPC::Connection&, IPC::MessageName)
     54{
     55}
     56
     57} // namespace WebKit
     58
     59#endif // ENABLE(WEB_AUTHN)
  • trunk/Source/WebKit/WebProcess/WebAuthentication/WebAuthnProcessConnection.h

    r268604 r268605  
    2424 */
    2525
    26 #import "config.h"
     26#pragma once
    2727
    28 int main(int argc, const char* argv[])
    29 {
    30     @autoreleasepool {
    31         WTFLogAlways("com.apple.webkit.WebAuthenticationAgent started.");
     28#if ENABLE(WEB_AUTHN)
     29
     30#include "Connection.h"
     31#include <wtf/RefCounted.h>
     32#include <wtf/text/WTFString.h>
     33
     34namespace WebKit {
     35
     36class WebAuthnProcessConnection : public RefCounted<WebAuthnProcessConnection>, IPC::Connection::Client {
     37public:
     38    static Ref<WebAuthnProcessConnection> create(IPC::Connection::Identifier connectionIdentifier)
     39    {
     40        return adoptRef(*new WebAuthnProcessConnection(connectionIdentifier));
    3241    }
     42    ~WebAuthnProcessConnection();
    3343
    34     [[NSRunLoop mainRunLoop] run];
     44    IPC::Connection& connection() { return m_connection.get(); }
    3545
    36     return 0;
    37 }
     46private:
     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)
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r268384 r268605  
    166166#endif
    167167
     168#if ENABLE(WEB_AUTHN)
     169#include "WebAuthnConnectionToWebProcessMessages.h"
     170#include "WebAuthnProcessConnection.h"
     171#include "WebAuthnProcessConnectionInfo.h"
     172#endif
     173
    168174#if ENABLE(REMOTE_INSPECTOR)
    169175#include <JavaScriptCore/RemoteInspector.h>
     
    13171323#endif // ENABLE(GPU_PROCESS)
    13181324
     1325#if ENABLE(WEB_AUTHN)
     1326
     1327static 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
     1340WebAuthnProcessConnection& 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
     1362void 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
    13191372void WebProcess::setEnhancedAccessibility(bool flag)
    13201373{
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r268384 r268605  
    116116class UserData;
    117117class WaylandCompositorDisplay;
     118class WebAuthnProcessConnection;
    118119class WebAutomationSessionProxy;
    119120class WebCacheStorageProvider;
     
    233234#endif // ENABLE(GPU_PROCESS)
    234235
     236#if ENABLE(WEB_AUTHN)
     237    WebAuthnProcessConnection& ensureWebAuthnProcessConnection();
     238    void webAuthnProcessConnectionClosed(WebAuthnProcessConnection*);
     239    WebAuthnProcessConnection* existingWebAuthnProcessConnection() { return m_webAuthnProcessConnection.get(); }
     240#endif
     241
    235242    LibWebRTCNetwork& libWebRTCNetwork();
    236243
     
    587594#endif
    588595
     596#if ENABLE(WEB_AUTHN)
     597    RefPtr<WebAuthnProcessConnection> m_webAuthnProcessConnection;
     598#endif
     599
    589600    Ref<WebCacheStorageProvider> m_cacheStorageProvider;
    590601    Ref<WebCookieJar> m_cookieJar;
Note: See TracChangeset for help on using the changeset viewer.