From 9aff466e906c994ca4b0443d2e38e02f4ec86fda Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:43 +0000 Subject: [PATCH 01/29] 5d00bf8e6 Update Engine CI to use NDK r28c (flutter/flutter#175870) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 36367c74fb1..56274af364f 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -96fe3b3df509d451116124f0abbd288e36a03805 +5d00bf8e6bf98f516c2c13dd2ccf57a845aa4084 From 402ba77122ae132de6942648c7c48c6be79fe1f9 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:43 +0000 Subject: [PATCH 02/29] 2a109b46c Migrate tests and documentation to set java version to 17 (flutter/flutter#176204) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 56274af364f..158e13c68e4 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -5d00bf8e6bf98f516c2c13dd2ccf57a845aa4084 +2a109b46cfb42b739a39f4bf6fda518da5bf0a27 From 3de0242e2ab773e43e8fe95b9c15f2e61d8805d8 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 03/29] 7382e9361 Add scene plugin lifecycle events (flutter/flutter#175866) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 158e13c68e4..868ad946199 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -2a109b46cfb42b739a39f4bf6fda518da5bf0a27 +7382e9361f79a2575fbf3d4c3fd5440f74130452 From 518a3dad173a2e6337e32a78c3f8470ae630d219 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 04/29] bb8dc31b5 fix typo in `Crashes.md` (flutter/flutter#175959) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 868ad946199..99db2df1846 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -7382e9361f79a2575fbf3d4c3fd5440f74130452 +bb8dc31b5b5cb49371dfb3d9ad2f8cd31c96c51e From 3f100af0563d12b1175dcef6f27371d5a25c03a4 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 05/29] 9d00255da Update changelog as on 3.35 branch (flutter/flutter#176216) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 99db2df1846..418a19232ca 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -bb8dc31b5b5cb49371dfb3d9ad2f8cd31c96c51e +9d00255daaffa6381d7e0c479bd523a6e2405923 From 50c2084ef12364b4c6f02beb95efa84643b202da Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 06/29] 10359a0a3 User Invoke-Expression instead of call operator for nested Powershell scripts invocations (on Windows) (flutter/flutter#175941) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 418a19232ca..0e692e45489 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -9d00255daaffa6381d7e0c479bd523a6e2405923 +10359a0a3323bc998585a0c9dec532ee71cae811 From 752afde9a69cdb0431f67b5e88ea47e61ffdbce3 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 07/29] eb35b066a Migrate java 11 usage to java 17 usage for templates (flutter/flutter#176203) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 0e692e45489..21f7851f86d 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -10359a0a3323bc998585a0c9dec532ee71cae811 +eb35b066a5d909243927f84270154ce987d8b12a From 290130b8879cee66d76c7264d0b235cca642e93b Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 08/29] 345fcbe94 Clean up typos in `PlatformViewsControllerTest.java` (flutter/flutter#175725) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 21f7851f86d..ba8a7e8f985 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -eb35b066a5d909243927f84270154ce987d8b12a +345fcbe94b3d7307f204da57b20c594f5c692090 From fd2302c56c6c14a239c739dfd736e018fec72f9a Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:44 +0000 Subject: [PATCH 09/29] 01bdbebad Roll Fuchsia Linux SDK from 8zjcJic_DtvB2Bo2x... to rcOl0yxJb4znJ903Y... (flutter/flutter#176215) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index ba8a7e8f985..a01d03e11c4 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -345fcbe94b3d7307f204da57b20c594f5c692090 +01bdbebad9f212159b53ea8e413a607fd3b9034b From ec257e6b9f0059aa287c590d354bd1fa00d9b6c0 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 10/29] 11ab50902 Add tests for `Project` getters (flutter/flutter#175994) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index a01d03e11c4..75648a45672 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -01bdbebad9f212159b53ea8e413a607fd3b9034b +11ab509026ca333bbfc08e439c5c0ff057425015 From 921db1ee176f0654afab79ecbbebf95366bcc3a2 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 11/29] c692e6834 fix `assertEquals` arguments are in wrong order in `FlutterJNITest.java` (flutter/flutter#175728) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 75648a45672..8ea01ae0294 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -11ab509026ca333bbfc08e439c5c0ff057425015 +c692e6834dd5c4e6f0cc0b200f5a54c055daa0e6 From 94db394bbd7d0eb0c21709938f8c4453229f1594 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 12/29] c088bcd17 BUILD.gn: Support LTO build on Linux (flutter/flutter#176191) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 8ea01ae0294..5bd625bba41 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -c692e6834dd5c4e6f0cc0b200f5a54c055daa0e6 +c088bcd17b1e5a3ccf816b0d44ed3748c1bea6c6 From be79f67d4d2d779eb5e0d37a743d2cc0771765ee Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 13/29] 59d8010db [Android] Use headingLevel for heading accessibility property (flutter/flutter#175416) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 5bd625bba41..a79e7284d59 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -c088bcd17b1e5a3ccf816b0d44ed3748c1bea6c6 +59d8010db5139da19b265c3f7cf29f90a86b8e5e From aba8a1b13aff14dc76012833419613639e3fe595 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 14/29] 9e957f158 Rename DisplayMonitor to DisplayManager on Win32 (flutter/flutter#175619) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index a79e7284d59..0c6cb8a1608 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -59d8010db5139da19b265c3f7cf29f90a86b8e5e +9e957f158dfdf042674506b1ecb8f48f906534db From 214a3b8c73f0d03d9112b524185b38677a2809a7 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 15/29] fc4c9b93c Roll GN to 81b24e01 (flutter/flutter#176119) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 0c6cb8a1608..67d17687a55 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -9e957f158dfdf042674506b1ecb8f48f906534db +fc4c9b93ce26e4db091a4e0403361bffd38e1258 From d8a479edb54a7b6b3e985f9244ee116e1aff4fb9 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 16/29] 0d28fd88f Roll Fuchsia Test Scripts from APSBP-sS-3FX69Ihf... to JUeFbA8y0E-_pj-bg... (flutter/flutter#176243) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 67d17687a55..332bfc49f9f 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -fc4c9b93ce26e4db091a4e0403361bffd38e1258 +0d28fd88f2b85aef033a4bdb10122bbcff6adffd From 5c8c82a75ddc02599be15e43a64d3e98a20bde56 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:45 +0000 Subject: [PATCH 17/29] 24942307d Warn if embedder API calls don't return success (flutter/flutter#176184) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 332bfc49f9f..c80901e8309 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -0d28fd88f2b85aef033a4bdb10122bbcff6adffd +24942307dc22c6a3788bc9d2bacb40a0b4541554 From 492cb6a7f34ba10291bd411a37bef1cc4e20643f Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 18/29] fbe562711 Update the test package for the web engine unit test bits. (flutter/flutter#176241) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index c80901e8309..536372b3837 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -24942307dc22c6a3788bc9d2bacb40a0b4541554 +fbe5627110e54eb99b3d6b8fbb81f101e827cb63 From a36f0d73ae37104e3d335b1d5bebe81b474c5916 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 19/29] =?UTF-8?q?8e47e20b0=20Enhance=20input=20decorator?= =?UTF-8?q?=20padding=20logic=20for=20character=20counter=20in=20text=20f?= =?UTF-8?q?=E2=80=A6=20(flutter/flutter#175706)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 536372b3837..8a289a5096b 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -fbe5627110e54eb99b3d6b8fbb81f101e827cb63 +8e47e20b0df46ebaad3001e2569d3e13a37a0f64 From f63a753174ce209e172f23c525a1f87354ef3261 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 20/29] 4084680ed Migrate to `WidgetStateBorderSide` (flutter/flutter#176164) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 8a289a5096b..dbe4d6254d5 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -8e47e20b0df46ebaad3001e2569d3e13a37a0f64 +4084680ede095527382c738ba0c052866a9040f6 From 8559340492fa3efe2923a7520a69b59dbda6b190 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 21/29] 3fb9ae79f [web] Bump Firefox to 143.0 (flutter/flutter#176110) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index dbe4d6254d5..b2926ff7e61 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -4084680ede095527382c738ba0c052866a9040f6 +3fb9ae79f555d3883dd2cc7e14386b77c2658da5 From 938f8724826298a2b9a42b7634a8e7f0e215ad46 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 22/29] f9e14b574 Roll Packages from 34eec7850cce to 287739d0acce (9 revisions) (flutter/flutter#176284) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index b2926ff7e61..97c579b046a 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -3fb9ae79f555d3883dd2cc7e14386b77c2658da5 +f9e14b57487e43721bb36c57c9220b31496f6982 From 61e946a759e09f0598c55d69eb008d02728d7522 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 23/29] 999fd04e1 Reduce timeout for Linux web_tool_tests back to 60 (flutter/flutter#176286) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 97c579b046a..89f6e982698 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -f9e14b57487e43721bb36c57c9220b31496f6982 +999fd04e16246c7694b9caf61e242ba46e6759ee From 850614898bb9698c8b495587ff830f29ce823a71 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 24/29] 0eb891db1 Set minimum supported java version to 17 (flutter/flutter#176226) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 89f6e982698..d785e1dd07f 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -999fd04e16246c7694b9caf61e242ba46e6759ee +0eb891db107b3168804a36d5f02e6c12892f262e From 52651b651f8e3280d0c10dcc5d85050868ec897d Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:46 +0000 Subject: [PATCH 25/29] bfde3e8f3 Update flutter test to use SemanticsFlags (flutter/flutter#175987) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index d785e1dd07f..1c133375447 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -0eb891db107b3168804a36d5f02e6c12892f262e +bfde3e8f3139563b4a298a265646bee1743fbdcb From 55c87b56f7e04817f2baa88eb59f1c526df8cc68 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 30 Sep 2025 20:32:47 +0000 Subject: [PATCH 26/29] c9608e28d Implement framework interface for the dialog window archetype (flutter/flutter#176202) --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 1c133375447..6cbc6f1e0db 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -bfde3e8f3139563b4a298a265646bee1743fbdcb +c9608e28d01a81bfbb86aec4bca4a149bf581467 From 1e922e8dc7c8ee4d20b17babf456ebb14b3cc7be Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 1 Oct 2025 09:33:49 -0400 Subject: [PATCH 27/29] Update IAP stub --- .../example/shared/RunnerTests/Stubs.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/in_app_purchase/in_app_purchase_storekit/example/shared/RunnerTests/Stubs.m b/packages/in_app_purchase/in_app_purchase_storekit/example/shared/RunnerTests/Stubs.m index 52381732748..51a31d9fc28 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/example/shared/RunnerTests/Stubs.m +++ b/packages/in_app_purchase/in_app_purchase_storekit/example/shared/RunnerTests/Stubs.m @@ -607,6 +607,11 @@ - (void)registerViewFactory:(nonnull NSObject *)fact } } +// TODO(stuartmorgan): Make this NSObject once +// FlutterSceneLifeCycleDelegate has reached stable. +- (void)addSceneDelegate:(nonnull NSObject *)delegate { +} + @end // This FlutterBinaryMessenger is a protocol, so to make a stub it has to be implemented. From e4e10e3982f44c0145ab0ace1f2c5c624e9f4f2f Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 1 Oct 2025 10:47:39 -0400 Subject: [PATCH 28/29] Add a temporary Obj-C workaround for webview_flutter --- ...ViewFlutterWKWebViewExternalAPITests.swift | 95 ++++++++++--------- .../ios/Runner.xcodeproj/project.pbxproj | 6 ++ .../RunnerTests/RunnerTests-Bridging-Header.h | 2 + .../ios/RunnerTests/TemporaryObjCStub.h | 23 +++++ .../ios/RunnerTests/TemporaryObjCStub.m | 65 +++++++++++++ 5 files changed, 148 insertions(+), 43 deletions(-) create mode 100644 packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h create mode 100644 packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m diff --git a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/FWFWebViewFlutterWKWebViewExternalAPITests.swift b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/FWFWebViewFlutterWKWebViewExternalAPITests.swift index 3665d22a353..0ce4dc0c8c2 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/FWFWebViewFlutterWKWebViewExternalAPITests.swift +++ b/packages/webview_flutter/webview_flutter_wkwebview/darwin/Tests/FWFWebViewFlutterWKWebViewExternalAPITests.swift @@ -27,7 +27,7 @@ class FWFWebViewFlutterWKWebViewExternalAPITests: XCTestCase { WebViewFlutterPlugin.register(with: registrar) - let plugin = registry.registrar.plugin + let plugin = registry.registrar.plugin as! WebViewFlutterPlugin? let webView = WKWebView(frame: .zero) let webViewIdentifier = 0 @@ -79,62 +79,71 @@ class TestFlutterTextureRegistry: NSObject, FlutterTextureRegistry { } } -class TestFlutterPluginRegistrar: NSObject, FlutterPluginRegistrar { - var plugin: WebViewFlutterPlugin? = nil +// TODO(stuartmorgan): This is temporarily disabled on iOS in favor of Stubs.h/m, +// because FlutterSceneLifeCycleDelegate isn't available on stable, and Swift doesn't +// allow using looser types (like Any) for protocol conformance. Once that +// protocol reaches stable, this #if should be removed, as should Stubs.*. +#if os(macOS) + class TestFlutterPluginRegistrar: NSObject, FlutterPluginRegistrar { + var plugin: WebViewFlutterPlugin? = nil - #if os(iOS) - var viewController: UIViewController? + #if os(iOS) + var viewController: UIViewController? - func messenger() -> FlutterBinaryMessenger { - return TestBinaryMessenger() - } + func messenger() -> FlutterBinaryMessenger { + return TestBinaryMessenger() + } - func textures() -> FlutterTextureRegistry { - return TestFlutterTextureRegistry() - } + func textures() -> FlutterTextureRegistry { + return TestFlutterTextureRegistry() + } - func addApplicationDelegate(_ delegate: FlutterPlugin) { + func addApplicationDelegate(_ delegate: FlutterPlugin) { - } + } - func register( - _ factory: FlutterPlatformViewFactory, withId factoryId: String, - gestureRecognizersBlockingPolicy: FlutterPlatformViewGestureRecognizersBlockingPolicy - ) { - } - #elseif os(macOS) - var view: NSView? - var viewController: NSViewController? + func register( + _ factory: FlutterPlatformViewFactory, withId factoryId: String, + gestureRecognizersBlockingPolicy: FlutterPlatformViewGestureRecognizersBlockingPolicy + ) { + } - var messenger: FlutterBinaryMessenger { - return TestBinaryMessenger() - } + func addSceneDelegate(_ delegate: any FlutterSceneLifeCycleDelegate) { + } + #elseif os(macOS) + var view: NSView? + var viewController: NSViewController? - var textures: FlutterTextureRegistry { - return TestFlutterTextureRegistry() - } + var messenger: FlutterBinaryMessenger { + return TestBinaryMessenger() + } - func addApplicationDelegate(_ delegate: FlutterAppLifecycleDelegate) { + var textures: FlutterTextureRegistry { + return TestFlutterTextureRegistry() + } - } - #endif + func addApplicationDelegate(_ delegate: FlutterAppLifecycleDelegate) { - func register(_ factory: FlutterPlatformViewFactory, withId factoryId: String) { - } + } + #endif - func publish(_ value: NSObject) { - plugin = (value as! WebViewFlutterPlugin) - } + func register(_ factory: FlutterPlatformViewFactory, withId factoryId: String) { + } - func addMethodCallDelegate(_ delegate: FlutterPlugin, channel: FlutterMethodChannel) { + func publish(_ value: NSObject) { + plugin = (value as! WebViewFlutterPlugin) + } - } + func addMethodCallDelegate(_ delegate: FlutterPlugin, channel: FlutterMethodChannel) { - func lookupKey(forAsset asset: String) -> String { - return "" - } + } + + func lookupKey(forAsset asset: String) -> String { + return "" + } - func lookupKey(forAsset asset: String, fromPackage package: String) -> String { - return "" + func lookupKey(forAsset asset: String, fromPackage package: String) -> String { + return "" + } } -} +#endif diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj index 4274f491599..4755950f7c8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 33C8DADB2E8D711500A9B7CA /* TemporaryObjCStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 33C8DADA2E8D711500A9B7CA /* TemporaryObjCStub.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 8F0EDFD32E1F4967001938E6 /* ProxyAPIRegistrarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F0EDFD22E1F4967001938E6 /* ProxyAPIRegistrarTests.swift */; }; @@ -90,6 +91,8 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 14B8C759112CB6E8AA62F003 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 185E08CFEB8AE9D939566DE6 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33C8DAD92E8D711500A9B7CA /* TemporaryObjCStub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TemporaryObjCStub.h; sourceTree = ""; }; + 33C8DADA2E8D711500A9B7CA /* TemporaryObjCStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TemporaryObjCStub.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 4AA20286555659E34ACB3BE5 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 56443D345A163E3A65320207 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; @@ -180,6 +183,8 @@ 68BDCAEA23C3F7CB00D9C032 /* RunnerTests */ = { isa = PBXGroup; children = ( + 33C8DAD92E8D711500A9B7CA /* TemporaryObjCStub.h */, + 33C8DADA2E8D711500A9B7CA /* TemporaryObjCStub.m */, 8F0EDFD22E1F4967001938E6 /* ProxyAPIRegistrarTests.swift */, 8FEC64812DA2C6DC00C48569 /* GetTrustResultResponseProxyAPITests.swift */, 8FEC64822DA2C6DC00C48569 /* SecCertificateProxyAPITests.swift */, @@ -569,6 +574,7 @@ 8F1488EC2D2DE27000191744 /* FrameInfoProxyAPITests.swift in Sources */, 8F1488ED2D2DE27000191744 /* ErrorProxyAPITests.swift in Sources */, 8F1488EE2D2DE27000191744 /* NSObjectProxyAPITests.swift in Sources */, + 33C8DADB2E8D711500A9B7CA /* TemporaryObjCStub.m in Sources */, 8F1488EF2D2DE27000191744 /* NavigationResponseProxyAPITests.swift in Sources */, 8FEC64852DA2C6DC00C48569 /* GetTrustResultResponseProxyAPITests.swift in Sources */, 8FEC64862DA2C6DC00C48569 /* WebpagePreferencesProxyAPITests.swift in Sources */, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/RunnerTests-Bridging-Header.h b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/RunnerTests-Bridging-Header.h index b8fa2a34b67..c14bff0c31d 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/RunnerTests-Bridging-Header.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/RunnerTests-Bridging-Header.h @@ -1,3 +1,5 @@ // Copyright 2013 The Flutter Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + +#import "TemporaryObjCStub.h" diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h new file mode 100644 index 00000000000..0d0b9817b09 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h @@ -0,0 +1,23 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// TODO(stuartmorgan): This file is temporarily iOS workaround for changes in +// FlutterPluginRegistrar. See the TestFlutterPluginRegistrar TODO in +// FWFWebViewFlutterWKWebViewExternalAPITests.swift. +#if TARGET_OS_IOS + +@import Foundation; +@import Flutter; + +NS_ASSUME_NONNULL_BEGIN + +@interface TestFlutterPluginRegistrar : NSObject + +@property(nonatomic, nullable) NSObject *plugin; +@property(nonatomic, weak, nullable) UIViewController *viewController; + +@end +#endif + +NS_ASSUME_NONNULL_END diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m new file mode 100644 index 00000000000..bfbc9f981bf --- /dev/null +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m @@ -0,0 +1,65 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// TODO(stuartmorgan): This file is temporarily iOS workaround for changes in +// FlutterPluginRegistrar. See the TestFlutterPluginRegistrar TODO in +// FWFWebViewFlutterWKWebViewExternalAPITests.swift. +#if TARGET_OS_IOS + +#import "TemporaryObjCStub.h" + +@import Foundation; +@import Flutter; + +#import "RunnerTests-Swift.h" + +// This FlutterPluginRegistrar is a protocol, so to make a stub it has to be implemented. +@implementation TestFlutterPluginRegistrar + +- (void)addApplicationDelegate:(nonnull NSObject *)delegate { +} + +- (void)addMethodCallDelegate:(nonnull NSObject *)delegate + channel:(nonnull FlutterMethodChannel *)channel { +} + +- (nonnull NSString *)lookupKeyForAsset:(nonnull NSString *)asset { + return @""; +} + +- (nonnull NSString *)lookupKeyForAsset:(nonnull NSString *)asset + fromPackage:(nonnull NSString *)package { + return @""; +} + +- (nonnull NSObject *)messenger { + return [[TestBinaryMessenger alloc] init]; +} + +- (void)publish:(nonnull NSObject *)value { + self.plugin = value; +} + +- (void)registerViewFactory:(nonnull NSObject *)factory + withId:(nonnull NSString *)factoryId { +} + +- (void)registerViewFactory:(nonnull NSObject *)factory + withId:(nonnull NSString *)factoryId + gestureRecognizersBlockingPolicy: + (FlutterPlatformViewGestureRecognizersBlockingPolicy)gestureRecognizersBlockingPolicy { +} + +- (nonnull NSObject *)textures { + return [[TestFlutterTextureRegistry alloc] init]; +} + +// This would be NSObject, but +// FlutterSceneLifeCycleDelegate is not available on stable. +- (void)addSceneDelegate:(nonnull NSObject *)delegate { +} + +@end + +#endif From 0a8492a74ce58428ccce521170fc39fa3e4d70de Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 1 Oct 2025 11:17:43 -0400 Subject: [PATCH 29/29] Fix statement ordering --- .../example/ios/RunnerTests/TemporaryObjCStub.h | 7 ++++--- .../example/ios/RunnerTests/TemporaryObjCStub.m | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h index 0d0b9817b09..bc3e59494bf 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.h @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +@import Foundation; + // TODO(stuartmorgan): This file is temporarily iOS workaround for changes in // FlutterPluginRegistrar. See the TestFlutterPluginRegistrar TODO in // FWFWebViewFlutterWKWebViewExternalAPITests.swift. #if TARGET_OS_IOS - -@import Foundation; @import Flutter; NS_ASSUME_NONNULL_BEGIN @@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, weak, nullable) UIViewController *viewController; @end -#endif NS_ASSUME_NONNULL_END + +#endif diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m index bfbc9f981bf..2e8704e46ae 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/TemporaryObjCStub.m @@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +@import Foundation; + // TODO(stuartmorgan): This file is temporarily iOS workaround for changes in // FlutterPluginRegistrar. See the TestFlutterPluginRegistrar TODO in // FWFWebViewFlutterWKWebViewExternalAPITests.swift. #if TARGET_OS_IOS #import "TemporaryObjCStub.h" - -@import Foundation; @import Flutter; #import "RunnerTests-Swift.h"