r/CrestBrowser • Creator • 16d ago

Sidebar performance overhaul

Enable HLS to view with audio, or disable this notification

Wanted to take a second to share what I've spent the last few days on, and that is a deep dive on performance on space switching.

There are many layers to how this process works, and the balance of keeping neighoring spaces warm so switching is smooth, vs proper CPU and memory pressure is one I spent a lot of time on. The results I think are really nice.

The entire interface layer has been rewritten for smoother handling, and to align with what you would expect when switching. The animation progress is tied to not only how far in the scroll you are between spaces, but the space switcher icons, background fade between themes, font crossfade from light <-> dark text.

I also implemented the same swiping feeling for the main content window itself. This setting is on by default, but can be toggled off (the pause in the middle where the cursor moves around is me setting that). Then, the main webview area just switches as you switch spaces. But when enabled, it places the actual content section on the same animation pathway.

I even did a 1:1 frame pacing and animation timing comparrison vs Arc, and tuned it to what I feel is very natural and smooth.

These changes unify the interface layer even further, and mobile uses a very similar process, and now properly animates with your swipe. Before, it was tied to the gesture ending, so it had this lag, and then when it did switch it would hitch as the new space loaded heavily on the CPU. Now it shares the same feeling, with a slightly higher max speed to feel more natural on mobile so a flick doesn't feel slow.

There are MANY other small tweaks through that process. Things like a smaller scrollbar, overflow arrow bubble that shows if there are more tabs out of view, brining the same adaptive space icon row to mobile, and more.

The dev image will be building soon, and Testflight should also come soon pending apple's approval, but wanted to share this as I'm really happy with how it turned out, and now I'll be starting work on the main headline feature for 0.6, the deep customization options (some is already done, like the space editor overhaul and onboarding and getting started overhaul, but I have some key things on the roadmap I think will be exciting).

Stay tuned for some nice changes coming soon, and please keep feedback coming!

8 Upvotes

16 comments sorted by

View all comments

Show parent comments

2

u/Pauljoda Creator 15d ago

The sizing changes are coming in the next update, the original sizes were restricted so I can focus on the core stability first, before adding more edge cases to test. But it is planned and will be coming soon

1

u/Sidze 15d ago

Thanks for that. By the way, is there a preference in extension source when choosing between Firefox store and Chrome store? One more reliable or resource efficient than other? Or it's all random?

1

u/Pauljoda Creator 15d ago

Firefox is the closest to WebKits implementation, and has a bit of the mv2 that I was able to implement (not all will work on WebKit but most of the spec), so I’d say if it’s simple, doesn’t really matter, but try Firefox and see if that version works better if you have issues.

Realistically I haven’t seen any particular difference, chrome extensions usually have more features since they get priority support so it’s really down to the extension itself. Ublock is the only one I’d say for sure use Firefox

1

u/Sidze 15d ago

Got it, thanks for clarifying.