Safari Private Browsing performance

Safari Private Browsing can make Wine-Assembly startup dramatically slower when its advanced tracking and fingerprinting protections are active. Bricks and Spider continue executing, but the page can look hung for roughly a minute.

The confirmed workaround is to choose View → Reload Reducing Privacy Protections in Safari for the affected page. A non-private window also avoids the issue. Apple documents this menu action for sites affected by Private Browsing protections in the Safari User Guide.

Observed trace

Measured on July 13, 2026 with Safari 26.4 in a real Private Window:

This rules out missing tail-call support and unavailable browser storage. Disabling tail calls merely divides the long native stall into many smaller stalls and is slower overall. The behavior is consistent with a WebKit Wasm warm-up/tiering problem under Private Browsing protections, but the probe cannot directly inspect WebKit's active execution tier.

Reproducing

Start the no-cache static server and event collector:

node tools/safari-private-probe-server.js

Then open the printed URL in an actual Safari Private Window:

http://127.0.0.1:8878/safari-private-probe.html

Keep the window active. The page tests Bricks and Spider with native tail-call dispatch and forced compatibility dispatch. It streams environment checks, phase changes, heartbeats, run-slice counts, EIP, yield reason, window state, logs, and sampled canvas output to the collector.

SafariDriver is not a substitute for this check: its clean automation window does not enable the same Private Browsing protections.

Engineering guidance