Skip to content

[shared_preferences] Updates Pigeon to 30.0.1 to support multi-engine registration and deregistration. - #13617

Merged
auto-submit[bot] merged 6 commits into
flutter:mainfrom
tarrinneal:shared-preferences-pigeon-30
Nov 11, 2026
Merged

auto-submit[bot] merged 6 commits into
flutter:mainfrom
tarrinneal:shared-preferences-pigeon-30

Conversation

@tarrinneal

@tarrinneal tarrinneal commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Updates shared_preferences_android and shared_preferences_foundation to Pigeon 30.0.1 and jni ^1.1.1.

  • Supports multi-engine registration and deregistration.
  • Removes the manual web stub/real FFI export and R8 consumer rules workarounds.

fixes flutter/flutter#194920

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Nov 11, 2026
@tarrinneal tarrinneal changed the title [shared_preferences] update to pigeon 30 [shared_preferences] Updates Pigeon to 30.0.0 to support multi-engine registration and deregistration. Nov 11, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the shared_preferences Android and iOS/macOS implementations to use Pigeon 30.0.0, enabling support for multi-engine registration and deregistration. The changes modify plugin setup and teardown lifecycles to tie registrations to specific Flutter engine bindings, preventing secondary engine detachment from clearing primary engine APIs. Additionally, corresponding unit and integration tests have been added to verify this behavior. Feedback on the changes suggests removing a redundant runBlocking coroutine builder in the Android tests and replacing unimported assertTrue calls with standard JUnit assertions to avoid compilation errors and improve test robustness.

@tarrinneal tarrinneal changed the title [shared_preferences] Updates Pigeon to 30.0.0 to support multi-engine registration and deregistration. [shared_preferences] Updates Pigeon to 30.0.1 to support multi-engine registration and deregistration. Nov 11, 2026

@stuartmorgan stuartmorgan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unsolicited review since I saw it go by and thought you might want a quick turnaround on feedback 🙂 Adoption of the new API surface all looks good to me.

flutterPluginBinding = Mockito.mock(FlutterPluginBinding::class.java)

Mockito.`when`(flutterPluginBinding.applicationContext).thenReturn(context)
Mockito.`when`(flutterPluginBinding.binaryMessenger)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(There's a library to simplify all the mockito stuff in Kotlin that I've pulled into several of the plugins whose tests I converted; I've made a note to myself follow up and simplify the tests in this plugin later so there's not so much boilerplate and ::class.java and such.)

@tarrinneal tarrinneal added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 11, 2026
@auto-submit
auto-submit Bot merged commit 7729836 into flutter:main Nov 11, 2026
12 checks passed
opensource-fork-sync Bot pushed a commit to cla7aye15I4nd/opensource-flutter__flutter that referenced this pull request Nov 11, 2026
…er#196381)

flutter/packages@08faf64...653628e

2026-11-11 [email protected] Roll Flutter from
fffd8c2 to b98afb5 (31 revisions) (flutter/packages#13623)
2026-11-11 [email protected] [material_ui] Document how to
programmatically clear DropdownMenu selection (flutter/packages#13266)
2026-11-11 [email protected] [pigeon] Fix basePath resolution when
paths share a string prefix with basePath (flutter/packages#13342)
2026-11-11 [email protected]
[cupertino_ui] Fix CupertinoSheetRoute throwing when a drag ends during
a pending relayout (flutter/packages#13316)
2026-11-11 [email protected] [shared_preferences] Updates Pigeon to
30.0.1 to support multi-engine registration and deregistration.
(flutter/packages#13617)
2026-11-11 [email protected]
[vector_graphics] Catch any throwable in useHtmlRenderObject() and cache
HTML fallback (flutter/packages#13545)
2026-11-11 [email protected] [cupertino_ui]
Include selectionHandleColor in NoDefaultCupertinoThemeData equality
(flutter/packages#13450)
2026-11-11 [email protected] [flutter_svg] Remove failed async loads
from Cache._pending (flutter/packages#13604)
2026-11-11 [email protected] [pigeon] Adds Native Interop FFI codec
serialization for NS types (flutter/packages#13616)
2026-11-10 [email protected] [pigeon] Support multi-engine Native
Interop registration and instance-aware unregistration
(flutter/packages#13576)
2026-11-10 [email protected] [image_picker_ios] Convert the
iOS example app and UI tests to Swift (flutter/packages#13570)
2026-11-10 [email protected]
[cupertino_ui] Localize CupertinoActionSheet semantics label
(flutter/packages#13377)
2026-11-10 [email protected] [camera_android]
Fix stopVideoRecording returning JPEG when takePicture runs during
recording (flutter/packages#13070)
2026-11-10 [email protected] [google_sign_in_android] Rename keep.xml
to google_sign_in_keep.xml (flutter/packages#13475)
2026-11-10 [email protected] [web_benchmarks] Fix benchmark stalling
when only repainting views that are dirty (flutter/packages#13089)
2026-11-10 [email protected] Roll Flutter from
d463821 to fffd8c2 (21 revisions) (flutter/packages#13614)

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[shared_preferences_android] Detaching a background engine unregisters the API used by the main engine

2 participants