Skip to content

Fix stalled-subframe screenshot stall and the TLS reject fixture - #86

Open
kblok wants to merge 2 commits into
mainfrom
fix/ci-flakes
Open

kblok wants to merge 2 commits into
mainfrom
fix/ci-flakes

Conversation

@kblok

@kblok kblok commented Oct 6, 2026

Copy link
Copy Markdown
Member

A screenshot of a page whose iframe navigation is stalled took about 11 seconds. Style injection, caret hiding and their cleanup each waited up to 5 seconds for the stalled frame to get an execution context. On busy Windows runners that window ended with the target closed, which is how ShouldWorkWhenSubframeHasStalledNavigation failed on main. Upstream decorates frames with nonStallingEvaluateInExistingContext, so child frames without a live context are now skipped and the test runs in about 1 second.

The fixture behind BrowserShouldNotHangOnTlsErrorsDuringTls12Handshake set both ServerCertificate and ServerCertificateSelectionCallback. SslStream rejects that combination before it reads anything, so the server dropped every connection at accept time. The upstream server fails later, from its SNI callback, after the ClientHello arrives. The fixture now does the same. This fixes a real difference from upstream, but I could not reproduce the CI hang on a warm Linux machine, so this change alone may not make the ubuntu shard green.

🤖 Generated with Claude Code

kblok and others added 2 commits October 6, 2026 03:49
A stalled subframe navigation leaves the iframe without an execution
context. Style injection, caret hiding and their cleanup each waited
up to 5 s for that context, so a screenshot took ~11 s and on loaded
Windows runners ran into the target being closed. Upstream uses
nonStallingEvaluateInExistingContext for these steps; match that by
skipping child frames that have no existing context.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SNI-reject server set both ServerCertificate and
ServerCertificateSelectionCallback. SslStream rejects that combination
with InvalidOperationException before it reads anything, so the server
closed every connection right after accept instead of failing the
handshake from the SNI callback the way the upstream tls.createServer
fixture does. Drop the certificate so the throwing callback runs after
the ClientHello arrives.

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

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant