Skip to content
CAI
Software that uses CAICheck a score

zen-browser/desktop

42.0

Weak · 25 September 2026

49.4k

lines of production code

JavaScript

with C++

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a customized, open-source web browser distribution based on Firefox, branded as 'Zen'. It extends the core browser engine with a comprehensive suite of productivity features, including a workspace management system, split-view tab layouts, live folders for dynamic content aggregation, and per-site visual customization tools known as 'Boosts'. The project maintains a complex build infrastructure to package the browser for Linux, macOS, and Windows, while implementing custom synchronization and sharing mechanisms for user data across devices.

How it got here

2024 — Zen Browser initial scaffolding and build configuration

51 changes.

This period established the foundational structure of the Zen Browser project, initializing the repository with essential configuration files, dependency manifests, and governance documents. It focused heavily on overhauling the build system to support cross-compilation and release optimizations across Linux, macOS, and Windows, while integrating Zen-specific branding and security hardening. The work also introduced core UI customizations, including vertical tabs, workspaces, and split views, alongside the automation scripts required for release management.

2025 — Zen feature implementation and UI overhaul

86 changes.

This period focused on building and refining Zen's core identity features, including workspaces, folders, split views, and the Glance preview system. The team also executed a significant visual redesign, introducing the Squircle theme, vertical tabs, and a new onboarding experience, while establishing robust testing and modular architecture to support these changes.

2026 — Zen Workspace and Boosts ecosystem

43 changes.

This period focused on building a comprehensive workspace management system, introducing features like Live Folders, Space Routing, and cross-device synchronization. It also implemented the Zen Boosts feature for per-site visual customization and integrated these components into a new Library interface and sharing capabilities.

Features

Add ESLint support for SpiderMonkey self-hosted JavaScript

The eslint-plugin-spidermonkey-js now includes a processor and environment configuration specifically for SpiderMonkey's self-hosted JS files. The new processor strips C preprocessor macros (like \#ifdef, \#define) from the source before linting and adjusts autofix ranges to map back to the original file, ensuring that linting and auto-correction work correctly on these special files. The environment definition automatically detects global variables, functions, and error numbers defined in the self-hosted codebase, preventing false-positive 'undefined variable' errors during linting.

tools/eslint-plugin-spidermonkey-js · high confidence

Add Workspaces to Sync Settings

The Sync preferences UI now includes a configuration option for Workspaces. This change adds the necessary metadata (icon and localization ID) to the engine list, allowing users to manage Workspace synchronization settings alongside other existing sync items.

src/browser/components/preferences/widgets · high confidence

Add animated SVG indicators for boosts and notes

The images directory now includes new SVG assets: a sparkle animation for the boost indicator and a multi-note flying animation for the note indicator, along with a JAR manifest to register these resources for browser use.

src/zen/images · high confidence

Add funding manifest URL to .well-known

A new .well-known/funding-manifest-urls file has been added to the repository, pointing to https://zen-browser.app/funding.json. This allows external tools and platforms to discover the project's funding information via the standard .well-known path.

.well-known · high confidence

Add minimize button to Picture-in-Picture player

The Picture-in-Picture player now includes a minimize button, allowing users to collapse the floating video window. This new control is styled with an unpin icon and positioned in the top-right corner (adjusted to the left on macOS), providing a way to temporarily hide the player without closing it.

src/toolkit/themes/shared/pictureinpicture · high confidence

Add support for -moz-bool-pref media feature

The Gecko style system now recognizes the \-moz-bool-pref\ media feature, allowing CSS queries to check the value of specific boolean preferences. This is implemented by adding a new evaluator function that calls the underlying Gecko binding to resolve the preference value, enabling styles to adapt based on internal boolean settings.

src/servo/components/style/gecko · high confidence

Add support for syncing Zen Spaces

The sync engine now includes a new module for Zen Spaces, enabling users to synchronize their space configurations across devices. This change registers the ZenSpacesSyncEngine to handle the persistence and retrieval of space data during the sync process.

src/services · high confidence

Added Arabic and Bulgarian translations for Zen features

New localization files have been added for Arabic (ar) and Bulgarian (bg), covering the full range of Zen-specific UI strings. These updates ensure that features such as Workspaces, Folders, Split View, Space Routing, Boosts, and the Command Palette are fully translated in these languages, including settings, context menus, and onboarding flows.

locales · high confidence

Added TypeScript transformation script for Zen split-view

A new build script (build/ts/transform-ts.js) has been added to handle TypeScript compilation for specific Zen files. It uses Babel with the TypeScript preset to transform the ZenViewSplitter component, indicating the initial integration of TypeScript tooling into the build process for this module.

build/ts · high confidence

Added TypeScript type definitions for Gecko platform APIs

The project now includes a comprehensive set of TypeScript declaration files in \src/zen/@types\ to provide type safety for Mozilla's Gecko engine APIs. These generated definitions cover the DOM (\lib.gecko.dom.d.ts\), XPCOM interfaces for macOS, Linux, and Windows, Glean telemetry metrics, and internal services, enabling stricter type checking and better developer experience when interacting with the browser's underlying platform.

src/zen/@types · high confidence

Added mod installation and marketplace integration actors

New JSWindowActor files (ZenModsMarketplaceChild and ZenModsMarketplaceParent) have been added to handle mod installation, uninstallation, and update checking within the Zen Mods system. The child actor injects marketplace API functions into content windows and manages UI state for install/uninstall buttons, while the parent actor processes messages to enable/disable mods, remove them, and check for updates via the central mods manager.

src/zen/mods/actors · high confidence

Bookmarks can now be assigned to workspaces

The bookmark creation and editing interface now supports assigning bookmarks to specific workspaces. When creating or editing a bookmark, users can select associated workspaces, and the system automatically manages the underlying database relationships, tracking additions and removals to ensure bookmarks appear correctly within their designated workspace contexts.

src/browser/components/places · high confidence

Compact mode now hides the sidebar when the mouse leaves the window

Compact mode now hides the sidebar when the mouse leaves the window, improving the user experience by providing a more seamless and distraction-free browsing environment.

src/zen/compact-mode · high confidence

Initial Flatpak build manifest for Zen Browser

Added the primary Flatpak manifest template (app.zen\_browser.zen.yml.template) which defines the application's packaging structure. This configuration sets the runtime to freedesktop 25.08, uses the Firefox BaseApp, and includes the new systemconfig extension. It specifies the necessary sandbox permissions (such as Wayland, X11, and PulseAudio access), cleanup rules, and build commands to install the browser binary, icons, and desktop files from the release archives.

build/flatpak · high confidence

Initial project scaffolding and configuration

The repository has been initialized with essential configuration files to support development and community standards. This includes a \.dockerignore\ file, an \.editorconfig\ for consistent code formatting, and \.gitattributes\ to correctly identify file types for Git and GitHub. Development environment requirements are now explicitly defined via \.nvmrc\ (Node.js 22), \.python-version\ (Python 3.11), and \.rust-toolchain\ (Rust 1.95.0). The project also introduces a \surfer.json\ configuration file that sets the base Firefox version to 156.0.1 and defines branding for the 'Zen' and 'Zen Twilight' releases. Additionally, standard open-source governance files such as \LICENSE\ (MPL-2.0), \README.md\, \CODEOWNERS\, \CODE\_OF\_CONDUCT.md\, and \SECURITY.md\ have been added to establish project structure and contribution guidelines.

(repo-wide) · high confidence

Introduce GitHub and RSS Live Folder providers

Added new provider implementations for Live Folders, enabling users to view GitHub pull requests and issues directly in the browser. The GitHub provider supports filtering by author, assignee, review requests, and drafts, and handles both the new JSON API and legacy HTML parsing for pull request dashboards. Additionally, an RSS provider was added to display feed items with configurable item limits and time ranges, including automatic favicon retrieval for feed entries.

src/zen/live-folders/providers · high confidence

Introduce Live Folders for dynamic content aggregation

This change introduces the Live Folders feature, allowing users to create persistent, auto-refreshing folders for content like GitHub pull requests and RSS feeds. The implementation adds the core manager, UI components, and specific providers (GitHub, RSS) to the browser. Users can now add these folders via the context menu, configure their refresh intervals (from 15 minutes up to 8 hours), and see live updates automatically scheduled using DeferredTask. The feature includes state persistence, handling of dismissed items, and integration with the workspace system to ensure correct security principals and container IDs are used when fetching content.

src/zen/live-folders · high confidence

Introduce Rust-based preference management tool

A new Rust tool (\tools/ffprefs/src/main.rs\) has been added to manage application preferences. This tool reads preference definitions from YAML files, processes them, and generates corresponding C++ and Rust code for static and dynamic preferences, replacing or augmenting the previous manual or script-based approach to keeping preferences in sync across the engine and application layers.

tools/ffprefs · high confidence

Introduce Space Routing to organize tabs by domain

Users can now automatically route tabs into specific workspaces based on domain rules. A new Space Routing dialog allows you to create, edit, and delete routing rules that match URLs (via contains, exact match, or regex) and specify which workspace they should open in. You can also set a default behavior for external links. To quickly add a rule, right-click a tab and select 'Add Domain to Routing' from the context menu. The system handles tab creation and in-place navigation redirection to ensure tabs land in the correct workspace.

src/zen/space-routing · high confidence

