diff --git a/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-basics.https.html b/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-basics.https.html index bb0355cd58d88..d7f87e5e89043 100644 --- a/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-basics.https.html +++ b/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-basics.https.html @@ -54,8 +54,8 @@ await promise_rejects_js( t, TypeError, - navigator.identity.get({ digital: { providers: [] } }), - "navigator.identity.get() with an empty list of providers" + navigator.identity.get({ digital: { requests: [] } }), + "navigator.identity.get() with an empty list of requests" ); await test_driver.bless(); @@ -63,7 +63,7 @@ t, TypeError, navigator.identity.get({ - digital: { providers: [{ protocol: "bogus protocol", request: {} }] }, + digital: { requests: [{ protocol: "bogus protocol", request: {} }] }, }), "navigator.identity.get() with a provider with unknown protocol" ); diff --git a/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html b/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html index 430198eee2ab8..dccef1354ba1b 100644 --- a/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html +++ b/LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html @@ -38,7 +38,7 @@ const p = navigator.identity.get({ digital: { - providers: [], + requests: [], }, mediation: "required", }); diff --git a/LayoutTests/http/wpt/identity/idl.https.html b/LayoutTests/http/wpt/identity/idl.https.html index bdcefe4c9574e..aa392cd7787b3 100644 --- a/LayoutTests/http/wpt/identity/idl.https.html +++ b/LayoutTests/http/wpt/identity/idl.https.html @@ -13,10 +13,10 @@ }; dictionary DigitalCredentialRequestOptions { - sequence providers; + sequence requests; }; -dictionary IdentityRequestProvider { +dictionary DigitalCredentialRequest { required DOMString protocol; required object request; }; diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/allow-attribute.https.html b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/allow-attribute.https.html index 0d66e28e72076..27935734b1541 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/allow-attribute.https.html +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/allow-attribute.https.html @@ -103,7 +103,7 @@ const options = { digital: { // Results in TypeError when allowed, NotAllowedError when disallowed - providers: [], + requests: [], }, mediation: "required", }; diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/dc-types.ts b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/dc-types.ts index 46137cac4db20..86c9651b01a63 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/dc-types.ts +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/dc-types.ts @@ -6,9 +6,9 @@ export type CredentialMediationRequirement = | "silent"; /** - * @see https://wicg.github.io/digital-credentials/#dom-identityrequestprovider + * @see https://wicg.github.io/digital-credentials/#the-digitalcredentialrequest-dictionary */ -export interface IdentityRequestProvider { +export interface DigitalCredentialRequest { protocol: string; data: object; } @@ -18,9 +18,9 @@ export interface IdentityRequestProvider { */ export interface DigitalCredentialRequestOptions { /** - * The list of identity request providers + * The list of identity requests. */ - providers: IdentityRequestProvider[] | any; + requests: DigitalCredentialRequest[] | any; } /** diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt index baaf90403030d..61d3a6b142d66 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt @@ -1,6 +1,6 @@ -FAIL Permissions-Policy header digital-credentials-get=() disallows the top-level document. promise_rejects_dom: function "function() { throw e }" threw object "TypeError: At least one provider must be specified." that is not a DOMException NotAllowedError: property "code" is equal to undefined, expected 0 +FAIL Permissions-Policy header digital-credentials-get=() disallows the top-level document. promise_rejects_dom: function "function() { throw e }" threw object "TypeError: At least one request must present." that is not a DOMException NotAllowedError: property "code" is equal to undefined, expected 0 FAIL Permissions-Policy header digital-credentials-get=() disallows same-origin iframes. assert_false: Digital Credential API expected false got true FAIL Header-set policy is overridden in cross-origin iframe using allow attribute. assert_true: Digital Credential API expected true got false FAIL Setting digital-credentials-get=(self) disallows the API in same-origin iframes. assert_false: Digital Credential API expected false got true diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt index e1375a7439d60..90195ef403e25 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt @@ -1,9 +1,9 @@ PASS Calling navigator.identity.get() without an digital member same origin. -PASS navigator.identity.get() API rejects if there are no providers. -PASS navigator.identity.get() API rejects if there are no providers for same-origin iframe. -FAIL navigator.identity.get() API rejects if there are no providers in cross-origin iframe. assert_equals: expected "TypeError" but got "DOMException" +PASS navigator.identity.get() API rejects if there are no requests. +PASS navigator.identity.get() API rejects if there are no requests for same-origin iframe. +FAIL navigator.identity.get() API rejects if there are no requests in cross-origin iframe. assert_equals: expected "TypeError" but got "DOMException" PASS navigator.identity.get() promise is rejected if called with an aborted signal. PASS navigator.identity.get() promise is rejected if called with an aborted signal in same-origin iframe. PASS navigator.identity.get() promise is rejected if called with an aborted signal in cross-origin iframe. diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https.html b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https.html index 527a69a60207b..bef360507cf4b 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https.html +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https.html @@ -86,18 +86,18 @@ }, "Calling navigator.identity.get() without an digital member same origin."); promise_test(async (t) => { - for (const provider of [undefined, []]) { - const options = makeGetOptions(provider); + for (const request of [undefined, []]) { + const options = makeGetOptions(request); await test_driver.bless("user activation"); await promise_rejects_js(t, TypeError, navigator.identity.get(options)); } - }, "navigator.identity.get() API rejects if there are no providers."); + }, "navigator.identity.get() API rejects if there are no requests."); promise_test(async (t) => { iframeSameOrigin.focus(); const { contentWindow: iframeWindow } = iframeSameOrigin; - for (const provider of [undefined, []]) { - const options = makeGetOptions(provider); + for (const request of [undefined, []]) { + const options = makeGetOptions(request); await test_driver.bless("user activation"); await promise_rejects_js( t, @@ -105,19 +105,19 @@ iframeWindow.navigator.identity.get(options) ); } - }, "navigator.identity.get() API rejects if there are no providers for same-origin iframe."); + }, "navigator.identity.get() API rejects if there are no requests for same-origin iframe."); promise_test(async (t) => { iframeCrossOrigin.focus(); - for (const provider of [undefined, []]) { - const options = makeGetOptions(provider); + for (const request of [undefined, []]) { + const options = makeGetOptions(request); const result = await sendMessage(iframeCrossOrigin, { action: "get", options, }); assert_equals(result.constructor, "TypeError"); } - }, "navigator.identity.get() API rejects if there are no providers in cross-origin iframe."); + }, "navigator.identity.get() API rejects if there are no requests in cross-origin iframe."); promise_test(async (t) => { const abortController = new AbortController(); diff --git a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js index e3d8d345787c3..5d2793d5740b9 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js +++ b/LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js @@ -2,47 +2,50 @@ // Import the types from the TypeScript file /** * @typedef {import('../dc-types').ProviderType} ProviderType - * @typedef {import('../dc-types').IdentityRequestProvider} IdentityRequestProvider + * @typedef {import('../dc-types').DigitalCredentialRequest} DigitalCredentialRequest * @typedef {import('../dc-types').DigitalCredentialRequestOptions} DigitalCredentialRequestOptions * @typedef {import('../dc-types').CredentialRequestOptions} CredentialRequestOptions * @typedef {import('../dc-types').SendMessageData} SendMessageData */ /** - * @param {ProviderType | ProviderType[]} [providersToUse=["default"]] + * @param {ProviderType | ProviderType[]} [requestsToUse=["default"]] * @param {CredentialMediationRequirement} [mediation="required"] * @returns {CredentialRequestOptions} */ -export function makeGetOptions(providersToUse = ["default"], mediation = "required") { - if (typeof providersToUse === "string") { - if (providersToUse === "default" || providersToUse === "openid4vp"){ - return makeGetOptions([providersToUse]); +export function makeGetOptions( + requestsToUse = ["default"], + mediation = "required" +) { + if (typeof requestsToUse === "string") { + if (requestsToUse === "default" || requestsToUse === "openid4vp") { + return makeGetOptions([requestsToUse]); } } - if (!Array.isArray(providersToUse) || !providersToUse?.length) { - return { digital: { providers: providersToUse }, mediation }; + if (!Array.isArray(requestsToUse) || !requestsToUse?.length) { + return { digital: { requests: requestsToUse }, mediation }; } - const providers = []; - for (const provider of providersToUse) { - switch (provider) { + const requests = []; + for (const request of requestsToUse) { + switch (request) { case "openid4vp": - providers.push(makeOID4VPDict()); + requests.push(makeOID4VPDict()); break; case "default": - providers.push(makeIdentityRequestProvider(undefined, undefined)); + requests.push(makeDigitalCredentialRequest(undefined, undefined)); break; default: - throw new Error(`Unknown provider type: ${provider}`); + throw new Error(`Unknown request type: ${request}`); } } - return { digital: { providers }, mediation }; + return { digital: { requests }, mediation }; } /** * * @param {string} protocol * @param {object} data - * @returns {IdentityRequestProvider} + * @returns {DigitalCredentialRequest} */ -function makeIdentityRequestProvider(protocol = "protocol", data = {}) { +function makeDigitalCredentialRequest(protocol = "protocol", data = {}) { return { protocol, data, @@ -50,12 +53,12 @@ function makeIdentityRequestProvider(protocol = "protocol", data = {}) { } /** - * Representation of a digital identity object with an OpenID4VP provider. + * Representation of a digital identity object with an OpenID4VP request. * - * @returns {IdentityRequestProvider} + * @returns {DigitalCredentialRequest} **/ function makeOID4VPDict() { - return makeIdentityRequestProvider("openid4vp", { + return makeDigitalCredentialRequest("openid4vp", { // Canonical example of an OpenID4VP request coming soon. }); } diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt index c7f786b76e593..d6df8228f393a 100644 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt +++ b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/disabled-by-permissions-policy.https.sub-expected.txt @@ -1,6 +1,6 @@ -FAIL Permissions-Policy header digital-credentials-get=() disallows the top-level document. promise_rejects_dom: function "function() { throw e }" threw object "TypeError: At least one provider must be specified." that is not a DOMException NotAllowedError: property "code" is equal to undefined, expected 0 +FAIL Permissions-Policy header digital-credentials-get=() disallows the top-level document. promise_rejects_dom: function "function() { throw e }" threw object "TypeError: At least one request must present." that is not a DOMException NotAllowedError: property "code" is equal to undefined, expected 0 FAIL Permissions-Policy header digital-credentials-get=() disallows same-origin iframes. assert_false: Digital Credential API expected false got true FAIL Header-set policy is overridden in cross-origin iframe using allow attribute. assert_true: Digital Credential API expected true got false PASS Setting digital-credentials-get=(self) disallows the API in same-origin iframes. diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt index 74128a416842d..4d21fa98ac7fe 100644 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt +++ b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/identity-get.tentative.https-expected.txt @@ -1,11 +1,11 @@ PASS Calling navigator.identity.get() without an digital member same origin. -PASS navigator.identity.get() API rejects if there are no providers. -FAIL navigator.identity.get() API rejects if there are no providers for same-origin iframe. promise_rejects_js: function "function() { throw e }" threw object "NotAllowedError: The document is not focused." ("NotAllowedError") expected instance of function "function TypeError() { +PASS navigator.identity.get() API rejects if there are no requests. +FAIL navigator.identity.get() API rejects if there are no requests for same-origin iframe. promise_rejects_js: function "function() { throw e }" threw object "NotAllowedError: The document is not focused." ("NotAllowedError") expected instance of function "function TypeError() { [native code] }" ("TypeError") -FAIL navigator.identity.get() API rejects if there are no providers in cross-origin iframe. assert_equals: expected "TypeError" but got "DOMException" +FAIL navigator.identity.get() API rejects if there are no requests in cross-origin iframe. assert_equals: expected "TypeError" but got "DOMException" PASS navigator.identity.get() promise is rejected if called with an aborted signal. PASS navigator.identity.get() promise is rejected if called with an aborted signal in same-origin iframe. PASS navigator.identity.get() promise is rejected if called with an aborted signal in cross-origin iframe. diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt index 84fd7567af4ee..16d5a6e708184 100644 --- a/Source/WebCore/CMakeLists.txt +++ b/Source/WebCore/CMakeLists.txt @@ -397,9 +397,9 @@ set(WebCore_NON_SVG_IDL_FILES Modules/highlight/HighlightRegistry.idl Modules/identity/DigitalCredential.idl + Modules/identity/DigitalCredentialRequest.idl Modules/identity/DigitalCredentialRequestOptions.idl Modules/identity/IdentityCredentialProtocol.idl - Modules/identity/IdentityRequestProvider.idl Modules/identity/Navigator+Identity.idl Modules/identity/OpenID4VPRequest.idl diff --git a/Source/WebCore/DerivedSources-input.xcfilelist b/Source/WebCore/DerivedSources-input.xcfilelist index 13344b62b24e2..9bc3c0059259a 100644 --- a/Source/WebCore/DerivedSources-input.xcfilelist +++ b/Source/WebCore/DerivedSources-input.xcfilelist @@ -510,9 +510,9 @@ $(PROJECT_DIR)/Modules/geolocation/PositionOptions.idl $(PROJECT_DIR)/Modules/highlight/Highlight.idl $(PROJECT_DIR)/Modules/highlight/HighlightRegistry.idl $(PROJECT_DIR)/Modules/identity/DigitalCredential.idl +$(PROJECT_DIR)/Modules/identity/DigitalCredentialRequest.idl $(PROJECT_DIR)/Modules/identity/DigitalCredentialRequestOptions.idl $(PROJECT_DIR)/Modules/identity/IdentityCredentialProtocol.idl -$(PROJECT_DIR)/Modules/identity/IdentityRequestProvider.idl $(PROJECT_DIR)/Modules/identity/Navigator+Identity.idl $(PROJECT_DIR)/Modules/identity/OpenID4VPRequest.idl $(PROJECT_DIR)/Modules/indexeddb/IDBCursor.idl diff --git a/Source/WebCore/DerivedSources-output.xcfilelist b/Source/WebCore/DerivedSources-output.xcfilelist index 3dfeda5806723..c6173356b6963 100644 --- a/Source/WebCore/DerivedSources-output.xcfilelist +++ b/Source/WebCore/DerivedSources-output.xcfilelist @@ -869,6 +869,8 @@ $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDeviceOrientationOrMotionPermissi $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDeviceOrientationOrMotionPermissionState.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredential.cpp $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredential.h +$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredentialRequest.cpp +$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredentialRequest.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredentialRequestOptions.cpp $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDigitalCredentialRequestOptions.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSDistanceModelType.cpp @@ -1691,8 +1693,6 @@ $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIIRFilterOptions.cpp $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIIRFilterOptions.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdentityCredentialProtocol.cpp $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdentityCredentialProtocol.h -$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdentityRequestProvider.cpp -$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdentityRequestProvider.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdleDeadline.cpp $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdleDeadline.h $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSIdleRequestCallback.cpp diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make index 18d8c41490fb6..9aff59af82082 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make @@ -380,10 +380,10 @@ JS_BINDING_IDLS := \ $(WebCore)/Modules/highlight/HighlightRegistry.idl \ $(WebCore)/Modules/highlight/Highlight.idl \ $(WebCore)/Modules/identity/DigitalCredential.idl \ + $(WebCore)/Modules/identity/DigitalCredentialRequest.idl \ $(WebCore)/Modules/identity/DigitalCredentialRequestOptions.idl \ $(WebCore)/Modules/identity/OpenID4VPRequest.idl \ $(WebCore)/Modules/identity/IdentityCredentialProtocol.idl \ - $(WebCore)/Modules/identity/IdentityRequestProvider.idl \ $(WebCore)/Modules/identity/Navigator+Identity.idl \ $(WebCore)/Modules/indexeddb/IDBCursor.idl \ $(WebCore)/Modules/indexeddb/IDBCursorDirection.idl \ diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake index e880569155108..efe48071cae10 100644 --- a/Source/WebCore/Headers.cmake +++ b/Source/WebCore/Headers.cmake @@ -412,9 +412,9 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS Modules/identity/CredentialRequestCoordinator.h Modules/identity/CredentialRequestCoordinatorClient.h + Modules/identity/DigitalCredentialRequest.h Modules/identity/DigitalCredentialRequestOptions.h Modules/identity/IdentityCredentialsContainer.h - Modules/identity/IdentityRequestProvider.h Modules/identity/OpenID4VPRequest.h Modules/indexeddb/IDBActiveDOMObject.h diff --git a/Source/WebCore/Modules/identity/IdentityRequestProvider.h b/Source/WebCore/Modules/identity/DigitalCredentialRequest.h similarity index 97% rename from Source/WebCore/Modules/identity/IdentityRequestProvider.h rename to Source/WebCore/Modules/identity/DigitalCredentialRequest.h index cadebd3b00593..0c29c3def4422 100644 --- a/Source/WebCore/Modules/identity/IdentityRequestProvider.h +++ b/Source/WebCore/Modules/identity/DigitalCredentialRequest.h @@ -30,7 +30,7 @@ namespace WebCore { -struct IdentityRequestProvider { +struct DigitalCredentialRequest { IdentityCredentialProtocol protocol; OpenID4VPRequest data; }; diff --git a/Source/WebCore/Modules/identity/IdentityRequestProvider.idl b/Source/WebCore/Modules/identity/DigitalCredentialRequest.idl similarity index 97% rename from Source/WebCore/Modules/identity/IdentityRequestProvider.idl rename to Source/WebCore/Modules/identity/DigitalCredentialRequest.idl index b9483f37403ab..435b137aeedff 100644 --- a/Source/WebCore/Modules/identity/IdentityRequestProvider.idl +++ b/Source/WebCore/Modules/identity/DigitalCredentialRequest.idl @@ -23,7 +23,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -dictionary IdentityRequestProvider { +dictionary DigitalCredentialRequest { required IdentityCredentialProtocol protocol; required OpenID4VPRequest data; }; diff --git a/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.h b/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.h index d76f597b01b25..184080e5113d3 100644 --- a/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.h +++ b/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.h @@ -25,17 +25,17 @@ #pragma once -#include "IdentityRequestProvider.h" +#include "DigitalCredentialRequest.h" #include #include #include namespace WebCore { -struct IdentityRequestProvider; +struct DigitalCredentialRequest; struct DigitalCredentialRequestOptions { - Vector providers; + Vector requests; }; } // namespace WebCore diff --git a/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.idl b/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.idl index 8ff59ae9a8edb..89140244b340e 100644 --- a/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.idl +++ b/Source/WebCore/Modules/identity/DigitalCredentialRequestOptions.idl @@ -24,5 +24,5 @@ */ dictionary DigitalCredentialRequestOptions { - required sequence providers; + required sequence requests; }; diff --git a/Source/WebCore/Modules/identity/IdentityCredentialsContainer.cpp b/Source/WebCore/Modules/identity/IdentityCredentialsContainer.cpp index bf40be89518bb..6fe4e29e47eba 100644 --- a/Source/WebCore/Modules/identity/IdentityCredentialsContainer.cpp +++ b/Source/WebCore/Modules/identity/IdentityCredentialsContainer.cpp @@ -86,8 +86,8 @@ void IdentityCredentialsContainer::get(CredentialRequestOptions&& options, Crede return; } - if (options.digital->providers.isEmpty()) { - promise.reject(Exception { ExceptionCode::TypeError, "At least one provider must be specified."_s }); + if (options.digital->requests.isEmpty()) { + promise.reject(Exception { ExceptionCode::TypeError, "At least one request must present."_s }); return; } diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt index 6efadb09d32e1..1e8be1a07c3d0 100644 --- a/Source/WebCore/Sources.txt +++ b/Source/WebCore/Sources.txt @@ -3746,6 +3746,7 @@ JSDeviceMotionEvent.cpp JSDeviceOrientationEvent.cpp JSDeviceOrientationOrMotionPermissionState.cpp JSDigitalCredential.cpp +JSDigitalCredentialRequest.cpp JSDigitalCredentialRequestOptions.cpp JSDistanceModelType.cpp JSDocument.cpp @@ -4101,7 +4102,6 @@ JSIDBTransactionDurability.cpp JSIDBTransactionMode.cpp JSIDBVersionChangeEvent.cpp JSIdentityCredentialProtocol.cpp -JSIdentityRequestProvider.cpp JSIdleDeadline.cpp JSIdleRequestCallback.cpp JSIdleRequestOptions.cpp diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj index fbb5e22fc807b..ffc3e54771632 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj @@ -320,7 +320,7 @@ 0C45342810CDBBFA00869157 /* JSWebGLUniformLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C45342610CDBBFA00869157 /* JSWebGLUniformLocation.h */; }; 0D431A7D2B5A397C00864655 /* DigitalCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D431A7C2B5A397C00864655 /* DigitalCredential.h */; }; 0D431F002B9053DC001E222F /* DigitalCredentialRequestOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D494DEC2B5DF3DC00B61C51 /* DigitalCredentialRequestOptions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0D431F012B905BC4001E222F /* IdentityRequestProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D494DED2B5DF55000B61C51 /* IdentityRequestProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0D431F012B905BC4001E222F /* DigitalCredentialRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D494DED2B5DF55000B61C51 /* DigitalCredentialRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0D44C33E2ABA1B9F0017FB5D /* ThermalMitigationNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D8EF8122A9D511F000118F8 /* ThermalMitigationNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0D649B392B9EA4E500D7F335 /* CredentialRequestCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D649B382B9EA4E500D7F335 /* CredentialRequestCoordinator.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0D649B482B9EC50300D7F335 /* CredentialRequestCoordinatorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D649B472B9EC4E200D7F335 /* CredentialRequestCoordinatorClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -7259,12 +7259,12 @@ 0D2F291C2BC84EA100872B23 /* GPUQueueDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUQueueDescriptor.idl; sourceTree = ""; }; 0D431A7C2B5A397C00864655 /* DigitalCredential.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DigitalCredential.h; sourceTree = ""; }; 0D431A7E2B5A3A9700864655 /* DigitalCredential.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DigitalCredential.idl; sourceTree = ""; }; - 0D431A7F2B5A3A9700864655 /* IdentityRequestProvider.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IdentityRequestProvider.idl; sourceTree = ""; }; + 0D431A7F2B5A3A9700864655 /* DigitalCredentialRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DigitalCredentialRequest.idl; sourceTree = ""; }; 0D431A802B5A3A9800864655 /* DigitalCredentialRequestOptions.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DigitalCredentialRequestOptions.idl; sourceTree = ""; }; 0D431A842B5A42AB00864655 /* IdentityCredentialProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdentityCredentialProtocol.h; sourceTree = ""; }; 0D431A862B5A42AB00864655 /* IdentityCredentialProtocol.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdentityCredentialProtocol.idl; sourceTree = ""; }; 0D494DEC2B5DF3DC00B61C51 /* DigitalCredentialRequestOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DigitalCredentialRequestOptions.h; sourceTree = ""; }; - 0D494DED2B5DF55000B61C51 /* IdentityRequestProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdentityRequestProvider.h; sourceTree = ""; }; + 0D494DED2B5DF55000B61C51 /* DigitalCredentialRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DigitalCredentialRequest.h; sourceTree = ""; }; 0D494DEE2B5E0B5200B61C51 /* DigitalCredential.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DigitalCredential.cpp; sourceTree = ""; }; 0D5C81052B8B0F560099BF96 /* WGSLLanguageFeatures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WGSLLanguageFeatures.h; sourceTree = ""; }; 0D5C81062B8B0F580099BF96 /* WGSLLanguageFeatures.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WGSLLanguageFeatures.idl; sourceTree = ""; }; @@ -22532,14 +22532,14 @@ 0D494DEE2B5E0B5200B61C51 /* DigitalCredential.cpp */, 0D431A7C2B5A397C00864655 /* DigitalCredential.h */, 0D431A7E2B5A3A9700864655 /* DigitalCredential.idl */, + 0D494DED2B5DF55000B61C51 /* DigitalCredentialRequest.h */, + 0D431A7F2B5A3A9700864655 /* DigitalCredentialRequest.idl */, 0D494DEC2B5DF3DC00B61C51 /* DigitalCredentialRequestOptions.h */, 0D431A802B5A3A9800864655 /* DigitalCredentialRequestOptions.idl */, 0D431A842B5A42AB00864655 /* IdentityCredentialProtocol.h */, 0D431A862B5A42AB00864655 /* IdentityCredentialProtocol.idl */, 0DA1AE412B9183F900379D42 /* IdentityCredentialsContainer.cpp */, 0DA1AE3F2B91808500379D42 /* IdentityCredentialsContainer.h */, - 0D494DED2B5DF55000B61C51 /* IdentityRequestProvider.h */, - 0D431A7F2B5A3A9700864655 /* IdentityRequestProvider.idl */, 0DC0AED92B706E5700AF1E41 /* Navigator+Identity.idl */, 0DC0AEDA2B706E5700AF1E41 /* NavigatorIdentity.cpp */, 0DC0AEDB2B706E5700AF1E41 /* NavigatorIdentity.h */, @@ -40593,6 +40593,7 @@ 937FF3D51A1012D6008EBA31 /* DictionaryLookup.h in Headers */, 2D5646B01B8F8493003C4994 /* DictionaryPopupInfo.h in Headers */, 0D431A7D2B5A397C00864655 /* DigitalCredential.h in Headers */, + 0D431F012B905BC4001E222F /* DigitalCredentialRequest.h in Headers */, 0D431F002B9053DC001E222F /* DigitalCredentialRequestOptions.h in Headers */, FDAF19991513D131008DB0C3 /* DirectConvolver.h in Headers */, 835D54C51F4DE53800E60671 /* DirectoryFileListCreator.h in Headers */, @@ -41346,7 +41347,6 @@ E4A814E01C7338EB00BF85AC /* IdChangeInvalidation.h in Headers */, 1A71D57C0F33819000F9CE4E /* IdentifierRep.h in Headers */, 0D77A8522B9063A700BBD327 /* IdentityCredentialProtocol.h in Headers */, - 0D431F012B905BC4001E222F /* IdentityRequestProvider.h in Headers */, 49E911C50EF86D47009D0CAF /* IdentityTransformOperation.h in Headers */, 7CE9A12B1EA2F1DB00651AD1 /* IDLAttributes.json in Headers */, 9B864F06234C0893006D10EB /* IdleCallbackController.h in Headers */, diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in index e9baaa611d763..c795e05bc7535 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in @@ -6375,13 +6375,13 @@ struct WebCore::MockWebAuthenticationConfiguration { struct WebCore::OpenID4VPRequest { }; -[Nested] struct WebCore::IdentityRequestProvider { +[Nested] struct WebCore::DigitalCredentialRequest { WebCore::IdentityCredentialProtocol protocol; WebCore::OpenID4VPRequest data; }; struct WebCore::DigitalCredentialRequestOptions { - Vector providers; + Vector requests; }; enum class WebCore::IdentityCredentialProtocol : uint8_t {