Steps to reproduce:
Orion frequently freezes/locks up in the main thread (UI thread) whenever Orion tries to load some resource-heavy site that does not have the resources cached up, and e.g. doesn't allow switching tabs or scrolling a site from another window until the loading site finishes loading some resource that locked up the UI thread.
I do not have a reliable reproduction strategy, mostly because this seems to be related to how DNS host logs are cached; hence the freezing is not deterministic, but loading the site https://retilog.tistory.com/76 for the first time (or after a long time passed since the last visit) does lock up the browser for a short time. (ref: https://discord.com/channels/802933355603034132/802933355603034135/1076117844569370644)
A more reliable reproduction was to just load a bunch of random tabs in a short amount of time; usually a tab or two causes the whole browser to freeze. A sample video from that strategy is attached below. I would like to mention that the lock up is not caused by opening multiple websites at once; it also happens when just opening exactly one link as a separate tab, and boom the whole browser freezes up.
I have not tried Compatibility mode, however this happens without any extensions; I have not tested without content blockers (though if that would be helpful, I can try).
I have attached multiple samples below that were taken when Orion has freezed; it seems that Orion is inadvertently resolving DNS hosts (via CFHostStartResolution
) in the main thread while trying to intercept WebKit resources through delegate methods. (ref: https://discord.com/channels/802933355603034132/802933355603034135/1089491978267406437)
Safari does not exhibit similar behavior; while individual websites can be unresponsive, Safari's UI thread does not lock up because one website is loading.
Expected behavior:
Orion's UI thread must not freeze irrelevant to whether individual sites are loading or not. It should allow users to switch tabs until the current website has finished loading, instead of beachballing.
Orion, OS version; hardware type:
My current Orion version is v0.99.125 (WebKit 616.1.22), though I have experienced this behavior since at least v0.99.123.3 (WebKit 615.1.16.1), and possibly before. My Discord chat seems to indicate that this was a regression from since v0.99.123.1 (ref: https://discord.com/channels/802933355603034132/802933355603034135/1075810725840293918), and I clearly remember that this was not a problem before.
My Mac is an MBP 14 with Apple M1 Max and 32GB of RAM, running macOS Ventura 13.5 (build 22G74), though I have experienced this behavior with an MBA 13 with Apple M2 and 16GB of RAM, running macOS Ventura 13.4 as well.
Image/Video:
The beachballing unfortunately does not show up in the screen captures, but you can see them when you see that the tab shade does not follow the cursor. Notice 16s ~ 30s and 40s ~ 55s, 1m 08s ~ 1m 30s where the cursor was beachballing (though it does not show through the video).
Below are two sample files.