Changeset 285267 in webkit


Ignore:
Timestamp:
Nov 4, 2021 10:40:39 AM (9 months ago)
Author:
commit-queue@webkit.org
Message:

[WebAuthn] Implement add/remove_virtual_authenticator for transport=internal
https://bugs.webkit.org/show_bug.cgi?id=232635
<rdar://problem/84942173>

Patch by John Pascoe <J Pascoe> on 2021-11-04
Reviewed by Brent Fulgham.

This change implements much of the plumbing needed to call the virtual authenticator
commands from safaridriver. The idea is that virtual authenticators are added via
the add_virtual_authenticator call, which replaces the default AuthenticatorManager
with a VirtualAuthenticatorManager similar to how we do it for mocks. Then the
VirtualService will create the virtual connections for authenticators as nessesary
to make webauthn calls within WebDriver based tests.

Tested manually via safaridriver.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::toAuthenticatorTransport):
(WebKit::WebAutomationSession::removeVirtualAuthenticator):
(WebKit::WebAutomationSession::addVirtualAuthenticatorCredential):
(WebKit::WebAutomationSession::removeVirtualAuthenticatorCredential):
(WebKit::WebAutomationSession::removeAllVirtualAuthenticatorCredentials):
(WebKit::WebAutomationSession::setVirtualAuthenticatorUserVerified):

  • UIProcess/Automation/WebAutomationSession.h:

Plumbing to call from safaridriver

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

(WebKit::AuthenticatorManager::isVirtual const):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorConfiguration.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp: Added.

(WebKit::VirtualAuthenticatorManager::VirtualAuthenticatorManager):
(WebKit::VirtualAuthenticatorManager::createAuthenticator):
(WebKit::VirtualAuthenticatorManager::removeAuthenticator):
(WebKit::VirtualAuthenticatorManager::createService const):
Manages virtual authenticators, replaces the default manager when used similar to MockAuthenticatorManager.

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm: Added.

(WebKit::VirtualLocalConnection::VirtualLocalConnection):
(WebKit::VirtualLocalConnection::verifyUser):
(WebKit::VirtualLocalConnection::getAttestation const):
(WebKit::VirtualLocalConnection::filterResponses const):

  • UIProcess/WebAuthentication/Virtual/VirtualService.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualService.mm: Added.

