RESOLVED FIXED Bug 202561
[WebAuthn] Add more information to _WKWebAuthenticationPanel
https://bugs.webkit.org/show_bug.cgi?id=202561
Summary [WebAuthn] Add more information to _WKWebAuthenticationPanel
Jiewen Tan
Reported 2019-10-03 22:38:42 PDT
Needs a way to inform clients what transports are being used currently.
Attachments
Patch (39.96 KB, patch)
2019-10-22 22:47 PDT, Jiewen Tan
youennf: review+
Patch for landing (40.45 KB, patch)
2019-10-23 13:05 PDT, Jiewen Tan
commit-queue: commit-queue-
Patch for relanding (40.87 KB, patch)
2019-10-27 16:07 PDT, Jiewen Tan
bfulgham: review+
Patch for relanding (41.77 KB, patch)
2019-10-29 15:57 PDT, Jiewen Tan
no flags
Patch for relanding (41.61 KB, patch)
2019-10-29 16:05 PDT, Jiewen Tan
no flags
EWS 159 iOS simulator debug results (655.25 KB, text/plain)
2019-10-29 17:25 PDT, Jiewen Tan
no flags
Radar WebKit Bug Importer
Comment 1 2019-10-03 22:39:15 PDT
Jiewen Tan
Comment 2 2019-10-22 22:47:41 PDT
Jiewen Tan
Comment 3 2019-10-22 22:49:37 PDT
This patch here conflicts with Bug 202563 on some minor ways. Will rebase it depending on which one get landed first.
youenn fablet
Comment 4 2019-10-23 07:58:53 PDT
Comment on attachment 381658 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=381658&action=review > Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp:53 > + m_transports.append(AuthenticatorTransport::Usb); uncheckedAppend if we have m_transports.reserveInitialCapacity > Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:321 > + page->uiClient().runWebAuthenticationPanel(*page, panel, [transports = WTFMove(transports), weakPanel = makeWeakPtr(panel), weakThis = makeWeakPtr(*this), this] (WebAuthenticationPanelResult result) { Do we need to capture transports since we have weakPanel that stores roughly the same information? > Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:358 > + processGoogleLegacyAppIdSupportExtension(options.extensions, transports); > + }, [&](const PublicKeyCredentialRequestOptions& options) { s/ / / > Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h:87 > + virtual void respondReceivedInternal(Respond&&) { }; s/;//
Jiewen Tan
Comment 5 2019-10-23 12:57:52 PDT
Comment on attachment 381658 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=381658&action=review Thanks Youenn for r+ this patch. >> Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp:53 >> + m_transports.append(AuthenticatorTransport::Usb); > > uncheckedAppend if we have m_transports.reserveInitialCapacity Thanks for catching me every time for this mistakes. Now, it is in my head. >> Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:321 >> + page->uiClient().runWebAuthenticationPanel(*page, panel, [transports = WTFMove(transports), weakPanel = makeWeakPtr(panel), weakThis = makeWeakPtr(*this), this] (WebAuthenticationPanelResult result) { > > Do we need to capture transports since we have weakPanel that stores roughly the same information? No, probably not. The Panel only capture transports for external authenticators, i.e., USB and NFC. And we do have experimental support for Internal authenticators which are not going to expose to clients at this moment. >> Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:358 >> + }, [&](const PublicKeyCredentialRequestOptions& options) { > > s/ / / Fixed. >> Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h:87 >> + virtual void respondReceivedInternal(Respond&&) { }; > > s/;// Fixed.
Jiewen Tan
Comment 6 2019-10-23 13:05:41 PDT
Created attachment 381714 [details] Patch for landing
WebKit Commit Bot
Comment 7 2019-10-23 13:48:04 PDT
Comment on attachment 381714 [details] Patch for landing Rejecting attachment 381714 [details] from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-03', 'apply-attachment', '--no-update', '--non-interactive', 381714, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit Logging in as commit-queue@webkit.org... Fetching: https://bugs.webkit.org/attachment.cgi?id=381714&action=edit Fetching: https://bugs.webkit.org/show_bug.cgi?id=202561&ctype=xml&excludefield=attachmentdata Processing 1 patch from 1 bug. Processing patch 381714 from bug 202561. Fetching: https://bugs.webkit.org/attachment.cgi?id=381714 Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Parsed 18 diffs from patch file(s). patching file Source/WebCore/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file Source/WebKit/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp patching file Source/WebCore/Modules/webauthn/WebAuthenticationConstants.h patching file Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp Hunk #1 FAILED at 30. 1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp.rej patching file Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.h Hunk #2 FAILED at 47. 1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.h.rej patching file Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h patching file Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm patching file Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp patching file Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h patching file Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.h patching file Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.mm patching file Source/WebKit/UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp patching file Source/WebKit/UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h patching file Tools/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj patching file Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm patching file Tools/TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid.html Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Full output: https://webkit-queues.webkit.org/results/13170214
Jiewen Tan
Comment 8 2019-10-23 13:59:59 PDT
Jiewen Tan
Comment 9 2019-10-23 17:03:54 PDT
Jiewen Tan
Comment 10 2019-10-23 17:04:59 PDT
(In reply to Jiewen Tan from comment #9) > Committed r251512: <https://trac.webkit.org/changeset/251512> This is a speculative build fix.
Alex Christensen
Comment 11 2019-10-24 11:12:04 PDT
Comment on attachment 381714 [details] Patch for landing View in context: https://bugs.webkit.org/attachment.cgi?id=381714&action=review > Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:284 > +TEST(WebAuthenticationPanel, PanelHidSuccess2) This test times out a lot on the bots. https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI.WebAuthenticationPanel.PanelHidSuccess2
Jiewen Tan
Comment 12 2019-10-24 12:29:51 PDT
(In reply to Alex Christensen from comment #11) > Comment on attachment 381714 [details] > Patch for landing > > View in context: > https://bugs.webkit.org/attachment.cgi?id=381714&action=review > > > Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:284 > > +TEST(WebAuthenticationPanel, PanelHidSuccess2) > > This test times out a lot on the bots. > https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI. > WebAuthenticationPanel.PanelHidSuccess2 Thanks, Alex. Will investigate.
Jiewen Tan
Comment 13 2019-10-24 14:26:49 PDT
*** Bug 203380 has been marked as a duplicate of this bug. ***
Jiewen Tan
Comment 14 2019-10-24 14:29:15 PDT
Jiewen Tan
Comment 15 2019-10-24 18:37:10 PDT
Another attempt to fix the test: Committed r251579: <https://trac.webkit.org/changeset/251579>
Aakash Jain
Comment 16 2019-10-25 13:23:31 PDT
TestWebKitAPI.WebAuthenticationPanel.PanelHidSuccess2 is still failing, both on iOS and mac. It is slowing down EWS (since in case of any test failure, EWS has to retry the tests to check for flakiness, and and re-run the tests on clean tree to verify if the test is pre-existing). https://ews-build.webkit.org/#/builders/3 https://ews-build.webkit.org/#/builders/9
Matt Lewis
Comment 17 2019-10-25 14:30:03 PDT
Jiewen Tan
Comment 18 2019-10-27 16:07:18 PDT
Created attachment 382041 [details] Patch for relanding
Brent Fulgham
Comment 19 2019-10-28 11:30:19 PDT
Comment on attachment 382041 [details] Patch for relanding r=me. Please keep an eye on the Windows build failure -- I'm not sure why this change would impact it.
Jiewen Tan
Comment 20 2019-10-29 15:57:14 PDT
Created attachment 382242 [details] Patch for relanding
Jiewen Tan
Comment 21 2019-10-29 16:05:19 PDT
Created attachment 382245 [details] Patch for relanding
Jiewen Tan
Comment 22 2019-10-29 17:24:52 PDT
Comment on attachment 382245 [details] Patch for relanding Thanks Brent for r+ the patch too. I borrowed an EWS bot (159) from Aakash. And this patch passes consistently on that bot with both macOS and iOS simulator for 1000 times. cq+. Will watch out for other bots' behavior.
Jiewen Tan
Comment 23 2019-10-29 17:25:55 PDT
Created attachment 382255 [details] EWS 159 iOS simulator debug results
WebKit Commit Bot
Comment 24 2019-10-29 19:50:38 PDT
Comment on attachment 382245 [details] Patch for relanding Clearing flags on attachment: 382245 Committed r251762: <https://trac.webkit.org/changeset/251762>
Jiewen Tan
Comment 25 2019-11-18 12:17:07 PST
*** Bug 204187 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.