From 40e05127bf673bf3bb5b7bd9dc681be85498eaca Mon Sep 17 00:00:00 2001 From: Serg Date: Tue, 14 Apr 2026 18:14:36 -0400 Subject: [PATCH] Revert "[Android] Initialize bottom controls synchronously to fix progress bar" (#35510) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revert "[Android] Initialize bottom controls synchronously to fix progress ba…" This reverts commit 5ba39ce79e307cd1ea625e82e9decb33f0e6fca8. --- .../chrome/browser/toolbar/BraveToolbarManager.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java index ec79b8fc547..8869eb91a5b 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java +++ b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java @@ -24,6 +24,8 @@ import org.chromium.base.supplier.NullableObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.SettableMonotonicObservableSupplier; import org.chromium.base.supplier.SettableNonNullObservableSupplier; +import org.chromium.base.task.PostTask; +import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.Nullable; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -322,7 +324,15 @@ public class BraveToolbarManager extends ToolbarManager return; } } - initBraveBottomControls(); + // Defer bottom controls inflation to avoid ANR from GPU contention + // during startup. All consumers null-check the coordinator supplier. + // The bottom toolbar starts with visibility="gone", so the one-frame + // delay is imperceptible to the user. Using makeCancelable ensures + // the task is auto-cancelled when mCallbackController.destroy() is + // called during Activity teardown, preventing use-after-destroy. + PostTask.postTask( + TaskTraits.UI_DEFAULT, + mCallbackController.makeCancelable(this::initBraveBottomControls)); } private void initBraveBottomControls() {