Introduce VirusTotal malware scanning tool

Added a new command-line tool in tools/virustotal-checker that scans local files for malware by uploading them to VirusTotal. The tool accepts an API key and a list of file paths, computes SHA256 hashes using OpenSSL, and uses libcurl to interact with the VirusTotal API v3 for file uploads and status checks. It bundles the nlohmann/json library (version 3.12.0) for parsing API responses.

tools/virustotal-checker · high confidence

Introduce Zen Boosts for page customization

This change adds the core implementation for the Zen Boosts feature, introducing \ZenBoostsChild\ and \ZenBoostsParent\ actors to manage page-level customizations. Users can now apply visual boosts (such as color themes and size overrides) to specific websites, with the system handling the injection of styles, management of zoom levels, and interaction modes like 'Zap' and 'Picker' for selecting elements to modify.

src/zen/boosts/actors · high confidence

Introduce Zen Boosts for per-site page customization

Adds the Zen Boosts feature, allowing users to apply per-domain visual overrides such as accent color tinting, font family and case changes, size scaling, and element hiding (Zap mode). The implementation includes a dedicated editor window for configuring these boosts, a C++ backend (nsZenBoostsBackend) that intercepts and filters style colors using Oklab space math, and JavaScript modules for managing boost state, caching CSS styles, and handling the Zap overlay with WebGL dissolve effects.

src/zen/boosts · high confidence

Introduce Zen Folders for organizing tabs

This change introduces the core implementation for Zen Folders, a new feature allowing users to group and organize tabs. The diff adds the \ZenFolder.mjs\ and \ZenFolders.mjs\ modules, which define the \nsZenFolder\ UI component and the manager logic for handling folder creation, nesting (subfolders), context menus, and tab unpacking. It also includes the associated CSS styles (\zen-folders.css\, \zen-folder-icon.inc.css\) that render the folder icon with state-based animations and handle layout in both expanded and collapsed sidebar modes.

src/zen/folders · high confidence

Introduce Zen Share for spaces, folders, and split views

Users can now share browser spaces, folders, and split views via a new sharing feature. This change adds the client-side logic (ZenShareClient and ZenShareManager) to serialize workspace data, validate it against a JSON schema, and upload it to a configured share server, returning a public link that is copied to the clipboard. It includes the necessary UI components, such as a confirmation dialog and toast notifications, and registers the required resources (schemas, styles, and build files) to enable this capability.

src/zen/share · high confidence

Introduce cross-window workspace and session syncing

This change adds a new session management system that synchronizes tabs, folders, split views, and workspace states across multiple browser windows. By introducing \ZenSessionManager\ and \ZenWindowSync\, the browser now maintains a consistent view of your workspace even when switching between windows, including support for syncing pinned tabs, custom tab icons, and split-view layouts. Users benefit from a seamless multi-window experience where actions in one window (like moving tabs or changing split views) are reflected in others, provided window sync is enabled.

src/zen/sessionstore · high confidence

Introduce the Zen Library interface

A new Library panel has been added to the browser, providing a unified view for browsing history, downloads, media files, workspace spaces, and site boosts. The Library includes a dedicated media tab that scans local folders for images and videos with a full-screen preview, a downloads section with file-type filtering, and a spaces section that allows dragging and dropping tabs between workspaces. The interface features a slide-in animation, compact mode, and a persistent download stack widget in the toolbar.

src/zen/library · high confidence

Introduction of Essentials Promo and Pinned Tab Manager

This change introduces the Zen Essentials Promo component, a visual placeholder displayed in the Essentials section to guide users on adding tabs, and the Zen Pinned Tab Manager, which handles the logic for pinned and essential tabs. The promo element is styled to appear as a drop target and is hidden in unsynced windows or when the sidebar is collapsed. The manager implements event listeners for pinning and unpinning, respects the 'restore pinned tabs to their originally pinned URL' preference on startup, and manages essential tab icons and limits.

src/zen/tabs · high confidence

Introduction of Zen system modules for UI, actors, and migration

This change introduces three new core modules in the \src/zen/common/sys\ directory to manage Zen-specific browser behaviors. \ZenActorsManager.sys.mjs\ registers JSWindowActors for features like the Mods Marketplace, Glance, Window Dragging, and Boosts, enabling these capabilities to interact with web content. \ZenCustomizableUI.sys.mjs\ handles the initialization of the sidebar UI, including the creation of the sidebar splitter, toolbar areas, and default button placements. \ZenUIMigration.sys.mjs\ provides a versioned migration system to update user preferences and UI state when upgrading from previous versions, ensuring a smooth transition for existing users.

src/zen/common/sys · high confidence

Introduction of a dedicated keyboard shortcuts module

The \src/zen/kbs\ location now contains a new \ZenKeyboardShortcuts.mjs\ module and its corresponding JAR manifest (\jar.inc.mn\). This module centralizes keyboard shortcut handling by defining a comprehensive keycode map (F1–F24, navigation keys, etc.), organizing shortcuts into logical groups (window/tab management, navigation, search, page operations, history/bookmarks, media/display, dev tools), and providing a class (\nsKeyShortcutModifiers\) to parse and normalize modifier keys (Ctrl, Alt, Shift, Meta/Accel) across platforms. This represents a structural shift to a modular approach for managing the application's keyboard input configuration.

src/zen/kbs · high confidence

Introduction of the Glance feature with detached preview support

This change introduces the Glance feature, a tab preview system that allows users to view content in a floating overlay without fully opening a new tab. The implementation includes a new \ZenGlanceManager\ module to handle the lifecycle of these previews, along with CSS styles for the sidebar container and overlay animations. A key capability added is the ability to open a 'detached' glance—a standalone floating window that can be closed independently, featuring specific animation sequences and backdrop handling. The feature also integrates with the context menu and respects user preferences for animation duration and behavior.

src/zen/glance · high confidence

Native share dialog and haptic feedback support on macOS and Windows

The Zen toolkit now includes a new common utility component that enables native platform sharing and haptic feedback. On macOS, users can trigger the system share sheet via a new API and receive haptic feedback when enabled. On Windows (build 18956 or later), the toolkit integrates with the native share UI to share URLs, titles, and text. This change adds the underlying C++ implementation, IDL interfaces, and build configuration for these platform-specific features.

src/zen/toolkit · high confidence

New --blank-window command line argument and UI migration initialization

Users can now launch a new blank browser window using the \--blank-window\ command line argument, which optionally accepts a URL to load immediately. Additionally, the browser now initializes the Zen UI migration module on startup for new profiles, ensuring that any necessary user interface adjustments or data transfers are applied correctly when the application first runs.

src/browser/components · high confidence

New UI component base class, loading progress bar, and space routing navigation

This change introduces a new base class, ZenUIComponent, which manages event listeners and lifecycle for UI modules. It adds a new loading progress bar (ZenProgressBar) that displays a visual indicator for tab loading states, including handling for long loads. Additionally, it implements Space Routing navigation (ZenSpaceRoutingNavigation), which intercepts in-place navigations and redirects them to the appropriate workspace space, ensuring that new tabs are opened in the foreground rather than the background.

src/zen/common/sys/ui · high confidence

New UI panels for emojis, folders, workspaces, and site data

Added new panel definitions for the emoji picker, folder search, workspace and folder context menus, site data management, and the gradient theme picker. These files provide the structural markup for the Zen browser's custom UI components, including the unified site data popup with extension and boost sections, the gradient generator with color schemes and opacity controls, and the context menus for managing workspaces, folders, and live folders.

src/browser/base/content/zen-panels · high confidence

New URL bar actions and site data panel

The URL bar now features a new site data panel that displays site protection status, extensions, and allows users to clear site data or manage extensions directly from the popup. Additionally, a new command palette system has been introduced, allowing users to execute actions such as switching workspaces, opening new windows, toggling compact mode, and managing tabs directly from the URL bar. The system also includes a learning mechanism to prioritize frequently used commands and supports searching through folders and tabs across workspaces.

src/zen/urlbar · high confidence

New Windows build and signing infrastructure

The Windows build process now uses a new set of PowerShell scripts (bootstrap, firefox\_update, sign) and a dedicated version file for the Windows RS library. Bootstrap initializes the environment by installing MozillaBuild, adding Rust targets, and configuring Visual Studio 2026. The signing script automates downloading build artifacts, signing binaries with signtool, and packaging them for release, including support for both x86\_64 and arm64 architectures.

build/windows · high confidence

New Zen Emoji Picker with SVG icon support

The Zen interface now includes a dedicated emoji picker component (ZenEmojiPicker) that allows users to select from a comprehensive list of standard emojis as well as a set of custom SVG icons (such as tada, at, folder, and rocket). This feature provides a unified way to add visual indicators to UI elements like tabs and folders, with support for searching and filtering the available symbols.

src/zen/common/emojis · high confidence

New Zen settings categories and workspace sync options

The preferences page now includes dedicated sections for Zen-specific features: Looks & Feel (vertical tabs, compact mode, glance, URL bar behavior), Tab Management (workspace sync, pinned tab behavior, Ctrl+Tab cycling), Keyboard Shortcuts, and the Theme Marketplace. Additionally, the Sync settings dialog now offers a checkbox to sync workspaces (spaces) across devices.

src/browser/components/preferences · high confidence

New animated download indicator

