<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>311625</bug_id>
          
          <creation_ts>2026-04-07 00:52:46 -0700</creation_ts>
          <short_desc>WebAuthn: AbortSignal reason is ignored when rejecting credentials.create() and credentials.get()</short_desc>
          <delta_ts>2026-04-08 08:48:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Caceres">marcosc</reporter>
          <assigned_to name="Marcos Caceres">marcosc</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2197534</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2026-04-07 00:52:46 -0700</bug_when>
    <thetext>When navigator.credentials.create() or navigator.credentials.get() is called with an AbortSignal and the signal is aborted via controller.abort(reason), the returned promise should reject with signal.reason. Instead, WebKit discards the reason and always rejects with a hard-coded AbortError DOMException.

Root cause: AuthenticatorCoordinator.cpp, lines ~251 and ~370:

  if (abortSignal &amp;&amp; abortSignal-&gt;aborted()) {
      promise.reject(Exception { ExceptionCode::AbortError, &quot;Aborted by AbortSignal.&quot;_s });

The fix is to reject with abortSignal-&gt;reason() instead.

Affects both credentials.create() and credentials.get().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2197535</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-04-07 00:52:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/174220589&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2197879</commentid>
    <comment_count>2</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2026-04-07 22:58:32 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/62251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2197997</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-04-08 08:48:17 -0700</bug_when>
    <thetext>Committed 310782@main (7a3f4c0ecbd3): &lt;https://commits.webkit.org/310782@main&gt;

Reviewed commits have been landed. Closing PR #62251 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>