Repository navigation
[google_maps_flutter_web] Avoid replacing advanced marker content on move - #11952
Merged
auto-submit[bot] merged 2 commits intoSep 8, 2026
Conversation
Gibbo97
force-pushed
the
AdvancedMarker-with-BitmapDescriptor.bytes-flickers
branch
from
August 26, 2026 21:43
7bb26ca to
c55c9d9
Compare
Gibbo97
marked this pull request as ready for review
August 26, 2026 21:50
Contributor
There was a problem hiding this comment.
Code Review
This pull request resolves a flickering issue for byte-backed advanced markers on the web platform by caching marker configurations and conditionally updating marker content only when properties like alpha, visibility, rotation, or icon configuration change. Tests have been added to verify this behavior. The review feedback suggests optimizing the configuration matching logic by caching the BitmapDescriptor instance and performing an identity check first to avoid expensive serialization and deep equality checks on unchanged icons.
Gibbo97
force-pushed
the
AdvancedMarker-with-BitmapDescriptor.bytes-flickers
branch
from
August 26, 2026 22:09
c55c9d9 to
ac6e821
Compare
mdebbar
approved these changes
Sep 2, 2026
mdebbar
left a comment
Contributor
There was a problem hiding this comment.
Looks good to me, thanks for the fix!
flutter-zl
self-requested a review
September 8, 2026 20:57
flutter-zl
approved these changes
Sep 8, 2026
pull Bot
pushed a commit
to Mattlk13/flutter
that referenced
this pull request
Sep 9, 2026
…er#192485) flutter/packages@9af9c60...36e088a 2026-09-09 daniel.leon@cloudsufi.com [quick_actions] Adopt code-excerpts for README (flutter/packages#12643) 2026-09-08 65155920+0xharkirat@users.noreply.github.com [camera_web] Fix TypeError when reading the torch capability (flutter/packages#12647) 2026-09-08 gibbonsj97@gmail.com [google_maps_flutter_web] Avoid replacing advanced marker content on move (flutter/packages#11952) 2026-09-08 mit@google.com [material_ui][cupertino_ui] Change issue tracker label in pubspec.yaml (flutter/packages#12792) 2026-09-08 saurabhmirajkar000@gmail.com [material_ui] Fix FilledButton Material 3 default style docs (flutter/packages#12620) 2026-09-08 21270878+elliette@users.noreply.github.com [infra] Use a modified no-response workflow in flutter/packages (flutter/packages#12745) 2026-09-08 21270878+elliette@users.noreply.github.com [material_ui] Migrate M3 Banner template to use new gen_defaults (flutter/packages#12734) 2026-09-08 engine-flutter-autoroll@skia.org Roll Flutter from 63170e9 to b444e78 (13 revisions) (flutter/packages#12791) 2026-09-08 fluttergithubbot@gmail.com Sync release-go_router-18.0.1 to main (flutter/packages#12725) 2026-09-08 fluttergithubbot@gmail.com Sync release-material_ui-1.1.1 to main (flutter/packages#12726) 2026-09-08 stuartmorgan@google.com [tool] Adopt `platform` 3.2.0 (flutter/packages#12789) 2026-09-07 50643541+Mairramer@users.noreply.github.com [material_ui] Fix SliverGeometry maxPaintExtent assertion in CarouselView.weighted (flutter/packages#12563) 2026-09-05 engine-flutter-autoroll@skia.org Roll Flutter from 5a6cfa7 to 63170e9 (15 revisions) (flutter/packages#12767) 2026-09-04 engine-flutter-autoroll@skia.org Manual roll Flutter from 70797e1 to 5a6cfa7 (52 revisions) (flutter/packages#12760) 2026-09-04 brackenavaron@gmail.com [material_ui] port drawer tests over from flutter/widgets (flutter/packages#12711) 2026-09-04 tarrinneal@gmail.com add cooldown (flutter/packages#12708) 2026-09-04 joeldumasbg@gmail.com [in_app_purchase] Support StoreKit 2 introductory offer eligibility JWS (flutter/packages#12584) 2026-09-04 21270878+elliette@users.noreply.github.com [material_ui] Migrate M3 Badge template to use new gen_defaults (flutter/packages#12733) 2026-09-04 stuartmorgan@google.com [google_maps_flutter] Convert heatmap controller to Swift (flutter/packages#12713) 2026-09-04 97480502+b-luk@users.noreply.github.com [material_ui] Remove unused `maintainState` constructor parameter in `scaffold_test.dart` (flutter/packages#12754) 2026-09-04 a1rwulf@users.noreply.github.com [video_player_avfoundation] Route video over AirPlay (flutter/packages#12490) 2026-09-04 jerome.dellamaria@proton.me [google_fonts] Add google_fonts_lite file to allow tree-shaking of the other huge files (flutter/packages#11433) 2026-09-04 engine-flutter-autoroll@skia.org Roll Flutter from 0cbd1a4 to 70797e1 (27 revisions) (flutter/packages#12727) 2026-09-04 stuartmorgan@google.com Update Chrome for stable tests (flutter/packages#12747) 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 flutter-ecosystem@google.com 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
victorsanni
pushed a commit
to victorsanni/packages
that referenced
this pull request
Sep 9, 2026
…move (flutter#11952) ## Description Avoid replacing an `AdvancedMarkerElement`'s DOM content when a marker update changes only its position. Recreating byte-backed bitmap content produces a new blob-backed image node, which causes the marker to disappear or flicker while moving. The web implementation now tracks the marker properties that affect rendered content (icon configuration, alpha, visibility, and rotation). Position-only updates preserve the existing DOM node; visual changes still replace it. Fixes flutter/flutter#188291. ## Tests - Added web integration coverage for repeated position updates using both `BitmapDescriptor.bytes` and `BytesMapBitmap`. - Added coverage that visual configuration changes replace the content. - Ran formatting, analysis, Dart tests, package validation, and publish checks for `google_maps_flutter_web`. - Ran `advanced_markers_test.dart` through `flutter drive` in Chrome. ## 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.
victorsanni
pushed a commit
to victorsanni/packages
that referenced
this pull request
Sep 9, 2026
…move (flutter#11952) ## Description Avoid replacing an `AdvancedMarkerElement`'s DOM content when a marker update changes only its position. Recreating byte-backed bitmap content produces a new blob-backed image node, which causes the marker to disappear or flicker while moving. The web implementation now tracks the marker properties that affect rendered content (icon configuration, alpha, visibility, and rotation). Position-only updates preserve the existing DOM node; visual changes still replace it. Fixes flutter/flutter#188291. ## Tests - Added web integration coverage for repeated position updates using both `BitmapDescriptor.bytes` and `BytesMapBitmap`. - Added coverage that visual configuration changes replace the content. - Ran formatting, analysis, Dart tests, package validation, and publish checks for `google_maps_flutter_web`. - Ran `advanced_markers_test.dart` through `flutter drive` in Chrome. ## 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Avoid replacing an
AdvancedMarkerElement's DOM content when a marker update changes only its position. Recreating byte-backed bitmap content produces a new blob-backed image node, which causes the marker to disappear or flicker while moving.The web implementation now tracks the marker properties that affect rendered content (icon configuration, alpha, visibility, and rotation). Position-only updates preserve the existing DOM node; visual changes still replace it.
Fixes flutter/flutter#188291.
Tests
BitmapDescriptor.bytesandBytesMapBitmap.google_maps_flutter_web.advanced_markers_test.dartthroughflutter drivein Chrome.Pre-Review Checklist
[shared_preferences]///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot 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.Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2