Users now see a visual animation when starting a download. The system tracks the click position and animates a download icon traveling to the download button (or an alternative position if the button is hidden), with the path and target adjusted based on UI layout preferences like tab position.

src/zen/downloads · high confidence

New build and release automation scripts

The project introduces a suite of new Python and shell scripts to automate the build, release, and maintenance workflows. These include \check\_rc\_response.py\ for monitoring Firefox release candidates and notifying via Discord, \download-language-packs.sh\ and \copy\_language\_pack.py\ for managing and applying language packs, and \mar\_sign.sh\ and \mar\_verify.sh\ for signing and verifying MAR update artifacts. Additional scripts handle Flatpak release preparation (\prepare-flatpak-release.py\), external test imports (\import\_external\_tests.py\), patch management (\recalculate-patches.sh\, \update\_external\_patches.py\), and TypeScript type synchronization (\update\_ts\_types.py\).

scripts · high confidence

New onboarding experience with video background and guided setup

The welcome screen has been redesigned to feature a full-screen background video and a multi-stage onboarding flow. Users are now guided through initial setup steps, including selecting essential apps (such as Obsidian, Discord, and GitHub), configuring ad-blocking preferences, and choosing default search engines. The interface uses a split-panel layout with a sidebar for navigation and a main content area for selections, replacing the previous static welcome page.

src/zen/welcome · high confidence

New split-view implementation with native drag-and-drop and layout persistence

The split-view feature in the Zen browser has been rewritten to use a new tree-based layout engine (ZenViewSplitter) that supports vertical and horizontal splitting, drag-and-drop rearrangement, and persistent layout storage. This change introduces a new visual design for split groups, including active tab highlighting, split dividers, and a dedicated dropzone for dragging tabs. It also adds context menu support for splitting links and improves performance by reducing unnecessary layout recalculations.

src/zen/split-view · high confidence

New stacked media control UI in the sidebar

The media controls have been replaced with a new stacked card interface in the sidebar. This UI groups multiple active media players and WebRTC sharing sessions into a stack (up to 3 visible cards with peeking levels), allowing users to manage playback, seek, toggle Picture-in-Picture, and mute audio/video for multiple sources simultaneously without cluttering the interface. The implementation includes a new JavaScript controller (ZenMediaController) and associated CSS styles that handle card visibility, animations for adding/removing cards, and responsive layout adjustments.

src/zen/media · high confidence

New window-drag actor and C++ utility for content-area dragging

This change introduces the \src/zen/window-drag\ module, adding a new C++ utility (\nsIZenWindowDragUtils\) and JSWindowActor pair (\ZenWindowDragChild\/\Parent\) to the browser. The utility provides methods to detect interactive content and interactive cursors, while the actors implement the logic to allow dragging the browser window from the top content area. This enables users to move the window by clicking and dragging in the page content near the top, provided the gesture does not start on interactive elements like buttons, links, or form controls.

src/zen/window-drag · high confidence

New workspace management and customization system

This release introduces a comprehensive new architecture for Zen Workspaces, replacing the previous implementation with a modular set of components. The new system includes a dedicated workspace manager (ZenSpaceManager) handling core logic, a new UI for creating and configuring workspaces (ZenSpaceCreation), and a visual theme picker (ZenGradientGenerator) that allows users to customize workspace gradients and colors. It also adds support for workspace-specific bookmarks storage, drag-and-drop reordering of workspace icons, and swipe gestures for switching between workspaces. These changes provide a more robust, customizable, and performant workspace experience.

src/zen/spaces · high confidence

Support for string-valued style query features

The style query system now supports features that evaluate to string values. This change adds a new \String\ evaluator and \AtomString\ expression type to the query feature definitions, enabling the parsing, evaluation, and CSS serialization of string-based query expressions alongside existing numeric, enumerated, and boolean types.

src/servo/components/style/queries · high confidence

Sync Spaces, Folders, Tabs, and Split Views across devices

This change introduces a new synchronization engine for Zen Spaces, enabling the cross-device sync of spaces, containers, tabs, folders, and split views. The implementation includes a new sync engine, model, and applier that handle the projection, tracking, and application of these UI states, ensuring that user workspace configurations are consistent across all signed-in devices.

src/zen/sync · high confidence

Workspace selection added to bookmark editing

The bookmark creation and editing panels now include a workspace selector, allowing users to assign bookmarks to specific workspaces. This change introduces a new UI component in the edit panel with a dropdown list of available workspaces and updates the underlying logic to persist workspace associations with bookmarks. Additionally, the Places views (toolbar and popup) now filter bookmarks to only show those belonging to the current workspace, and clicking a bookmark in these views triggers the Zen Glance feature.

src/browser/components/places/content · high confidence

Zen workspace and UI management framework initialization

The Zen workspace and UI management framework is now initialized, introducing core capabilities for organizing browsing sessions. Users gain access to workspaces for grouping tabs and bookmarks, live folders for dynamic content organization, and space routing to manage navigation contexts. The update also includes a vertical tabs manager, a compact mode that tracks mouse movements, and a share manager for synchronizing spaces, folders, and split views across windows. These features are registered via a new component manifest and build configuration, establishing the foundation for the Zen interface.

src/zen · high confidence

Removals

Removed .gluon/command script

The .gluon/command file, which previously contained the text 'download', has been removed from the project. This eliminates a specific command-line entry point or helper script associated with the .gluon component.

.gluon · high confidence

Architecture

Codebase modularized into reusable common utilities

The codebase has been restructured into a modular architecture, moving shared logic into dedicated files within the \src/zen/common/modules\ directory. This change introduces reusable components such as \ZenCommonUtils\ (for multi-window management and URL copying), \ZenMenubar\ (for native menu integration), \ZenStartup\ (for layout and watermark initialization), and \ZenSidebarNotification\ (for animated update alerts). This refactoring improves code organization and maintainability by centralizing common functionality.

src/zen/common/modules · high confidence

Behavioural changes

2 commits (1 fix) modifying build/signing

A change to existing behaviour in build/signing — 2 commits (1 fix), 1 file.

build/signing · medium confidence · unverified

Add 'zen' to preference groups

The 'zen' category has been added to the list of preference groups in the build configuration, ensuring that preferences associated with this group are correctly categorized during the build process.

src/modules/libpref · high confidence

Add minimize button to Picture-in-Picture window

The Picture-in-Picture player now includes a new minimize button in the control bar, allowing users to temporarily hide the floating window without closing it entirely. This change updates the player's XHTML layout to include the new control and modifies the JavaScript logic to handle the minimize action by closing the window with a specific reason, while also adjusting the tab order and localization references for the existing unpip button.

src/toolkit/components/pictureinpicture/content · high confidence

Add workspace sync controls and remove AI feature settings

The settings interface now includes a new section for syncing workspaces (spaces), allowing users to enable workspace synchronization and specifically toggle the sync of normal tabs within those workspaces. Conversely, the AI feature controls previously available in the preferences—such as settings for PDF alt-text, smart tab group suggestions, and link preview key points—have been removed from the UI.

src/browser/components/preferences/config · high confidence

Added localisation commit hash tracking

The build system now tracks the specific upstream Firefox commit used for localisation resources via a new \l10n-last-commit-hash\ file, ensuring reproducible builds by pinning the exact source revision for language packs.

build/firefox-cache · high confidence

Adjusted titlebar buttonbox margins on macOS

The spacing for the macOS titlebar buttonbox has been updated to improve visual alignment. Specifically, the right-side margin (in left-to-right locales) has been increased from 0 to 4 pixels, ensuring consistent padding between the window control buttons and the edge of the title bar.

src/browser/themes/osx · high confidence

Apply Zen Boosts to layout colors and SVG rendering

The layout engine now propagates the Zen Boosts accent color, inversion, and complementary rotation to all computed colors and SVG contexts. This ensures that text, borders, backgrounds, gradients, and SVG images consistently reflect the active boost theme, fixing issues where boosts were previously ignored for linear gradients, text inputs, or elements with anonymous content.

src/layout · high confidence

Apply mods stylesheet in chrome docshell

The Document now includes and applies the mods stylesheet specifically when running in the chrome docshell, ensuring that user-installed modifications are correctly injected into the browser's chrome UI rather than content pages.

src/dom/base · high confidence

Customizable macOS window vibrancy and enhanced drag-and-drop visuals

macOS users can now control the window vibrancy material (e.g., HUD, Popover, Menu) and the grey-out behavior for inactive windows via new preferences, with changes applying in real-time without restarting. The window background now dynamically switches between a custom vibrancy view and a standard view based on these settings. Additionally, drag-and-drop operations support multiple stacked images and respect a configurable drag image opacity, providing more flexible visual feedback during file and content transfers.

src/widget/cocoa · high confidence

Customizes build configuration and disables Windows desktop launcher

The build system now sets the application vendor to 'Zen Team', the profile name to 'zen', and the distribution ID to 'app.zen-browser', while also allowing the Firefox version to be explicitly specified via an environment variable. Additionally, code signing requirements for release and beta milestones have been removed to allow unsigned addons, the default user application directory is changed to 'zen', and the Windows desktop launcher is disabled.

src/toolkit · high confidence

Customizes the default profile name

The default browser profile is now named "Default Profile" instead of the generic "default" or the channel-specific "default-\[channel\]". This change ensures a consistent, user-friendly name for the initial profile regardless of the update channel.

