• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

optimizely / optimizely-flutter-sdk / 25125936947
87%

Build:
DEFAULT BRANCH: master
Ran 29 Apr 2026 06:17PM UTC
Jobs 1
Files 27
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Apr 2026 06:13PM UTC coverage: 87.157%. Remained the same
25125936947

push

github

web-flow
[FSSDK-12503] fix: guard static MethodChannel from multi-engine overwrite (#103)

* fix: guard static MethodChannel from multi-engine overwrite (Android)

When FirebaseMessaging.onBackgroundMessage (or any mechanism that creates
a second FlutterEngine) triggers onAttachedToEngine a second time, the
static channel was unconditionally overwritten. This caused notification
callbacks to route to the wrong engine, silently dropping them.

The fix adds an early return if channel is already set, and nulls the
channel in onDetachedFromEngine so re-attachment works after a real
detach.

Fixes FSSDK-12503

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: guard logger channel from multi-engine overwrite (Android)

Same root cause as the main channel fix — the static logger channel
could be overwritten by a second FlutterEngine. The setChannel guard
allows explicit null (cleanup) but prevents overwrite of an active
channel.

Fixes FSSDK-12503

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: guard static MethodChannel from multi-engine overwrite (iOS)

Same vulnerability as Android — if register(with:) were called twice
(e.g. by a second FlutterEngine), the static channel would be
overwritten. The fix adds an early return if channel is already set.

Fixes FSSDK-12503

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: guard logger channel from multi-engine overwrite (iOS)

Same pattern as the Android logger fix — prevents a second engine
from overwriting the active logger channel.

Fixes FSSDK-12503

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: split setChannel into setChannel/clearChannel for logger channels

Replace the compound null-guard logic with explicit setChannel (only sets
if no active channel) and clearChannel (always clears). This matches the
main plugin's pattern and makes intent immediately obvious.

Callers updated: onDetachedFromEngine now calls clearChannel() instead
of setChannel... (continued)

699 of 802 relevant lines covered (87.16%)

1.91 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25125936947.1 29 Apr 2026 06:17PM UTC 27
87.16
GitHub Action Run
Source Files on build 25125936947
  • Tree
  • List 27
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 9da67743 on github
  • Prev Build on master (#23555700124)
  • Next Build on master (#25166749102)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc