Repository navigation
[url_launcher] Fix supportsCloseForLaunchMode to query close support - #12926
auto-submit[bot] merged 7 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates supportsCloseForLaunchMode to correctly query supportsCloseForMode on the platform instead of supportsMode, alongside a version bump to 6.3.3 and a new regression test. Feedback recommends allowing setCloseForModeResponse to accept a nullable bool? and adding a tearDown block to reset the mock state, ensuring proper test isolation and preventing test pollution.
stuartmorgan-g
left a comment
There was a problem hiding this comment.
Thanks for the contribution!
|
Thanks for the review! Addressed all points — fresh mock via setUp, removed the fallback and nullable setter, and trimmed the CHANGELOG. |
|
In the future, please do not use an AI agent to open PRs with a hallucinated checklist. What is in the PR description is not this repository's checklist. The purpose of the checklist is to ensure that PRs follow our process, and using a different checklist defeats the purpose. |
… restore changelog entry
|
Addressed all three: renamed the mock responses to launchResponse/closeResponse, switched the test to the realistic true/false mismatch, and restored the CHANGELOG entry (it was dropped during the branch merge). Thanks! |
stuartmorgan-g
left a comment
There was a problem hiding this comment.
LGTM
@QuncCccccc for secondary review
…er#193840) flutter/packages@5620e65...951f2f7 2026-10-05 [email protected] [material_ui] Add scrollPadding property to DropdownMenuFormField (flutter/packages#12735) 2026-10-02 [email protected] [material_ui] Migrate M3 Motion template to use new gen_defaults (flutter/packages#13058) 2026-10-02 [email protected] [cupertino_ui] Forward showDragHandle from showCupertinoSheet to CupertinoSheetRoute (flutter/packages#13011) 2026-10-02 [email protected] [cupertino_ui] Fix CupertinoMagnifier focal point with custom size (flutter/packages#13029) 2026-10-02 [email protected] [ci] Add material_ui and cupertino_ui to customer testing (flutter/packages#13114) 2026-10-02 [email protected] [material_ui] Add Material 3 Expressive migration skill (flutter/packages#12818) 2026-10-02 [email protected] [video_player] Ignore late position updates after disposal (flutter/packages#12971) 2026-10-02 [email protected] [material_ui] Remove unconditional dart:io import from about.dart (flutter/packages#12774) 2026-10-02 [email protected] [material_ui] Fix DropdownButtonFormField underline alignment at bottom (flutter/packages#12606) 2026-10-02 [email protected] Roll Flutter from e89fd0a to d03768e (23 revisions) (flutter/packages#13111) 2026-10-02 [email protected] [material_ui] Migrate `Switch` API doc snippets to {@example} (batch 8) (flutter/packages#13052) 2026-10-02 [email protected] [url_launcher] Fix supportsCloseForLaunchMode to query close support (flutter/packages#12926) 2026-10-02 [email protected] Redistribute iOS/macOS Suggested Reviewers (flutter/packages#13076) 2026-10-02 [email protected] [image_picker] Subsample large images when resizing on Android (flutter/packages#13038) 2026-10-02 [email protected] [cupertino_ui] Remove redundant null arguments in Completer.complete (flutter/packages#13008) 2026-10-02 [email protected] [repo] Update AGENTS.md with dependency allowance and versioning guidance (flutter/packages#12579) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Specially ios doesn't support swift architecture spm but flutter also up to date pkg and found bugs every time community is weak#if 0 #if !defined(__has_include) define __has_include(x) 0#endif define __has_attribute(x) 0#endif define __has_feature(x) 0#endif define __has_warning(x) 0#endif #if __has_include(<swift/objc-prologue.h>) include <swift/objc-prologue.h>#endif #pragma clang diagnostic ignored "-Wauto-import" include <ptrauth.h>#else ifndef __ptrauth_swift_value_witness_function_pointerdefine __ptrauth_swift_value_witness_function_pointer(x)endififndef __ptrauth_swift_class_method_pointerdefine __ptrauth_swift_class_method_pointer(x)endif#pragma clang diagnostic pop #if !defined(SWIFT_TYPEDEFS) define SWIFT_TYPEDEFS 1if __has_include(<uchar.h>)include <uchar.h>elif !defined(__cplusplus)typedef unsigned char char8_t; endiftypedef float swift_float2 attribute((ext_vector_type(2))); #if !defined(SWIFT_PASTE) define SWIFT_PASTE_HELPER(x, y) x##ydefine SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)#endif define SWIFT_METATYPE(X) Class#endif if __has_feature(objc_class_property)define SWIFT_CLASS_PROPERTY(...) VA_ARGSelsedefine SWIFT_CLASS_PROPERTY(...)endif#endif if __has_attribute(objc_runtime_name)define SWIFT_RUNTIME_NAME(X) attribute((objc_runtime_name(X)))elsedefine SWIFT_RUNTIME_NAME(X)endif#endif if __has_attribute(swift_name)define SWIFT_COMPILE_NAME(X) attribute((swift_name(X)))elsedefine SWIFT_COMPILE_NAME(X)endif#endif if __has_attribute(objc_method_family)define SWIFT_METHOD_FAMILY(X) attribute((objc_method_family(X)))elsedefine SWIFT_METHOD_FAMILY(X)endif#endif if __has_attribute(noescape)define SWIFT_NOESCAPE attribute((noescape))elsedefine SWIFT_NOESCAPEendif#endif if __has_attribute(ns_consumed)define SWIFT_RELEASES_ARGUMENT attribute((ns_consumed))elsedefine SWIFT_RELEASES_ARGUMENTendif#endif if __has_attribute(warn_unused_result)define SWIFT_WARN_UNUSED_RESULT attribute((warn_unused_result))elsedefine SWIFT_WARN_UNUSED_RESULTendif#endif if __has_attribute(noreturn)define SWIFT_NORETURN attribute((noreturn))elsedefine SWIFT_NORETURNendif#endif define SWIFT_CLASS_EXTRA#endif define SWIFT_PROTOCOL_EXTRA#endif define SWIFT_ENUM_EXTRA#endif if __has_attribute(objc_subclassing_restricted)define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) attribute((objc_subclassing_restricted)) SWIFT_CLASS_EXTRAdefine SWIFT_CLASS_NAMED(SWIFT_NAME) attribute((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRAelsedefine SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRAdefine SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRAendif#endif if __has_attribute(objc_class_stub)define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) attribute((objc_class_stub))define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) attribute((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)elsedefine SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)endif#endif define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRAdefine SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA#endif define SWIFT_EXTENSION(M) SWIFT_PASTE(M##Swift, LINE)#endif if __has_attribute(objc_designated_initializer)define OBJC_DESIGNATED_INITIALIZER attribute((objc_designated_initializer))elsedefine OBJC_DESIGNATED_INITIALIZERendif#endif if __has_attribute(enum_extensibility)define SWIFT_ENUM_ATTR(_extensibility) attribute((enum_extensibility(_extensibility)))elsedefine SWIFT_ENUM_ATTR(_extensibility)endif#endif if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(STDC_VERSION) && STDC_VERSION >= 202311L) || __has_feature(objc_fixed_enum)define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _typeif __has_feature(generalized_swift_name)define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _typeelsedefine SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)endifelsedefine SWIFT_ENUM(_type, _name, _extensibility) _type _name; enumdefine SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)endif#endif if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(STDC_VERSION) && STDC_VERSION >= 202311L) || __has_feature(objc_fixed_enum)define SWIFT_ENUM_TAG enumelsedefine SWIFT_ENUM_TAGendif#endif if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(STDC_VERSION) && STDC_VERSION >= 202311L) || __has_feature(objc_fixed_enum)define SWIFT_ENUM_FWD_DECL(_type, _name) enum _name : _type;elsedefine SWIFT_ENUM_FWD_DECL(_type, _name) typedef _type _name;endif#endif define SWIFT_UNAVAILABLE attribute((unavailable))#endif define SWIFT_UNAVAILABLE_MSG(msg) attribute((unavailable(msg)))#endif define SWIFT_AVAILABILITY(plat, ...) attribute((availability(plat, VA_ARGS)))#endif define SWIFT_AVAILABILITY_DOMAIN(dom, ...) attribute((availability(domain: dom, VA_ARGS)))#endif define SWIFT_WEAK_IMPORT attribute((weak_import))#endif define SWIFT_DEPRECATED attribute((deprecated))#endif define SWIFT_DEPRECATED_MSG(...) attribute((deprecated(VA_ARGS)))#endif if __has_feature(attribute_diagnose_if_objc)define SWIFT_DEPRECATED_OBJC(Msg) attribute((diagnose_if(1, Msg, "warning")))elsedefine SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)endif#endif define IBSegueAction#endif if defined(__cplusplus)define SWIFT_EXTERN extern "C"elsedefine SWIFT_EXTERN externendif#endif define SWIFT_CALL attribute((swiftcall))#endif define SWIFT_INDIRECT_RESULT attribute((swift_indirect_result))#endif define SWIFT_CONTEXT attribute((swift_context))#endif define SWIFT_ERROR_RESULT attribute((swift_error_result))#endif define SWIFT_NOEXCEPT noexcept#else define SWIFT_NOEXCEPT#endif if __has_attribute(always_inline)if __has_attribute(nodebug)define SWIFT_C_INLINE_THUNK inline attribute((always_inline)) attribute((nodebug))elsedefine SWIFT_C_INLINE_THUNK inline attribute((always_inline))endifelsedefine SWIFT_C_INLINE_THUNK inlineendif#endif define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)#endif define SWIFT_IMPORT_STDLIB_SYMBOL#endif define _Nonnulldefine _Nullabledefine _Null_unspecified#elif !defined(OBJC) pragma clang diagnostic ignored "-Wnullability-extension"#endif define _Nullable_result _Nullable#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" pragma clang diagnostic ignored "-Wpragma-clang-attribute"#endif #if __has_attribute(external_source_symbol) pragma push_macro("any")undef anypragma clang attribute push(attribute((external_source_symbol(language="Swift", defined_in="url_launcher_ios",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))pragma pop_macro("any")#endif #if defined(__cplusplus) #if defined(__cplusplus) pragma clang attribute pop#endif #endif // defined(OBJC) pragma clang diagnostic ignored "-Wpragma-clang-attribute"#endif #if __has_attribute(external_source_symbol) pragma push_macro("any")undef anypragma clang attribute push(attribute((external_source_symbol(language="Swift", defined_in="url_launcher_ios",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))pragma pop_macro("any")#endif #if defined(OBJC) @protocol FlutterPluginRegistrar;
#endif // defined(OBJC) pragma clang attribute pop#endif #else |
Fixes flutter/flutter#192758
supportsCloseForLaunchModewas callingUrlLauncherPlatform.supportsMode(the launch-support check) instead of
supportsCloseForMode, so it reportedwhether a mode can be launched rather than whether an in-app web view opened
with that mode can be closed. This changes it to call
supportsCloseForMode,and adds a regression test (the shared mock is extended so the two platform
methods can return different values).
Pre-launch Checklist
///).