src/toolkit/profile · high confidence

DevTools keyset injection now dispatches a completion event

The DevTools startup process now explicitly signals when the developer tools keyset has been successfully inserted into the main window. A 'zen-devtools-keyset-added' event is dispatched after the keyset is added, allowing other components to reliably detect when the keyset is available rather than relying on timing assumptions.

src/devtools/startup · high confidence

Disable crash reporter packaging on macOS and Windows

The installer manifest has been updated to exclude the crash reporter application and binary from the packaged build on macOS and Windows. This change effectively disables the inclusion of the crash reporter component in the final distribution, likely as part of configuration adjustments or to reduce bundle size.

src/browser/installer · high confidence

Enable Windows process manifests for the browser application

The browser application now includes a Windows process manifest resource (firefox.exe.manifest) via the splash-rc.patch. This change ensures that the application properly declares its compatibility and execution context to the Windows operating system, which is a prerequisite for features like high-DPI scaling and visual styles to function correctly on Windows.

src/browser/app · high confidence

Enhanced URLbar search logic and workspace integration

The URLbar now supports searching within workspaces and executing Zen actions, with new preference options to control these features and automatically close the URLbar on window blur. Search heuristics have been refined to better distinguish between URLs and search queries, and the interface now ensures the domain remains visible in the sidebar view even with long subdomains.

src/browser/components/urlbar · high confidence

Enhanced media control and browsing context state attributes

The WebIDL definitions for BrowsingContext and MediaController have been updated to expose new capabilities. BrowsingContext now exposes zenBoostsData, zenBoostsComplementaryRotation, and isZenBoostsInverted attributes, enabling better integration with Zen mode visual adjustments. MediaController has added a MediaControllerPositionState dictionary to provide detailed playback position data via getPositionState(), an isBeingUsedInPIPModeOrFullscreen boolean to indicate presentation mode, and updated MediaControlKey enum support.

src/dom/chrome-webidl · high confidence

Enhanced tab cycling, glance integration, and UI behavior refinements

This update introduces several behavioral changes to the tab and UI system. Tab cycling (Ctrl+Tab) now respects new preferences to ignore essential or pending tabs, and excludes glance and empty tabs from navigation. Glance mode integration is improved by allowing drag-and-drop of split views into glance and ensuring proper deck selection states. The findbar now correctly handles the new 'zen-empty-tab' state. Additionally, panel animations are temporarily disabled in compact mode to prevent visual glitches, and the URL bar correctly tracks popup states. Scrollbox behavior is refined to prevent underflow/overflow issues on the tab browser and to handle swipe gestures in workspaces correctly.

src/toolkit/content/widgets · high confidence

Extensions ignore Zen empty tabs and respect compact mode state

The extension system now excludes tabs marked with the "zen-empty-tab" attribute from tracking and access, ensuring that internal placeholder tabs are hidden from add-ons. Additionally, when a new tab is created via the extensions API, the system now updates the compact mode manager's active state to reflect the new tab's activity, ensuring consistent behavior in compact browsing mode.

src/browser/components/extensions · high confidence

Extensions now use Zen's version for blocklist and update checks

The extension system has been updated so that remote blocklist matching and addon update requests report the Zen browser version instead of the upstream Firefox version. This ensures that extension compatibility checks and blocklist rules align with the specific Zen release rather than the base Firefox version.

src/toolkit/mozapps/extensions · high confidence

Feature callouts now use native panels for Zen site data icon

Feature callouts triggered by the Zen site data icon button now render using native browser panels instead of custom non-native implementations. This change removes the 'nonnative' attribute from the panel definition and adds a specific check to ensure the callout logic correctly identifies the Zen site data icon button, resulting in a more consistent user interface experience that aligns with native browser styling.

src/browser/components/asrouter · high confidence

Firefox patch suite: PiP auto-toggle, session store performance, and native messaging fixes

This update applies a collection of patches to the Firefox build. It fixes Picture-in-Picture behavior so that deliberately closing a PiP window (e.g., via Shift+Esc) while the tab is backgrounded suppresses the automatic re-opening on the next background switch. It improves session store write performance by pre-allocating the serialization buffer based on the previous write's uncompressed JSON length, reducing reallocations. It resolves a regression where native messaging hosts were not spawning on Unix by correcting ctypes fcntl calls to pass integer flags. It also enables macOS window tiling detection on Cocoa, fixes native popover positioning on macOS, removes the Liquid Glass icon requirement on macOS, and temporarily bypasses allowed-certificate checks for Windows updates to prevent elevation prompts after signing certificate changes.

src/external-patches/firefox · high confidence

Fix split view panel visibility in split-pane mode

The split view panels are now correctly visible when the split-pane mode is active. Previously, the CSS rules for split-view elements were not applied to the specific Zen split attribute selector, causing the panels to remain hidden. This change adds the \\[zen-split="true"\]\ selector to the existing visibility rules, ensuring that split-view content is displayed properly alongside deck-selected content.

src/toolkit/content · high confidence

Fixes color parsing and serialization for canvas and input elements

Resolves an issue where linear gradient boosts were not working correctly by updating the canvas context to pass the primary frame when parsing colors. Additionally, updates HTML input color serialization to pass a null pointer to the color conversion method, ensuring compatibility with upstream Firefox changes.

src/dom/canvas, src/dom/html · high confidence

Fixes extension API crashes on empty tabs and corrects runtime version reporting

The extension runtime now correctly reports the browser version via the API, ensuring extensions receive accurate version information instead of the generic Firefox string. Additionally, the tab management system has been hardened to prevent crashes when interacting with empty or untracked tabs; methods for adding, revoking, and checking active tab permissions, as well as activating scripts and converting tab data, now safely handle null wrappers by returning early or default values.

src/toolkit/components/extensions · high confidence

Fixes overflow menu visibility and refines panel positioning logic

The overflow menu is now correctly visible when the navbar contains items, as the code explicitly synchronizes the 'nonemptyoverflow' state with the Zen sidebar top buttons container. Additionally, the notification panel's popup position is now dynamically calculated via the Zen UI manager rather than using a hardcoded anchor, and the app menu notification popup has been repositioned to 'after\_end' to improve alignment.

src/browser/components/customizableui/content · high confidence

Fixes toolbar text visibility in light mode

Resolved an issue where toolbar text was invisible (white on white) in light mode by removing the explicit override of the toolbar background color variable. This ensures the toolbar inherits the correct background styling, restoring readability for users.

src/toolkit/themes/shared/design-system/src · high confidence

Hide the Themes category when lightweight themes are disabled

The Add-ons Manager (about:addons) now automatically hides the Themes category from the sidebar when the preference zen.theme.disable-lightweight is enabled, preventing users from accessing or managing lightweight themes in that context.

src/toolkit/mozapps/extensions/content · high confidence

Identity block styling and visibility adjustments

The identity block's visibility logic is updated to hide the box when the tab is empty (using the zen-has-empty-tab attribute) instead of relying on the page proxy state. Additionally, default background and padding styles for the identity box in non-valid states are removed, and extension icon styles are enforced with !important flags to ensure consistent rendering.

src/browser/themes/shared/identity-block · high confidence

Improved media position state notifications during playback

HTMLMediaElement now explicitly notifies the media control key listener of position state changes in two scenarios: when playback begins (transitioning to the playing state) and during mandatory time update events. This ensures that UI components relying on media position state are updated more reliably during active playback.

src/dom/media/mediaelement · high confidence

Improved media position tracking and picture-in-picture event handling

The media control system now exposes the current playback position, duration, and rate via a new GetPositionState API, allowing applications to accurately track playback progress. Additionally, a fix ensures that position state updates correctly after seeking operations, preventing the state from getting stuck. The system also now dispatches a 'pictureinpicturemodechange' event when the picture-in-picture mode status changes, improving responsiveness for UI updates.

src/dom/media/mediacontrol · high confidence

Inspector shortcut key changed from C to L

The default keyboard shortcut to open the DevTools inspector panel has been changed from the 'C' key to the 'L' key. This update affects the key binding configuration for the inspector tool within the browser's developer tools.

src/devtools/startup/locales · high confidence

Integrates Zen Session Manager for workspace and tab state persistence

The session store now delegates read, write, and state management to the new ZenSessionManager module, enabling the persistence of Zen-specific features such as workspaces, pinned/essential tabs, split views, and custom icons. This integration also modifies startup and saver logic to bypass permanent private browsing restrictions and ensures that Zen workspace data is correctly captured and restored across sessions.

src/browser/components/sessionstore · high confidence

Integration of Zen assets and build directory

The browser base build now includes the Zen theme assets and directory structure. This is achieved by adding an include directive for \content/zen-assets.jar.inc.mn\ in the JAR manifest and adding the \../../zen\ directory to the build system's \DIRS\ list, ensuring Zen-specific resources are packaged and available.

src/browser/base · high confidence

Integration of Zen-specific static preferences

The browser now includes a dedicated include directive for 'zen-static-prefs.inc' within the static preference list initialization. This change allows the application to load and apply Zen-specific configuration preferences alongside the standard Firefox preferences, enabling custom behaviors and settings defined by the Zen project.

src/modules/libpref/init · high confidence

Introduction of Squircle UI Theme and New Common Style Modules

