Bugfix FXIOS-14985 Status bar overlay is strangely animated when we start a search#33046
Draft
MartinP7r wants to merge 2 commits intomozilla-mobile:mainfrom
Draft
Bugfix FXIOS-14985 Status bar overlay is strangely animated when we start a search#33046MartinP7r wants to merge 2 commits intomozilla-mobile:mainfrom
MartinP7r wants to merge 2 commits intomozilla-mobile:mainfrom
Conversation
…ontext leak into toolbar display Wrap updateToolbarDisplay() and updateBlurViews()/addOrUpdateMaskViewIfNeeded() in UIView.performWithoutAnimation within keyboard show/hide handlers. The keyboard's animation curve (curve 7) creates a per-thread CATransaction that captures subsequent property changes, causing a visible left-to-right fill artifact in the status bar overlay's UIGlassEffect on iOS 26+.
🧹 Tidy commitJust 1 file(s) touched. Thanks for keeping it clean and review-friendly! 💬 Description craftsmanGreat PR description! Reviewers salute you 🫡 🦊 BrowserViewController CheckWe’re tracking the size of
✅ New file code coverageNo new file detected so code coverage gate wasn't ran. Client.app: Coverage: 39.42
Generated by 🚫 Danger Swift against 26fd4dd |
yoanarios
reviewed
Apr 14, 2026
| // from leaking into updateToolbarDisplay. Without this, the keyboard's | ||
| // animation curve captures property changes on the status bar overlay and | ||
| // blur views, causing a visible left-to-right fill artifact with UIGlassEffect | ||
| // on iOS 26+. (See: https://github.com/nickmilo/firefox-ios/issues/32283) |
Contributor
There was a problem hiding this comment.
nit: The link leads to a page not found 404 so I suggest to remove it
Suggested change
| // on iOS 26+. (See: https://github.com/nickmilo/firefox-ios/issues/32283) | |
| // on iOS 26+. |
yoanarios
approved these changes
Apr 14, 2026
Contributor
yoanarios
left a comment
There was a problem hiding this comment.
Thank you for the contribution, tested and I can't reproduce the issue and I couldn't find other bugs just waiting on a nit
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.
📜 Tickets
Jira ticket
Github issue
💡 Description
Fixes the status bar overlay animation artifact that appears when starting a search on iOS 26+.
Root cause: In
keyboardWillShowWithState, after theUIView.animateblock runs with the keyboard's animation curve (curve 7), subsequent calls toupdateToolbarDisplay()get captured by the keyboard's per-threadCATransaction. This causes property changes on the status bar overlay and blur views (UIGlassEffect) to animate with the keyboard's timing, producing a visible left-to-right fill artifact in the status bar area.Fix: Wrap
updateToolbarDisplay()inUIView.performWithoutAnimationwithinkeyboardWillShowWithState, and similarly wrapupdateBlurViews()/addOrUpdateMaskViewIfNeeded()inkeyboardWillHideWithState. This breaks the leaked animation context so toolbar display updates happen instantly.Affected code paths:
BrowserViewController.keyboardHelper(_:keyboardWillShowWithState:)— wrapsupdateToolbarDisplay()BrowserViewController.keyboardHelper(_:keyboardWillHideWithState:)— wrapsupdateBlurViews()+addOrUpdateMaskViewIfNeeded()🎥 Demos
📝 Checklist