(WebKit::VirtualService::VirtualService):
(WebKit::VirtualService::createVirtual):
(WebKit::VirtualService::startDiscoveryInternal):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::virtualAuthenticatorManager):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit
Files:
8 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r285265 r285267  
     12021-11-04  John Pascoe  <j_pascoe@apple.com>
     2
     3        [WebAuthn] Implement add/remove_virtual_authenticator for transport=internal
     4        https://bugs.webkit.org/show_bug.cgi?id=232635
     5        <rdar://problem/84942173>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        This change implements much of the plumbing needed to call the virtual authenticator
     10        commands from safaridriver. The idea is that virtual authenticators are added via
     11        the add_virtual_authenticator call, which replaces the default AuthenticatorManager
     12        with a VirtualAuthenticatorManager similar to how we do it for mocks. Then the
     13        VirtualService will create the virtual connections for authenticators as nessesary
     14        to make webauthn calls within WebDriver based tests.
     15
     16        Tested manually via safaridriver.
     17
     18        * UIProcess/Automation/Automation.json:
     19        * UIProcess/Automation/WebAutomationSession.cpp:
     20        (WebKit::toAuthenticatorTransport):
     21        (WebKit::WebAutomationSession::removeVirtualAuthenticator):
     22        (WebKit::WebAutomationSession::addVirtualAuthenticatorCredential):
     23        (WebKit::WebAutomationSession::removeVirtualAuthenticatorCredential):
     24        (WebKit::WebAutomationSession::removeAllVirtualAuthenticatorCredentials):
     25        (WebKit::WebAutomationSession::setVirtualAuthenticatorUserVerified):
     26        * UIProcess/Automation/WebAutomationSession.h:
     27        Plumbing to call from safaridriver
     28        * UIProcess/WebAuthentication/AuthenticatorManager.h:
     29        (WebKit::AuthenticatorManager::isVirtual const):
     30        * UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorConfiguration.h: Added.
     31        * UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp: Added.
     32        (WebKit::VirtualAuthenticatorManager::VirtualAuthenticatorManager):
     33        (WebKit::VirtualAuthenticatorManager::createAuthenticator):
     34        (WebKit::VirtualAuthenticatorManager::removeAuthenticator):
     35        (WebKit::VirtualAuthenticatorManager::createService const):
     36        Manages virtual authenticators, replaces the default manager when used similar to MockAuthenticatorManager.
     37        * UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h: Added.
     38        * UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.h: Added.
     39        * UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm: Added.
     40        (WebKit::VirtualLocalConnection::VirtualLocalConnection):
     41        (WebKit::VirtualLocalConnection::verifyUser):
     42        (WebKit::VirtualLocalConnection::getAttestation const):
     43        (WebKit::VirtualLocalConnection::filterResponses const):
     44        * UIProcess/WebAuthentication/Virtual/VirtualService.h: Added.
     45        * UIProcess/WebAuthentication/Virtual/VirtualService.mm: Added.
     46        (WebKit::VirtualService::VirtualService):
     47        (WebKit::VirtualService::createVirtual):
     48        (WebKit::VirtualService::startDiscoveryInternal):
     49        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
     50        (WebKit::WebsiteDataStore::virtualAuthenticatorManager):
     51        * UIProcess/WebsiteData/WebsiteDataStore.h:
     52        * WebKit.xcodeproj/project.pbxproj:
     53
    1542021-11-04  Lauro Moura  <lmoura@igalia.com>
    255
  • trunk/Source/WebKit/UIProcess/Automation/Automation.json

    r275050 r285267  
    336336                { "name": "duration", "type": "integer", "optional": true, "description": "The minimum number of milliseconds that must elapse while the relevant input source transitions to this state." }
    337337            ]
     338        },
     339        {
     340            "id": "AuthenticatorProtocol",
     341            "type": "string",
     342            "description": "This enum contains the different protocol types supported by virtual authenticators.",
     343            "enum": [
     344                "ctap1_u2f",
     345                "ctap2",
     346                "ctap2_1"
     347            ]
     348        },
     349        {
     350            "id": "AuthenticatorTransport",
     351            "type": "string",
     352            "description": "Authenticators may implement various transports for communicating with clients. This enumeration defines hints as to how clients might communicate with a particular authenticator in order to obtain an assertion for a specific credential.",
     353            "enum": [
     354                "usb",
     355                "nfc",
     356                "ble",
     357                "internal"
     358            ]
     359        },
     360        {
     361            "id": "VirtualAuthenticatorCredential",
     362            "type": "object",
     363            "description": "A credential object used for virtual authenticators.",
     364            "properties": [
     365                { "name": "credentialId", "type": "string", "description": "The Credential ID encoded using Base64url Encoding."},
     366                { "name": "isResidentCredential", "type": "boolean", "description": "If set to true, a client-side discoverable credential is created. If set to false, a server-side credential is created instead."},
     367                { "name": "rpId", "type": "string", "description": "The Relying Party ID the credential is scoped to."},
     368                { "name": "privateKey", "type": "string", "description": "An asymmetric key package containing a single private key per [RFC5958], encoded using Base64url Encoding." },
     369                { "name": "userHandle", "type": "string", "optional": true, "description": "The userHandle associated to the credential encoded using Base64url Encoding. This property may not be defined." },
     370                { "name": "signCount", "type": "integer", "description": "The initial value for a signature counter associated to the public key credential source." },
     371                { "name": "largeBlob", "type": "string", "optional": true, "description": "The large, per-credential blob associated to the public key credential source, encoded using Base64url Encoding. This property may not be defined." }
     372            ]
     373        },
     374        {
     375            "id": "VirtualAuthenticatorConfiguration",
     376            "type": "object",
     377            "description": "Parameters used when creating a virtual authenticator",
     378            "properties": [
     379                { "name": "protocol", "$ref": "AuthenticatorProtocol", "description": "The protocol of the authenticator" },
     380                { "name": "transport", "$ref": "AuthenticatorTransport", "description": "The transport of the protocol" },
     381                { "name": "hasResidentKey", "type": "boolean", "optional": true, "description": "If the authenticator has a resident key" },
     382                { "name": "hasUserVerification", "type": "boolean", "optional": true, "description": "If the authenticator supports user verification" },
     383                { "name": "isUserConsenting", "type": "boolean", "optional": true, "description": "If the virtual authenticator should consent to requests"},
     384                { "name": "isUserVerified", "type": "boolean", "optional": true, "description": "If user verification requests should succeeed"},
     385                { "name": "extensions", "type": "array", "items": {"type": "string"}, "optional": true, "description": "An array containing extension identifiers" },
     386                { "name": "uvm", "type": "array", "items": {"type": "integer"}, "optional": true, "description": "Up to 3 User Verification Method entries"}
     387            ]
    338388        }
    339389    ],
     
    714764                { "name": "permissions", "type": "array", "items": { "$ref": "SessionPermissionData" }, "description": "Array of session permissions to set, if they are available." }
    715765            ]
     766        },
     767        {
     768            "name": "addVirtualAuthenticator",
     769            "description": "Adds a virtual web authentication authenticator for the specified browsing context.",
     770            "parameters": [
     771                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     772                { "name": "authenticator", "$ref": "VirtualAuthenticatorConfiguration", "description": "The configuration for the virtual authenticator to be created." }
     773            ],
     774            "returns": [
     775                { "name": "authenticatorId", "type": "string", "description": "The authenticatorId of the created authenticator" }
     776            ]
     777        },
     778        {
     779            "name": "removeVirtualAuthenticator",
     780            "description": "Removes a virtual web authentication authenticator for the specified browsing context.",
     781            "parameters": [
     782                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     783                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to remove." }
     784            ]
     785        },
     786        {
     787            "name": "addVirtualAuthenticatorCredential",
     788            "description": "Add a credential to a specified virutal authenticator for the specified browsing context",
     789            "parameters": [
     790                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     791                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to add the credential to." },
     792                { "name": "credential", "$ref": "VirtualAuthenticatorCredential", "description": "The parameters of the credential to add." }
     793            ]
     794        },
     795        {
     796            "name": "getVirtualAuthenticatorCredentials",
     797            "description": "Get all credentials for a given virtual authenticator for the specified browsing context",
     798            "parameters": [
     799                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     800                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to fetch all credentials for." }
     801            ],
     802            "returns": [
     803                { "name": "credentials", "type": "array", "items": { "$ref": "VirtualAuthenticatorCredential" }, "description": "Array of credentials for given virtual authenticator" }
     804            ]
     805        },
     806        {
     807            "name": "removeVirtualAuthenticatorCredential",
     808            "description": "Remove a credential from a virtual authenticator for the specified browsing context",
     809            "parameters": [
     810                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     811                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to fetch all credentials for." },
     812                { "name": "credentialId", "type": "string", "description": "The credentialId of the credential to remove from the virtual authenticator"}
     813            ]
     814        },
     815        {
     816            "name": "removeAllVirtualAuthenticatorCredentials",
     817            "description": "Remove all credentials from a given virtual authenticatior for the specified browsing context",
     818            "parameters": [
     819                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     820                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to fetch all credentials for." }
     821            ]
     822        },
     823        {
     824            "name": "setVirtualAuthenticatorUserVerified",
     825            "description": "set isUserVerified property for a given virtual authenticator for the specified browsing context",
     826            "parameters": [
     827                { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
     828                { "name": "authenticatorId", "type": "string", "description": "The virtual authenticator id to fetch all credentials for." },
     829                { "name": "isUserVerified", "type": "boolean", "description": "The isUserVerified value to set on the given virtual authenticator"}
     830            ]
    716831        }
    717832    ],
  • trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp

    r284075 r285267  
    5454#include <wtf/text/StringConcatenate.h>
    5555
     56#if ENABLE(WEB_AUTHN)
     57#include "VirtualAuthenticatorManager.h"
     58#include <WebCore/AuthenticatorTransport.h>
     59#endif // ENABLE(WEB_AUTHN)
     60
    5661namespace WebKit {
    5762
     
    15291534
    15301535    return { };
     1536}
     1537
     1538#if ENABLE(WEB_AUTHN)
     1539static WebCore::AuthenticatorTransport toAuthenticatorTransport(Inspector::Protocol::Automation::AuthenticatorTransport transport)
     1540{
     1541    switch (transport) {
     1542    case Inspector::Protocol::Automation::AuthenticatorTransport::Usb:
     1543        return WebCore::AuthenticatorTransport::Usb;
     1544    case Inspector::Protocol::Automation::AuthenticatorTransport::Nfc:
     1545        return WebCore::AuthenticatorTransport::Nfc;
     1546    case Inspector::Protocol::Automation::AuthenticatorTransport::Ble:
     1547        return WebCore::AuthenticatorTransport::Ble;
     1548    case Inspector::Protocol::Automation::AuthenticatorTransport::Internal:
     1549        return WebCore::AuthenticatorTransport::Internal;
     1550    default:
     1551        ASSERT_NOT_REACHED();
     1552        return WebCore::AuthenticatorTransport::Internal;
     1553    }
     1554}
     1555#endif // ENABLE(WEB_AUTHN)
     1556
     1557Inspector::Protocol::ErrorStringOr<String /* authenticatorId */> WebAutomationSession::addVirtualAuthenticator(const String& browsingContextHandle, Ref<JSON::Object>&& authenticator)
     1558{
     1559#if ENABLE(WEB_AUTHN)
     1560    auto protocol = authenticator->getString("protocol"_s);
     1561    if (!protocol)
     1562        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'protocol' is missing or invalid.");
     1563    auto transport = authenticator->getString("transport"_s);
     1564    if (!transport)
     1565        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'transport' is missing or invalid.");
     1566    auto parsedTransport = Inspector::Protocol::AutomationHelpers::parseEnumValueFromString<Inspector::Protocol::Automation::AuthenticatorTransport>(transport);
     1567    if (!parsedTransport)
     1568        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'transport' has an unknown value.");
     1569    auto hasResidentKey = authenticator->getBoolean("hasResidentKey"_s);
     1570    if (!hasResidentKey)
     1571        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'hasResidentKey' is missing or invalid.");
     1572    auto hasUserVerification = authenticator->getBoolean("hasUserVerification"_s);
     1573    if (!hasUserVerification)
     1574        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'hasUserVerification' is missing or invalid.");
     1575    auto isUserConsenting = authenticator->getBoolean("isUserConsenting"_s);
     1576    if (!isUserConsenting)
     1577        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'isUserConsenting' is missing or invalid.");
     1578    auto isUserVerified = authenticator->getBoolean("isUserVerified"_s);
     1579    if (!isUserVerified)
     1580        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "The parameter 'isUserVerified' is missing or invalid.");
     1581
     1582    auto page = webPageProxyForHandle(browsingContextHandle);
     1583    if (!page)
     1584        SYNC_FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
     1585    return page->websiteDataStore().virtualAuthenticatorManager().createAuthenticator({
     1586        .protocol = protocol,
     1587        .transport = toAuthenticatorTransport(parsedTransport.value()),
     1588        .hasResidentKey = *hasResidentKey,
     1589        .hasUserVerification = *hasUserVerification,
     1590        .isUserConsenting = *isUserConsenting,
     1591        .isUserVerified = *isUserVerified,
     1592    });
     1593#else
     1594    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1595#endif // ENABLE(WEB_AUTHN)
     1596}
     1597
     1598Inspector::Protocol::ErrorStringOr<void> WebAutomationSession::removeVirtualAuthenticator(const String& browsingContextHandle, const String& authenticatorId)
     1599{
     1600#if ENABLE(WEB_AUTHN)
     1601    auto page = webPageProxyForHandle(browsingContextHandle);
     1602    if (!page)
     1603        SYNC_FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
     1604    if (!page->websiteDataStore().virtualAuthenticatorManager().removeAuthenticator(authenticatorId))
     1605        SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(InvalidParameter, "No such authenticator exists.");
     1606    return { };
     1607#else
     1608    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1609#endif // ENABLE(WEB_AUTHN)
     1610}
     1611
     1612Inspector::Protocol::ErrorStringOr<void> WebAutomationSession::addVirtualAuthenticatorCredential(const String& browsingContextHandle, const String& authenticatorId, Ref<JSON::Object>&& credential)
     1613{
     1614    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1615}
     1616
     1617Inspector::Protocol::ErrorStringOr<Ref<JSON::ArrayOf<Inspector::Protocol::Automation::VirtualAuthenticatorCredential>> /* credentials */> WebAutomationSession::getVirtualAuthenticatorCredentials(const String& browsingContextHandle, const String& authenticatorId)
     1618{
     1619    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1620}
     1621
     1622Inspector::Protocol::ErrorStringOr<void> WebAutomationSession::removeVirtualAuthenticatorCredential(const String& browsingContextHandle, const String& authenticatorId, const String& credentialId)
     1623{
     1624    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1625}
     1626
     1627Inspector::Protocol::ErrorStringOr<void> WebAutomationSession::removeAllVirtualAuthenticatorCredentials(const String& browsingContextHandle, const String& authenticatorId)
     1628{
     1629    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
     1630}
     1631
     1632Inspector::Protocol::ErrorStringOr<void> WebAutomationSession::setVirtualAuthenticatorUserVerified(const String& browsingContextHandle, const String& authenticatorId, bool isUserVerified)
     1633{
     1634    SYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(NotImplemented, "This method is not yet implemented.");
    15311635}
    15321636
  • trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.h

    r284075 r285267  
    205205    Inspector::Protocol::ErrorStringOr<void> setSessionPermissions(Ref<JSON::Array>&&);
    206206
     207    Inspector::Protocol::ErrorStringOr<String /* authenticatorId */> addVirtualAuthenticator(const String& browsingContextHandle, Ref<JSON::Object>&& authenticator);
     208    Inspector::Protocol::ErrorStringOr<void> removeVirtualAuthenticator(const String& browsingContextHandle, const String& authenticatorId);
     209    Inspector::Protocol::ErrorStringOr<void> addVirtualAuthenticatorCredential(const String& browsingContextHandle, const String& authenticatorId, Ref<JSON::Object>&& credential);
     210    Inspector::Protocol::ErrorStringOr<Ref<JSON::ArrayOf<Inspector::Protocol::Automation::VirtualAuthenticatorCredential>> /* credentials */> getVirtualAuthenticatorCredentials(const String& browsingContextHandle, const String& authenticatorId);
     211    Inspector::Protocol::ErrorStringOr<void> removeVirtualAuthenticatorCredential(const String& browsingContextHandle, const String& authenticatorId, const String& credentialId);
     212    Inspector::Protocol::ErrorStringOr<void> removeAllVirtualAuthenticatorCredentials(const String& browsingContextHandle, const String& authenticatorId);
     213    Inspector::Protocol::ErrorStringOr<void> setVirtualAuthenticatorUserVerified(const String& browsingContextHandle, const String& authenticatorId, bool isUserVerified);
     214
    207215#if PLATFORM(MAC)
    208216    void inspectBrowsingContext(const Inspector::Protocol::Automation::BrowsingContextHandle&, std::optional<bool>&& enableAutoCapturing, Ref<InspectBrowsingContextCallback>&&);
  • trunk/Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h

    r284075 r285267  
    7070
    7171    virtual bool isMock() const { return false; }
     72    virtual bool isVirtual() const { return false; }
    7273
    7374    void enableModernWebAuthentication();
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

    r285115 r285267  
    8383#endif
    8484
     85#if ENABLE(WEB_AUTHN)
     86#include "VirtualAuthenticatorManager.h"
     87#endif // ENABLE(WEB_AUTHN)
     88
    8589namespace WebKit {
    8690
     
    19461950    static_cast<MockAuthenticatorManager*>(&m_authenticatorManager)->setTestConfiguration(WTFMove(configuration));
    19471951}
     1952
     1953VirtualAuthenticatorManager& WebsiteDataStore::virtualAuthenticatorManager()
     1954{
     1955    if (!m_authenticatorManager->isVirtual())
     1956        m_authenticatorManager = makeUniqueRef<VirtualAuthenticatorManager>();
     1957    return static_cast<VirtualAuthenticatorManager&>(m_authenticatorManager.get());
     1958}
    19481959#endif
    19491960
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

    r285047 r285267  
    8888class NetworkProcessProxy;
    8989class SOAuthorizationCoordinator;
     90class VirtualAuthenticatorManager;
    9091class WebPageProxy;
    9192class WebProcessPool;
     
    308309    AuthenticatorManager& authenticatorManager() { return m_authenticatorManager.get(); }
    309310    void setMockWebAuthenticationConfiguration(WebCore::MockWebAuthenticationConfiguration&&);
     311    VirtualAuthenticatorManager& virtualAuthenticatorManager();
    310312#endif
    311313
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r285047 r285267  
    10501050                5272D4C91E735F0900EB4290 /* WKProtectionSpaceNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 5272D4C71E735F0900EB4290 /* WKProtectionSpaceNS.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10511051                528C37C1195CBB1A00D8B9CC /* WKBackForwardListPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9F28101958F478008CAC72 /* WKBackForwardListPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1052                52CDC5C42731DA0D00A3E3EB /* VirtualAuthenticatorConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CDC5BD2731DA0C00A3E3EB /* VirtualAuthenticatorConfiguration.h */; };
     1053                52CDC5C52731DA0D00A3E3EB /* VirtualService.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52CDC5BE2731DA0C00A3E3EB /* VirtualService.mm */; };
     1054                52CDC5C62731DA0D00A3E3EB /* VirtualAuthenticatorManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52CDC5BF2731DA0C00A3E3EB /* VirtualAuthenticatorManager.cpp */; };
     1055                52CDC5C72731DA0D00A3E3EB /* VirtualLocalConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CDC5C02731DA0C00A3E3EB /* VirtualLocalConnection.h */; };
     1056                52CDC5C82731DA0D00A3E3EB /* VirtualService.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CDC5C12731DA0C00A3E3EB /* VirtualService.h */; };
     1057                52CDC5C92731DA0D00A3E3EB /* VirtualLocalConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52CDC5C22731DA0C00A3E3EB /* VirtualLocalConnection.mm */; };
     1058                52CDC5CA2731DA0D00A3E3EB /* VirtualAuthenticatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CDC5C32731DA0C00A3E3EB /* VirtualAuthenticatorManager.h */; };
    10521059                52D5A1B01C57495A00DE34A3 /* VideoFullscreenManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 52D5A1AA1C57494E00DE34A3 /* VideoFullscreenManagerProxy.h */; };
    10531060                52F060E11654318500F3281B /* NetworkContentRuleListManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52F060DD1654317500F3281B /* NetworkContentRuleListManagerMessageReceiver.cpp */; };
     
    40704077                5272D4C71E735F0900EB4290 /* WKProtectionSpaceNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKProtectionSpaceNS.h; path = mac/WKProtectionSpaceNS.h; sourceTree = "<group>"; };
    40714078                5272D4C81E735F0900EB4290 /* WKProtectionSpaceNS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKProtectionSpaceNS.mm; path = mac/WKProtectionSpaceNS.mm; sourceTree = "<group>"; };
     4079                52CDC5BD2731DA0C00A3E3EB /* VirtualAuthenticatorConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualAuthenticatorConfiguration.h; sourceTree = "<group>"; };
     4080                52CDC5BE2731DA0C00A3E3EB /* VirtualService.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = VirtualService.mm; sourceTree = "<group>"; };
     4081                52CDC5BF2731DA0C00A3E3EB /* VirtualAuthenticatorManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VirtualAuthenticatorManager.cpp; sourceTree = "<group>"; };
     4082                52CDC5C02731DA0C00A3E3EB /* VirtualLocalConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualLocalConnection.h; sourceTree = "<group>"; };
     4083                52CDC5C12731DA0C00A3E3EB /* VirtualService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualService.h; sourceTree = "<group>"; };
     4084                52CDC5C22731DA0C00A3E3EB /* VirtualLocalConnection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = VirtualLocalConnection.mm; sourceTree = "<group>"; };
     4085                52CDC5C32731DA0C00A3E3EB /* VirtualAuthenticatorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualAuthenticatorManager.h; sourceTree = "<group>"; };
    40724086                52D5A1AA1C57494E00DE34A3 /* VideoFullscreenManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoFullscreenManagerProxy.h; sourceTree = "<group>"; };
    40734087                52D5A1AB1C57494E00DE34A3 /* VideoFullscreenManagerProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VideoFullscreenManagerProxy.messages.in; sourceTree = "<group>"; };
     
    87418755                        sourceTree = "<group>";
    87428756                };
     8757                52CDC5BC2731DA0C00A3E3EB /* Virtual */ = {
     8758                        isa = PBXGroup;
     8759                        children = (
     8760                                52CDC5BD2731DA0C00A3E3EB /* VirtualAuthenticatorConfiguration.h */,
     8761                                52CDC5BF2731DA0C00A3E3EB /* VirtualAuthenticatorManager.cpp */,
     8762                                52CDC5C32731DA0C00A3E3EB /* VirtualAuthenticatorManager.h */,
     8763                                52CDC5C02731DA0C00A3E3EB /* VirtualLocalConnection.h */,
     8764                                52CDC5C22731DA0C00A3E3EB /* VirtualLocalConnection.mm */,
     8765                                52CDC5C12731DA0C00A3E3EB /* VirtualService.h */,
     8766                                52CDC5BE2731DA0C00A3E3EB /* VirtualService.mm */,
     8767                        );
     8768                        path = Virtual;
     8769                        sourceTree = "<group>";
     8770                };
    87438771                5506409C240715AA00AAE045 /* graphics */ = {
    87448772                        isa = PBXGroup;
     
    89408968                                57597EBF218184B20037F924 /* fido */,
    89418969                                57DCEDBD214C9FA90016B847 /* Mock */,
     8970                                52CDC5BC2731DA0C00A3E3EB /* Virtual */,
    89428971                                57DCEDA42149E64A0016B847 /* Authenticator.cpp */,
    89438972                                57DCED8B21485BD70016B847 /* Authenticator.h */,
     
    1233612365                                2D6CD119189058A500E5A4A0 /* ViewSnapshotStore.h in Headers */,
    1233712366                                2684055318B86ED60022C38B /* ViewUpdateDispatcherMessages.h in Headers */,
     12367                                52CDC5C42731DA0D00A3E3EB /* VirtualAuthenticatorConfiguration.h in Headers */,
     12368                                52CDC5CA2731DA0D00A3E3EB /* VirtualAuthenticatorManager.h in Headers */,
     12369                                52CDC5C72731DA0D00A3E3EB /* VirtualLocalConnection.h in Headers */,
     12370                                52CDC5C82731DA0D00A3E3EB /* VirtualService.h in Headers */,
    1233812371                                2684054418B85A630022C38B /* VisibleContentRectUpdateInfo.h in Headers */,
    1233912372                                2DD5A7291EBF08D5009BA597 /* VisibleWebPageCounter.h in Headers */,
     
    1439114424                                2D819BA11862800E001F03D1 /* ViewGestureGeometryCollectorMessageReceiver.cpp in Sources */,
    1439214425                                2684055218B86ED60022C38B /* ViewUpdateDispatcherMessageReceiver.cpp in Sources */,
     14426                                52CDC5C62731DA0D00A3E3EB /* VirtualAuthenticatorManager.cpp in Sources */,
     14427                                52CDC5C92731DA0D00A3E3EB /* VirtualLocalConnection.mm in Sources */,
     14428                                52CDC5C52731DA0D00A3E3EB /* VirtualService.mm in Sources */,
    1439314429                                1A60224C18C16B9F00C3E8C9 /* VisitedLinkStoreMessageReceiver.cpp in Sources */,
    1439414430                                1A8E7D3C18C15149005A702A /* VisitedLinkTableControllerMessageReceiver.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.