From c381017d5b11dbb806f30745360785e264c141eb Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 26 Aug 2025 22:38:24 +0700 Subject: [PATCH 1/5] Add support for webview_flutter_android@4.8 (#1478)10 Specifically: * Implement `AndroidWebViewController.isWebViewFeatureSupported` * Implement `AndroidWebViewController.setPaymentRequestEnabled` --- packages/fwfh_webview/test/mock_webview_platform.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/fwfh_webview/test/mock_webview_platform.dart b/packages/fwfh_webview/test/mock_webview_platform.dart index f815286eb..5d1c18beb 100644 --- a/packages/fwfh_webview/test/mock_webview_platform.dart +++ b/packages/fwfh_webview/test/mock_webview_platform.dart @@ -171,6 +171,10 @@ class __FakeAndroidWebViewController extends FakeWebViewController implements AndroidWebViewController { __FakeAndroidWebViewController(super.params); + @override + Future isWebViewFeatureSupported(WebViewFeatureType featureType) => + throw UnimplementedError(); + @override Future setAllowContentAccess(bool enabled) => throw UnimplementedError(); @@ -213,6 +217,10 @@ class __FakeAndroidWebViewController extends FakeWebViewController ) => throw UnimplementedError(); + @override + Future setPaymentRequestEnabled(bool enabled) => + throw UnimplementedError(); + @override Future setTextZoom(int textZoom) => throw UnimplementedError(); From a42a76bcfdd5a7176e4077c59d800677fa59c69f Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 26 Aug 2025 23:02:03 +0700 Subject: [PATCH 2/5] Update flex_color_scheme@8.3 --- demo_app/pubspec.lock | 136 +++++++++++++++++++++--------------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/demo_app/pubspec.lock b/demo_app/pubspec.lock index a9b204402..561d3d8da 100644 --- a/demo_app/pubspec.lock +++ b/demo_app/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "754aed101003afceca3e6637fe88150dbe9739068e0135788a62645a131867bb" + sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" url: "https://pub.dev" source: hosted - version: "7.5.9" + version: "7.7.1" archive: dependency: transitive description: @@ -245,10 +245,10 @@ packages: dependency: "direct main" description: name: flex_color_scheme - sha256: "3344f8f6536c6ce0473b98e9f084ef80ca89024ad3b454f9c32cf840206f4387" + sha256: "034d5720747e6af39b2ad090d82dd92d33fde68e7964f1814b714c9d49ddbd64" url: "https://pub.dev" source: hosted - version: "8.2.0" + version: "8.3.0" flex_seed_scheme: dependency: transitive description: @@ -388,10 +388,10 @@ packages: dependency: "direct main" description: name: http - sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" http_multi_server: dependency: transitive description: @@ -452,10 +452,10 @@ packages: dependency: transitive description: name: just_audio_platform_interface - sha256: "4cd94536af0219fa306205a58e78d67e02b0555283c1c094ee41e402a14a5c4a" + sha256: "2532c8d6702528824445921c5ff10548b518b13f808c2e34c2fd54793b999a6a" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.6.0" just_audio_web: dependency: transitive description: @@ -468,26 +468,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.1" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lint: dependency: "direct dev" description: @@ -580,18 +580,18 @@ packages: dependency: transitive description: name: package_info_plus - sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" url: "https://pub.dev" source: hosted - version: "8.3.0" + version: "8.3.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" path: dependency: transitive description: @@ -628,10 +628,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -660,34 +660,34 @@ packages: dependency: "direct dev" description: name: patrol - sha256: "21e36c6c5b8371bfa561b2632c665758e6e79f93a25590db450cb61c13469b69" + sha256: "782988d05af24427296e48417c36c520598656e00ba73c401a19ecd65262ee0b" url: "https://pub.dev" source: hosted - version: "3.17.0" + version: "3.19.0" patrol_finders: dependency: "direct dev" description: name: patrol_finders - sha256: "95e4a8592c27c2cf39871f0c5f80d251a4347a3a61d117646089631459ce299b" + sha256: "4a658d7d560de523f92deb3fa3326c78747ca0bf7e7f4b8788c012463138b628" url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.9.0" patrol_log: dependency: transitive description: name: patrol_log - sha256: "49c25a41ad5ed7df6ff550c964798ed86cb112cbe2ca4f4d728d85c413b779a8" + sha256: "9fed4143980df1e3bbcfa00d0b443c7d68f04f9132317b7698bbc37f8a5a58c5" url: "https://pub.dev" source: hosted - version: "0.4.0" + version: "0.5.0" petitparser: dependency: transitive description: name: petitparser - sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.0.1" photo_view: dependency: "direct main" description: @@ -732,10 +732,10 @@ packages: dependency: "direct main" description: name: provider - sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.1.5+1" pub_semver: dependency: transitive description: @@ -833,18 +833,18 @@ packages: dependency: transitive description: name: sqflite_android - sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" + sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2+2" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.6" sqflite_darwin: dependency: transitive description: @@ -905,26 +905,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" + sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" url: "https://pub.dev" source: hosted - version: "1.25.15" + version: "1.26.2" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" test_core: dependency: transitive description: name: test_core - sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" + sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" url: "https://pub.dev" source: hosted - version: "0.6.8" + version: "0.6.11" typed_data: dependency: transitive description: @@ -945,18 +945,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79" + sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656" url: "https://pub.dev" source: hosted - version: "6.3.16" + version: "6.3.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -969,10 +969,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.2" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -1025,18 +1025,18 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" + sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc url: "https://pub.dev" source: hosted - version: "1.1.17" + version: "1.1.19" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" video_player: dependency: transitive description: @@ -1049,18 +1049,18 @@ packages: dependency: transitive description: name: video_player_android - sha256: "4a5135754a62dbc827a64a42ef1f8ed72c962e191c97e2d48744225c2b9ebb73" + sha256: "53f3b57c7ac88c18e6074d0f94c7146e128c515f0a4503c3061b8e71dea3a0f2" url: "https://pub.dev" source: hosted - version: "2.8.7" + version: "2.8.12" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: "9fedd55023249f3a02738c195c906b4e530956191febf0838e37d0dac912f953" + sha256: f9a780aac57802b2892f93787e5ea53b5f43cc57dc107bee9436458365be71cd url: "https://pub.dev" source: hosted - version: "2.8.0" + version: "2.8.4" video_player_platform_interface: dependency: transitive description: @@ -1081,10 +1081,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "15.0.2" wakelock_plus: dependency: transitive description: @@ -1105,10 +1105,10 @@ packages: dependency: transitive description: name: watcher - sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" + sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" web: dependency: transitive description: @@ -1153,26 +1153,26 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: "769f34fc9855f7d7789b786b79b7c37a60e92ff08f71e3a429208d7f5b81d944" + sha256: "0a42444056b24ed832bdf3442d65c5194f6416f7e782152384944053c2ecc9a3" url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.10.0" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: f0dc2dc3a2b1e3a6abdd6801b9355ebfeb3b8f6cde6b9dc7c9235909c4a1f147 + sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" url: "https://pub.dev" source: hosted - version: "2.13.1" + version: "2.14.0" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "71523b9048cf510cfa1fd4e0a3fa5e476a66e0884d5df51d59d5023dba237107" + sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f url: "https://pub.dev" source: hosted - version: "3.22.1" + version: "3.23.0" win32: dependency: transitive description: @@ -1193,10 +1193,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.6.1" yaml: dependency: transitive description: @@ -1206,5 +1206,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.8.0 <4.0.0" - flutter: ">=3.32.0" + dart: ">=3.9.0 <4.0.0" + flutter: ">=3.35.0" From abf7bad2a5059d2e15924120b4ac13e99fb5832e Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 26 Aug 2025 23:15:30 +0700 Subject: [PATCH 3/5] Update images --- demo_app/test/goldens/AUDIO.png | Bin 21381 -> 21348 bytes demo_app/test/goldens/VIDEO.png | Bin 32118 -> 32120 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/demo_app/test/goldens/AUDIO.png b/demo_app/test/goldens/AUDIO.png index 8454e546f37a1757926458bba174d1abf496cb90..f0be651f1bb5b706149ab1c233b919db56f5fdf1 100644 GIT binary patch delta 3878 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 O_-LWf$Z9pa@c#gtWM1_E diff --git a/demo_app/test/goldens/VIDEO.png b/demo_app/test/goldens/VIDEO.png index 1f7d8eec3d2d1c920864b53f21b88c67ca2540f9..3e35df8e1801f16f0845a3a00321c2dd161a809e 100644 GIT binary patch delta 13857 zcmYLw1yodD^zP6NGc;1eP>M(+9U~)PAs{M9gVHG=&7~O{L_|Uf0YT}I?o>jM?owL1 z^BsQw|9j81SnJ%mr|v#y@BQs>Zx2pzj!tljjxbP+qA$!39)rZ?3rh*f@eMPV(SY-7 ztNohpmC>TL`I7Q4=~^T*5@5 zZKvxO9>^XXaaOKv>|ehwOOUH2ZE;TbmrlE3Lm;pA4T1c{ArYg3Jc3GLkNDkBpB|Bk zi%q;d{R%?e%Y7bFwbZ8Gk2Su2rA4Qk=VZ-LOUw4(5yRQgFKivUmtJIvA(Ym(rZdws zTL}%5(TCFz5qBH6+hyJ5Kvf}W5bojBDQtdWVQcfTLi5+BBlA(>YhnxbGaD!LG7V!v z3+3pRem$$dCAN0rSvHUh9 zX7=m;$l2lQ%|grRCwqLeb93?*avK{P>dTdZLlYC>ctn&YtAjU)DM^%1CZ*iYBcF>W zw2~JuzYQ0*+~HEq(&Vpozpg#PNC*+nL&j)kyGphh=n_w8%Tx2< zhU40*E*yb~S{Zm!bkQrbHSM`+ZM%>SCEF?LO==$%P}tcuY<||_V-<_aeDLZO zcYAwe+h}nyHX@?2dfz(slf262j?aZp<>@CG1Px8VV4`S|MSojThO}O?oUAM|RuxJA zz?q&3Hd?i-s|TICe30{`|MOa^py~~`m6eslVmDKdi0f1xTWBZ=mYpFQ?6nyn#ia5IPVQINl%v@q6=poTiW=-u&&{`x)h|}N zncPkdH)pHC$xYZdw0vDFghXo)s}D@f+50xD4(;;M&Vqu1J(o3}m7fbAOIgTydwXv= zu4$mBug6|Abt7_z!*Rks-(${O%*q5%g+%MfpL z60zdobUITgBP@)#Ja&m5Zc>{!b9S{zY?#IMs#%lC(=VkYqwiK3hw>6tQ@=I%x_Njs z4-7onEv=}K@bK^;w<_gmI~>e?aaSNilgIuD3+jKzEFcknNG- z5;cgSrwxV-RAgiWwb^W#5pFF3m3yHFf4^K@_@u}thRnvmKc?ywzm}rsPl^7lQc`4k zD&h93%i3+f{1$QSnt_j`xA#vDd*+Sjd>rKD!JclFN~nHFK0rNJYk6%gKr=TGW0Hv8 zDk>7H-JPE3?CELi|EyDa+^$=E@?F97IP6=b!H9$H?Y;GX8=f1@&14J~bv$uDg3nVl zb6bOJHrsaMyBs^J%eQuRnja+JraDfXvy<2MX#1-TElKB($jZraP=~@`cGC4;@K_&Z zB9efB0EaQ?ZQE$c@l(CmKT!GhIoadoYci8NOUdF1CBdQ`H%L?{+3&jRR4taLr08{e zd5h23{CcLZA0Q}yNzK8*q3!&m?dY_9367%bClB;=cTfNJO}Eqwf-cisa{r!?2Vh^nA2nYzE4-%VRZmIheXL_r6$>}~9D-5*s z^d>*wy_|F&pg1~J_|(=8)f#Eax2N5v8mOv+Vg-W95%b%g!bg7Z+dN*ihEhl>ypIND*~-c=$O# zpCUf~soPpl{?W$7CZWEQo&Bbww|Ctzv?}B6?~m)aq`$T`>2#@Rw{ed}=6xi??Ru=Z z>tw-ha&bZeufcd3lc9GxYa~TvXO~P+b2AFUC@aJ85|ZmrH#}dOv#aRnFim?nt);nm zoe#ZPzqD1jw#vNKwq$6s`N>=IGH*Ne>sKqUy}1sH9D7COc8=QJgPKa`ZEl#aPU!%W zK79M2VH)k?LQzr@HCO)Jpd;0;(x-E#w6L3jSM3i{aP!@w$c*~euV1(3cazoKvf&ia zK82*$(e>YEJz~{xrg1ZcL~`E8pD>n|xxE>l$LyEBhtu9vGT)(qlM@dXxuhWLX9ag2 zJm@N#pdux|GnjMT=F)@c{{8#gV2ksHx-))v(&gIse@RSZnpSZCETy)u71sL=eX}1r zmJsqh;0NZq_T=YUPF~&}M@N#|lTN7+k42@|@sQi$)S%7~+{VVgd8IC{uBM9-V=oHj4l5csee`5~j`vl1tU+JqtG~E7UehLj zvaOBNP4a59^U=@I3&kqzBOd=|QoSR_O3iU#c9q+YV=AlW=0e!~fTMs441DO`3!H!M zJs`x#H(HypH(ArYY~E!yRP@qg87`<}71e|UeFw51wXIIrwHdN|;G_NgwB38c(B>ix z`d%DS?7y03QYVNLQ^|E_e4ecBJO@$%?qsf4W>fizDa~+Ro&LZxS65fr%Vy=X-AIYz z^{{Vnc7_m{;lj4N43MGZpG_$aW0tFZX?vcsy192f_#ndV-ud@=o*v~ZNMU2jL1BD+ zLfC%#*zG8`f%2Hio7{4Da(7_6<*>$aBHw!JI3blnI)FvaL+rcv5%iyh&*e>RiWppR zTTX94B9V%lwhdPGB8Igmt7hPDZS?y;C4QaPOrOptpaBajtKTm+em@XwYL65|^71k~ zNVw3j*LZ(F%WbYL^6I8nuKxUs4UK9Ki|-P?_39eTX!}*T#`EVPYtN^AH8eCTS66SA z%Ny$H`9D@TCub0>?#%Rm_$LD6|4r_)1)m){v!`XCn=7PJ$lN_&=y*K)eaPBjtD#}V zD;3+xM7M1mhQYj~riY_YA|!&w2t@2XH^R6WHI}%VXAGReN0znmuf&IKNf3y!pd7}j zxZ{uE=E$oN@?_yy?89c!I3G0u=rbu6N&Mel9hy*AY7@mG@87}h-RzNH>X&fawjH`C zHE;d?Tw6O3pd4nqs^ekA#Nt?9c|-3}1sXFR!G}CP{^DqKiS{Z#cj``(>&l_{H&)6} zUS6J*YHe*@Z2rsO^RV#^$a@(<`{_p6_(|kg1yBw4=LY5E_Vv*I<8S31THn_>Q6-Qv zT}*Hw?j7&7CCnw9GRDY!QOT!*xD|SSzwNRz+%a<(8qK_5A1sl#ty9!^B1l>vB_p!9R zVRtsrlaw0Gt^oO+Zg|6B4qZJJ^Gm5vlMTD17;5XjZCyB+tm`hdi4tC+maaKc&N`Twh0ss znpIckfz2LA3T9MR;=|I^uWtdoHupB1VIj05^^UhUR5vW`YI8~WoWG9L+O7d_v;I^b z*gE&lgVhNMeW2&;Q7lsa`)eD`2ZgRM*n5L|a{Jl~9)TBbB-gH8>zkR0rcyW}PPkRi zB5|=|cDA?hE9uu|q`PcqclF8( zOxDc#^!z%st2FHFl`l9v2R3|e6}tJHcxY${SjKRNwObV=ypI=2z{q3+FP)<`rD)>F z$VdK~xq}n+`S#}zM$cQK!OLb{dpkO_tR6&Cax(Cb-26ITRei(5JjDLU$>KM44y#)A zNMir3HU>kIX!)HFSFeBvy{=dPGIwjO@DhQKhQD@tO!{1)=EZeL@Fv4G=H$SJ$;-5& zm9~Ts+s&%e+wZKO8SuVKh`08+SYR)JUu>S+-tqJdNdriuuwh(4_H0BY=-_}dJv&>u za_%Hqtf6B{;q1Cz@g84#UfDwnYipW~>RquftXBe_#D=9u-~)jJRZ@uCA#Gs+gYS%gpMffBpJ( z(5Fvqb6Jm)gTQ&K!h4S=;P_}s7e2$~)m4#Y*E^V~CcBO1@d{V=g6fm|fgvF+Gc)W7 zm)lg59)EHc&%*`k;b^pJ4V54LT{0B!GH_^;#dKh{7w%4cc787G?Llf~ zZ51*J(ZlrIheYrR2~qs~d)yy#v#`23$AydgQDeBE z&7Hf)@!0TarSUwm_3 z&E0cY#1)>d={-Zyp&$?!tHlasR?-6aZDDEIVMR0BvZgrwX>xTr}q zpFG(f`;yAZVVu(Y_g8}v+nbFudcJtlo}Ql0?(V@_2~HQn`lGW4TF;(=`^hu|HR$d_ z)9U}^TxYrgQcRd#h?ZA={`^X3wl*OsjKCu-Jxk}cf?BG4B)FmBW#QQMD=C0rgbkY4 z$ZJ?oo2=Tf%kL6^Ijqb-*gjmkZF0E5jstUaG(|8m`DG;t;t>|a78-cpyg2D=sdVnA zW>N5A`K%IsyP7qQ_fczinHJRf_cg4sJ5ki(qPA*lZ*Q>b>@9cr+{Q-mTERKZ?TZD1 z2v(VAy9OZAd!`Su4o^AqvYm7pBIxL{_CM7he5$cuto-x)?uVFnfys821lD%C;jg+1 zuEH?0!V&oU$>hzs3F?vhH9w)5s|62- z3QG-rj>TW-zHk`mk+^nt{PwNpq}MLX^6Wl?eUh~JzsIkVWdlSYbsZj$D&k8Y$r4P1^Oj(`3ha+OAM$hMl zjT403l$%S=^qeM?Fc?ZCk7EY9i%C2yzk7uFAFIAYoT`xRZ~TYJl5BQ%DRc?gPQ;D) z`!D}~y7Nqp?cMo#l4)&v#5KGsyA|rpFWHLoJZQ5wl=5dD3~F@r0j2ZQ2q{W5+~I2x zBfC!>St2wh6;pXH=2MdY+Is>zl^4K;LuE(m1CXBzl7 zT1?>2$SEom>Kb~;Wq&l;5kIo$7CgM|g9rygH2Y!TU`xxgOQQ4nz12BCsoVh}%QHz9 z*|$L%CHKAd&wnv8(*%tTd}%UVwEk%oitW7rVnT*Ztiu{cFJ+J{?mH*A+s4h%J)~6z z`oGiCGJQQS8ON&43e~?v?1bNsiFIKab3c}RsueN#=iY~Rj8w%R9BEJ)v6-5=F>w%K zVuw@T#5dpQ3Wnd=+?qOv)A=0rkW$(1L^(ZCw8VxEW_}U3B!dFiRKRQT`c*r&q;^~#YUJ$BGamDq+v}+6r#T` zj|pEaK|jJs6swBKwB_;#9m8>PuR4nD5kNQ$0(#iYOfFdCk2qd{1lf|m57?1nuLWQ+ zf4&Bj;qq{EH%(3H?_TmFJ%qpv1oTAe3 zIZotea|z;VK200({~kE59`t%?!F&(s;Nn+L+6O}az2XG&?{|RKEtM6ggIw@9*0iOwdXUCYO>Y#JLqh(29T6X7eP*m1d@gi-K=@dAWY$zuEYG(GUi8+Ja2m zFZR_Y1|mNQKsUxV&144&gKje9xKaG{@SDc)Sc^YG#1_o_$Y&kjW!oiCC zA!xy$-HXCSz#e+fn+EqK8pp_D=Eyf7i(FCn(puML+jtfZ> z9t3{`E9fx=_(lbR7hvUrK(t~&v3M>HoGMW+J*@qvg=8wjd@RH+J6CPy8fu(Fh z(TXF@xbvBem`o_P6`5vjg5&ra%p)#Lygcr<=YRlhZee0oF#WBorVz2J6+cn{i^hl$ z1o%1&(8C#k9GLvkioZh$0>NfJGU8{>75T!!Rr?r#RusX%yrxPPfGvmwZ9+2Ql~!bi zwJ|*AVH55hB@=jm6_|T*w!ue)H~_--2B8&8@af?qi~-nQKhUNHZE*dgz%EO~K${7) zuYRWoZRP;%!PW1#>ER{BDwL@2Wo2pU={WlO`pYXTXnXs@MFm*Q{j8)*z(~#g`$tiw zM+rfYu7tiIA&w>2R$(arPlP`faLq0*E=iZPq-{`4m#d2lpq8xr)&P1+PfsT%BMZkpnh_4h(QR14G&k+)0@PuL(Bob zFCXwD#kk_{2L%TciiwL`wi5%AvTtgN0tV4G%vH&mUj} z(vp&r%E`%5w6fx><#+qh+lNdmKZ#WZQ;X4(5`d+9*f;^vm{VA&;_WTBv$G@gW?j3r zqrMqL|i1 zQF9PWVF7jwFVM}>oCA;s2%JgmwoxR~L|>nkl3iZbBq5I+%ogB%dSKih!9+|!A%3zO zOo(GU6#b|Ah+%eKT3Xs+xi1}^Ajtnn?lz!)LUl^bnkFW6cRywMV;?tMjHIG5Ff6Q7K8}HGeg7ZI?uxw=V?ygfxyZ?GshDe?)Dn>lsL`dw@&hxZKB4!_Nj-zS+KXr6j+#blQaH^Kq;* za~0j6)%U-}NWY>k(Dh(y?`WgsV>^%@jQ;b&jc`5#fGdZyBgbSL-E?)M%Zu|5(k^@% zpFfvRi*jQ}K@1xa5n+tycc7TAel@S^Q#r~tJ z$hVSsUtjS+QcY;G(s#TH-KrEgawN4HraUN}CE3!ZJRy^VizGQO||LX}ZQdF{0>h!oL8de(BZB7han zxZB$2!`0D&JO9VS(^ErJ)1-J`4y^P+)I6$f*tH-dBf~h=cxZfFdRdW=Iuy>r=$q;2 zNK8fHmqx9wqaR)?de_3zn*B}9XXVHei?7vL`K<2dVc-oJgyu%dis9c|m6mVv-{G=FZ<)WzZ9asf4}|G+}yMy zij{thl5kvB>$+`az%AGnR(ICo`qPBY$t$?4V$QHb7LK5ujmD}=$vQt&Slir;CSr4g z<>uy&mb@Yxp9oQK(s;7BpI%+S_UKl=@75{wsyqiPnNyqA=8jfV-6E?YzO%i7 z$8Kx+72VSYAQ;x-i|@5xuU^b&469h$#2W_aH0Nu+(i5kfFJ4R_u2BaT#Xv?qw|ndJ z#GnhW?hnFvx)pY9t~1^ee+&W@D`FMbaU6nh=N_BvVlVrFZdG2*$lL_fq%OaOaU(pnMHFG`==fHTCPfL!xWf!TBGl3VHhzc2&>g=SGV*kM8G%h z+q}mUXWSA@;dZ`1;^GrdkB5F#dkFGBNW*TPJ=lzUNVpH(Qur#HAY`mf&`IF@|)awb`3ghFQ{|2qD zt>M6a{P^Lvm}m~f=;Tz|JJK@-(qw^svq-MU@Bmp!;`^@@e)4^Dtj@ugtE-b%5Vf0> ztUVaFuH2|zL&o3t^Ftc>7z=|Q=~@R$@@ zpqtO~8f`14vdbqg&QG_&+vGYqaqn~0UO$4?(EU}Z>q+;YBXE4}>yHU5CSQ}4l$7}T zp-SHTdr|rwaAsM%E)V{YO>$93gb}v{I+}{3TfdHb)O9_`(gYcxM{b*SheD1!wE4(c z@KTr$MQ%s0YOppT;dHtUQn+nL+t30IEQE@^eRb&D_P>f5$``%A+whctK_Q}t^O{9M zwI^Y!Ak=4r&K!F_N{}%Kh*`^=jNARlxW2#DhmXjTCLH?3ozPW$oW)T5H;X~oMUxs> zClSkGjQ1WL-04I^Ai;EFvZ}EWkA>Z93;l6T#$ndCEu07dIJT=ZfcBWM`ku^pD=R)s5;-8NB5`tY^Q5``Ezvh#00bTa9&dw-A%F0^Q{)Docw$O z7*MUTKeo%(HRTXnEJs2Yh4v~0((2odcvQ2+9c%&7(b0Fu(>9H))f9MmcyRIXwiPap zJ}>TLvBZ!3AfR6kGv0@D!OV6-?lLDr50@w1m<5^EK^CCxk;D|B7K=S2Cb9#-dJFxS&D_x6k`v-68EXaKX zrlzu+^&|xWgyIEmJiR@U6z?ZLN#VzMN;cJ3S8cT1n&A_4;of5nOi~LGyI0z=l!yp5 z5haTv$UeoTnbSfy`S^S#6@knZ?CFK3<7W+r)cf!hR%9`@P(Z&w&@ud@bG5TzC29Ka7z68l`k_p z+hj0DL(*lH7G`v^w}QoDVT7O9tof`NVw?he;Z)FfXK)S9w!>Z>b%YCMl+|k9#9BZk z!=vU(C&d{VxD5Kv2on>NnB-(Ka@kjkQ_*+t-sQ1RC1|ZGzFJX$eSNx)8K6KrJG&Rg zr5PEhv$Ne_FkkajZ~Eio<10}Ew@L$R1WGcuxEKu5Y^9%~U-dlDuJ-rsN6dL7Y_6_0 zw?{H>kD5lK$0k0DVn_Qep$kc@_`&h%W`l~o{brhvtoMo7n~g~l*l49A=M|wJEq_8> z^X4CJ?`p^Nv_a47>{)L9rFOJ4FFhlp#g6&z&Q45xd{9}L7#A0p5iotDWtM=>a}uA? ztf{Upa^E%UG2dvo^l5Et!-0v2h={E?KlnbC;=TIxy1LGjkYUKLqvrJV2b_+LG&dxq z7nufB=HTDNb`uf1MOM=g8sqMeX68-Mmi1yyG)VkFNR2)PaqynHL z?m}TZ=dMW}sQn=p4e zb?kb7i&4~!9ECy!uXlvf@XjAh*mneyKr}E|e0;py@!y0;<2=CtNl*eL@$j5#bkLpY z>$h*)J6(bcpFB6v+S-gf4?p-a7`Wkpy(LZD0jYgqtHJ9%Z*jvVL{_u1Z=>cTux3*K;eb;C#3A& zd$CQYX`c|qxmk38^~$lgx%0&OX7gW;7$Sme&Jr&a6@90@Z&$Fdt*sSX4)9C@)g-2( z8X1d5qtV!?sNp?R5ZK(d9e>%ksgs(1<+?maet`R%C|>+)t|i3r$`BRQY&3&v503cz z2zGV_3#p(xew->$)GWw;h^?gs_~FdVO|#oEuXa=%9`J!YH-hb2#{SV8eLgrx#AIlhgxwP?*hb5S#8jG>|7N1A&dd)}UZh>y>5 ze_c|}_&fT~(P)bRQd)YPFPg4cEb(FR^0Gz1`=^gDzf$5Z($S{pR?%rvQMFRa8jtkN z8$ViQLYNYLnw%J%46F4=X^jk7|Aywwzchr*M*!Fs3D7^_6MMYi2R6X>6DnMA0b4y4 zCLi8QZ1L#C45PL84bH@5*(aS+%>JXe*tZgxIN|^*t?zIe8q=*?)!^bBIWJM=*jbe> zNB9nBTPwHz45s(G_-Cgz!gSl{-+v*7DN^9&c$ww$`g+;2R>gY=4p7#gKYxr9tZg?N zn>cl@^L@jIMLfoaguuh2-gHG7Y9~u$CFPA-Xi+2}cG(^}R4}!9NNe^ul@J>1Ti}SA zj{YO7t*8ff-UOo5V*45Sn#3<4hNb}pOf0V(%b%w=&aLaEbShB9-}jZ3gs2Hvy30kf8SnrYa|Nrc4_XiOT`-~}#)7TU$&xtlScXy6k zw|WFF(!<+KGPAOplz#bXf&kfV+R|%lNbTj)-vc7l<(Evp>jsU=s>*8vSv*HHz!@K8 zTm>jur88Y_uB&RY!_Lpnoa+ts3_=4`qS8TlvSDYZ`cZ^rfG27s(T0+Ws$;a+w8z70 zT{SE^ntcyT1>oSeV=S`RlWCnY${*Mh!l5^O=uqhD0g8~!i(M1%jJ){lf$yI zvO=cq{=2_pWI51J)D=~3WMFHYr$cwq6LgpQSPq9f!R(tpl{x3=Wb~;zI z?K=OBj=|7{a)FhxYW5%E#lCPMA@3Cs$EZJf5>Q(!TUJq_`?3xc0W5R?iR*Ep;W36< z{tJbTC0A0mNx*6Z$Dh|;wnY>_wq=+n`+r%GrqDCovl0b7UbTrZ3#uDIvCtLe#4q2;0*CuLF0_xmj6jOW(sm{A|Bkrv zYU%HSmWHrq9B-mrHbx8(lO?34{=S?y`1nXcZORqp2q-BlYsgx|(9nMGv-;%Jl=uQ3 zNbf4o=)bbe#z%y9x8dHQe`N)C$aMGcK=JSp3JVLve6zE80RNU&T1s=pT&}NU%*}aW zjU63C)6>&i+uMH8(NsWraVfgLM2O`h=ld5r1+Pg1Mw;@9_5_&jJ3TO7X=zAZi53%( z0)dK*)ULga3#LL*Cx#IOcANY_B6X%O{js2GlS|hgu;jF7YaDUfH;Gk;5zKO=pFg8Q zC{WZ)0R({&X8%Cn5MjXkD;4?1G$~7iKE@9L<9!{FlKi@W%=Cx=eXoSLSMmk)r2@n< zAGj1h3;=V<3h3b*Zjc!ARunZp*BT(?BLK(iOM{Q|qXh86V9H8KK%rhINBveGJrxMM z;)4UQnPg;GGLtJl81Th_7!LxRwOc{`iB*cc_ch=GzuSdf^)idYrDkRh2d?F_!qUOD2yXta_t34D1VbMZ@@`u;1i~-($(Q-rrT|Irld}Be zFJOtWOka$Ois|ZL?)T9$C7~=|e%!ZSCWrMHvxUrQ!=O+-lux{t) zO=ZD_hi)WY_xAVr`i7@*UNumoVu?iz*^fLtor(scKI+QCX2S*R8<+b(J2nw8G=lPj zD{EwLF9;}8n_)G5Fx_?PP*9lBmf)fV&{+24T#U6R5#U&1jT2pDKK1fyySMsuR`}Sg zva+&{7L)CZUjCrQ$A|Ed+}v#&q}ZfVA_M`NaVKJa{m}Viq$D%j)09BKR6Nj?0jw4% ztpOF#IPMN`km}-Rdt;X~Ukpf*h->1cfY_9Dn1yNa(E)=R`~Lmy`F~=;(pb0sw|BAR zan}CW29{1mbJvReWEJ{mQ8>{TO59$xR5CPtmd7z573yaAq)BNs{!M1Hc3}1u9v+@B zAWUo~zEc2d5L66`0|E>VPBJ2b{M+{dYDSE+-MSo+iyd5@i@NF82!s5zS8HG?2{}0i zFw7#Nq8hro;W?nt?euh_T1VM27@1KVFxM;VRsj5kuQLHo%N>8#d3KIO9x*XmnELbQ z5D^Rj%nHZwhz?}Nt}%`yQi%XZN48T#2)hhiGz%=iH&cFBJvDT1e}Am}-{;aQVqQFo-ygsAWRm zL~~o{@J7)=z1;J30hASRV(?H5(6<)A+{dP-+7BFzg~{O~D457y7jc~QZ8Q~u27a`I z_c1OJ;y}E-JVx#BLM^`Lm$(dcQl{vqSX)`G+ugaLYYgwd*rFaL1_FGU_e=h?d-ze2 z3^{6?iarL>h(yNz6~a5#~1ZvJj0iZ^1R;*^lt;c>OpX=#6h`#FuW&o91bM zY;SOb9L+}=&b0q=i!5cFB}xZyjI%O7lBW;kDealLO6LHFqX0>{m`KQ8^+00#-sWj43?X~?0@IwRt#l>?p2R;M$BLj2N@_Y%*nU9tN)a& z_v4$&?+&{N$XRT~zmc8%li)9%;T6TE% z?r9p7kwI=4pMYLmiwqp?-%9wg=hHql#R@PzBdFWV)Lg-SA4vkm7Vj7&(yGvge()xW zdf>e7>OTKCECVRvpWm$deh*W^h_~W6q(xYOhb=4r9;Mh7+R21}+%>zveb@adMN)E7 zZ2w@Mi)??^_wV$;{(%30aNEoKBWK<+4kX%~2M*W3O(EIOi%F0}k{F216bLlb5m9zy~ zd{?#7Af6h{?0LTkCjb7mt&#ig)&a31`Vlvu^%^MZqjGhXh#;j>axn6Zhjj0Oy!c25 zGY!pr|LCNDSkjBZ+hQ5%RRkKw>BJNy*UG$fb(0^BTT)OySM;bpB{$TLNz40s&7_zy z7Ia7;a`H{V=Ak5oV15@qIl1;2pd3HHe$^Q1!)nCN5pSK&9D$?()w}yyPbQoGs(T`d zaZlp;0ul~)_Ry;8unefVWp)Gq<6X?bzeB-quR8I<2MrbeiI z*6-n-QpONIkai~46l@7crsNIaZn+{mJ@aD{)<)Tyo-TyP=bPUWz|5fiu~mpiLYy`pf)E?a*zq@ zq1@Q~Tb>k)!_~%xRHes_Up+KIInpR`X*4UShAmgFQ0fkac2-qZRW$*4Lmi3_O93%u z$aUmWFEJxEEp~Sxn={Ve)B6R8ef}SGTo$Ux2PL`w+Wg8pf%shQkxg^!EGeCWje@75 z4)cSSp!5cb(vqLIz1EMLL5WKr{}k6(iO?L2wE?v;#uDgO#0?}cO96Oz4nE_~aXMZO z<{^gv&d!ynNwOcS-Ep%ZmX?<3?;o?AWCL|UJ>1cc6)n`^Q7Mw4ApGk2;g?P>fc!K) z{X)S!RRD9aa_94HWenz^;}M^@rEE*uFHmg)s%J4+j3-yQ_vNxMSr1e*nk{dU5~& delta 13796 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 IsK&nk1KyKS!vFvP From b9200906dd5af546a4219f20c22017e45f09574a Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 26 Aug 2025 23:50:11 +0700 Subject: [PATCH 4/5] Use patrol@3.19 --- demo_app/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo_app/pubspec.yaml b/demo_app/pubspec.yaml index aa5ca0dd3..eda6e7c0c 100644 --- a/demo_app/pubspec.yaml +++ b/demo_app/pubspec.yaml @@ -49,7 +49,7 @@ dev_dependencies: golden_toolkit: ^0.15.0 lint: any measurer: ^2.1.1 - patrol: ^3.17.0 + patrol: ^3.19.0 patrol_finders: ^2.8.2 test: any From 14ee524c28347fce99698ee4409b47f499c6fae7 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 26 Aug 2025 23:51:54 +0700 Subject: [PATCH 5/5] Fix fwfh_webview backward compatibility --- packages/fwfh_webview/test/mock_webview_platform.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fwfh_webview/test/mock_webview_platform.dart b/packages/fwfh_webview/test/mock_webview_platform.dart index 5d1c18beb..216b83b8e 100644 --- a/packages/fwfh_webview/test/mock_webview_platform.dart +++ b/packages/fwfh_webview/test/mock_webview_platform.dart @@ -172,7 +172,7 @@ class __FakeAndroidWebViewController extends FakeWebViewController __FakeAndroidWebViewController(super.params); @override - Future isWebViewFeatureSupported(WebViewFeatureType featureType) => + Future isWebViewFeatureSupported(dynamic featureType) => throw UnimplementedError(); @override