This change introduces a new visual design language centered on 'squircle' (superellipse) shapes, replacing the previous standard rounded corners for the main browser window and several UI panels. The diff adds a suite of new CSS files in \src/zen/common/styles\ that define this new aesthetic: \squircle-exclusions.inc.css\ ensures specific elements like tab icons and buttons remain circular or pill-shaped, while \zen-browser-container.css\ and \zen-panel-ui.css\ apply the new \corner-shape: round\ and adjusted border-radius calculations to the browser container and popups. Additionally, new modules for animations (\zen-animations.css\), branding fonts (\zen-branding.css\), buttons (\zen-buttons.css\), the omnibox (\zen-omnibox.css\), and the library widget (\zen-library-widget.css\) are added to support this unified, smoother visual style across the interface.

src/zen/common/styles · high confidence

Introduction of dedicated dark and light scheme style files

The browser now uses distinct CSS scheme files (dark.inc.css and light.inc.css) to manage theme-specific visual properties. This change introduces specific backdrop underlay filters for each theme and adjusts the URL bar outline offset to ensure proper visual alignment and readability depending on whether the dark or light theme is active.

src/zen/common/styles/schemes · high confidence

Linux release builds now use PGO, LTO, and LLD linker

The Linux mozconfig has been refactored to apply specific optimization settings only when the ZEN\_RELEASE environment variable is set. For x86\_64 targets, the build now enables Profile-Guided Optimization (PGO) and Link Time Optimization (LTO) in cross/full mode, with PGO behavior controlled by ZEN\_GA\_DISABLE\_PGO and ZEN\_GA\_GENERATE\_PROFILE flags. For aarch64 targets, LTO is set to cross/thin mode. Additionally, the linker is switched to LLD, ELF hacks are disabled, and stripping options are enabled to reduce binary size in release builds.

configs/linux · high confidence

Native window dragging and refined tab drag-and-drop visuals

This change introduces a dedicated drag-and-drop module that enhances how tabs and windows behave during interaction. On macOS, dragging a window now triggers a native OS-level move (enabling features like window tiling and snap layouts) rather than a custom implementation, and tab drag images on macOS are stacked to match system conventions. Across all platforms, the drag-and-drop experience for tabs is refined with improved visual feedback, better handling of split views and workspaces, and more accurate pointer tracking to prevent flickering and layout issues.

src/zen/drag-and-drop · high confidence

New AppImage packaging structure and configuration

The AppImage build process has been restructured to use a new directory layout, introducing a dedicated AppRun launcher script that sets up the environment and prevents per-installation profiles. A new policies.json file is included to disable automatic background updates, ensuring users manage updates manually. Additionally, the desktop entry file has been updated with translations and an action to open a new blank window, while the icon directory structure has been standardized.

build/AppDir · high confidence

New Tab page behavior changes for homepage grouping and sponsored sites

The New Tab page now disables the automatic grouping of homepage settings (previously conditional on Firefox version 155+) and changes the default state for 'Show sponsored top sites' from enabled to disabled, affecting how the preferences UI and content are presented to users.

src/browser/extensions · high confidence

New icon resource management and CSS mapping infrastructure

The browser's icon system has been restructured to support a centralized, automated resource pipeline. A new \icons.css\ file now explicitly maps UI elements (such as navigation buttons, context menus, and workspace indicators) to specific SVG assets, replacing previous implicit or scattered definitions. This is supported by a new \update-resources.sh\ script that automatically generates the \jar.inc.mn\ manifest for Windows, macOS, and Linux, ensuring the correct SVG files are packaged for each platform. Additionally, a \check\_unused\_icons.py\ utility has been added to help maintain the icon library by identifying and optionally removing unused SVG files.

src/browser/themes/shared/zen-icons · high confidence

New preferences and integration for search UI behavior

Users can now hide the one-off search buttons in the URL bar by toggling the 'zen.urlbar.hide-one-offs' preference, which overrides the default visibility logic. Additionally, selecting a search engine now triggers the glance manager integration, allowing search actions to interact with the glance feature.

src/browser/components/search · high confidence

New styling for Zen preferences panels and settings controls

This change introduces a new CSS file (zen-preferences.css) that defines the visual appearance of the browser's settings interface. It applies a custom theme using CSS variables (e.g., --zen-colors-tertiary, --zen-primary-color) to style the navigation sidebar, category icons, and preference groups. Specific UI elements are enhanced, including a pop-in animation for dialogs, rounded buttons and menus, and a dedicated visual preview for the 'Compact Mode' setting. It also styles the 'Zen Keyboard Shortcuts' (CKS) input fields and organizes layout adjustments for the 'Look and Feel' and 'Tabs Management' sections.

src/browser/themes/shared/preferences · high confidence

New styling for bookmarks, dialogs, and print panels

This change introduces dedicated CSS files for the bookmarks editor, dialog boxes, and print settings panels. The bookmarks panel now features a redesigned layout with a centered favicon container, adjusted header padding, and transparent toolbar backgrounds. Dialogs receive a rounded border, shadow, and a fade-in animation (respects reduced motion preferences). The print settings panel ensures a minimum width of 350px to prevent layout issues.

src/zen/common/styles/zen-panels · high confidence

New vertical tabs layout and toolbar styling

The vertical tabs interface has been restyled with a new CSS structure that defines a 34px toolbar height and adjusts the layout for single-toolbar mode, pinned tab separators, and compact mode behaviors. This change introduces specific styles for the top buttons container to hide empty states and ensures proper spacing and alignment for the URL bar and navigation controls within the vertical tabs sidebar.

src/zen/tabs/zen-tabs · high confidence

Picture-in-Picture respects tab mute state and integrates with workspace switching

The Picture-in-Picture feature now prevents the player from launching for tabs that are muted, ensuring video playback only starts when audio is enabled. Additionally, when closing a Picture-in-Picture window, the browser now utilizes the workspace switching logic (gZenWorkspaces) to manage focus and tab selection, improving consistency with the workspace UI.

src/toolkit/components/pictureinpicture · high confidence

Prevent automatic Picture-in-Picture for muted videos

The Picture-in-Picture actor now checks if a video is muted before automatically launching Picture-in-Picture mode. This ensures that videos with no audio are not automatically switched to Picture-in-Picture, improving user control over media playback behavior.

src/toolkit/actors · high confidence

Profile server now uses dynamic port allocation

The PGO profile server (profileserver.py) no longer binds to a hardcoded port 8888. It now dynamically finds and uses a free available port at startup, which prevents port conflicts when running multiple instances or when the default port is already in use.

src/build/pgo · high confidence

Redesigned About dialog and unified extension panel anchoring

The About dialog now displays the underlying Firefox version alongside the Zen version, removes the legacy Mozilla support links in favor of Zen-specific resources (about:rights, zen-browser.app), and adds a centered trademark notice. Additionally, the unified extensions panel now anchors to the new site-data icon button and uses the Zen UI manager for positioning, while the identity popup header is hidden for internal pages to reduce visual clutter.

src/browser/base/content · high confidence

Redesigned tab management with split-view, folder, and workspace integration

The tab browser's core behavior has been significantly refactored to support Zen's custom features, including split views, folders, and workspaces. The Ctrl+Tab switcher now respects a preference to show pending tabs and excludes empty tabs. Drag-and-drop logic has been rewritten to handle split-view groups and folder animations, while pinned tab interactions now include a reset button and support collapsible states within workspaces. Tab visibility logic has been updated to correctly handle collapsed groups and glance tabs, and the context menu now dynamically updates based on split-view and pinned tab states.

src/browser/components/tabbrowser/content · high confidence

Refactored macOS build configuration for cross-compilation and release optimizations

The macOS mozconfig has been significantly restructured to support cross-compiling macOS builds from Linux, introducing conditional logic for the \ZEN\_CROSS\_COMPILING\ environment variable to set up custom toolchains and SDK paths. For native release builds, the configuration now dynamically selects the macOS SDK (checking for versions 26.5 and 26.4) and enables Profile-Guided Optimization (PGO) with cross-profile support, which can be disabled via the \ZEN\_GA\_DISABLE\_PGO\ flag. Additionally, the build now targets specific architectures (x86\_64 vs aarch64), enabling WebAssembly AVX optimizations and Thin LTO for x86\_64 releases, while explicitly setting the CPU architecture to Apple M1 for aarch64 builds to ensure optimal performance.

configs/macos · high confidence

Refined Windows titlebar and backdrop styling

The Windows browser theme now applies a more native look by removing the explicit background color override for the Mica backdrop, allowing the system tint to show through more naturally. Additionally, the CSS rules for the accent-color-in-titlebar mode have been adjusted to target the \#browser element instead of \#navigator-toolbox and introduced a specific offset for the sidebar compact mode, resolving visual alignment issues and ensuring the titlebar border behaves correctly across different window states.

src/browser/themes/windows · high confidence

Refined tab layout, dialog positioning, and URLbar spacing

This update adjusts the tab browser and URLbar styling to improve layout consistency and visual alignment. Collapsed tabs now use a fixed 48px width, and the vertical tab indicator position is shifted to -7px for better alignment. The Ctrl+Tab switcher panel shadow margin is removed, and the new tab button text is displayed as flex in collapsed vertical mode. Dialog overlays now use a fixed position and a light/dark-aware background color to prevent clipping, while the URLbar result padding is increased to 8px and touch-mode padding is removed.

