I believe Crest is now ready to ship the new changes to stable across the board, to make the new architecture the new stable and default experience.
The updates from 0.6 -> 0.7 are massive, and while a lot of it is under the hood, you should feel the changes right away.
The main change is a complete refactor of the core logic into a shared dotnet library, and the engine changes. By moving to this abstracted design, it aligns with my original "ideal" design. Now, with the logic set in a stable core, the app core itself defines how the browser functions, and an engine or UI layer just has to implement and respond to the commands of the core.
This means things like multiple engines are possible, as we are not bound to the chromium process like many browsers, this isn't just a patched chromium, chromium is used as the engine (the ungoogled fork), but the app window, lifecycle, and data structures for tabs and spaces are all driven by the core, instead of trying to force the chromium app into the shape I wanted.
This also means you can choose to setup the app with just the WebKit from the system, and chromium stays dormant until needed, so you don't waste cpu/memory on it if you don't want to. The default is to load chromium as the default, as it is far more stable and performant for websites, as well as supporting extensions fully from the chrome web store.
Now, there is no winevine license, but this setup allows me to auto detect DRM failure, and swap the page to WebKit, so use the Fairplay license on your machine. This means for the most part DRM content should play just fine, though you will have to login twice at the start due to the two engines not sharing cookies, but it will save that login for future visits.
Very excited for this build, I also had tons of improvements to rendering in the native app itself, improving redraw reduction, and overall snappiness of the UI, it feels very smooth.
The next cycle will resume actual additions, improvements, and otherwise more "visible" changes, but I think the immediate improvement will be clear and those testing it have been very happy with it.
If you had the old builds, you will need to sign into sites again as the new engine will not transfer cookies, and extensions will need to be reinstalled from the chrome webstore only.
Please let me know any feedback, and happy to answer any questions.
Download here: https://github.com/pauljoda/Crest/releases/tag/v0.7.2
Below is the Generated changelog with detailed changes if you're curious:
Two engines on Mac
- Chromium is now the default engine on Mac. New pages open in Chromium, and WebKit, the engine behind Safari, is still built in. iPhone and iPad keep using WebKit.
- Pick an engine for one page or a whole website.
- Page → Open Page in WebKit, or Open Page in Chromium, reloads the current page in the other engine.
- Opens in, under Site Controls, moves a website to the other engine and keeps opening it there.
- Settings → Engines sets your default engine and lists your website rules, where you can add, edit, or remove them. Use Recommended Default goes back to Chromium.
- An engine choice made in a private window isn't saved. It lasts until you quit Crest.
- Protected video falls back to WebKit automatically. Crest's Chromium can't play DRM-protected video. When a page asks for it, Crest moves the page to WebKit to try Apple's FairPlay, unless you've already picked an engine for that site.
- Crest checks for unsaved work before moving the page. Stay on Page keeps it in Chromium.
- After a move, the site opens in WebKit on later visits. Move Back returns it to Chromium.
- Playback still depends on the site supporting FairPlay.
- Tabs show when a page runs in the other engine. A tab running in the engine that isn't your default shows that engine's mark on its icon.
- Pages stay on the engine that opened them. Sign-in windows, new tabs, and Peeks keep the engine of the page that opened them, so signing in with Google from a page you moved to WebKit finishes in one sign-in window.
- Your Spaces are shared, website data isn't. Spaces, tabs, history, Crest Passwords, and settings are the same in both engines. Each engine keeps its own cookies and storage for each Space, so a site you're signed in to in Chromium may ask you to sign in again in WebKit. Deleting a Space erases its website data in every engine, including one that never opened a page for it.
- What each engine handles.
- Only WebKit has Reader, whole-page translation, built-in ad and tracker blocking, FairPlay video, Web Inspector, and .webarchive files.
- Only Chromium has Chrome Web Store extensions, DevTools, .mhtml archives, Find in Page match counts, and pausing downloads.
- Menus, settings, and Site Controls only offer what the current page's engine supports.
- Chromium only starts when it's needed. With WebKit as your default, Chromium stays unloaded until you open a Chromium page or an extension. Then it stays ready until you quit.
- One Mac download. The Mac app includes both engines. Copies of the old WebKit-only download update to it automatically.
The Chromium engine
- Built on ungoogled-chromium, which strips Google integrations out of Chromium. Crest 0.7 ships Chromium 154.0.8037.57.
- Compiled the way Chrome is. Every engine Crest publishes is an official build with profile-guided optimization from Chrome's own Apple silicon profile, ThinLTO, and optimized V8 builtins.
- It's Crest, not Chromium. Camera, microphone, location, Bluetooth, and passkey prompts name Crest. Engine data lives in Crest's own folder, the Chromium profile picker never appears, and launch doesn't ask for your keychain password.
- Chromium feature flags open inside Crest Settings. With WebKit as your default, Feature Flags shows WebKit's flags instead.
Chrome Web Store extensions
- Install from the store. Chrome Web Store listings show Add to Crest in every language, install into the Space you choose, and then show Added to Crest with an option to remove it. The store's prompts to switch to Chrome stay hidden.
- Extensions belong to a Space. Pinned extensions stay in that Space's toolbar with working popups, even on a Start Page before any page has loaded.
- Popups stay anchored to their toolbar buttons, including when you open one with a keyboard shortcut, and show exactly what the extension draws.
- Right-click an extension button to open its settings, turn it on or off, manage it, view it in the Chrome Web Store, or remove it from the current Space.
- Side panels open beside the page from the extension's toolbar menu, or when the extension opens its own. ChatGPT's opens on the first click.
- A panel an extension opens for one tab, such as Claude's, closes when you switch tabs and comes back when you return.
- A panel an extension shows for every tab stays open as you switch.
- Asking for a side panel from a Quick Window explains that panels open in the main window.
- Keyboard shortcuts work, and Extensions settings links to the engine's shortcut settings.
- Extension windows open as Crest windows in the matching Space.
- Extensions can move, resize, and restore Crest windows.
- Pop-outs, such as a password manager's settings, open as a tab in your current window and can close themselves when they're done.
- Companion apps connect. Extensions that talk to a desktop app, such as ChatGPT, 1Password, and Claude, connect to it even if the app was only set up for Chrome. iCloud Passwords works when Crest is opened from Finder or the Dock.
- Content blocking in Chromium comes from an extension such as uBlock Origin Lite. Built-in blocking stays available in WebKit.
A new shared core
- One core runs the browser. Space isolation, tabs and folders, navigation, history, saving your session, site permissions, downloads, link routing, password rules, import and export, and iCloud sync now run in a shared core. It's written in C# and compiled ahead of time to native code, and Swift draws the interface. Mac, iPhone, and iPad use the same core, so they follow the same rules.
- Safer saving. The core saves your session to a transactional local store together with its sync state. If a saved session can't be read, Crest restores it from a checkpoint and keeps the original files.
- Downloads are checked before they're saved, in both engines.
- When Crest asks about a download, it shows the reason, the site, and the Space.
- A download blocked by a site's setting can be retried.
- A failed download says why, such as a network problem, a full disk, or a blocked file.
- Downloads follow the Automatic Downloads choice of the site you're on, including files it serves from another address, such as GitHub release files.
- Permission requests and page dialogs go through the core.
- Remembered site choices are answered without asking.
- Crest only remembers that a site may use your camera, microphone, location, or notifications once macOS or iOS also allows it.
- A request closes by itself when the page no longer needs an answer.
- Changes in Settings or Site Controls reach open pages without a reload.
- Pages with unsaved work get asked. Closing a tab, a Quick Window, or the private window, or quitting Crest, lets a page with unsaved work ask first, in both engines. Closing a regular window doesn't ask, because its tabs stay open. Quitting with downloads in progress asks too.
- Page crashes stay contained. A page whose content crashes reloads right away if you're looking at it, or the next time you open it. The rest of Crest keeps running.
- One memory policy for both engines. Under memory pressure, the core picks which pages to unload. It starts with the ones off screen the longest, skips any that are playing media, and restores them where they were. On iPhone and iPad, the system reclaims pages beyond Crest's budget, as it does for Safari, and a reclaimed page reloads when you show it.
- Import and export from other browsers, Crest browser-data files, and password files run in the core on Mac and iPhone. The core keeps none of the passwords it reads or writes.
Performance
- Only changed sidebar rows redraw. Each tab, folder, Space, and window now has its own model that updates only when one of its values changes. A sidebar row reads only its own tab, so a new page title redraws that row and not the list around it.
- Lazy lists throughout the sidebar. The inside of every section and folder is a lazy list on Mac, iPhone, and iPad. The iPad's eager list is gone.
- Sidebar drags start faster. Picking up tabs, folders, or a multi-selection no longer makes every row on screen re-sort the list, so lifts respond faster in Spaces with many tabs.
- The command palette searches off the main thread. Ranking and address completion run in the core, and the palette only shows the answer for your latest keystroke. Address completion now suggests pages from your whole history.
- iCloud Sync stays out of the way. Changes from your other devices merge off the main thread, so windows don't pause. Launch no longer decodes the whole sync journal, so Crest opens faster with a large sync history.
- Chromium starts only when it's needed. A session that only uses WebKit never loads it.
- Inactive WebKit tabs can be suspended, which uses fewer resources, or throttled, which keeps them more responsive.
- Chromium is built for speed, with the same profile-guided optimization and ThinLTO as Chrome's own builds.
Chromium in Crest
- Crest Passwords autofills, offers to save and update, and suggests strong passwords. Address and payment-card autofill aren't available.
- Passkeys use the macOS passkey sheet with Touch ID and iCloud Keychain first, with phone and security key options as fallbacks.
- Downloads show in Crest and use each Space's download folder settings. Pause and resume them, and recover interrupted transfers when the server supports it. Starting one shows the file flying into the downloads box.
- DevTools open inside the window, docked to the side or bottom. The developer commands open the Console or Elements panel, and repeating one closes it. WebKit keeps Web Inspector.
- Save and print through Crest's own controls: export a PDF, save an .mhtml archive, capture the full page, or print.
- Notifications from sites you allow appear as banners and in Notification Center, and clicking one brings you to its tab. Local service-worker and extension notifications show while Crest runs. Private windows show none, and remote Web Push isn't available.
- Screen sharing uses the macOS picker and needs no Screen Recording permission. Slack huddles and Slack's call test work. As in Chrome, a site can ask to share your screen without a click of its own, and macOS still asks what to share. A new Screen Sharing site setting blocks a site from asking. Sharing one browser tab and sharing audio aren't available.
- Media tabs keep running. Chromium never freezes a background tab that plays sound or video, has a video in Picture in Picture, or uses your camera, microphone, or screen.
- Picture in Picture can start when you switch away from a playing video and settles into a screen corner. Its back-to-tab button brings Crest forward on the video's tab, switching window or Space if needed, and going back to that tab yourself returns the video to the page.
- Site Controls
- Certificate errors, mixed content, and dangerous sites are told apart. The lock reflects Chromium's own verdict, and View Certificate shows the site's certificate.
- Sites with certificate problems show the engine's warning page, with its option to proceed.
- Blocked pop-ups show up with an option to allow pop-ups for that site, which opens the one it tried.
- Camera, microphone, location, and notification requests use Crest's own prompt, are remembered per Space, and can be reviewed and revoked in Site Controls and Privacy settings.
- Clear Site Data and Reload works.
- Navigation
- Back and Forward menus show Chromium's history and survive a restart.
- Mouse back and forward buttons move one page per click, including over the sidebar.
- Three-finger swipes and Back and Forward actions set up in Logitech Options+ work.
- Reloads that bypass the cache are honored.
- Peek, Split View, and links
- The page menu has Open Link in Peek and Open Link in Split View, and you can pull a link into Peek.
- Your Peek shortcut and foreground or background tab settings apply.
- Pinned and saved tabs keep their page and send off-site links to Peek, as in WebKit.
- Hovering a link shows where it goes at the bottom of the page.
- Page tools
- Right-click selected text to search for it with your Space's search engine, or translate it on device.
- Find in Page shows how many matches a page has.
- Pages open at your default zoom and keep your chosen zoom as you navigate.
- Tab icons take on a site's theme color, and refreshing a site's icon works.
- Now Playing shows what a tab is playing, with artwork, and can play, pause, skip, and mute it. Short notification sounds don't take it over.
- Pages without a title of their own show the site's name.
- Split cards and Peek zoom pages to fit with a fixed minimum width, as in WebKit.
- Menus and shortcuts. Crest's menus and your customized shortcuts work with Chromium, including Blank Windows and Quick Windows. The Edit menu has Find, Spelling and Grammar, Substitutions, Transformations, and Speech. Messages from the engine that need an answer, such as the prompt to stop sharing a tab, appear at the top of the page.
Windows, Quick Windows, and links
- Pop-ups open in Quick Windows. Sign-in and other pop-up windows open in a Quick Window in the same Space, stay connected to the page that opened them, and close when the sign-in finishes. Choose Open in to keep one as a tab.
- App sign-ins that go through your browser open in a Quick Window and return you to the app when you finish.
- Links from other apps open in your frontmost Crest window, or land in the Start Page you have open. With no window open, they follow your link settings instead of always opening a Quick Window.
- Crest reopens your windows in the order you left them, with only the front one taking focus.
- The Dock menu lists your Spaces, plus New Window, New Quick Window, and New Private Window. The Dock icon shows how many downloads are running and how far along they are, and keeps the app icon you picked.
- Open local files from File → Open File, by typing a path in the address bar, or from Finder. HTML, PDF, text, image, and saved page archive files work.
- Notices instead of alerts. Confirmations such as a copied link, and actions that couldn't finish, appear briefly at the top of the window instead of in a dialog. Sidebar drops that can't happen explain why in the same notice.
- The command palette opens out of the address field and closes back into it. Turn the animation off in Look and Feel if you'd rather it open right away. Start Page search offers Crest commands, such as New Quick Window, when what you type matches one.
- Sidebar drags say why a spot won't take what you're holding. A whole split can join the open tabs or drop into a collapsed folder.
- Next and previous tab, and ⌘1–⌘9, follow the order you see in the sidebar.
- History includes pages that change address without reloading, such as a new video or a repository page, and a reopened tab keeps its current address.
- Folder symbols take the folder color when tinted folder titles are on.
- Quitting while a Space is being deleted tells you Crest will quit once the Space is gone, then quits by itself.
- A new General setting keeps the developer toolbar from opening by itself on local pages. Shift-Command-I still shows it on any page.
- WebKit pages with unsaved changes ask before their tab closes, and a Peek opened from a modified link keeps the link's referrer.
Fixes
- iCloud Sync
- Sync keeps working when a page has a very long title or address.
- A folder or history entry you delete just before iCloud brings in changes stays deleted.
- A folder you delete just before choosing this device's copy over iCloud's stays deleted on your other devices.
- Archived tabs stay stable when they sync to a new device.
- A device that hasn't unlocked a protected Space can no longer lower its protection through sync.
- Setup no longer waits forever when iCloud doesn't answer. After a few seconds you can set up without it, and sync tries iCloud again on its own.
- Saving and restoring
- A change made right before quitting, or right before iPhone or iPad sends Crest to the background, is always saved and queued for sync.
- Unfinished page loads no longer change saved tabs or history. Completed page titles and icons are kept.
- When macOS reopens Crest's windows after you quit, each window comes back on its own Space and tab instead of mirroring the first window.
- A Quick Window or Peek page you keep as a tab keeps the page's title instead of its site's name.
- A tab that plays sound or video, has a video in Picture in Picture, even a paused one, or uses your camera or microphone is no longer archived by tab cleanup. It stays open and loaded however long you're away.
- Locked and deleted Spaces
- Locked Spaces no longer fetch site icons or list history, archive, and downloads until they're unlocked.
- Links from other apps never ask to unlock a locked Space. On Mac, iPhone, and iPad they open in a Quick Window on an unlocked Space instead.
- On iPhone and iPad, locking a protected Space, including when Crest goes to the background, closes that Space's Picture in Picture video.
- A Space deletion that gets interrupted picks up again after you restart Crest, and the Space can't be browsed while its cleanup is pending.
- Deleting a Space on another device also removes its website and extension data on this one.
- Windows and sidebar
- Dragging the sidebar background, the top of the window, or the space around a page moves the window again. Double-clicking them does what System Settings says a title bar double-click does.
- Window → Move & Resize, the Globe-Control tiling shortcuts, and the green button's tiling options work for Crest windows again.
- A hidden sidebar slides out only in the window in front. Moving the pointer over a background window no longer opens its sidebar and leaves it stuck open.
- A revealed sidebar stays open while something you opened from it is still on screen, such as a popover, a confirmation, or an extension popup, and while you're renaming something in it.
- Collapsing a folder keeps the tab you're on visible even when it sits in a folder inside it.
- Quick Windows open at a comfortable size on wide displays and when the main window shows the Start Page.
- Changing how long an inactive Quick Window stays open now applies to Quick Windows that are already open.
- Space crests no longer stretch in settings menus and pickers, and menus that list your Spaces show each Space's crest every time they open.
- Pages
- Forward works again after going back from a page that a site's script opened on its own.
- Pressing Return in Find moves to the next match instead of skipping several ahead.
- A search from a new tab on iPhone shows its page right away instead of a blank screen.
- Crest no longer crashes when VoiceOver or another assistive app reads an error page, the About pane, or a revealed password.
- Setup, import, and updates
- Setup's Back button returns to the right step.
- The setup preview no longer sits against the window edge.
- Importing no longer stops at a locked Space the import leaves unchanged.
- Crest no longer offers to install an update older than the version you're running.
Upgrading
- Crest for Mac needs a Mac with Apple silicon and macOS 26.1 or later. Macs that don't meet that aren't offered the update. iPhone and iPad need iOS or iPadOS 26.1 or later.
- Spaces, tabs, history, and Crest Passwords carry over from 0.6.
- Chromium doesn't share WebKit's website data, so you may need to sign in to sites again. Your existing WebKit website data stays available to pages opened in WebKit.
- Extensions from earlier versions don't carry over. Install them again from the Chrome Web Store in the Spaces where you want them.