Changeset 270616 in webkit
- Timestamp:
- Dec 10, 2020 12:41:43 AM (3 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r270614 r270616 1 2020-12-10 Jiewen Tan <jiewen_tan@apple.com> 2 3 [WebAuthn] Adopt new UI for the Security Key makeCredential flow 4 https://bugs.webkit.org/show_bug.cgi?id=219708 5 <rdar://problem/72154735> 6 7 Reviewed by Brent Fulgham. 8 9 This patch adopts the new AuthenticationServices' UI. The idea is to use AuthenticatorPresenterCoordinator 10 as the middle layer to connect to the new UI while keeping the existing interfaces the same in the AuthenticatorManager 11 to handle the interactions between UI and authenticators. 12 13 Covered by manual tests. 14 15 * Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h: Added. 16 SPI for the new UI. 17 18 * Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: 19 * Scripts/process-entitlements.sh: 20 Added new sandbox rules for Remote SpringBoard services which are used by the new UI. 21 22 * SourcesCocoa.txt: 23 Paperwork. 24 25 * UIProcess/WebAuthentication/AuthenticatorManager.cpp: 26 (WebKit::AuthenticatorManager::handleRequest): 27 (WebKit::AuthenticatorManager::cancel): 28 (WebKit::AuthenticatorManager::enableModernWebAuthentication): 29 (WebKit::AuthenticatorManager::clearState): 30 (WebKit::AuthenticatorManager::serviceStatusUpdated): 31 (WebKit::AuthenticatorManager::authenticatorStatusUpdated): 32 (WebKit::AuthenticatorManager::requestPin): 33 (WebKit::AuthenticatorManager::selectAssertionResponse): 34 (WebKit::AuthenticatorManager::startDiscovery): 35 (WebKit::AuthenticatorManager::runPanel): 36 (WebKit::AuthenticatorManager::runPresenter): 37 (WebKit::AuthenticatorManager::invokePendingCompletionHandler): 38 * UIProcess/WebAuthentication/AuthenticatorManager.h: 39 Teached AuthenticatorManager to use the new UI's presenter when it is available. Otherwise, it falls back to the old UI. 40 41 * UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h: Added. 42 * UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm: Added. 43 * UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h: Added. 44 * UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm: Added. 45 (WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator): 46 (WebKit::AuthenticatorPresenterCoordinator::updatePresenter): 47 (WebKit::AuthenticatorPresenterCoordinator::requestPin): 48 (WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse): 49 (WebKit::AuthenticatorPresenterCoordinator::dimissPresenter): 50 * UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.h: Added. 51 * UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm: Added. 52 (-[WKASCAuthorizationPresenterDelegate initWithCoordinator:]): 53 (-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]): 54 (-[WKASCAuthorizationPresenterDelegate authorizationPresenter:validateUserEnteredPIN:completionHandler:]): 55 Introduced the AuthenticatorPresenterCoordinator to handle the new UI. 56 57 * WebAuthnProcess/WebAuthnProcess.cpp: 58 (WebKit::WebAuthnProcess::WebAuthnProcess): 59 (WebKit::WebAuthnProcess::setMockWebAuthenticationConfiguration): 60 Teached WebAuthnProcess to inform AuthenticatorManager about its existence. 61 62 * WebKit.xcodeproj/project.pbxproj: 63 Paperwork. 64 1 65 2020-12-09 Per Arne Vollan <pvollan@apple.com> 2 66 -
trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb
r269554 r270616 642 642 (allow mach-lookup 643 643 (global-name "com.apple.nfcd.hwmanager")) 644 645 ;; Allow accesses to the Springboard view services. 646 (allow mach-lookup 647 (global-name "com.apple.frontboard.systemappservices")) -
trunk/Source/WebKit/Scripts/process-entitlements.sh
r270463 r270616 261 261 plistbuddy Add :com.apple.mobileactivationd.spi bool YES 262 262 263 plistbuddy Add :com.apple.springboard.remote-alert bool YES 264 plistbuddy Add :com.apple.frontboard.launchapplications bool YES 265 263 266 plistbuddy Add :seatbelt-profiles array 264 267 plistbuddy Add :seatbelt-profiles:0 string com.apple.WebKit.WebAuthn -
trunk/Source/WebKit/SourcesCocoa.txt
r270587 r270616 540 540 541 541 UIProcess/WebAuthentication/Cocoa/AppAttestInternalSoftLink.mm @no-unify 542 UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm @no-unify 543 UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm 542 544 UIProcess/WebAuthentication/Cocoa/HidConnection.mm 543 545 UIProcess/WebAuthentication/Cocoa/HidService.mm … … 549 551 UIProcess/WebAuthentication/Cocoa/NfcConnection.mm 550 552 UIProcess/WebAuthentication/Cocoa/NfcService.mm 553 UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm 551 554 UIProcess/WebAuthentication/Cocoa/WKNFReaderSessionDelegate.mm 552 555 UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm -
trunk/Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp
r269168 r270616 32 32 #include "APIWebAuthenticationPanel.h" 33 33 #include "APIWebAuthenticationPanelClient.h" 34 #include "AuthenticatorPresenterCoordinator.h" 34 35 #include "LocalService.h" 35 36 #include "NfcService.h" … … 165 166 initTimeOutTimer(); 166 167 167 // FIXME<rdar://problem/70822834>: The WebPageProxy is used to determine whether or not we are in the UIProcess. 168 // FIXME<rdar://problem/70822834>: The m_isWebAuthenticationModernEnabled is used to determine 169 // whether or not we are in the UIProcess. 168 170 // If so, continue to the old route. Otherwise, use the modern WebAuthn process way. 169 if ( m_pendingRequestData.page) {171 if (!m_isWebAuthenticationModernEnabled) { 170 172 runPanel(); 171 173 return; 172 174 } 173 startDiscovery(getTransports());175 runPresenter(); 174 176 } 175 177 … … 198 200 } 199 201 202 void AuthenticatorManager::cancel() 203 { 204 RELEASE_ASSERT(RunLoop::isMain()); 205 if (!m_pendingCompletionHandler) 206 return; 207 cancelRequest(); 208 } 209 210 void AuthenticatorManager::enableModernWebAuthentication() 211 { 212 m_isWebAuthenticationModernEnabled = true; 213 } 214 200 215 void AuthenticatorManager::clearStateAsync() 201 216 { … … 214 229 m_services.clear(); 215 230 m_pendingRequestData = { }; 231 m_presenter = nullptr; 216 232 } 217 233 … … 227 243 void AuthenticatorManager::serviceStatusUpdated(WebAuthenticationStatus status) 228 244 { 245 // This is for the new UI. 246 if (m_presenter) { 247 m_presenter->updatePresenter(status); 248 return; 249 } 250 229 251 dispatchPanelClientCall([status] (const API::WebAuthenticationPanel& panel) { 230 252 panel.client().updatePanel(status); … … 269 291 m_pendingRequestData.cachedPin = String(); 270 292 293 // This is for the new UI. 294 if (m_presenter) { 295 m_presenter->updatePresenter(status); 296 return; 297 } 298 271 299 dispatchPanelClientCall([status] (const API::WebAuthenticationPanel& panel) { 272 300 panel.client().updatePanel(status); … … 293 321 }; 294 322 323 // This is for the new UI. 324 if (m_presenter) { 325 m_presenter->requestPin(retries, WTFMove(callback)); 326 return; 327 } 328 295 329 dispatchPanelClientCall([retries, callback = WTFMove(callback)] (const API::WebAuthenticationPanel& panel) mutable { 296 330 panel.client().requestPin(retries, WTFMove(callback)); … … 300 334 void AuthenticatorManager::selectAssertionResponse(Vector<Ref<WebCore::AuthenticatorAssertionResponse>>&& responses, WebAuthenticationSource source, CompletionHandler<void(AuthenticatorAssertionResponse*)>&& completionHandler) 301 335 { 336 // This is for the new UI. 337 if (m_presenter) { 338 m_presenter->selectAssertionResponse(WTFMove(responses), source, WTFMove(completionHandler)); 339 return; 340 } 341 302 342 dispatchPanelClientCall([responses = WTFMove(responses), source, completionHandler = WTFMove(completionHandler)] (const API::WebAuthenticationPanel& panel) mutable { 303 343 panel.client().selectAssertionResponse(WTFMove(responses), source, WTFMove(completionHandler)); … … 341 381 ASSERT(m_services.isEmpty() && transports.size() <= maxTransportNumber); 342 382 for (auto& transport : transports) { 343 // Only allow USB authenticators when clients don't have dedicated UI.344 if (transport != AuthenticatorTransport::Usb && (m_pendingRequestData.panelResult == WebAuthenticationPanelResult::Unavailable))345 continue;346 383 auto service = createService(transport, *this); 347 384 service->startDiscovery(); … … 390 427 || (weakPanel.get() != m_pendingRequestData.panel.get())) 391 428 return; 392 m_pendingRequestData.panelResult = result;393 429 startDiscovery(transports); 394 430 }); 395 431 } 396 432 433 void AuthenticatorManager::runPresenter() 434 { 435 // Get available transports and start discovering authenticators on them. 436 auto& options = m_pendingRequestData.options; 437 auto transports = getTransports(); 438 startDiscovery(transports); 439 440 m_presenter = makeUnique<AuthenticatorPresenterCoordinator>(*this, getRpId(options), transports, getClientDataType(options)); 441 } 442 397 443 void AuthenticatorManager::invokePendingCompletionHandler(Respond&& respond) 398 444 { 399 dispatchPanelClientCall([result = WTF::holds_alternative<Ref<AuthenticatorResponse>>(respond) ? WebAuthenticationResult::Succeeded : WebAuthenticationResult::Failed] (const API::WebAuthenticationPanel& panel) { 400 panel.client().dismissPanel(result); 401 }); 445 // This is for the new UI. 446 if (m_presenter) 447 m_presenter->dimissPresenter(); 448 else { 449 dispatchPanelClientCall([result = WTF::holds_alternative<Ref<AuthenticatorResponse>>(respond) ? WebAuthenticationResult::Succeeded : WebAuthenticationResult::Failed] (const API::WebAuthenticationPanel& panel) { 450 panel.client().dismissPanel(result); 451 }); 452 } 453 402 454 m_pendingCompletionHandler(WTFMove(respond)); 403 455 } -
trunk/Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h
r260970 r270616 29 29 30 30 #include "Authenticator.h" 31 #include "AuthenticatorPresenterCoordinator.h" 31 32 #include "AuthenticatorTransportService.h" 32 33 #include "WebAuthenticationRequestData.h" … … 64 65 void cancelRequest(const WebCore::PageIdentifier&, const Optional<WebCore::FrameIdentifier>&); // Called from WebPageProxy/WebProcessProxy. 65 66 void cancelRequest(const API::WebAuthenticationPanel&); // Called from panel clients. 67 void cancel(); // Called from the presenter. 66 68 67 69 virtual bool isMock() const { return false; } 70 71 void enableModernWebAuthentication(); 68 72 69 73 protected: … … 97 101 void timeOutTimerFired(); 98 102 void runPanel(); 103 void runPresenter(); 99 104 void restartDiscovery(); 100 105 TransportSet getTransports() const; … … 105 110 Callback m_pendingCompletionHandler; // Should not be invoked directly, use invokePendingCompletionHandler. 106 111 RunLoop::Timer<AuthenticatorManager> m_requestTimeOutTimer; 112 std::unique_ptr<AuthenticatorPresenterCoordinator> m_presenter; 107 113 108 114 Vector<UniqueRef<AuthenticatorTransportService>> m_services; 109 115 HashSet<Ref<Authenticator>> m_authenticators; 116 117 bool m_isWebAuthenticationModernEnabled { false }; 110 118 }; 111 119 -
trunk/Source/WebKit/WebAuthnProcess/WebAuthnProcess.cpp
r269168 r270616 43 43 { 44 44 initialize(WTFMove(parameters)); 45 m_authenticatorManager->enableModernWebAuthentication(); 45 46 } 46 47 … … 130 131 if (!m_authenticatorManager->isMock()) { 131 132 m_authenticatorManager = makeUniqueRef<MockAuthenticatorManager>(WTFMove(configuration)); 133 m_authenticatorManager->enableModernWebAuthentication(); 132 134 return; 133 135 } -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r270606 r270616 1145 1145 576CA9D722B862180030143C /* SOAuthorizationNSURLExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317322B35148008D0E8B /* SOAuthorizationNSURLExtras.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1146 1146 5772F206217DBD6A0056BF2C /* HidService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5772F204217DBD6A0056BF2C /* HidService.h */; }; 1147 57773991258037430059348B /* AuthenticatorPresenterCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 5777398F258037430059348B /* AuthenticatorPresenterCoordinator.h */; }; 1148 577739952580388F0059348B /* WKASCAuthorizationPresenterDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 577739932580388F0059348B /* WKASCAuthorizationPresenterDelegate.h */; }; 1147 1149 577FF7822346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 577FF7812346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h */; }; 1148 1150 577FF7852346ECAA004EDFB9 /* WebAuthenticationPanelClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 577FF7832346ECAA004EDFB9 /* WebAuthenticationPanelClient.h */; }; … … 1208 1210 57EBE26A234676C5008D8AF9 /* APIWebAuthenticationPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 57EBE268234676C5008D8AF9 /* APIWebAuthenticationPanel.h */; }; 1209 1211 57EFC77E2550EB8600F9477D /* com.apple.WebKit.WebAuthn.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = 57EFC77D2550EB8500F9477D /* com.apple.WebKit.WebAuthn.sb */; }; 1212 57FABB0F25817CF00059DC95 /* AuthenticationServicesCoreSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FABB0E25817CF00059DC95 /* AuthenticationServicesCoreSPI.h */; }; 1213 57FABB122581827C0059DC95 /* AuthenticationServicesCoreSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FABB102581827C0059DC95 /* AuthenticationServicesCoreSoftLink.h */; }; 1214 57FABB132581827C0059DC95 /* AuthenticationServicesCoreSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57FABB112581827C0059DC95 /* AuthenticationServicesCoreSoftLink.mm */; }; 1215 57FABB14258188230059DC95 /* SourcesCocoa.txt in Resources */ = {isa = PBXBuildFile; fileRef = 2D7DEBE121269D5F00B9F73C /* SourcesCocoa.txt */; }; 1210 1216 57FD318022B35158008D0E8B /* NavigationSOAuthorizationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317822B35149008D0E8B /* NavigationSOAuthorizationSession.h */; }; 1211 1217 57FD318122B3515B008D0E8B /* PopUpSOAuthorizationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317022B35148008D0E8B /* PopUpSOAuthorizationSession.h */; }; … … 4083 4089 5772F204217DBD6A0056BF2C /* HidService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HidService.h; sourceTree = "<group>"; }; 4084 4090 5772F205217DBD6A0056BF2C /* HidService.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = HidService.mm; sourceTree = "<group>"; }; 4091 5777398F258037430059348B /* AuthenticatorPresenterCoordinator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticatorPresenterCoordinator.h; sourceTree = "<group>"; }; 4092 57773990258037430059348B /* AuthenticatorPresenterCoordinator.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AuthenticatorPresenterCoordinator.mm; sourceTree = "<group>"; }; 4093 577739932580388F0059348B /* WKASCAuthorizationPresenterDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKASCAuthorizationPresenterDelegate.h; sourceTree = "<group>"; }; 4094 577739942580388F0059348B /* WKASCAuthorizationPresenterDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WKASCAuthorizationPresenterDelegate.mm; sourceTree = "<group>"; }; 4085 4095 577FF7812346E81C004EDFB9 /* APIWebAuthenticationPanelClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APIWebAuthenticationPanelClient.h; sourceTree = "<group>"; }; 4086 4096 577FF7832346ECAA004EDFB9 /* WebAuthenticationPanelClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebAuthenticationPanelClient.h; sourceTree = "<group>"; }; … … 4168 4178 57EBE269234676C5008D8AF9 /* APIWebAuthenticationPanel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebAuthenticationPanel.cpp; sourceTree = "<group>"; }; 4169 4179 57EFC77D2550EB8500F9477D /* com.apple.WebKit.WebAuthn.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.WebAuthn.sb; sourceTree = "<group>"; }; 4180 57FABB0E25817CF00059DC95 /* AuthenticationServicesCoreSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticationServicesCoreSPI.h; sourceTree = "<group>"; }; 4181 57FABB102581827C0059DC95 /* AuthenticationServicesCoreSoftLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticationServicesCoreSoftLink.h; sourceTree = "<group>"; }; 4182 57FABB112581827C0059DC95 /* AuthenticationServicesCoreSoftLink.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AuthenticationServicesCoreSoftLink.mm; sourceTree = "<group>"; }; 4170 4183 57FD317022B35148008D0E8B /* PopUpSOAuthorizationSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopUpSOAuthorizationSession.h; sourceTree = "<group>"; }; 4171 4184 57FD317122B35148008D0E8B /* WKSOAuthorizationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSOAuthorizationDelegate.h; sourceTree = "<group>"; }; … … 7506 7519 E3CAAA432413278A00CED2E2 /* AccessibilitySupportSPI.h */, 7507 7520 572EBBDC25392181000552B3 /* AppAttestSPI.h */, 7521 57FABB0E25817CF00059DC95 /* AuthenticationServicesCoreSPI.h */, 7508 7522 1A5705101BE410E500874AF1 /* BlockSPI.h */, 7509 7523 E50620912542102000C43091 /* ContactsUISPI.h */, … … 8632 8646 572EBBD92538F6A1000552B3 /* AppAttestInternalSoftLink.h */, 8633 8647 572EBBD82538F6A1000552B3 /* AppAttestInternalSoftLink.mm */, 8648 57FABB102581827C0059DC95 /* AuthenticationServicesCoreSoftLink.h */, 8649 57FABB112581827C0059DC95 /* AuthenticationServicesCoreSoftLink.mm */, 8650 5777398F258037430059348B /* AuthenticatorPresenterCoordinator.h */, 8651 57773990258037430059348B /* AuthenticatorPresenterCoordinator.mm */, 8634 8652 57AC8F4E217FEED90055438C /* HidConnection.h */, 8635 8653 57AC8F4F217FEED90055438C /* HidConnection.mm */, … … 8652 8670 577FF7832346ECAA004EDFB9 /* WebAuthenticationPanelClient.h */, 8653 8671 577FF7842346ECAA004EDFB9 /* WebAuthenticationPanelClient.mm */, 8672 577739932580388F0059348B /* WKASCAuthorizationPresenterDelegate.h */, 8673 577739942580388F0059348B /* WKASCAuthorizationPresenterDelegate.mm */, 8654 8674 570DAAC423037F7E00E8FC04 /* WKNFReaderSessionDelegate.h */, 8655 8675 570DAAC523037F7E00E8FC04 /* WKNFReaderSessionDelegate.mm */, … … 11311 11331 518E8EF916B2091C00E91429 /* AuthenticationManager.h in Headers */, 11312 11332 512F58A312A883AD00629530 /* AuthenticationManagerMessages.h in Headers */, 11333 57FABB122581827C0059DC95 /* AuthenticationServicesCoreSoftLink.h in Headers */, 11334 57FABB0F25817CF00059DC95 /* AuthenticationServicesCoreSPI.h in Headers */, 11313 11335 57DCEDB1214C60480016B847 /* Authenticator.h in Headers */, 11314 11336 57DCEDAF214C603B0016B847 /* AuthenticatorManager.h in Headers */, 11337 57773991258037430059348B /* AuthenticatorPresenterCoordinator.h in Headers */, 11315 11338 57DCEDB0214C60420016B847 /* AuthenticatorTransportService.h in Headers */, 11316 11339 9955A6EF1C79810800EB6A93 /* Automation.json in Headers */, … … 12035 12058 A13DC682207AA6B20066EF72 /* WKApplicationStateTrackingView.h in Headers */, 12036 12059 BC4075F4124FF0270068F20A /* WKArray.h in Headers */, 12060 577739952580388F0059348B /* WKASCAuthorizationPresenterDelegate.h in Headers */, 12037 12061 512F58F612A88A5400629530 /* WKAuthenticationChallenge.h in Headers */, 12038 12062 512F58F812A88A5400629530 /* WKAuthenticationDecisionListener.h in Headers */, … … 12744 12768 buildActionMask = 2147483647; 12745 12769 files = ( 12770 57FABB14258188230059DC95 /* SourcesCocoa.txt in Resources */, 12746 12771 E1D26A53175964D90095BFD1 /* WebContentProcess.xib in Resources */, 12747 12772 ); … … 13392 13417 CD4570D3244113B500A3DCEB /* AudioSessionRoutingArbitratorProxyMessageReceiver.cpp in Sources */, 13393 13418 512F58A212A883AD00629530 /* AuthenticationManagerMessageReceiver.cpp in Sources */, 13419 57FABB132581827C0059DC95 /* AuthenticationServicesCoreSoftLink.mm in Sources */, 13394 13420 9955A6F41C7986DC00EB6A93 /* AutomationBackendDispatchers.cpp in Sources */, 13395 13421 99249AD51F1F1E5600B62FBB /* AutomationFrontendDispatchers.cpp in Sources */, -
trunk/Tools/ChangeLog
r270613 r270616 1 2020-12-10 Jiewen Tan <jiewen_tan@apple.com> 2 3 [WebAuthn] Adopt new UI for the Security Key makeCredential flow 4 https://bugs.webkit.org/show_bug.cgi?id=219708 5 <rdar://problem/72154735> 6 7 Reviewed by Brent Fulgham. 8 9 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 10 (TestWebKitAPI::TEST): 11 Adjusted to the new behavior. 12 1 13 2020-12-09 Cathie Chen <cathiechen@igalia.com> 2 14 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
r270142 r270616 391 391 } // namesapce; 392 392 393 TEST(WebAuthenticationPanel, NoPanelTimeout) 393 #if HAVE(NEAR_FIELD) 394 TEST(WebAuthenticationPanel, NoPanelNfcSucceed) 394 395 { 395 396 RetainPtr<NSURL> testURL = [[NSBundle mainBundle] URLForResource:@"web-authentication-get-assertion-nfc" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]; … … 401 402 402 403 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 403 [webView waitForMessage:@"Operation timed out."]; 404 } 404 [webView waitForMessage:@"Succeeded!"]; 405 } 406 #endif 405 407 406 408 TEST(WebAuthenticationPanel, NoPanelHidSuccess)
Note: See TracChangeset
for help on using the changeset viewer.