src/browser/themes/shared/tabbrowser · high confidence

Refined workspace sync, tab opening, and UI positioning

This update modifies core browser modules to improve workspace synchronization and UI behavior. Opening links or new windows now respects the 'zen.window-sync' preferences, allowing users to control whether new windows are synced or unsynced based on the opener's context. Tab opening logic has been adjusted to trigger the Zen Glance manager when appropriate and to correctly handle empty tabs. Additionally, the Extensions UI panel now positions itself dynamically using the UI manager, and workspace switching logic uses the dedicated workspace browser list for more accurate tab management.

src/browser/modules · high confidence

Replaced legacy stylesheet handling with a C++ mods backend

The Zen Mods system now uses a new C++ backend (nsIZenModsBackend and ZenStyleSheetCache) to manage and apply mod stylesheets, replacing the previous legacy approach. This change introduces a dedicated service that handles stylesheet caching, parsing, and application to the DOM, ensuring that mod styles are correctly rebuilt and applied when preferences change or mods are enabled/disabled.

src/zen/mods · high confidence

Reworked default toolbar layout and customization mode behavior

The default browser layout has been changed: the Home button is no longer included in the navbar, and the unified extensions panel anchor has been switched to a new Zen-specific icon. Customization mode now correctly hides the tab browser box (using the tabbox element) to prevent layout issues, and the toolbar context menu has been simplified to remove sidebar and vertical tabs toggle options. Additionally, a new 'zen-sidebar-top-buttons' area has been introduced for managing specific button placements, and the container creation panel now anchors to the navigator toolbox.

src/browser/components/customizableui · high confidence

Simplified XDG path resolution logic in nsXREDirProvider

The logic for constructing application data and configuration paths has been streamlined by removing Thunderbird-specific conditional branches. Profile path handling now relies on the \aIsDotted\ parameter to determine prefixing, and legacy path resolution no longer checks for the Thunderbird profile name, applying a uniform approach for all builds.

src/toolkit/xre · high confidence

Simplified pre-commit hook to run lint-staged

The pre-commit hook in the .husky directory has been updated to a single command that executes lint-staged. This change removes any previous complex logic or configuration from the hook script itself, relying on the external lint-staged configuration to determine which files are staged and how they are processed during commits.

.husky · high confidence

Standardized commit message template

The repository now uses a new commit message template that enforces a specific format including a bug ID and message, replacing the previous standard to provide cleaner and more consistent commit history.

.formal-git · high confidence

Tree components now use the primary accent color variable

The tree widget CSS now defines a \--color-accent-primary\ variable that maps to the theme's primary color (\--zen-primary-color\), allowing tree-based UI elements to inherit the application's accent styling for consistent visual theming.

src/toolkit/themes/shared/tree · high confidence

Update server for application updates

The build configuration now directs application update checks to the Zen Browser update server (updates.zen-browser.app) instead of the default Mozilla update host (aus5.mozilla.org).

src/build · high confidence

Updated Linux theme CSS to align with Firefox 155.0 RC

This change introduces a new patch for the Linux browser theme to synchronize with the Firefox 155.0 RC upstream. The patch modifies \browser.css\ by removing a specific light-mode URL bar background color override and applying the system's native title bar corner radius to the main application wrapper and background elements, ensuring consistent visual integration with the window frame.

src/browser/themes/linux · high confidence

Updated Mac hardened runtime entitlements for Zen Browser

The Mac hardened runtime production patch for the browser binary has been updated to reflect the application identifier change from the Firefox bundle ID (43AQ936H96.org.mozilla.firefox) to the Zen Browser bundle ID (9V5K9TP787.app.zen-browser.zen). This ensures that the application correctly registers its entitlements, including support for platform passkeys (WebAuthn), under its new identity.

src/security · high confidence

Updated Twilight branding assets

The Twilight theme's branding assets have been updated with new SVG files. This includes a new macOS installer icon, revised logos for the about page (including private browsing), updated wordmarks for the about page and the Firefox application, and a new private browsing logo.

configs/branding/twilight · high confidence

Updated branding assets for the release build

The release configuration now uses new SVG assets for the macOS installer icon, the private and public 'About' logos, the application wordmark, and the Firefox wordmark. These changes update the visual identity presented in the installer and the application's 'About' dialog for the release channel.

configs/branding/release · high confidence

Updated browser UI icon set

The browser's user interface icons have been refreshed with new SVG assets in the \zen-icons/nucleo\ directory. This update introduces a broader range of visual indicators, including navigation arrows, media controls, and permission status symbols (such as camera, autoplay, and canvas blocked states), alongside standard actions like copy, paste, and delete. These changes affect the visual appearance of toolbar buttons, sidebar elements, and permission prompts throughout the browser.

src/browser/themes/shared/zen-icons/nucleo · high confidence

Updated cbindgen configuration to support Zen boost resolution in color calculations

The cbindgen configuration for geckolib has been patched to modify the signatures of color calculation methods. Specifically, the \CalcColor\ and \ToColor\ functions now accept an optional \nsIFrame\ argument. This change enables the resolution of Zen boosts during color computation, allowing the final color to be derived from the frame's document context when supplied.

src/servo/ports · medium confidence

Updated design tokens to support Zen theme squircle values and larger panel shadows

The shared design tokens now import the Zen theme styles, allowing UI elements to adapt to custom squircle rounding via the \--zen-squircle-value\ variable instead of using fixed pixel radii. Additionally, panel shadows have been updated to use the \--zen-big-shadow\ variable and the shadow margin has increased from 4px to 8px, resulting in a more pronounced drop-shadow effect for panels.

src/toolkit/themes/shared/design-system/dist · high confidence

Updated dialog background and button padding in shared styles

The shared in-content CSS now uses the Zen-specific \--zen-dialog-background\ variable for dialog canvas backgrounds instead of the generic gray, and applies a fixed padding of 0.7em 1em to xul menulists to improve button appearance.

src/toolkit/themes/shared/in-content · high confidence

Updated identity panel security button styling

The security connection button in the identity panel has been updated to remove the 'subviewbutton-iconic' CSS class, which changes its visual appearance to align with the current toolbar button styling.

src/browser/components/controlcenter · high confidence

Updated macOS signing to support notarization and embed provisioning profiles

The macOS signing process now explicitly supports Apple's notarization requirements by adding the --for-notarization flag to the rcodesign command. Additionally, the signing script automatically moves the embedded provisioning profile from the current directory into the application bundle's Contents folder during the signing phase, ensuring the profile is correctly embedded for notarized builds.

src/tools/signing · high confidence

Updated media and WebRTC sharing state handling

The browser's media actor logic has been adjusted to improve the reliability of sharing state indicators. For encrypted media playback, the system now bypasses specific DRM content checks to prevent display issues, ensuring the UI remains consistent. Additionally, WebRTC sharing states are now explicitly synchronized with the global media controller, ensuring that the user interface accurately reflects active media sharing sessions across tabs.

src/browser/actors · high confidence

Updated screenshot overlay styling

The screenshot overlay now features a smoother visual transition and a distinct border. The highlight background has been changed from a CSS variable to a semi-transparent black, and the overlay container now includes a subtle white border with rounded corners and a 0.1s transition effect for improved user feedback during selection.

src/browser/components/screenshots · high confidence

Vertical tabs configuration source updated

The application now reads the vertical tabs setting from the 'zen.tabs.vertical' preference instead of the previous 'sidebar.verticalTabs' key, ensuring that the vertical tabs feature state is correctly synchronized with the current configuration system.

src/xpfe · high confidence

Visual updates to Reading Mode and menu lists

The Reading Mode interface now features a redesigned toolbar and controls, including rounded buttons, transparent backgrounds, and adjusted opacity for a cleaner look. Additionally, non-native menu lists now use a light-dark-aware background color to better adapt to the user's theme.

src/toolkit/themes/shared · high confidence

Windows build configuration refactored for cross-compilation and architecture-specific optimizations

The Windows mozconfig has been significantly restructured to support cross-compilation workflows and distinct build profiles for x86\_64 and aarch64 architectures. It now conditionally sets environment variables for Wine and Visual Studio sysroots when cross-compiling, and configures EME support to include WMFCDM on x86\_64 while restricting it to Widevine on aarch64. Additionally, the file introduces logic to enable Profile-Guided Optimization (PGO) and Link Time Optimization (LTO) specifically for x86\_64 builds, with provisions to disable PGO via a flag, while ensuring aarch64 builds use thin LTO.

configs/windows · high confidence

Windows installer now supports custom setup executable path

The Windows build process for the installer has been updated to allow overriding the default setup.exe with a custom executable. When the ZEN\_SETUP\_EXE\_PATH environment variable is defined during the build, the system will automatically replace the generated setup.exe with the file specified by that path before packaging.

src/toolkit/mozapps/installer · high confidence

Zen Boosts styling integration and credits page update

The browser now supports Zen Boosts visual styling by adding new fields to the BrowsingContext to track boost color data, complementary rotation, and inversion state, allowing the UI to reflect these theme adjustments. Additionally, the internal credits page has been updated to redirect to the Zen Browser website instead of the Mozilla credits page.

src/docshell · high confidence

