Skip to content

Conversation

@marcoscaceres
Copy link
Collaborator

@marcoscaceres marcoscaceres commented Sep 3, 2025

Closes #???

The following tasks have been completed:

  • Modified Web platform tests (link)

Implementation commitment:

  • WebKit
  • Chromium (link to issue)
  • Gecko (link to issue)

Documentation and checks

  • Affects privacy
  • Affects security
  • Pinged MDN
  • Updated Explainer
  • Updated digitalcredentials.dev

Preview | Diff

<li>Let |protocol| be |request|'s
{{DigitalCredentialGetRequest/protocol}}.
</li>
<li>Optionally, if |protocol| is unknown to the user agent,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed with @mohamedamir. The unknown protocol should be dropped on the floor.

Comment on lines +813 to +818
<li>If |protocol| is not supported by the user agent,
[=exception/throw=] a {{"NotSupportedError"}} {{DOMException}}.
</li>
<li>If |protocol| is not allowed by the user agent for security
reasons, [=exception/throw=] a {{"SecurityError"}} {{DOMException}}.
</li>
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed with @mohamedamir, these can probably also be dropped on the floor.

@marcoscaceres
Copy link
Collaborator Author

Related WebKit issue: https://bugs.webkit.org/show_bug.cgi?id=304158 (for skipping unknown types).

@marcoscaceres
Copy link
Collaborator Author

Moved to #418

marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Dec 18, 2025
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@c601ead

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get-enabled-on-self-origin-by-permissions-policy.https.sub-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.disabled-by-permissions-policy.https.sub-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/non-fully-active.https-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/user-activation.https-expected.txt:
* LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/digital-credentials/allow-attribute-with-get.https-expected.txt:
* Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:
(WebCore::CredentialsContainer::get):
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
(WebCore::DigitalCredential::discoverFromExternalSource):
* Source/WebCore/Modules/identity/DigitalCredential.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Jan 7, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:
(WebCore::CredentialsContainer::get):
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
(WebCore::DigitalCredential::discoverFromExternalSource):
* Source/WebCore/Modules/identity/DigitalCredential.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Jan 8, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html

* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Jan 8, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html

* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Jan 8, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html

* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
marcoscaceres added a commit to marcoscaceres/WebKit that referenced this pull request Jan 8, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by NOBODY (OOPS!).

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html

* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:
webkit-commit-queue pushed a commit to marcoscaceres/WebKit that referenced this pull request Jan 8, 2026
rdar://166673454
https://bugs.webkit.org/show_bug.cgi?id=304158

Reviewed by Anne van Kesteren.

WebKit relied on the IdentityCredentialProtocol.idl enum to prevent requests with unknown protocols being processed.
However, this prevented unknown protocols from being ignored gracefully, as required by this spec change:
w3c-fedid/digital-credentials#372

We now gracefully ignore unknown protocols by filtering them out, rather than throwing an error.
We also now show a console warning, so developers are aware of ignored protocols.

Includes upstream web platform test commit:
web-platform-tests/wpt@2d00123

Tests: http/tests/digital-credentials/digital-credential-console-messages.https.html
       http/wpt/identity/digital-credential-protocol-filtering.https.html

* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt: Added.
* LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt: Added.
* LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/create.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/support/helper.js:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios-18/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.tentative.https-expected.txt:
* LayoutTests/platform/mac-sequoia/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/visionos/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
(WebCore::DigitalCredential::convertObjectsToDigitalPresentationRequests):
* Source/WebCore/Modules/identity/DigitalCredentialRequest.h:
* Source/WebCore/Modules/identity/DigitalCredentialRequest.idl:

Canonical link: https://commits.webkit.org/305257@main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants