Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 10:17
· 372 commits to main since this release

0.7.0 - 2026-10-28

Added

  • Extensions can find printers and devices on the local network (chrome.mdns, chrome.system.network), rename downloads as they start (downloads.onDeterminingFilename), and send cookies with XMLHttpRequest as in Chrome
  • Try Peek, background tabs, Split View and Little windows from links in the website demo's local example pages.
  • A call card in the sidebar mutes the microphone, turns the camera off and leaves the call of a Meet-like tab from anywhere, and ⇧⌘M mutes the call's microphone during a call.
  • Record a performance session from Help > Diagnostics: Lilo saves a trace of its timings, hangs, dropped frames and per-process CPU, memory and energy to Downloads, ready to open in Perfetto or attach to a bug report.
  • Settings > Privacy > Browsing Data shows how much history, cookies, cache and site data the profile stores, and clears them; History > Clear Browsing Data… (⇧⌘⌫) opens it.
  • Use Lilo in Spanish, including the browser interface, native menus and dialogs, setup, Shortcuts and emoji search.
  • Use Lilo in Simplified Chinese, including menus, dialogs, system prompts, Shortcuts and emoji search.
  • Brazilian Portuguese across the browser interface, native menus and dialogs, system prompts, Shortcuts, and emoji search.
  • Add Russian across the browser interface, native menus and dialogs, system prompts, Shortcuts, and emoji search.
  • Settings > General > Search > Preload top hit starts loading a site you visit often while you type its address in a new tab, so Return shows it already loaded.
  • A new setting, Keep calls in the sidebar, under Settings > Audio and video: turn it off to send a call you leave to the floating window instead of the sidebar.

Changed

  • Simplify the website example pages with Space initials and plain labels instead of decorative emoji and arrow marks.
  • Polished the website demo with locally bundled profile artwork, Space icons and consistent preview controls.
  • Error pages show the error code, and for a rejected certificate the reason macOS gives with the certificates involved.
  • Refresh every website page with a shared layout, consistent installation controls, browser-language selection, and terminal and agent demos that replay while visible.
  • Lilo's built-in page scripts do a little less work in every frame, and reader mode no longer leaves anything a page can detect.
  • New windows open faster and use less memory: their sidebar and toolbar share one process.
  • Audio and video has its own page in Settings: picture-in-picture and autoplay under Playback, the microphone and devices under Calls.
  • Tab rows show playing sound and microphone, camera or screen capture as a badge on the favicon, click the sound badge to mute, and the close button no longer shifts the title. The call card can mute the call's sound, and the top and bottom tab strips open it from a microphone icon.
  • The browsing data settings show their sizes and sites faster, no longer waiting on Screen Time.
  • Extensions start faster at launch, no longer listing every installed font once each.
  • With extensions installed, the sidebar appears about half a second sooner at launch, and the first page always loads with their blockers active.

Fixed

  • Extensions whose pages wait for their background worker, such as MultiPassword, no longer show an empty popup when another extension started before them
  • An extension worker that answers a page on a port of its own, as Postman Interceptor does, now reaches that page when it is open in a tab
  • Extensions that clear their own data with browsingData no longer erase every site's cookies and storage
  • An extension update that asks for new access, such as debugger or proxy, waits for your approval before it installs
  • Extensions behave more like in Chrome: proxy sign-ins prompt at once when no extension answers, sockets keep their messages while idle, downloads land in the subfolders they name, idle detection reports a locked screen, and Stylus, Language Learning with Netflix and other extensions no longer fail at startup
  • Extensions that save encryption keys from their worker, such as 2FAS Auth, no longer freeze
  • Keep the website demo self-contained with interactive local example pages and centered preview windows.
  • Keep website demo link menus open after a right-click in WebKit, including repository folders.
  • Keeper's popup opens instead of loading forever, and so do other extensions that connect to their own pages without naming themselves
  • A tab moved out of an agent's folder fills the window again, instead of keeping the agent's page size and running past the window's edge.
  • Extensions behave more like in Chrome: aborted requests stop, cookies go only to their path, url filters ignore case, and a website can no longer pass itself off as another one to an extension's worker
  • Sidebar tooltips no longer hide under the docked picture in picture, and clicking Lilo in the Dock while the floating picture in picture shows on another app brings back the browser window.
  • Ad blockers with very large static rule lists (Pie Adblock) can update their rules again: the rules past WebKit's limit leave the compiled set instead of failing every update.
  • Control-D or exit in a terminal closes its tab instead of leaving it open on the ended shell
  • Middle-clicking a link opens it in a new background tab instead of navigating the current tab.
  • Ad blockers built on uBO Lite (Adblock Ad Blocker Pro and others) apply their rules again: a rule limited to some request methods no longer stops every other rule from loading, and their cosmetic filters turn on as in Chrome.
  • Submitting a form inside an embedded frame no longer clears the unsaved-changes warning of a form still being edited on the page.
  • A link opened in a background tab comes right after the current tab in Control-Tab, instead of last.
  • Extensions that follow a page's frames through webRequest (Dashlane) reach the frames of a page again: a frame's requests name it and its parent as Chrome does.
  • An extension's popup and other pages keep their connection to its background: Lilo relays these ports as Chrome does, so a popup no longer opens blank when WebKit dropped its port (Okta), and port messages are faster in bursts.
  • The sidebar's tab list no longer shifts sideways when its scrollbar appears.
  • With headphones on, calls get your full-quality microphone instead of the muffled, quieter voice WebKit's echo cancellation leaves. Settings > Audio and video turns it off.
  • An extension page that sends its tab to a website, through a link or a redirect, now opens that website instead of staying blank (RSS Feed Reader's options).
  • Extensions that message a page as soon as it loads (Requestly) now reach their content script, as in Chrome.
  • Content scripts can ask an event whether it has listeners (hasListeners), as in Chrome (Brisk Teaching).
  • Ad blockers that use session rules, like uBlock Origin Lite and AdGuard, no longer recompile all their filters at every launch, which took seconds of CPU.
  • Extensions get Chrome's wording for a disconnected port and for a page they may not script ("Attempting to use a disconnected port object", "Cannot access contents of the page"), which they test before reconnecting or asking for access.
  • Extensions get Chrome's wording for a missing tab or menu item ("No tab with id", "Receiving end does not exist"), which many test before retrying.
  • A content script runs once on a page its extension's host permission and its own matches both cover (RoEarn, RoSeal, TubeBuddy threw "Can't create duplicate variable"), the manifest an extension reads no longer lists Lilo's own content script (Lightning Autofill's options), and a content script's runtime.sendMessage and connect work detached (AdScrubber).
  • A content script file that several of an extension's manifest entries list runs once per page, as in Chrome (AdBlock's welcome page threw redeclaring its functions).
  • An extension that checks runtime.lastError through browser, as AdBlock does for its context menus, no longer gets "Unchecked runtime.lastError" errors reported against it.
  • action.setBadgeText takes no text, as in Chrome, where a tab's badge then shows the global text again (Jungle Scout).
  • An extension page closing as it sends a message no longer reports "Tab not found" errors, as Chrome runs nothing more of a closed page (Immersive Translate, Wappalyzer, Table Capture).
  • An extension with more static rules than WebKit applies keeps every rule of the rulesets its manifest turns on, which the rulesets it leaves off now give up first (AdGuard blocked no ads).
  • A page or content script that goes away while it waits on Lilo no longer fails its calls with "Lilo is unreachable", as Chrome settles nothing more of a closed page (LastPass logged each call a closing tab cut).