diff --git a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationDelegateProxyAPITests.swift b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationDelegateProxyAPITests.swift index 07f65e0751c..11df2e04329 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationDelegateProxyAPITests.swift +++ b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationDelegateProxyAPITests.swift @@ -62,7 +62,7 @@ class NavigationDelegateProxyAPITests: XCTestCase { let registrar = TestProxyApiRegistrar() let instance = NavigationDelegateImpl(api: api, registrar: registrar) let webView = WKWebView(frame: .zero) - let navigationResponse = TestNavigationResponse() + let navigationResponse = TestNavigationResponse.instance var result: WKNavigationResponsePolicy? let callbackExpectation = expectation(description: "Wait for callback.") diff --git a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationResponseProxyAPITests.swift b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationResponseProxyAPITests.swift index df861beccda..1d5bce66ca9 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationResponseProxyAPITests.swift +++ b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/NavigationResponseProxyAPITests.swift @@ -12,7 +12,7 @@ class NavigationResponseProxyAPITests: XCTestCase { let registrar = TestProxyApiRegistrar() let api = registrar.apiDelegate.pigeonApiWKNavigationResponse(registrar) - let instance = WKNavigationResponse() + let instance = TestNavigationResponse.instance let value = try? api.pigeonDelegate.response(pigeonApi: api, pigeonInstance: instance) XCTAssertEqual(value, instance.response) @@ -22,7 +22,7 @@ class NavigationResponseProxyAPITests: XCTestCase { let registrar = TestProxyApiRegistrar() let api = registrar.apiDelegate.pigeonApiWKNavigationResponse(registrar) - let instance = TestNavigationResponse() + let instance = TestNavigationResponse.instance let value = try? api.pigeonDelegate.isForMainFrame(pigeonApi: api, pigeonInstance: instance) XCTAssertEqual(value, instance.isForMainFrame) @@ -30,8 +30,16 @@ class NavigationResponseProxyAPITests: XCTestCase { } class TestNavigationResponse: WKNavigationResponse { + // Provides a static instance to prevent a crash when a WKNavigationResponse is deallocated + // See https://github.com/flutter/flutter/issues/173326 + static let instance = TestNavigationResponse() + let testResponse = URLResponse() + private override init() { + super.init() + } + override var isForMainFrame: Bool { return true }