Zen Browser build configuration overhaul and security hardening

The common build configuration has been significantly restructured to support Zen Browser's release pipeline. Key changes include renaming the application to 'Zen', setting the distribution ID to 'app.zen-browser', and enabling Google Safe Browsing via external API key files. The build now integrates sccache for faster compilation, enables Link Time Optimization (LTO) and WebAssembly SIMD support for release builds, and disables telemetry, health reports, and data reporting to enhance privacy. Additionally, the configuration allows loading unsigned extensions and disables crash reporting and code signing requirements for add-ons.

configs/common · high confidence

Zen UI integration and toolbar customization

This update integrates the Zen browser theme into the shared browser assets, enabling customizable toolbar button sizing and layout adjustments. Users will see changes to the URL bar's padding and icon alignment, as well as the inclusion of Zen-specific preference styles. The toolbar buttons now support a configurable size variable, and the URL bar layout adapts to single-toolbar modes and implicit hover states, providing a more cohesive look for Zen users.

src/browser/themes/shared · high confidence

Zen browser core modules and UI components are now preloaded and registered

The browser now initializes its core Zen features—such as workspaces, split views, compact mode, and the theme modifier—earlier in the startup process. A new preloaded script (\ZenPreloadedScripts.js\) and manifest registration ensure that essential managers and UI components are loaded and ready before the main interface renders, improving responsiveness and ensuring consistent behavior for features like workspace switching and accent color application.

src/zen/common · high confidence

Zen-specific URLbar behaviors and workspace search integration

The URLbar now supports Zen-specific features, including a new 'Spaces' search mode that allows users to filter results by workspace using the backtick token. The address bar behavior is now configurable via the 'zen.urlbar.behavior' preference, enabling a 'float' mode that visually detaches the URLbar. Additionally, command actions are now accessible directly from the URLbar when it is empty, and the view's interaction logic has been adjusted to better handle focus, selection, and window blur states in alignment with the Zen UI.

src/browser/components/urlbar/content · high confidence

Zen-specific browser behavior and UI adjustments

This update introduces several Zen-specific customizations to the browser core. The lightweight theme system is modified to disable standard Firefox themes in favor of Zen's own styling, and the accent color fallback now uses Zen's primary color variable. Session store performance is improved by pre-allocating bytes and using length hints for JSON writes. The update mechanism now reports the Zen Firefox version instead of the raw Firefox version. Additionally, popup notifications in compact mode have their toolbar transitions disabled to prevent visual glitches, and keyboard shortcuts for tab navigation via Meta+Alt+Arrow keys are restricted to Up/Down directions only.

src/toolkit/modules · high confidence

Zen-specific linting configuration and drag-and-drop opacity support

This update integrates Zen-specific tooling and UI adjustments. It configures the linting infrastructure to recognize Zen globals, ignore Zen-generated CSS/JS files, and adjust nesting depth and JSDoc requirements, while also patching the lint roller to remove a strict assertion. On the product side, it allows the Zen theme to control the opacity of drag-and-drop images via a new instance accessor, and updates the moz-toggle widget to use Zen design tokens for pressed states.

src · high confidence

Fixes

Adapts aboutwelcome callout styling for macOS native popovers

The aboutwelcome feature now respects the macOS native popover preference on macOS platforms. When this preference is enabled, the feature callout panel removes its box shadow and arrow spacing, makes the background transparent, and hides the decorative arrow element to align with the native OS appearance.

src/browser/components/aboutwelcome · high confidence

Exclude update settings files from packaging updates

The update packaging process no longer treats update-settings.ini and the UpdateSettings framework as files to be updated during the packaging phase. This change ensures that these specific configuration files are excluded from the update verification and packaging workflow, preventing them from being incorrectly modified or included in update packages.

src/tools/update-packaging · high confidence

Fix Bookmark menu styling

Updates the bookmark organizer's CSS to correctly handle the layout of the edit bookmark panel by setting the field container to display contents, and hides specific workspace-related UI elements (the selector expander, dropdown, and list) that are no longer needed or are causing layout issues.

src/browser/themes/shared/places · high confidence

Fix element picker keyboard shortcut keys

The keyboard shortcuts for toggling the element picker have been corrected to use the 'L' key (CmdOrCtrl+Shift+L on Windows/Linux and Cmd+Opt+L on macOS) instead of the previously incorrect 'C' key combination.

src/devtools/client · high confidence

Fixes addon update checks using platform version instead of application version

The AddonUpdateChecker now correctly uses the platform version (Services.appinfo.platformVersion) as the default application version when checking for addon updates, instead of the application version (Services.appinfo.version). This ensures that addon compatibility checks align with the underlying platform version, resolving issues where addons were not updating correctly.

src/toolkit/mozapps/extensions/internal · high confidence

Fixes color resolution for boosted animations and absolute colors

Updates the graphics layer to correctly resolve colors when using the Zen Boosts feature. AnimationInfo.cpp now passes the frame context to color resolution logic, allowing boosted background-color animations to handle currentColor and visited states properly. Additionally, gfxUtils.cpp and gfxUtils.h are modified to accept an nsIFrame pointer in ToDeviceColor overloads for StyleAbsoluteColor, ensuring that absolute colors are resolved against the correct frame context rather than being converted blindly.

src/gfx · high confidence

Fixes incorrect color resolution in accessible text attributes and editor positioning

Updates the color resolution logic in the accessibility layer and the HTML editor to pass the frame context to the ToColor method. This ensures that text colors are correctly resolved for assistive technologies (IA2) and that the editor accurately determines background colors when managing positioned elements, addressing issues where boosts or styles were not applied correctly for linear gradients.

src/accessible, src/editor · high confidence

Fixes sidebar panel positioning logic

The sidebar controller now correctly targets the tab browser tabbox element when calculating and applying CSS order styles for sidebar panels, ensuring that panel positioning aligns with the actual DOM structure rather than an incorrect browser element reference.

src/browser/components/sidebar · high confidence

Fixes tab unloading and switching behavior in Zen Mode

This change updates the tab browser components to correctly handle tabs active in Zen Mode. The AsyncTabSwitcher now excludes Zen Mode tabs from being treated as inactive, preventing visual glitches. The TabUnloader is modified to skip unloading tabs that are currently in Zen Mode and iterates through workspace-stored tabs instead of standard browser tabs. Additionally, the TabsList filter is updated to hide tabs marked with the 'zen-empty-tab' attribute, ensuring a cleaner interface.

src/browser/components/tabbrowser · high confidence

The Glance feature now uses dedicated system actors to manage link interactions, introducing a threshold to prevent opening Glance when users drag to select text within a link. It enforces security by blocking Glance for javascript: URLs and checking principal matching, while also allowing configuration of activation modifiers (Ctrl, Alt, Shift, Meta) and respecting a preference to block JavaScript in Glance.

src/zen/glance/actors · high confidence

Improved swipe behavior and custom scrollbar contrast

The widget layer now supports a faster, more responsive swipe experience via a new preference that bypasses standard clamping and velocity checks, reducing big jumps during gestures. Additionally, custom scrollbar colors are now calculated with frame context, ensuring better contrast and identification when using custom color schemes.

src/widget · high confidence

Linux updater now locates NSS libraries via RPATH

On Linux, the Firefox updater binary now includes an RPATH pointing to its own directory ($ORIGIN). This ensures that the updater can find the required NSS and signmar shared libraries at runtime, preventing potential load failures on systems where these libraries are not in the standard linker search path.

src/toolkit/mozapps/update · high confidence

Update uninstall survey label to reference Zen's Team

The label for the uninstall survey checkbox in the installer has been changed from 'Tell Mozilla why you uninstalled $BrandShortName' to 'Tell Zen´s Team why you uninstalled $BrandShortName', ensuring the feedback request correctly attributes the survey to the Zen project team.

src/browser/locales · high confidence

Updated common dialog layout and styling

The common dialog component now features a wider minimum width (increased from 29em to 32em) and a new minimum height of 12rem. Internal padding has been adjusted to 30px vertical and 26px horizontal, with a 6px gap between items, and button margins have been updated to provide better spacing (4px top, 6px horizontal). The previous constraint forcing info rows to shrink via min-height: 0 has been removed.

src/toolkit/components/prompts · high confidence

Updated macOS code-signing requirements and enabled cross-language PGO for Rust

The build configuration now requires the updated Apple Developer Organization Unit ID (9V5K9TP787) for macOS production code signing, replacing the previous identifier. Additionally, cross-language Profile-Guided Optimization (PGO) is explicitly enabled for Rust builds, and the automatic implication of the MOZ\_LD64\_KNOWN\_GOOD flag based on automation status has been removed.

src/build/moz-configure · high confidence

Windows installer telemetry disabled and registry update logic improved

The Windows installer no longer sends installation or uninstallation telemetry pings to Mozilla servers, with the telemetry base URL cleared and ping calls commented out in the NSIS scripts. Additionally, the uninstaller now directs feedback to a custom Zen Browser URL instead of the Mozilla survey, and the installer's maintenance service logic has been refactored to robustly handle certificate registry updates, including a fallback mechanism for when the unique registry path cannot be computed. The installer also now correctly registers the .jxl image format during uninstallation.

src/browser/installer/windows · high confidence

Test coverage

