Skip to content

Uplift intermittent test fixes and crash fixes to 1.88.x#34361

Open
bbondy wants to merge 6 commits into1.88.xfrom
uplift_netzenbot_1.88.x
Open

Uplift intermittent test fixes and crash fixes to 1.88.x#34361
bbondy wants to merge 6 commits into1.88.xfrom
uplift_netzenbot_1.88.x

Conversation

@bbondy
Copy link
Member

@bbondy bbondy commented Mar 2, 2026

Uplift of #34198, #34336, #34338, #34285, #34364, #34365

Included PRs

Pre-approval checklist:

  • You have tested your change on Nightly.
  • This contains text which needs to be translated.
    • There are more than 7 days before the release.
    • I've notified folks in #l10n on Slack that translations are needed.
  • The PR milestones match the branch they are landing to.

Pre-merge checklist:

  • You have checked CI and the builds, lint, and tests all pass or are not related to your PR.

Post-merge checklist:

  • The associated issue milestone is set to the smallest version that the changes is landed on.

@bbondy bbondy requested a review from a team as a code owner March 2, 2026 18:43
@github-actions github-actions bot added the CI/run-upstream-tests Run upstream unit and browser tests on Linux and Windows (otherwise only on Linux) label Mar 2, 2026
netzenbot and others added 4 commits March 2, 2026 13:48
…ose (#34198)

Fix reentrancy crash in split view focus handling during tab close

On macOS, closing a split view detaches a web contents native view
which can synchronously trigger a focus change via AppKit first
responder transfer. This focus event propagates through
OnWebContentsFocused to ActivateTabAt(), but when called from within
CloseAllTabs() the TabStripModel reentrancy guard fires causing a
crash.

Guard WebContentsFocused to skip tab activation when closing_all()
is true, preventing the reentrancy violation.

Fixes brave/brave-browser#53121
…OverlaySettingViewIsShownForDocumentPip (#34336)

Disable Chromium test AutoPictureInPictureTabHelperBrowserTest.OverlaySettingViewIsShownForDocumentPip

This is an upstream Chromium test that crashes with a null pointer
dereference in ASAN builds. The root cause is a race condition where
ShowBubble() is deferred via PostTask in AddedToWidget(), so
auto_pip_setting_view_ may still be null when the test accesses it.

Upstream flake rate: 4.7% overall, 12-13% recently (LUCI Analysis).
Already disabled on Linux upstream since Nov 2023 (crbug.com/1500939).
Brave does not modify the PIP code paths involved.

Resolves brave/brave-browser#53185
…corded_VideoConferencingAllowOnce (#34338)

This Chromium test has a 10.9% upstream flake rate (111,249 verdicts in
LUCI Analysis). The crash is in upstream code (AutoPipSettingView::
OnButtonPressed) due to a race condition between PostTask-deferred
ShowBubble() and the test accessing the view before the posted task
runs. No Brave modifications exist for this code path.

Resolves brave/brave-browser#53186

Co-authored-by: Brian R. Bondy <netzen@gmail.com>
* Fix flaky BraveWalletSignMessageBrowserTest.SIWE test

The SIWE test sends two sign messages per iteration: one with matching
origin and one with a different origin ("www.a.com"). The second message
is rejected immediately by the provider, overwriting the global
signMessageResult variable with an error. After
NotifySignMessageRequestProcessed approves the first message, the test
immediately checked signMessageResult, but the mojo approval response
may not have been delivered to the renderer yet, so signMessageResult
still contained the rejection error.

Fix by replacing the immediate getSignMessageResult() check with a
Promise-based wait that polls until signMessageResult is a string
starting with "0x" (the signature). This is safe because both the
rejection and approval go through the same mojo interface, so the
rejection always arrives before the approval.

Resolves brave/brave-browser#53167

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

* Address review: fix same race condition in other sign message tests

Apply the same async polling pattern to UserApprovedRequest and
UserRejectedRequest tests, which had the same race condition of
calling getSignMessageResult() immediately after
NotifySignMessageRequestProcessed() without waiting for the mojo
response to arrive at the renderer.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@bbondy bbondy force-pushed the uplift_netzenbot_1.88.x branch from ecc9400 to a8d5fd1 Compare March 2, 2026 18:49
netzenbot and others added 2 commits March 2, 2026 14:08
…PromptResultRecorded_VideoConferencingAllowOnce (#34364)

Disable flaky Chromium test AutoPictureInPictureTabHelperBrowserTest.PromptResultRecorded_VideoConferencingAllowOnce

This is an upstream Chromium test with a 10.5% flake rate over 30 days
per LUCI Analysis. The crash is a null pointer dereference in
AutoPipSettingView::OnButtonPressed when the widget is destroyed before
the test can interact with the bubble view.

Brave does not modify any code in the auto picture-in-picture path.
Multiple other tests from the same test suite are already disabled in
the filter file for similar reasons.

Resolves brave/brave-browser#53277

Co-authored-by: Brian R. Bondy <netzen@gmail.com>
…xt (#34365)

This is an upstream Chromium test
(chrome/browser/extensions/api/runtime/runtime_apitest.cc) that crashes
with a segmentation fault on Linux x64 nightly builds (issue #53280).

The test is already disabled on Mac upstream (IS_MAC). Upstream LUCI
Analysis shows occasional failures in the android_browsertests variant
(1.4% flake rate, increasing to 5-6% in late February/March 2026),
while the browser_tests desktop variant shows 0.3% flake rate.

No Brave chromium_src overrides exist for ProcessManager, service
worker lifecycle, or the chrome.runtime.getContexts() API, so this
failure is not caused by Brave-specific modifications.

Another test from the same fixture (GetOffscreenDocumentContext) is
already disabled in this filter file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/run-upstream-tests Run upstream unit and browser tests on Linux and Windows (otherwise only on Linux)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants