Skip to content

Commit ab404b5

Browse files
[webview_flutter] Fix macOS 14+ test hangs (#7953)
Starting in macOS 14, webview_flutter integration tests hang due to being unable to connect to the test server. Based on local experimentation, in appears that we are not able to connect when binding to the "any" address, which gives us an IP address of 0.0.0.0, but using the loopback address (which is all we should need; the point is to accept local connections from the test itself) does work. Since our test fleet is a mixed macOS 13/14 fleet, this should fix flaky timeouts of macOS platform tests in CI, in addition to fixing local runs. Fixes flutter/flutter#157449
1 parent 028027e commit ab404b5

4 files changed

Lines changed: 8 additions & 4 deletions

File tree

packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
2222
Future<void> main() async {
2323
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
2424

25-
final HttpServer server = await HttpServer.bind(InternetAddress.anyIPv4, 0);
25+
final HttpServer server =
26+
await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
2627
unawaited(server.forEach((HttpRequest request) {
2728
if (request.uri.path == '/hello.txt') {
2829
request.response.writeln('Hello, world.');

packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test_legacy.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import 'package:webview_flutter/src/webview_flutter_legacy.dart';
2020
Future<void> main() async {
2121
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
2222

23-
final HttpServer server = await HttpServer.bind(InternetAddress.anyIPv4, 0);
23+
final HttpServer server =
24+
await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
2425
unawaited(server.forEach((HttpRequest request) {
2526
if (request.uri.path == '/hello.txt') {
2627
request.response.writeln('Hello, world.');

packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/legacy/webview_flutter_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ const bool skipOnIosFor154676 = true;
2929
Future<void> main() async {
3030
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
3131

32-
final HttpServer server = await HttpServer.bind(InternetAddress.anyIPv4, 0);
32+
final HttpServer server =
33+
await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
3334
unawaited(server.forEach((HttpRequest request) {
3435
if (request.uri.path == '/hello.txt') {
3536
request.response.writeln('Hello, world.');

packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
2424
Future<void> main() async {
2525
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
2626

27-
final HttpServer server = await HttpServer.bind(InternetAddress.anyIPv4, 0);
27+
final HttpServer server =
28+
await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
2829
unawaited(server.forEach((HttpRequest request) {
2930
if (request.uri.path == '/hello.txt') {
3031
request.response.writeln('Hello, world.');

0 commit comments

Comments
 (0)