Added automated tests for pinned tab management; Added automated tests for tab management and drag-and-drop behavior; Added automated tests for the Space Routing feature; Added automated tests for the Zen welcome screen; Added automated tests for window drag functionality; Added browser tests for Glance tab behavior; Added browser tests for Live Folders providers and scheduling; Added browser tests for Zen Folders; Added browser tests for Zen workspaces; Added browser tests for split view functionality; Added browser tests for the Zen Boosts feature; Added browser tests for the media player controls; Added browser tests for window sync tab synchronization; Added mochitests for browser alerts, history, security, and gestures; Added test for app menu height constraint on macOS; Added test utilities for Glance split view; Added testing preferences to Mochitest profile; Added tests for URL bar global actions and workspace search; Added tests for URLbar behavior and sidebar provider; Added tests for compact mode sidebar width and hover behavior; Added tests for container-specific essential tabs and workspace creation UI; Added tests for device-synced normal tabs and folder operations; Added tests for the Zen share feature; Added unit tests for Zen Boosts color and caching logic; Fixes XPCShell test runner for Zen application builds; Updated Mochitest browser-test.js patch for Firefox 152.0; Updated test profile configuration for Zen features.

Dependencies

Initialize project dependency manifests and tooling configurations

The project now includes its core dependency manifests and tooling configurations, establishing the build environment. The root package.json defines the project as a private module with devDependencies including TypeScript 5.9.3, Babel, Husky, lint-staged, and the internal @zen-browser/surfer tool (v1.14.9). Python tooling is specified in requirements.txt with requests 2.34.2 and click 8.1.8. Additionally, the Rust-based ffprefs tool is configured with its own Cargo.toml and lock file, pinning dependencies like serde and serde\_yaml.

(dependencies) · high confidence

Updated motion library to v13.2.0

The bundled motion animation library has been upgraded from v12.16.0 to v13.2.0. This update replaces the previous vendor file and includes the new version's minified JavaScript module, ensuring the application uses the latest animation capabilities and bug fixes provided by the motion library.

src/zen/vendor · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 38 → 42 (+4.1)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 45 → 30 (-15.2)
  • Architecture 69 → 98 (+29.4)
  • Maturity 65 → 64 (-1.1)
  • Readiness 21 → 62 (+40.9)
  • Security 57 → 71 (+14.1)
  • Accessibility 36 (new)

Resolved (141)

  • (anonymous) (cognitive 19) (src/zen/compact-mode/ZenCompactMode.mjs)
  • (anonymous) (cognitive 20) (src/zen/sessionstore/ZenWindowSync.sys.mjs)
  • (anonymous) (cognitive 30) (src/zen/split-view/ZenViewSplitter.mjs)
  • (anonymous) (cyclomatic 20) (src/zen/split-view/ZenViewSplitter.mjs)
  • (anonymous) (cyclomatic 44) (src/zen/common/zen-sets.js)
  • Change coupling: lib.gecko.dom.d.ts ↔ lib.gecko.modules.d.ts (src/zen/@types/lib.gecko.dom.d.ts)
  • Change coupling: lib.gecko.dom.d.ts ↔ lib.gecko.services.d.ts (src/zen/@types/lib.gecko.dom.d.ts)
  • Change coupling: lib.gecko.glean.d.ts ↔ lib.gecko.services.d.ts (src/zen/@types/lib.gecko.glean.d.ts)
  • Change coupling: lib.gecko.linux.d.ts ↔ lib.gecko.services.d.ts (src/zen/@types/lib.gecko.linux.d.ts)
  • Change coupling: lib.gecko.modules.d.ts ↔ lib.gecko.services.d.ts (src/zen/@types/lib.gecko.modules.d.ts)
  • Change coupling: lib.gecko.modules.d.ts ↔ lib.gecko.xpcom.d.ts (src/zen/@types/lib.gecko.modules.d.ts)
  • Change coupling: lib.gecko.modules.d.ts ↔ lib.gecko.xpidl.d.ts (src/zen/@types/lib.gecko.modules.d.ts)
  • Change coupling: lib.gecko.nsresult.d.ts ↔ lib.gecko.xpidl.d.ts (src/zen/@types/lib.gecko.nsresult.d.ts)
  • Change coupling: lib.gecko.services.d.ts ↔ lib.gecko.xpcom.d.ts (src/zen/@types/lib.gecko.services.d.ts)
  • Change coupling: lib.gecko.win32.d.ts ↔ lib.gecko.xpidl.d.ts (src/zen/@types/lib.gecko.win32.d.ts)
  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • FileTooLong: drag-and-drop/ZenDragAndDrop.js (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • FileTooLong: modules/ZenUIManager.mjs (src/zen/common/modules/ZenUIManager.mjs)
  • FileTooLong: spaces/head.js (src/zen/tests/spaces/head.js)
  • …and 121 more

New (371)

  • #animateItem (cognitive 23) (src/zen/folders/ZenFolders.mjs)
  • #animateItem (cyclomatic 17) (src/zen/folders/ZenFolders.mjs)
  • #animateTabs (cognitive 92) (src/zen/spaces/ZenSpaceManager.mjs)
  • #animateTabs (cyclomatic 48) (src/zen/spaces/ZenSpaceManager.mjs)
  • #animateVerticalPinnedGridDragOver (cognitive 69) (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • #animateVerticalPinnedGridDragOver (cyclomatic 58) (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • #animateVerticalPinnedGridDragOver::getTabShift (cognitive 20) (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • #appendCopy (cognitive 16) (src/zen/library/sections/ZenLibrarySpacesSection.mjs)
  • #applyBoostForPageIfAvailable (cognitive 19) (src/zen/boosts/actors/ZenBoostsChild.sys.mjs)
  • #applyDragoverIndicator (cognitive 57) (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • #applyDragoverIndicator (cyclomatic 55) (src/zen/drag-and-drop/ZenDragAndDrop.js)
  • #applyOrdering (cognitive 30) (src/zen/sync/ZenSpacesSyncApplier.sys.mjs)
  • #applyOrdering (cyclomatic 20) (src/zen/sync/ZenSpacesSyncApplier.sys.mjs)
  • #applySpaces (cognitive 36) (src/zen/sync/ZenSpacesSyncApplier.sys.mjs)
  • #applySpaces (cyclomatic 29) (src/zen/sync/ZenSpacesSyncApplier.sys.mjs)
  • #buildSearchOptions (cognitive 18) (src/zen/live-folders/providers/GithubLiveFolder.sys.mjs)
  • #buildSearchOptions (cyclomatic 16) (src/zen/live-folders/providers/GithubLiveFolder.sys.mjs)
  • #childSequence (cognitive 44) (src/zen/sync/ZenSpacesSyncModel.sys.mjs)
  • #childSequence (cyclomatic 26) (src/zen/sync/ZenSpacesSyncModel.sys.mjs)
  • #contextMenuItems (cognitive 18) (src/zen/library/ZenLibraryWidget.sys.mjs)
  • …and 351 more

Changes since last survey

  • 127 commits — 63 feature/other, 64 fixes

By area

  • src/zen — 83 commits
  • src/browser — 13 commits
  • src/external-patches — 8 commits
  • .github/workflows — 6 commits
  • (root) — 5 commits
  • locales/ro — 3 commits
  • src/toolkit — 3 commits
  • locales/en-US — 2 commits
  • prefs/README.md — 2 commits
  • build/windows — 1 commit
  • src/widget — 1 commit

Notable commits

  • fix: Revert "gh-14483: Fix boost font override breaking certain icons" (gh-14903)
  • fix: Revert "gh-14869: Fix restoring pinned tab not moving it to pinned tabs container" (gh-14896)
  • fix: Revert "gh-14974: New Crowdin updates" (#14999)
  • fix: Revert "gh-15144: Update windows registry on update" (gh-15153)
  • fix: gh-13196: Fixed sidebar not hiding if the urlbar is open (gh-15403)
  • fix: gh-14171: Fix cross-space routing tab lifecycle races (gh-14832)
  • fix: gh-14380: Fix sidebar width getting stuck when toggling layout on the right side (gh-15092)
  • fix: gh-14470: Fixed moz-remote-urls not being synced correctly (gh-15043)
  • fix: gh-14470: Fixed wrong data image being used for sync (gh-15048)
  • fix: gh-14710: Fixed minimizing PiP window failing to collapse into the sidebar (gh-15111)
  • fix: gh-14755: fix duplicated owned tabs leaving folders (gh-15285)
  • fix: gh-14843: Fixed invalid controller access for media playback (gh-14894)
  • fix: gh-14869: Fix restoring pinned tab not moving it to pinned tabs container (gh-14870)
  • fix: gh-14912: Fixed feature callouts not using native panels (gh-14918)
  • fix: gh-14938: Fix CWLO for only pinned/essential tabs (gh-15324)
  • fix: gh-14959: Fix wrong wine download resource (gh-15018)
  • fix: gh-14975: Fix multiple glance tabs when joining tabs (gh-14977)
  • fix: gh-15026: Revert "Improve scrolling performance" (gh-15327)
  • fix: gh-15029: Fixed urlbar suggestion context not working (gh-15037)
  • fix: gh-15031: Fixed duplicate separator on tab context menu (gh-15035)
  • …and 107 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

zen-browser/desktop was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 44552e5583c9e99d27e7f453cbd2208fb6496ddc — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.