[composable toolbar] Crash when tapping on a trending / recent searches result
Categories
(Firefox for Android :: Crash Reporting, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox142 | --- | unaffected |
| firefox143 | --- | unaffected |
| firefox144 | + | verified |
People
(Reporter: mlobontiuroman, Assigned: petru)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Crash Data
Attachments
(1 file)
|
6.56 MB,
video/mp4
|
Details |
Precondition
Have VPN set to US.
Steps to reproduce
- Enable Trending searches, Recent searches, and Composable toolbar from Secret settings.
- Open a website.
- After it is fully loaded, tap on the toolbar.
- The recent searches and trending searches are displayed.
- Tap on one of the displayed results.
Expected behavior
The selected search is opened in the same tab.
Actual behavior
Firefox for Android Nightly crashes.
Device information
- Firefox version: Nightly 144.0a1 from 8/24
- Android device: Samsung Galaxy S24 (Android 15)
- NOT reproducible when composable toolbar is disabled.
- Not reproducible on an OnePlus5 (Android 10).
Any additional information?
05779588-00c4-4415-b72b-7416b694698f
java.lang.IllegalArgumentException: performMeasureAndLayout called during measure layout
- New Sentry Instance: https://sentry.io/organizations/mozilla/issues/?project=6295546&query=f760505456fe4eceab396ee238787ec3
- Socorro: https://crash-stats.mozilla.org/report/index/bp-32cf1e6c-90bb-4d5f-a394-94db20250825
at androidx.compose.ui.internal.InlineClassHelperKt.throwIllegalArgumentException(InlineClassHelper.kt:3)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout-0kLqBqw(MeasureAndLayoutDelegate.kt:51)
at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout-0kLqBqw(AndroidComposeView.android.kt:8)
at androidx.compose.ui.node.LayoutNode.forceRemeasure(LayoutNode.kt:39)
at androidx.compose.foundation.lazy.layout.LazyLayoutBeyondBoundsModifierNode.layout-o7g1Pn8(LazyLayoutBeyondBoundsModifierLocal.kt:178)
at androidx.compose.ui.focus.BeyondBoundsLayoutKt.searchBeyondBounds--OM-vw8(BeyondBoundsLayout.kt:191)
at androidx.compose.ui.focus.TwoDimensionalFocusSearchKt.generateAndSearchChildren-4C6V_qg(TwoDimensionalFocusSearch.kt:30)
at androidx.compose.ui.focus.TwoDimensionalFocusSearchKt.searchChildren-4C6V_qg(TwoDimensionalFocusSearch.kt:184)
at androidx.compose.ui.focus.TwoDimensionalFocusSearchKt.generateAndSearchChildren-4C6V_qg(TwoDimensionalFocusSearch.kt:1)
at androidx.compose.ui.focus.TwoDimensionalFocusSearchKt.twoDimensionalFocusSearch-sMXa3k8(TwoDimensionalFocusSearch.kt:145)
at androidx.compose.ui.focus.FocusOwnerImpl.focusSearch-ULY8qGw(FocusOwnerImpl.kt:290)
at androidx.compose.ui.platform.AndroidComposeView.getFocusedRect(AndroidComposeView.android.kt:48)
at android.view.FocusFinder.findNextFocusInAbsoluteDirection(FocusFinder.java:374)
at android.view.FocusFinder.findNextFocus(FocusFinder.java:268)
at android.view.FocusFinder.findNextFocus(FocusFinder.java:110)
at android.view.FocusFinder.findNextFocus(FocusFinder.java:80)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1087)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at androidx.compose.ui.platform.AndroidComposeView.focusSearch(AndroidComposeView.android.kt:118)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.ViewGroup.focusSearch(ViewGroup.java:1089)
at android.view.View.focusSearch(View.java:14957)
at android.widget.TextView.hasEditorInFocusSearchDirection(TextView.java:10639)
at android.widget.TextView.onCreateInputConnection(TextView.java:10662)
at androidx.appcompat.widget.AppCompatEditText.onCreateInputConnection(AppCompatEditText.java:1)
at mozilla.components.ui.autocomplete.InlineAutocompleteEditText.onCreateInputConnection(InlineAutocompleteEditText.kt:6)
at android.view.inputmethod.InputMethodManager.createInputConnection(InputMethodManager.java:5318)
at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:3377)
at android.view.inputmethod.InputMethodManager.restartInput(InputMethodManager.java:3213)
at mozilla.components.ui.autocomplete.InlineAutocompleteEditText.restartInput(InlineAutocompleteEditText.kt:7)
at mozilla.components.ui.autocomplete.InlineAutocompleteEditText.onFocusChanged(InlineAutocompleteEditText.kt:38)
at android.view.View.clearFocusInternal(View.java:8986)
at android.view.View.layout(View.java:26778)
at androidx.compose.ui.viewinterop.AndroidViewHolder.onLayout(AndroidViewHolder.android.kt:6)
at android.view.View.layout(View.java:26738)
at android.view.ViewGroup.layout(ViewGroup.java:6815)
at androidx.compose.ui.viewinterop.AndroidViewHolder_androidKt.access$layoutAccordingTo(AndroidViewHolder.android.kt:49)
at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$5$measure$2.invoke(AndroidViewHolder.android.kt:7)
at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:7)
at androidx.compose.ui.node.MeasurePassDelegate$layoutChildrenBlock$1.invoke(MeasurePassDelegate.kt:93)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:51)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:57)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:130)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:3)
at androidx.compose.ui.node.MeasurePassDelegate.layoutChildren(MeasurePassDelegate.kt:107)
at androidx.compose.ui.node.MeasurePassDelegate.onNodePlaced$ui_release(MeasurePassDelegate.kt:128)
at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:12)
at androidx.compose.ui.node.MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(MeasurePassDelegate.kt:80)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:109)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:57)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:130)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:3)
at androidx.compose.ui.node.MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(MeasurePassDelegate.kt:87)
at androidx.compose.ui.node.LayoutNode.replace$ui_release(LayoutNode.kt:43)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:199)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:143)
at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:34)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:15)
at android.view.View.draw(View.java:26151)
at android.view.View.updateDisplayListIfDirty(View.java:24988)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4768)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4740)
at android.view.View.updateDisplayListIfDirty(View.java:24932)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:737)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:743)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:841)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:6755)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:6372)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:5282)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3708)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:12542)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1751)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1760)
at android.view.Choreographer.doCallbacks(Choreographer.java:1216)
at android.view.Choreographer.doFrame(Choreographer.java:1142)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1707)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:9634)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)```
Updated•11 months ago
|
| Assignee | ||
Comment 3•11 months ago
|
||
This is to be fixed by the patch from bug 1984981.
Comment 4•11 months ago
|
||
(In reply to Petru-Mugurel Lingurar [:petru] from comment #3)
This is to be fixed by the patch from bug 1984981.
Mira, once the patch from Bug 1984981 is available in a build, could you confirm?
Comment 5•11 months ago
|
||
The bug is marked as tracked for firefox144 (nightly). However, the bug still isn't assigned.
:royang, could you please find an assignee for this tracked bug? Given that it is a regression and we know the cause, we could also simply backout the regressor. If you disagree with the tracking decision, please talk with the release managers.
For more information, please visit BugBot documentation.
| Assignee | ||
Updated•11 months ago
|
| Reporter | ||
Comment 6•11 months ago
|
||
Verified as fixed on the Firefox for Android 144.0a1 from 8/26 using a Samsung Galaxy S24 (Android 15) device.
Updated•11 months ago
|
| Reporter | ||
Updated•11 months ago
|
Description
•