@@ -430,105 +430,145 @@ <h2>
430430 issuance protocol is identified by a [=digital credential/protocol
431431 identifier=]. See also section [[[#protocol-registry]]].
432432 </ dd >
433-
433+ < dt >
434+ Digital credential coordinator
435+ </ dt >
436+ < dd >
437+ See [=credential request coordinator=].
438+ </ dd >
439+ < dt >
440+ Digital credential client
441+ </ dt >
442+ < dd >
443+ See [=credential request client=].
444+ </ dd >
434445 </ dl > <!--
435- // MARK: The Digital Credentials API
446+ // MARK: Credential Request Coordinator
436447 -->
437- < h3 >
448+ < h2 >
438449 Credential Request Coordinator
439- </ h3 >
450+ </ h2 >
440451 < p >
441- The < dfn > credential request coordinator</ dfn > is a user-agent-defined
442- component responsible for mediating [=digital credential=] interactions
443- within a given [=top-level traversable=].
452+ The < dfn data-local-lt ="coordinator "> credential request coordinator</ dfn >
453+ is a user-agent-defined component responsible for mediating [=digital
454+ credential=] interactions within a given [=top-level traversable=]. It
455+ ensures that only one interaction is active at any time across [=child
456+ navigables=], and it manages the state transitions between different
457+ [=credential request coordinator/interaction states=].
444458 </ p >
445459 < p >
446460 Each [=top-level traversable=] has a single associated [=credential
447461 request coordinator=].
448462 </ p >
449463 < p >
450- The [=credential request coordinator=]:
464+ The coordinator manages the lifecycle of the current interaction's
465+ {{Promise}}, including its resolution or rejection and integrates with an
466+ {{AbortSignal}} to allow for both user-initiated and programmatic
467+ cancellation.
451468 </ p >
452- < ul >
453- < li > Ensures that only one [=digital credential=] interaction is active at
454- any time. This includes via both the:
455- < ul >
456- < li > {{DigitalCredential/[[DiscoverFromExternalSource]](origin,
457- options, sameOriginWithAncestors)}} internal method.
458- </ li >
459- < li > {{DigitalCredential/[[Create]](origin, options,
460- sameOriginWithAncestors)}} internal method.
461- </ li >
462- </ ul >
463- </ li >
464- < li > Handles state transitions across the following < dfn data-for =
465- "credential request coordinator " data-local-lt ="state "> interaction
466- states</ dfn > :
467- < ul >
468- < li >
469- < dfn data-dfn-for ="credential request coordinator "> Idle</ dfn > : No
470- credential interaction is currently in progress.
471- </ li >
472- < li >
473- < dfn data-dfn-for =
474- "credential request coordinator "> Ongoing</ dfn > : A credential
475- interaction is currently in progress and the user interface is
476- being shown to the user.
477- </ li >
478- < li >
479- < dfn data-dfn-for ="credential request coordinator "> Aborting</ dfn > :
480- A credential interaction is being canceled. The coordinator is in
481- the process of cleaning up the interaction.
482- </ li >
483- </ ul >
484- </ li >
485- < li > Manages the lifecycle of the current interaction's promise, including
486- its resolution or rejection.
487- </ li >
488- < li > Integrates with an {{AbortSignal}} to allow user-initiated or
489- programmatic cancellation.
490- </ li >
491- </ ul >
469+ < p >
470+ A [=credential request coordinator=] has an associated [=credential
471+ request client=], which it interacts with.
472+ </ p >
473+ < h3 >
474+ Interaction states
475+ </ h3 >
476+ < p >
477+ The [=credential request coordinator=] has a finite set of
478+ < dfn data-dfn-for ="credential request coordinator "> interaction
479+ states</ dfn > , which are used to manage the lifecycle of request for a
480+ digital credential, be it either a [=digital credential/presentation
481+ request=] or an [=digital credential/issuance request=]. The states are:
482+ </ p >
483+ < dl >
484+ < dt >
485+ < dfn data-dfn-for ="credential request coordinator "> idle</ dfn > :
486+ </ dt >
487+ < dd >
488+ No credential interaction is currently in progress.
489+ </ dd >
490+ < dt >
491+ < dfn data-dfn-for ="credential request coordinator "> requesting</ dfn > :
492+ </ dt >
493+ < dd >
494+ A credential interaction is currently in progress and the user
495+ interface is being presented to the user.
496+ </ dd >
497+ < dt >
498+ < dfn data-dfn-for ="credential request coordinator "> aborting</ dfn > :
499+ </ dt >
500+ < dd >
501+ A credential interaction is being canceled, either because of an error,
502+ user cancellation, or a [=AbortController/signal abort=]. The
503+ coordinator is in the process of cleaning up the interaction in order
504+ to return to the [=credential request coordinator/idle=] state.
505+ </ dd >
506+ </ dl >
492507 < p >
493508 The [=credential request coordinator=] is initialized in the [=credential
494- request coordinator/idle=] [=interaction state=].
509+ request coordinator/idle=] [=credential request coordinator/interaction
510+ state=].
511+ </ p >
512+ < h3 >
513+ Prepare credential requests
514+ </ h3 >
515+ < p >
516+ To be written.
495517 </ p >
496518 < h3 >
497- Digital Credential Client
519+ Abort the credential request
498520 </ h3 >
499521 < p >
500- A < dfn > digital credential client</ dfn > is a user-agent-defined component
501- responsible managing the credential presentation or issuance flow, which
502- includes allowing a user to select from available [=holders=] and coordinating the request.
522+ To be written.
523+ </ p >
524+ < h2 >
525+ Credential request client
526+ </ h2 >
527+ < p >
528+ A < dfn data-local-lt ="client "> credential request client</ dfn > is a
529+ user-agent-defined component responsible for managing the credential
530+ presentation or issuance flow, which includes allowing the user to select
531+ from available [=holders=] and coordinating the request.
503532 </ p >
504533 < p >
505534 Each [=credential request coordinator=] uses a single associated
506- [=digital credential client=] to fulfill credential presentation and issuance
507- operations.
535+ [=credential request client=] to fulfill credential presentation and
536+ issuance operations.
508537 </ p >
509538 < p >
510- The [=digital credential client=]:
539+ The [=credential request client=]:
511540 </ p >
512541 < ul >
513- < li > Validates and transforms digital credential presentation or issuance
514- inputs.
542+ < li > Validates and transforms presentation or issuance inputs and outputs.
515543 </ li >
516544 < li > Interprets each individual request in the input list as targeting a
517- specific [=holder=], and prepares holder options accordingly.
545+ specific [=holder=], and prepares [= holder=] options accordingly.
518546 </ li >
519547 < li > Presents the available [=holders=] to the user for selection.
520548 </ li >
521- < li > Returns the result — a selected credential or a cancellation — to the
522- [=credential request coordinator=].
549+ < li > Returns the result — the user's selected [=digital credential=] or a
550+ cancellation — to the [=credential request coordinator=].
523551 </ li >
524552 </ ul >
525553 < aside class ="note ">
526554 < p >
527- Although the [=digital credential client=] coordinates the credential
528- interaction, it is the selected [=holder=] that typically acts as the
529- [=credential chooser=].
555+ Although the [=credential request client=] coordinates the user
556+ interaction with respect to inputs and outputs , it is the [=holder=]
557+ selected by the user that typically acts as the [=credential chooser=].
530558 </ p >
531559 </ aside >
560+ < h3 >
561+ Dismiss credentials chooser
562+ </ h3 >
563+ < p >
564+ To be written.
565+ </ p >
566+ < h3 >
567+ Present credentials chooser
568+ </ h3 >
569+ < p >
570+ To be written.
571+ </ p >
532572 < h2 >
533573 Scope
534574 </ h2 >
558598 which are addressed to ensure the protection of user data during the
559599 request process.
560600 </ li >
561- </ ul >
601+ </ ul > <!--
602+ // MARK: The Digital Credentials API
603+ -->
562604 < h2 >
563605 The Digital Credentials API
564606 </ h2 >
0 commit comments