diff --git a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFNavigationDelegateHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFNavigationDelegateHostApi.m index 7da8f3e5ba0..e582ad43f01 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFNavigationDelegateHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFNavigationDelegateHostApi.m @@ -184,7 +184,7 @@ - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation webView:webView URL:webView.URL.absoluteString completion:^(FlutterError *error) { - NSAssert(!error, @"%@", error); + }]; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFWebViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFWebViewHostApi.m index e80af1e3299..a17a86986c1 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFWebViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Classes/FWFWebViewHostApi.m @@ -12,6 +12,13 @@ - (NSString *)lookupKeyForAsset:(NSString *)asset { @end @implementation FWFWebView +#if TARGET_OS_OSX +- (void)scrollWheel:(NSEvent *)event { + [[self nextResponder] scrollWheel:event]; +} +#endif + + - (instancetype)initWithFrame:(CGRect)frame configuration:(nonnull WKWebViewConfiguration *)configuration binaryMessenger:(id)binaryMessenger @@ -27,6 +34,10 @@ - (instancetype)initWithFrame:(CGRect)frame self.scrollView.automaticallyAdjustsScrollIndicatorInsets = NO; } #endif + +#if TARGET_OS_OSX + [self setValue:[NSNumber numberWithBool:NO] forKey:@"drawsBackground"]; +#endif } return self; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart index f4d2b1b4d1a..d5dcf0fff30 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart @@ -1282,7 +1282,7 @@ class WKWebViewIOS extends WKWebView implements UIView { /// The macOS version of a WKWebView. class WKWebViewMacOS extends WKWebView { - /// Constructs a new iOS WKWebView; see [WKWebView] for details. + /// Constructs a new macOS WKWebView; see [WKWebView] for details. WKWebViewMacOS( super.configuration, { super.observeValue, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index b62c457fd90..66888c9f973 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -41,8 +41,7 @@ enum PlaybackMediaTypes { /// Object specifying creation parameters for a [WebKitWebViewController]. @immutable -class WebKitWebViewControllerCreationParams - extends PlatformWebViewControllerCreationParams { +class WebKitWebViewControllerCreationParams extends PlatformWebViewControllerCreationParams { /// Constructs a [WebKitWebViewControllerCreationParams]. WebKitWebViewControllerCreationParams({ @visibleForTesting this.webKitProxy = const WebKitProxy(), @@ -89,8 +88,7 @@ class WebKitWebViewControllerCreationParams // ignore: avoid_unused_constructor_parameters PlatformWebViewControllerCreationParams params, { @visibleForTesting WebKitProxy webKitProxy = const WebKitProxy(), - Set mediaTypesRequiringUserAction = - const { + Set mediaTypesRequiringUserAction = const { PlaybackMediaTypes.audio, PlaybackMediaTypes.video, }, @@ -101,8 +99,7 @@ class WebKitWebViewControllerCreationParams webKitProxy: webKitProxy, mediaTypesRequiringUserAction: mediaTypesRequiringUserAction, allowsInlineMediaPlayback: allowsInlineMediaPlayback, - limitsNavigationsToAppBoundDomains: - limitsNavigationsToAppBoundDomains, + limitsNavigationsToAppBoundDomains: limitsNavigationsToAppBoundDomains, instanceManager: instanceManager, ); @@ -142,8 +139,7 @@ class WebKitWebViewController extends PlatformWebViewController { WebKitWebViewController(PlatformWebViewControllerCreationParams params) : super.implementation(params is WebKitWebViewControllerCreationParams ? params - : WebKitWebViewControllerCreationParams - .fromPlatformWebViewControllerCreationParams(params)) { + : WebKitWebViewControllerCreationParams.fromPlatformWebViewControllerCreationParams(params)) { _webView.addObserver( _webView, keyPath: 'estimatedProgress', @@ -160,8 +156,7 @@ class WebKitWebViewController extends PlatformWebViewController { }, ); - final WeakReference weakThis = - WeakReference(this); + final WeakReference weakThis = WeakReference(this); _uiDelegate = _webKitParams.webKitProxy.createUIDelegate( instanceManager: _webKitParams._instanceManager, onCreateWebView: ( @@ -180,8 +175,7 @@ class WebKitWebViewController extends PlatformWebViewController { WKFrameInfo frame, WKMediaCaptureType type, ) async { - final void Function(PlatformWebViewPermissionRequest)? callback = - weakThis.target?._onPermissionRequestCallback; + final void Function(PlatformWebViewPermissionRequest)? callback = weakThis.target?._onPermissionRequestCallback; if (callback == null) { // The default response for iOS is to prompt. See @@ -191,26 +185,18 @@ class WebKitWebViewController extends PlatformWebViewController { late final Set types; switch (type) { case WKMediaCaptureType.camera: - types = { - WebViewPermissionResourceType.camera - }; + types = {WebViewPermissionResourceType.camera}; case WKMediaCaptureType.cameraAndMicrophone: - types = { - WebViewPermissionResourceType.camera, - WebViewPermissionResourceType.microphone - }; + types = {WebViewPermissionResourceType.camera, WebViewPermissionResourceType.microphone}; case WKMediaCaptureType.microphone: - types = { - WebViewPermissionResourceType.microphone - }; + types = {WebViewPermissionResourceType.microphone}; case WKMediaCaptureType.unknown: // The default response for iOS is to prompt. See // https://developer.apple.com/documentation/webkit/wkuidelegate/3763087-webview?language=objc return WKPermissionDecision.prompt; } - final Completer decisionCompleter = - Completer(); + final Completer decisionCompleter = Completer(); callback( WebKitWebViewPermissionRequest._( @@ -223,39 +209,27 @@ class WebKitWebViewController extends PlatformWebViewController { } }, runJavaScriptAlertDialog: (String message, WKFrameInfo frame) async { - final Future Function(JavaScriptAlertDialogRequest request)? - callback = weakThis.target?._onJavaScriptAlertDialog; + final Future Function(JavaScriptAlertDialogRequest request)? callback = weakThis.target?._onJavaScriptAlertDialog; if (callback != null) { - final JavaScriptAlertDialogRequest request = - JavaScriptAlertDialogRequest( - message: message, url: frame.request.url); + final JavaScriptAlertDialogRequest request = JavaScriptAlertDialogRequest(message: message, url: frame.request.url); await callback.call(request); return; } }, runJavaScriptConfirmDialog: (String message, WKFrameInfo frame) async { - final Future Function(JavaScriptConfirmDialogRequest request)? - callback = weakThis.target?._onJavaScriptConfirmDialog; + final Future Function(JavaScriptConfirmDialogRequest request)? callback = weakThis.target?._onJavaScriptConfirmDialog; if (callback != null) { - final JavaScriptConfirmDialogRequest request = - JavaScriptConfirmDialogRequest( - message: message, url: frame.request.url); + final JavaScriptConfirmDialogRequest request = JavaScriptConfirmDialogRequest(message: message, url: frame.request.url); final bool result = await callback.call(request); return result; } return false; }, - runJavaScriptTextInputDialog: - (String prompt, String defaultText, WKFrameInfo frame) async { - final Future Function(JavaScriptTextInputDialogRequest request)? - callback = weakThis.target?._onJavaScriptTextInputDialog; + runJavaScriptTextInputDialog: (String prompt, String defaultText, WKFrameInfo frame) async { + final Future Function(JavaScriptTextInputDialogRequest request)? callback = weakThis.target?._onJavaScriptTextInputDialog; if (callback != null) { - final JavaScriptTextInputDialogRequest request = - JavaScriptTextInputDialogRequest( - message: prompt, - url: frame.request.url, - defaultText: defaultText); + final JavaScriptTextInputDialogRequest request = JavaScriptTextInputDialogRequest(message: prompt, url: frame.request.url, defaultText: defaultText); final String result = await callback.call(request); return result; } @@ -285,16 +259,13 @@ class WebKitWebViewController extends PlatformWebViewController { switch (keyPath) { case 'estimatedProgress': - final ProgressCallback? progressCallback = - controller._currentNavigationDelegate?._onProgress; + final ProgressCallback? progressCallback = controller._currentNavigationDelegate?._onProgress; if (progressCallback != null) { - final double progress = - change[NSKeyValueChangeKey.newValue]! as double; + final double progress = change[NSKeyValueChangeKey.newValue]! as double; progressCallback((progress * 100).round()); } case 'URL': - final UrlChangeCallback? urlChangeCallback = - controller._currentNavigationDelegate?._onUrlChange; + final UrlChangeCallback? urlChangeCallback = controller._currentNavigationDelegate?._onUrlChange; if (urlChangeCallback != null) { final NSUrl? url = change[NSKeyValueChangeKey.newValue] as NSUrl?; urlChangeCallback(UrlChange(url: await url?.getAbsoluteString())); @@ -309,8 +280,7 @@ class WebKitWebViewController extends PlatformWebViewController { late final UIScrollViewDelegate? _uiScrollViewDelegate; - final Map _javaScriptChannelParams = - {}; + final Map _javaScriptChannelParams = {}; bool _zoomEnabled = true; WebKitNavigationDelegate? _currentNavigationDelegate; @@ -318,18 +288,13 @@ class WebKitWebViewController extends PlatformWebViewController { void Function(JavaScriptConsoleMessage)? _onConsoleMessageCallback; void Function(PlatformWebViewPermissionRequest)? _onPermissionRequestCallback; - Future Function(JavaScriptAlertDialogRequest request)? - _onJavaScriptAlertDialog; - Future Function(JavaScriptConfirmDialogRequest request)? - _onJavaScriptConfirmDialog; - Future Function(JavaScriptTextInputDialogRequest request)? - _onJavaScriptTextInputDialog; + Future Function(JavaScriptAlertDialogRequest request)? _onJavaScriptAlertDialog; + Future Function(JavaScriptConfirmDialogRequest request)? _onJavaScriptConfirmDialog; + Future Function(JavaScriptTextInputDialogRequest request)? _onJavaScriptTextInputDialog; - void Function(ScrollPositionChange scrollPositionChange)? - _onScrollPositionChangeCallback; + void Function(ScrollPositionChange scrollPositionChange)? _onScrollPositionChangeCallback; - WebKitWebViewControllerCreationParams get _webKitParams => - params as WebKitWebViewControllerCreationParams; + WebKitWebViewControllerCreationParams get _webKitParams => params as WebKitWebViewControllerCreationParams; /// Identifier used to retrieve the underlying native `WKWebView`. /// @@ -338,8 +303,7 @@ class WebKitWebViewController extends PlatformWebViewController { /// /// See Objective-C method /// `FLTWebViewFlutterPlugin:webViewForIdentifier:withPluginRegistry`. - int get webViewIdentifier => - _webKitParams._instanceManager.getIdentifier(_webView)!; + int get webViewIdentifier => _webKitParams._instanceManager.getIdentifier(_webView)!; @override Future loadFile(String absoluteFilePath) { @@ -387,17 +351,15 @@ class WebKitWebViewController extends PlatformWebViewController { ); } - final WebKitJavaScriptChannelParams webKitParams = - javaScriptChannelParams is WebKitJavaScriptChannelParams - ? javaScriptChannelParams - : WebKitJavaScriptChannelParams.fromJavaScriptChannelParams( - javaScriptChannelParams, - ); + final WebKitJavaScriptChannelParams webKitParams = javaScriptChannelParams is WebKitJavaScriptChannelParams + ? javaScriptChannelParams + : WebKitJavaScriptChannelParams.fromJavaScriptChannelParams( + javaScriptChannelParams, + ); _javaScriptChannelParams[webKitParams.name] = webKitParams; - final String wrapperSource = - 'window.${webKitParams.name} = webkit.messageHandlers.${webKitParams.name};'; + final String wrapperSource = 'window.${webKitParams.name} = webkit.messageHandlers.${webKitParams.name};'; final WKUserScript wrapperScript = WKUserScript( wrapperSource, WKUserScriptInjectionTime.atDocumentStart, @@ -467,8 +429,7 @@ class WebKitWebViewController extends PlatformWebViewController { // example, when running a void function. For ease of use, this specific // error is ignored when no return value is expected. final Object? details = exception.details; - if (details is! NSError || - details.code != WKErrorCode.javaScriptResultTypeIsUnsupported) { + if (details is! NSError || details.code != WKErrorCode.javaScriptResultTypeIsUnsupported) { rethrow; } } @@ -542,12 +503,11 @@ class WebKitWebViewController extends PlatformWebViewController { webView.setOpaque(false), webView.setBackgroundColor(Colors.transparent), // This method must be called last. - webView.scrollView.setBackgroundColor(color), + webView.scrollView.setBackgroundColor(Colors.transparent), ]); } else { // TODO(stuartmorgan): Implement background color support. - throw UnimplementedError( - 'Background color is not yet supported on macOS.'); + throw UnimplementedError('Background color is not yet supported on macOS.'); } } @@ -598,8 +558,7 @@ class WebKitWebViewController extends PlatformWebViewController { WKUserScriptInjectionTime.atDocumentEnd, isMainFrameOnly: true, ); - return _webView.configuration.userContentController - .addUserScript(userScript); + return _webView.configuration.userContentController.addUserScript(userScript); } /// Sets a callback that notifies the host application of any log messages @@ -624,8 +583,7 @@ class WebKitWebViewController extends PlatformWebViewController { return; } - final Map consoleLog = - jsonDecode(message.message) as Map; + final Map consoleLog = jsonDecode(message.message) as Map; JavaScriptLogLevel level; switch (consoleLog['level']) { @@ -724,8 +682,7 @@ window.addEventListener("error", function(e) { isMainFrameOnly: true, ); - return _webView.configuration.userContentController - .addUserScript(overrideScript); + return _webView.configuration.userContentController.addUserScript(overrideScript); } // WKWebView does not support removing a single user script, so all user @@ -747,9 +704,7 @@ window.addEventListener("error", function(e) { _javaScriptChannelParams.remove(removedJavaScriptChannel); await Future.wait(>[ - for (final JavaScriptChannelParams params - in _javaScriptChannelParams.values) - addJavaScriptChannel(params), + for (final JavaScriptChannelParams params in _javaScriptChannelParams.values) addJavaScriptChannel(params), // Zoom is disabled with a WKUserScript, so this adds it back if it was // removed above. if (!_zoomEnabled) _disableZoom(), @@ -767,18 +722,14 @@ window.addEventListener("error", function(e) { } @override - Future setOnScrollPositionChange( - void Function(ScrollPositionChange scrollPositionChange)? - onScrollPositionChange) async { + Future setOnScrollPositionChange(void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange) async { final WKWebView webView = _webView; if (webView is WKWebViewIOS) { _onScrollPositionChangeCallback = onScrollPositionChange; if (onScrollPositionChange != null) { - final WeakReference weakThis = - WeakReference(this); - _uiScrollViewDelegate = - _webKitParams.webKitProxy.createUIScrollViewDelegate( + final WeakReference weakThis = WeakReference(this); + _uiScrollViewDelegate = _webKitParams.webKitProxy.createUIScrollViewDelegate( scrollViewDidScroll: (UIScrollView uiScrollView, double x, double y) { weakThis.target?._onScrollPositionChangeCallback?.call( ScrollPositionChange(x, y), @@ -792,8 +743,7 @@ window.addEventListener("error", function(e) { } } else { // TODO(stuartmorgan): Investigate doing this via JS instead. - throw UnimplementedError( - 'setOnScrollPositionChange is not implemented on macOS'); + throw UnimplementedError('setOnScrollPositionChange is not implemented on macOS'); } } @@ -819,28 +769,21 @@ window.addEventListener("error", function(e) { return customUserAgent; } - return (await _webView.evaluateJavaScript('navigator.userAgent;') - as String?)!; + return (await _webView.evaluateJavaScript('navigator.userAgent;') as String?)!; } @override - Future setOnJavaScriptAlertDialog( - Future Function(JavaScriptAlertDialogRequest request) - onJavaScriptAlertDialog) async { + Future setOnJavaScriptAlertDialog(Future Function(JavaScriptAlertDialogRequest request) onJavaScriptAlertDialog) async { _onJavaScriptAlertDialog = onJavaScriptAlertDialog; } @override - Future setOnJavaScriptConfirmDialog( - Future Function(JavaScriptConfirmDialogRequest request) - onJavaScriptConfirmDialog) async { + Future setOnJavaScriptConfirmDialog(Future Function(JavaScriptConfirmDialogRequest request) onJavaScriptConfirmDialog) async { _onJavaScriptConfirmDialog = onJavaScriptConfirmDialog; } @override - Future setOnJavaScriptTextInputDialog( - Future Function(JavaScriptTextInputDialogRequest request) - onJavaScriptTextInputDialog) async { + Future setOnJavaScriptTextInputDialog(Future Function(JavaScriptTextInputDialogRequest request) onJavaScriptTextInputDialog) async { _onJavaScriptTextInputDialog = onJavaScriptTextInputDialog; } } @@ -890,8 +833,7 @@ class WebKitJavaScriptChannelParams extends JavaScriptChannelParams { /// Object specifying creation parameters for a [WebKitWebViewWidget]. @immutable -class WebKitWebViewWidgetCreationParams - extends PlatformWebViewWidgetCreationParams { +class WebKitWebViewWidgetCreationParams extends PlatformWebViewWidgetCreationParams { /// Constructs a [WebKitWebViewWidgetCreationParams]. WebKitWebViewWidgetCreationParams({ super.key, @@ -939,22 +881,16 @@ class WebKitWebViewWidget extends PlatformWebViewWidget { /// Constructs a [WebKitWebViewWidget]. WebKitWebViewWidget(PlatformWebViewWidgetCreationParams params) : super.implementation( - params is WebKitWebViewWidgetCreationParams - ? params - : WebKitWebViewWidgetCreationParams - .fromPlatformWebViewWidgetCreationParams(params), + params is WebKitWebViewWidgetCreationParams ? params : WebKitWebViewWidgetCreationParams.fromPlatformWebViewWidgetCreationParams(params), ); - WebKitWebViewWidgetCreationParams get _webKitParams => - params as WebKitWebViewWidgetCreationParams; + WebKitWebViewWidgetCreationParams get _webKitParams => params as WebKitWebViewWidgetCreationParams; @override Widget build(BuildContext context) { // Setting a default key using `params` ensures the `UIKitView` recreates // the PlatformView when changes are made. - final Key key = _webKitParams.key ?? - ValueKey( - params as WebKitWebViewWidgetCreationParams); + final Key key = _webKitParams.key ?? ValueKey(params as WebKitWebViewWidgetCreationParams); if (Platform.isMacOS) { return AppKitView( key: key, @@ -962,8 +898,7 @@ class WebKitWebViewWidget extends PlatformWebViewWidget { onPlatformViewCreated: (_) {}, layoutDirection: params.layoutDirection, gestureRecognizers: params.gestureRecognizers, - creationParams: _webKitParams._instanceManager.getIdentifier( - (params.controller as WebKitWebViewController)._webView), + creationParams: _webKitParams._instanceManager.getIdentifier((params.controller as WebKitWebViewController)._webView), creationParamsCodec: const StandardMessageCodec(), ); } else { @@ -973,8 +908,7 @@ class WebKitWebViewWidget extends PlatformWebViewWidget { onPlatformViewCreated: (_) {}, layoutDirection: params.layoutDirection, gestureRecognizers: params.gestureRecognizers, - creationParams: _webKitParams._instanceManager.getIdentifier( - (params.controller as WebKitWebViewController)._webView), + creationParams: _webKitParams._instanceManager.getIdentifier((params.controller as WebKitWebViewController)._webView), creationParamsCodec: const StandardMessageCodec(), ); } @@ -1019,8 +953,7 @@ class WebKitWebResourceError extends WebResourceError { /// Object specifying creation parameters for a [WebKitNavigationDelegate]. @immutable -class WebKitNavigationDelegateCreationParams - extends PlatformNavigationDelegateCreationParams { +class WebKitNavigationDelegateCreationParams extends PlatformNavigationDelegateCreationParams { /// Constructs a [WebKitNavigationDelegateCreationParams]. const WebKitNavigationDelegateCreationParams({ @visibleForTesting this.webKitProxy = const WebKitProxy(), @@ -1047,14 +980,9 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { WebKitNavigationDelegate(PlatformNavigationDelegateCreationParams params) : super.implementation(params is WebKitNavigationDelegateCreationParams ? params - : WebKitNavigationDelegateCreationParams - .fromPlatformNavigationDelegateCreationParams(params)) { - final WeakReference weakThis = - WeakReference(this); - _navigationDelegate = - (this.params as WebKitNavigationDelegateCreationParams) - .webKitProxy - .createNavigationDelegate( + : WebKitNavigationDelegateCreationParams.fromPlatformNavigationDelegateCreationParams(params)) { + final WeakReference weakThis = WeakReference(this); + _navigationDelegate = (this.params as WebKitNavigationDelegateCreationParams).webKitProxy.createNavigationDelegate( didFinishNavigation: (WKWebView webView, String? url) { if (weakThis.target?._onPageFinished != null) { weakThis.target!._onPageFinished!(url ?? ''); @@ -1065,10 +993,8 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { weakThis.target!._onPageStarted!(url ?? ''); } }, - decidePolicyForNavigationResponse: - (WKWebView webView, WKNavigationResponse response) async { - if (weakThis.target?._onHttpError != null && - response.response.statusCode >= 400) { + decidePolicyForNavigationResponse: (WKWebView webView, WKNavigationResponse response) async { + if (weakThis.target?._onHttpError != null && response.response.statusCode >= 400) { weakThis.target!._onHttpError!( HttpResponseError( response: WebResourceResponse( @@ -1086,8 +1012,7 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { WKNavigationAction action, ) async { if (weakThis.target?._onNavigationRequest != null) { - final NavigationDecision decision = - await weakThis.target!._onNavigationRequest!(NavigationRequest( + final NavigationDecision decision = await weakThis.target!._onNavigationRequest!(NavigationRequest( url: action.request.url, isMainFrame: action.targetFrame.isMainFrame, )); @@ -1106,8 +1031,7 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { WebKitWebResourceError._( error, isForMainFrame: true, - url: error.userInfo[NSErrorUserInfoKey - .NSURLErrorFailingURLStringError] as String?, + url: error.userInfo[NSErrorUserInfoKey.NSURLErrorFailingURLStringError] as String?, ), ); } @@ -1118,8 +1042,7 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { WebKitWebResourceError._( error, isForMainFrame: true, - url: error.userInfo[NSErrorUserInfoKey - .NSURLErrorFailingURLStringError] as String?, + url: error.userInfo[NSErrorUserInfoKey.NSURLErrorFailingURLStringError] as String?, ), ); } @@ -1147,10 +1070,8 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { NSUrlCredential? credential, ) completionHandler, ) { - if (challenge.protectionSpace.authenticationMethod == - NSUrlAuthenticationMethod.httpBasic) { - final void Function(HttpAuthRequest)? callback = - weakThis.target?._onHttpAuthRequest; + if (challenge.protectionSpace.authenticationMethod == NSUrlAuthenticationMethod.httpBasic) { + final void Function(HttpAuthRequest)? callback = weakThis.target?._onHttpAuthRequest; final String? host = challenge.protectionSpace.host; final String? realm = challenge.protectionSpace.realm; @@ -1169,8 +1090,7 @@ class WebKitNavigationDelegate extends PlatformNavigationDelegate { }, onCancel: () { completionHandler( - NSUrlSessionAuthChallengeDisposition - .cancelAuthenticationChallenge, + NSUrlSessionAuthChallengeDisposition.cancelAuthenticationChallenge, null, ); },