Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/packages
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 10a178cb16d4
Choose a base ref
...
head repository: flutter/packages
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 618afba31419
Choose a head ref
  • 11 commits
  • 74 files changed
  • 7 contributors

Commits on Oct 19, 2026

  1. [webview_flutter_wkwebview] Require iOS 15 / macOS 12 and drop deprec…

    …ated SecTrustGetCertificateAtIndex code path (#13294)
    
    1. Pick up the iOS 15 minimum from the previously-updated Flutter 3.47. Remove old availability checks. This removes usage of `SecTrustGetCertificateAtIndex` which was deprecated in iOS 15. 
    
    2. Also hitting deprecation `'webView(forIdentifier:withPluginRegistry:)' is deprecated: Use webView(forIdentifier:withPluginRegistrar:) instead.` in `FWFWebViewFlutterWKWebViewExternalAPITests`. Mark the two tests as `@available(*, deprecated)` to suppress, and so the tests are still run since the deprecated API is public. 
    
    This wasn't showing up in CI due to flutter/flutter#194517.
    
    Fixes flutter/flutter#194585
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    jmagman authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    1c44dbf View commit details
    Browse the repository at this point in the history
  2. [in_app_purchase_android] Update to Play Billing Library 9.1.0 (#12781)

    Updates `com.android.billingclient:billing` from 8.0.0 to 9.1.0 in `in_app_purchase_android`.
    
    **Why the minSdk change is required.** Play Billing Library 9 declares `minSdkVersion 23` in its own AAR manifest (8.0.0 declared 21). With the plugin still on `minSdk = 21`, the manifest merger fails in any consuming app:
    
    ```
    Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than
    version 23 declared in library [com.android.billingclient:billing:9.1.0]
    ```
    
    The library module itself still builds at 21, so this only surfaces in the app that consumes the plugin. Raising the plugin's `minSdk` to 23 makes the constraint explicit. Flutter's own `flutter.minSdkVersion` is already 24, so there is no practical impact on clients. The same floor is imposed a second time transitively, via `play-services-basement` 18.9.0.
    
    **No removed APIs are used.** Diffing the public API of `billing-8.0.0.aar` against `billing-9.1.0.aar` shows v9 removes exactly seven classes — `SkuDetails`, `SkuDetailsParams(.Builder)`, `SkuDetailsResponseListener`, `BillingClient.SkuType`, `QueryPurchaseHistoryParams(.Builder)` — plus `BillingFlowParams.Builder.setSkuDetailsList`. None appear anywhere under `android/src`. `PurchaseHistoryRecord`, which `Translator.kt` still imports, survives into 9.1.0.
    
    **Deprecation.** `SubscriptionUpdateParams.Builder.setSubscriptionReplacementMode` is deprecated as of 8.1.0 but remains functional in 9.x. Because the example builds the plugin with `-Xlint:all -Werror`, this breaks the build, so it is suppressed with an explanatory comment rather than migrated. Migrating to `SubscriptionProductReplacementParams` is not a drop-in change: it renumbered the replacement mode constants, which would alter the values carried by the Dart `ReplacementMode` enum. That belongs in its own breaking change.
    
    **Behaviour change reaching clients.** Under v9, a Play Store blocked by the system (for example OEM-customized kids mode) reports `BILLING_UNAVAILABLE` instead of `ERROR`. The plugin maps response codes 1:1 and branches on neither value, so no plugin code changes; but apps that branch on the code, or match on the stringified code in `IAPError.message`, are affected. This is called out in the CHANGELOG.
    
    Also corrects the documentation for `BillingResponse.billingUnavailable` (described the legacy "billing API version not supported" meaning) and `BillingResponse.serviceUnavailable` (described a network outage, which is what `networkError` means).
    
    This supersedes #12414, the Dependabot version-only bump, which does not include the required `minSdk` change and therefore does not build.
    
    ## Testing
    
    Automated: all existing Dart and native unit tests pass against 9.1.0, and the example app builds.
    
    Manual, against a real Play Console app running this branch with billing 9.1.0:
    - product queries (`queryProductDetails`) return the expected products, prices and offers
    - restoring past purchases works
    
    Not exercised manually: the subscription replacement path (`setSubscriptionReplacementMode`), which is the deprecated call suppressed in this PR, and consumable purchase/consumption. Flagging that explicitly since it is the least-covered part of this change — note also that the plugin's unit tests mock `BillingClient` entirely, so none of them exercise the real library at runtime.
    
    Fixes flutter/flutter#189974
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    **Test exemption:** this is a manual dependency roll, which Tree Hygiene lists as *not* automatically exempt, so I am requesting one explicitly. The plugin's behaviour is unchanged: response codes are passed through 1:1 (`Translator.kt` -> pigeon -> `pigeon_converters.dart`), and no branch in the plugin keys on `error` or `billingUnavailable`. The one user-visible change originates in Google's library, not in plugin code, and so cannot be exercised by a plugin test. Happy to add tests if a reviewer sees a seam I have missed.
    
    **On the deprecation suppression:** if the team would rather take the breaking `SubscriptionProductReplacementParams` migration now instead of suppressing, I am glad to do that here or in a follow-up — say which you prefer.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    DL3KB authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    8b1b579 View commit details
    Browse the repository at this point in the history
  3. [material_ui] Unskip web tests that pass on CanvasKit and Skwasm: col…

    …or_scheme_test, elevated_button_test, filled_button_test, icon_button_test (#13327)
    
    Removes the `skip: isBrowser` from the text-contrast accessibility guideline tests in `color_scheme_test.dart`, `elevated_button_test.dart`, `filled_button_test.dart`, and `icon_button_test.dart`. These tests were skipped on the web because `meetsGuideline(textContrastGuideline)` used to throw there, but they now pass on Chrome under both CI web renderers (CanvasKit via dart2js and Skwasm via `--wasm`). Keeping them skipped hides web regressions. The rest of the diff is the formatter re-wrapping the `testWidgets` calls now that the `skip:` argument is gone.
    
    Part of flutter/flutter#44115
    
    This is a test-only change, so no version or CHANGELOG update is needed.
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    harryterkelsen authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    e516d3a View commit details
    Browse the repository at this point in the history
  4. [camera_avfoundation] Fix Swift analyzer issue _captureSessionQueue (#…

    …13332)
    
    This wasn't showing up in CI due to flutter/flutter#194517.
    
    Fixes flutter/flutter#194766
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    jmagman authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    6fcf4b7 View commit details
    Browse the repository at this point in the history
  5. [in_app_purchase_storekit] Suppress StoreKit 1 deprecation warnings (#…

    …13301)
    
    StoreKit 1 is intentionally used as the fallback on iOS < 15 and macOS < 12. With `SWIFT_TREAT_WARNINGS_AS_ERRORS` enabled, the in_app_purchase_storekit_objc module is built with -Werror, so the iOS 18 deprecations of StoreKit1 in the public headers fail the build. Wrap the StoreKit 1 ObjC sources in -Wdeprecated-declarations suppression.
    
    Also wrap deprecated `Locale.currencyCode` in availability.
    
    This wasn't showing up in CI due to flutter/flutter#194517.
    
    Fixes flutter/flutter#170442
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    jmagman authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    dbb784d View commit details
    Browse the repository at this point in the history
  6. [shared_preferences_android] Update androidx.datastore:datastore to 1…

    ….2.1 (#13334)
    
    Update androidx.datastore deps for 16kb page size
    
    Fixes: flutter/flutter#194699
    
    ## Pre-Review Checklist
    mboetger authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    b7efc36 View commit details
    Browse the repository at this point in the history
  7. [file_selector_macos] Drop deprecated allowedFileTypes code path (#13302

    )
    
    Update to Flutter 3.47 which also picks up the macOS 12 minimum. Remove old availability checks.
    Delete the `forceLegacyTypes` codepath.
    
    This wasn't showing up in CI due to flutter/flutter#194517.
    
    Fixes flutter/flutter#194573
    
    ## Pre-Review Checklist
    
    **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    jmagman authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    f2c6798 View commit details
    Browse the repository at this point in the history
  8. [vector_graphics] Don't report a handled loading error as unhandled (#…

    …13315)
    
    `_VectorGraphicWidgetState._loadPicture` registers `result.whenComplete(...)` to clear `_pendingPictures`, and drops the future that `whenComplete` returns. That future completes with `result`'s error and nothing listens to it, so every asynchronous loading failure — an asset whose fetch fails on web when the network drops, for instance — is reported to the zone as unhandled, even though `_loadAssetBytes` catches the same error and `errorBuilder` shows it. Crash reporters record these as fatal.
    
    The dropped future is now `.ignore()`d. `result` itself is unchanged, so `_loadAssetBytes` still sees the error and shows `errorBuilder` as before.
    
    The existing `can handle errors from bytes loader` test didn't catch this because its loader throws synchronously, before `whenComplete` is reached. The new test uses a loader whose `loadBytes` is `async`; it fails without the fix with the `UnimplementedError` reported by the test framework.
    
    Fixes flutter/flutter#194705.
    
    ## Pre-Review Checklist
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    mtallenca authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    efedf51 View commit details
    Browse the repository at this point in the history
  9. [pigeon] fix instance manager test flake (#13303)

    hopefully this solves the problem with this test.
    tarrinneal authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    5d26c9b View commit details
    Browse the repository at this point in the history
  10. [go_router_builder] Adopt shared analyzer helpers from source_helper:…

    … ^1.4.0 (#13337)
    
    Fixes flutter/flutter#194817
    
    Adopts shared analyzer helpers published in [`package:source_helper` `1.4.0`](google/source_helper.dart#78) to replace local copies in `go_router_builder`:
    
    - Bumps `source_helper` constraint to `^1.4.0` and `go_router_builder` to `4.5.2`.
    - Replaces local `ExecutableElement.qualifiedName`, `withoutNullability` / `_isNullableType`, and `isEnumConstant` filtering across `type_helpers.dart`, `route_config.dart`, and `go_router_generator.dart` with `ExecutableElement.qualifiedName`, `DartType.toStringNonNullable()`, and `DartType.enumConstants` from `package:source_helper/source_helper.dart`.
    
    Pure internal deduplication; generated code is unchanged (`tool/run_tests.dart` and `example/test/ensure_build_test.dart` pass with zero diffs).
    
    ## Pre-Review Checklist
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    kevmoo authored Oct 19, 2026
    Configuration menu
    Copy the full SHA
    ef6ad7b View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2026

  1. [pigeon] add version checking for objective_c and jni dependencies (#…

    …13283)
    
    To avoid surprising build errors
    tarrinneal authored Oct 20, 2026
    Configuration menu
    Copy the full SHA
    618afba View commit details
    Browse the repository at this point in the history
Loading