<?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>216600</bug_id>
          
          <creation_ts>2020-09-15 23:17:45 -0700</creation_ts>
          <short_desc>Propagate user gesture through `isUserVerifyingPlatformAuthenticatorAvailable`</short_desc>
          <delta_ts>2021-03-30 17:09:45 -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>NEW</bug_status>
          <resolution></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>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eiji Kitamura">agektmr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apple</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>timcappalli</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689003</commentid>
    <comment_count>0</comment_count>
    <who name="Eiji Kitamura">agektmr</who>
    <bug_when>2020-09-15 23:17:45 -0700</bug_when>
    <thetext>When invoking WebAuthn with a local authenticator (Touch ID / Face ID), user gesture is required in WebKit.
Thank you for fixing the issue that blocks user gesture on Fetch API. (https://bugs.webkit.org/show_bug.cgi?id=214444)
However, it has been still blocked on my code and finally figured that it was caused by `isUserVerifyingPlatformAuthenticatorAvailable`.
Please propagate user gesture on `iUVPAA` as well.

To reproduce the issue, you can try and modify the code here:
https://glitch.com/edit/#!/iuvpaa-issue

See code in public/client.js and enable/dislable `iUVPAA`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689007</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-15 23:24:45 -0700</bug_when>
    <thetext>(In reply to Eiji Kitamura from comment #0)
&gt; When invoking WebAuthn with a local authenticator (Touch ID / Face ID), user
&gt; gesture is required in WebKit.
&gt; Thank you for fixing the issue that blocks user gesture on Fetch API.
&gt; (https://bugs.webkit.org/show_bug.cgi?id=214444)
&gt; However, it has been still blocked on my code and finally figured that it
&gt; was caused by `isUserVerifyingPlatformAuthenticatorAvailable`.
&gt; Please propagate user gesture on `iUVPAA` as well.
&gt; 
&gt; To reproduce the issue, you can try and modify the code here:
&gt; https://glitch.com/edit/#!/iuvpaa-issue
&gt; 
&gt; See code in public/client.js and enable/dislable `iUVPAA`.

Oh, I probably forgot doing this. But you don&apos;t necessary need to call the method after user interactions. This method is safe to call even for onload given it doesn&apos;t affect your rest API or any server model you have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689008</commentid>
    <comment_count>2</comment_count>
    <who name="Eiji Kitamura">agektmr</who>
    <bug_when>2020-09-15 23:30:06 -0700</bug_when>
    <thetext>Yeah I know, but Google&apos;s WebAuthn codelab has this within the same event loop and it would be nice if this was fixed.
I&apos;ll add a workaround to the codelab meanwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689018</commentid>
    <comment_count>3</comment_count>
    <who name="Eiji Kitamura">agektmr</who>
    <bug_when>2020-09-15 23:58:12 -0700</bug_when>
    <thetext>On a second thought, I realized Google&apos;s codelab is not a good design. The button shouldn&apos;t be pressed if UVPAA is not available from the first place.
Anyway, I&apos;ll leave this issue here as it might hint some people who bump into the same problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691042</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-22 23:59:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/69418131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743593</commentid>
    <comment_count>5</comment_count>
    <who name="Anthony Johnston">apple</who>
    <bug_when>2021-03-24 16:21:53 -0700</bug_when>
    <thetext>I need to make an async call to indexdb before calling credential get, this also causes an error, even though its within the context of a gesture.

Further, iOS 14.4 has a popup which asks the user if the want to use FaceID or not, why is it necessary to have the user gesture before this as well?

Remove the requirement for user gesture and allow us to call the api. The popup handles the requirement for user confirmation anyway.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>