Changeset 284824 in webkit
- Timestamp:
- Oct 25, 2021, 2:50:34 PM (5 years ago)
- Location:
- branches/safari-612-branch
- Files:
-
- 2 added
- 9 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/testing/MockWebAuthenticationConfiguration.h (modified) (3 diffs)
-
Source/WebCore/testing/MockWebAuthenticationConfiguration.idl (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/UIProcess/WebAuthentication/Mock/MockHidConnection.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp (modified) (3 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (modified) (5 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm (modified) (2 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html (added)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html (added)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-612-branch/Source/WebCore/ChangeLog
r284815 r284824 1 2021-10-25 Null <null@apple.com> 2 3 Cherry-pick r283515. rdar://problem/84624826 4 5 [WebAuthn] Prefer internal user verification if available over pin entry. 6 https://bugs.webkit.org/show_bug.cgi?id=213903 7 <rdar://problem/65359269> 8 9 Patch by John Pascoe <j_pascoe@apple.com> on 2021-10-04 10 Reviewed by Brent Fulgham. 11 12 Source/WebCore: 13 14 This adds an option to mock internal user verification in tests. 15 16 * testing/MockWebAuthenticationConfiguration.h: 17 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const): 18 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode): 19 * testing/MockWebAuthenticationConfiguration.idl: 20 21 Source/WebKit: 22 23 * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: 24 (WebKit::MockHidConnection::feedReports): 25 * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: 26 (WebKit::CtapAuthenticator::makeCredential): 27 (WebKit::CtapAuthenticator::getAssertion): 28 (WebKit::fido::toStatus): Deleted. 29 (WebKit::fido::isPinError): Deleted. 30 31 Tools: 32 33 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 34 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 35 (TestWebKitAPI::TEST): 36 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added. 37 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added. 38 39 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283515 268f45cc-cd09-0410-ab3c-d52691b4dbfc 40 41 2021-10-04 John Pascoe <j_pascoe@apple.com> 42 43 [WebAuthn] Prefer internal user verification if available over pin entry. 44 https://bugs.webkit.org/show_bug.cgi?id=213903 45 <rdar://problem/65359269> 46 47 Reviewed by Brent Fulgham. 48 49 This adds an option to mock internal user verification in tests. 50 51 * testing/MockWebAuthenticationConfiguration.h: 52 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const): 53 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode): 54 * testing/MockWebAuthenticationConfiguration.idl: 55 1 56 2021-10-25 Null <null@apple.com> 2 57 -
branches/safari-612-branch/Source/WebCore/testing/MockWebAuthenticationConfiguration.h
r278253 r284824 93 93 bool expectCancel { false }; 94 94 bool supportClientPin { false }; 95 bool supportInternalUV { false }; 95 96 96 97 template<class Encoder> void encode(Encoder&) const; … … 170 171 void MockWebAuthenticationConfiguration::HidConfiguration::encode(Encoder& encoder) const 171 172 { 172 encoder << payloadBase64 << stage << subStage << error << isU2f << keepAlive << fastDataArrival << continueAfterErrorData << canDowngrade << expectCancel << supportClientPin ;173 encoder << payloadBase64 << stage << subStage << error << isU2f << keepAlive << fastDataArrival << continueAfterErrorData << canDowngrade << expectCancel << supportClientPin << supportInternalUV; 173 174 } 174 175 … … 198 199 return std::nullopt; 199 200 if (!decoder.decode(result.supportClientPin)) 201 return std::nullopt; 202 if (!decoder.decode(result.supportInternalUV)) 200 203 return std::nullopt; 201 204 return result; -
branches/safari-612-branch/Source/WebCore/testing/MockWebAuthenticationConfiguration.idl
r276180 r284824 103 103 boolean expectCancel = false; 104 104 boolean supportClientPin = false; 105 boolean supportInternalUV = false; 105 106 }; 106 107 -
branches/safari-612-branch/Source/WebKit/ChangeLog
r284815 r284824 1 2021-10-25 Null <null@apple.com> 2 3 Cherry-pick r283515. rdar://problem/84624826 4 5 [WebAuthn] Prefer internal user verification if available over pin entry. 6 https://bugs.webkit.org/show_bug.cgi?id=213903 7 <rdar://problem/65359269> 8 9 Patch by John Pascoe <j_pascoe@apple.com> on 2021-10-04 10 Reviewed by Brent Fulgham. 11 12 Source/WebCore: 13 14 This adds an option to mock internal user verification in tests. 15 16 * testing/MockWebAuthenticationConfiguration.h: 17 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const): 18 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode): 19 * testing/MockWebAuthenticationConfiguration.idl: 20 21 Source/WebKit: 22 23 * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: 24 (WebKit::MockHidConnection::feedReports): 25 * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: 26 (WebKit::CtapAuthenticator::makeCredential): 27 (WebKit::CtapAuthenticator::getAssertion): 28 (WebKit::fido::toStatus): Deleted. 29 (WebKit::fido::isPinError): Deleted. 30 31 Tools: 32 33 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 34 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 35 (TestWebKitAPI::TEST): 36 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added. 37 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added. 38 39 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283515 268f45cc-cd09-0410-ab3c-d52691b4dbfc 40 41 2021-10-04 John Pascoe <j_pascoe@apple.com> 42 43 [WebAuthn] Prefer internal user verification if available over pin entry. 44 https://bugs.webkit.org/show_bug.cgi?id=213903 45 <rdar://problem/65359269> 46 47 Reviewed by Brent Fulgham. 48 49 * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: 50 (WebKit::MockHidConnection::feedReports): 51 * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: 52 (WebKit::CtapAuthenticator::makeCredential): 53 (WebKit::CtapAuthenticator::getAssertion): 54 (WebKit::fido::toStatus): Deleted. 55 (WebKit::fido::isPinError): Deleted. 56 1 57 2021-10-25 Null <null@apple.com> 2 58 -
branches/safari-612-branch/Source/WebKit/UIProcess/WebAuthentication/Mock/MockHidConnection.cpp
r278253 r284824 229 229 if (m_configuration.hid->canDowngrade) 230 230 infoData = encodeAsCBOR(AuthenticatorGetInfoResponse({ ProtocolVersion::kCtap, ProtocolVersion::kU2f }, Vector<uint8_t>(aaguidLength, 0u))); 231 else if (m_configuration.hid->supportClientPin){231 else { 232 232 AuthenticatorGetInfoResponse infoResponse({ ProtocolVersion::kCtap }, Vector<uint8_t>(aaguidLength, 0u)); 233 infoResponse.setPinProtocols({ pin::kProtocolVersion });234 233 AuthenticatorSupportedOptions options; 235 options.setClientPinAvailability(AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet); 234 if (m_configuration.hid->supportClientPin) { 235 infoResponse.setPinProtocols({ pin::kProtocolVersion }); 236 options.setClientPinAvailability(AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet); 237 } 238 if (m_configuration.hid->supportInternalUV) 239 options.setUserVerificationAvailability(AuthenticatorSupportedOptions::UserVerificationAvailability::kSupportedAndConfigured); 236 240 infoResponse.setOptions(WTFMove(options)); 237 241 infoData = encodeAsCBOR(infoResponse); 238 } else 239 infoData = encodeAsCBOR(AuthenticatorGetInfoResponse({ ProtocolVersion::kCtap }, Vector<uint8_t>(aaguidLength, 0u))); 242 } 240 243 infoData.insert(0, static_cast<uint8_t>(CtapDeviceResponseCode::kSuccess)); // Prepend status code. 241 244 if (stagesMatch() && m_configuration.hid->error == Mock::HidError::WrongChannelId) -
branches/safari-612-branch/Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
r278358 r284824 48 48 using namespace fido; 49 49 50 using UVAvailability = AuthenticatorSupportedOptions::UserVerificationAvailability; 51 50 52 namespace { 51 53 WebAuthenticationStatus toStatus(const CtapDeviceResponseCode& error) … … 93 95 Vector<uint8_t> cborCmd; 94 96 auto& options = WTF::get<PublicKeyCredentialCreationOptions>(requestData().options); 95 if (m_info.options().clientPinAvailability() == AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet) 96 cborCmd = encodeMakeCredenitalRequestAsCBOR(requestData().hash, options, m_info.options().userVerificationAvailability(), PinParameters { pin::kProtocolVersion, m_pinAuth }); 97 auto internalUVAvailability = m_info.options().userVerificationAvailability(); 98 // If UV is required, then either built-in uv or a pin will work. 99 if (internalUVAvailability == UVAvailability::kSupportedAndConfigured && (!options.authenticatorSelection || options.authenticatorSelection->userVerification != UserVerificationRequirement::Discouraged)) 100 cborCmd = encodeMakeCredenitalRequestAsCBOR(requestData().hash, options, internalUVAvailability); 101 else if (m_info.options().clientPinAvailability() == AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet) 102 cborCmd = encodeMakeCredenitalRequestAsCBOR(requestData().hash, options, internalUVAvailability, PinParameters { pin::kProtocolVersion, m_pinAuth }); 97 103 else 98 cborCmd = encodeMakeCredenitalRequestAsCBOR(requestData().hash, options, m_info.options().userVerificationAvailability());104 cborCmd = encodeMakeCredenitalRequestAsCBOR(requestData().hash, options, internalUVAvailability); 99 105 driver().transact(WTFMove(cborCmd), [weakThis = makeWeakPtr(*this)](Vector<uint8_t>&& data) { 100 106 ASSERT(RunLoop::isMain()); … … 134 140 Vector<uint8_t> cborCmd; 135 141 auto& options = WTF::get<PublicKeyCredentialRequestOptions>(requestData().options); 136 if (m_info.options().clientPinAvailability() == AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet && options.userVerification != UserVerificationRequirement::Discouraged) 137 cborCmd = encodeGetAssertionRequestAsCBOR(requestData().hash, options, m_info.options().userVerificationAvailability(), PinParameters { pin::kProtocolVersion, m_pinAuth }); 142 auto internalUVAvailability = m_info.options().userVerificationAvailability(); 143 // If UV is required, then either built-in uv or a pin will work. 144 if (internalUVAvailability == UVAvailability::kSupportedAndConfigured && options.userVerification != UserVerificationRequirement::Discouraged) 145 cborCmd = encodeGetAssertionRequestAsCBOR(requestData().hash, options, internalUVAvailability); 146 else if (m_info.options().clientPinAvailability() == AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedAndPinSet && options.userVerification != UserVerificationRequirement::Discouraged) 147 cborCmd = encodeGetAssertionRequestAsCBOR(requestData().hash, options, internalUVAvailability, PinParameters { pin::kProtocolVersion, m_pinAuth }); 138 148 else 139 cborCmd = encodeGetAssertionRequestAsCBOR(requestData().hash, options, m_info.options().userVerificationAvailability());149 cborCmd = encodeGetAssertionRequestAsCBOR(requestData().hash, options, internalUVAvailability); 140 150 driver().transact(WTFMove(cborCmd), [weakThis = makeWeakPtr(*this)](Vector<uint8_t>&& data) { 141 151 ASSERT(RunLoop::isMain()); -
branches/safari-612-branch/Tools/ChangeLog
r284403 r284824 1 2021-10-25 Null <null@apple.com> 2 3 Cherry-pick r283515. rdar://problem/84624826 4 5 [WebAuthn] Prefer internal user verification if available over pin entry. 6 https://bugs.webkit.org/show_bug.cgi?id=213903 7 <rdar://problem/65359269> 8 9 Patch by John Pascoe <j_pascoe@apple.com> on 2021-10-04 10 Reviewed by Brent Fulgham. 11 12 Source/WebCore: 13 14 This adds an option to mock internal user verification in tests. 15 16 * testing/MockWebAuthenticationConfiguration.h: 17 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const): 18 (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode): 19 * testing/MockWebAuthenticationConfiguration.idl: 20 21 Source/WebKit: 22 23 * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: 24 (WebKit::MockHidConnection::feedReports): 25 * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: 26 (WebKit::CtapAuthenticator::makeCredential): 27 (WebKit::CtapAuthenticator::getAssertion): 28 (WebKit::fido::toStatus): Deleted. 29 (WebKit::fido::isPinError): Deleted. 30 31 Tools: 32 33 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 34 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 35 (TestWebKitAPI::TEST): 36 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added. 37 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added. 38 39 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283515 268f45cc-cd09-0410-ab3c-d52691b4dbfc 40 41 2021-10-04 John Pascoe <j_pascoe@apple.com> 42 43 [WebAuthn] Prefer internal user verification if available over pin entry. 44 https://bugs.webkit.org/show_bug.cgi?id=213903 45 <rdar://problem/65359269> 46 47 Reviewed by Brent Fulgham. 48 49 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 50 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 51 (TestWebKitAPI::TEST): 52 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added. 53 * TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added. 54 1 55 2021-10-18 Russell Epstein <repstein@apple.com> 2 56 -
branches/safari-612-branch/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r284424 r284824 392 392 524BBCA119E30C77002F1AF1 /* test.mp4 in Copy Resources */ = {isa = PBXBuildFile; fileRef = 524BBCA019E30C63002F1AF1 /* test.mp4 */; }; 393 393 52B8CF9815868D9100281053 /* SetDocumentURI.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 52B8CF9415868CF000281053 /* SetDocumentURI.html */; }; 394 52C8C1382706437C00BDF3B7 /* web-authentication-make-credential-hid-internal-uv.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 52C8C1372706437C00BDF3B7 /* web-authentication-make-credential-hid-internal-uv.html */; }; 395 52C8C13A2706439000BDF3B7 /* web-authentication-get-assertion-hid-internal-uv.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 52C8C1392706439000BDF3B7 /* web-authentication-get-assertion-hid-internal-uv.html */; }; 394 396 52D5D6C021B9F1B30046ABA6 /* RenderingProgress.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52D5D6BD21B9F1B20046ABA6 /* RenderingProgress.mm */; }; 395 397 52D673EE1AFB127300FA19FE /* WKPageCopySessionStateWithFiltering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52D673EC1AFB126800FA19FE /* WKPageCopySessionStateWithFiltering.cpp */; }; … … 1739 1741 CD577799211CE0E4001B371E /* web-audio-only.html in Copy Resources */, 1740 1742 57663DF32357E48900E85E09 /* web-authentication-get-assertion-hid-cancel.html in Copy Resources */, 1743 52C8C13A2706439000BDF3B7 /* web-authentication-get-assertion-hid-internal-uv.html in Copy Resources */, 1741 1744 579F1C0123C93AF500C7D4B4 /* web-authentication-get-assertion-hid-multiple-accounts.html in Copy Resources */, 1742 1745 577454D02359B378008E1ED7 /* web-authentication-get-assertion-hid-no-credentials.html in Copy Resources */, … … 1752 1755 577454D22359BB01008E1ED7 /* web-authentication-get-assertion-u2f-no-credentials.html in Copy Resources */, 1753 1756 57C624502346C21E00383FE7 /* web-authentication-get-assertion.html in Copy Resources */, 1757 52C8C1382706437C00BDF3B7 /* web-authentication-make-credential-hid-internal-uv.html in Copy Resources */, 1754 1758 578DA44823ECD09B00246010 /* web-authentication-make-credential-hid-pin-auth-blocked-error.html in Copy Resources */, 1755 1759 570D26F423C3CA6A00D5CF67 /* web-authentication-make-credential-hid-pin-get-key-agreement-error.html in Copy Resources */, … … 2240 2244 52B8CF9415868CF000281053 /* SetDocumentURI.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = SetDocumentURI.html; sourceTree = "<group>"; }; 2241 2245 52B8CF9515868CF000281053 /* SetDocumentURI.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SetDocumentURI.mm; sourceTree = "<group>"; }; 2246 52C8C1372706437C00BDF3B7 /* web-authentication-make-credential-hid-internal-uv.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = "web-authentication-make-credential-hid-internal-uv.html"; path = "Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html"; sourceTree = "<group>"; }; 2247 52C8C1392706439000BDF3B7 /* web-authentication-get-assertion-hid-internal-uv.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = "web-authentication-get-assertion-hid-internal-uv.html"; path = "Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html"; sourceTree = "<group>"; }; 2242 2248 52CB47401448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadAlternateHTMLStringWithNonDirectoryURL.cpp; sourceTree = "<group>"; }; 2243 2249 52D5D6BD21B9F1B20046ABA6 /* RenderingProgress.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RenderingProgress.mm; sourceTree = "<group>"; }; … … 3229 3235 isa = PBXGroup; 3230 3236 children = ( 3237 52C8C1392706439000BDF3B7 /* web-authentication-get-assertion-hid-internal-uv.html */, 3238 52C8C1372706437C00BDF3B7 /* web-authentication-make-credential-hid-internal-uv.html */, 3231 3239 49AEEF682407276F00C87E4C /* Info.plist */, 3232 3240 5C9D922622D7DD7B008E9266 /* Derived Sources */, -
branches/safari-612-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
r282152 r284824 1132 1132 } 1133 1133 1134 TEST(WebAuthenticationPanel, MakeCredentialInternalUV) 1135 { 1136 reset(); 1137 RetainPtr<NSURL> testURL = [[NSBundle mainBundle] URLForResource:@"web-authentication-make-credential-hid-internal-uv" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]; 1138 1139 auto *configuration = [WKWebViewConfiguration _test_configurationWithTestPlugInClassName:@"WebProcessPlugInWithInternals" configureJSCForTesting:YES]; 1140 [[configuration preferences] _setEnabled:YES forExperimentalFeature:webAuthenticationExperimentalFeature()]; 1141 [[configuration preferences] _setEnabled:NO forExperimentalFeature:webAuthenticationModernExperimentalFeature()]; 1142 1143 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 1144 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1145 [webView setUIDelegate:delegate.get()]; 1146 [webView focus]; 1147 1148 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 1149 [webView waitForMessage:@"Succeeded!"]; 1150 } 1151 1134 1152 TEST(WebAuthenticationPanel, MakeCredentialPin) 1135 1153 { … … 1207 1225 1208 1226 webAuthenticationPanelPin = "1234"; 1227 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 1228 [webView waitForMessage:@"Succeeded!"]; 1229 } 1230 1231 TEST(WebAuthenticationPanel, GetAssertionInternalUV) 1232 { 1233 reset(); 1234 RetainPtr<NSURL> testURL = [[NSBundle mainBundle] URLForResource:@"web-authentication-get-assertion-hid-internal-uv" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]; 1235 1236 auto *configuration = [WKWebViewConfiguration _test_configurationWithTestPlugInClassName:@"WebProcessPlugInWithInternals" configureJSCForTesting:YES]; 1237 [[configuration preferences] _setEnabled:YES forExperimentalFeature:webAuthenticationExperimentalFeature()]; 1238 [[configuration preferences] _setEnabled:NO forExperimentalFeature:webAuthenticationModernExperimentalFeature()]; 1239 1240 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 1241 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1242 [webView setUIDelegate:delegate.get()]; 1243 [webView focus]; 1244 1209 1245 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 1210 1246 [webView waitForMessage:@"Succeeded!"];
Note:
See TracChangeset
for help on using the changeset viewer.