← Vanliga frågor

Vanliga frågor finns på engelska och nederländska; de visas på engelska.

Vanliga frågor

Browser and Chromium

FAQ › EUZOS Desktop › Browser and Chromium · Nederlands

What is it?

EUZOS Browser ("Browse websites, without traces on this PC") is the web browser of EUZOS Desktop. It has its own engine (libs/web: HTML and CSS, deliberately no JavaScript) and its own HTTP(S) client with TLS 1.3. For sites that need JavaScript, the same browser can use Chromium as the engine, per tab: a Chromium page becomes a tab in EUZOS's own tab bar, drawn by Chromium through EUZOS's own Wayland compositor in the kernel. The Report a problem button (BrowserFeedback) sends a report about a page to the profile server.

How do I…?

How do I open a web page?

Open EUZOS Browser in the mega menu (it opens about:start, the built-in start page, with the address field ready for typing), or type in the console browser <url> (for example browser nl.wikipedia.org/wiki/Amsterdam). browser new [url] opens a new window; without new the top window loads the address.

How do I search from the address bar?

Type in the bar (Ctrl+L or Tab). With a scheme it goes to that address. With a space, without a dot, or with ? in front it searches with the chosen search engine. Otherwise https:// is put in front (nos.nl, localhost:8080). Choose the search engine on about:browser: DuckDuckGo (HTML, default), Mojeek, Qwant, Ecosia or Startpage. Qwant and Ecosia only give results with JavaScript.

How do I use tabs, favourites, find and zoom?

  • Tabs: + or Ctrl+T new; ×, Ctrl+W or middle click closes; Ctrl+Tab switches; a link in a new tab with middle click, Ctrl+click, or the context menu (right click / long press) › Open in new tab. At most 8 tabs; only the most recent keep their laid-out page.
  • Several windows, duplicate and move tabs: Ctrl+N (or the browser menu › New window) opens a second browser window side by side with the first (the two halves of the display). Right click on a tab: Duplicate tab (a copy right of it, same address and engine), Move to new window, Close tab. Drag a tab out of the tab bar to give it a window of its own under the pointer, or drop it on another browser window's tab bar. The page keeps running (no reload). Only one window at a time shows a live Chromium page (a click on the other's Chromium tab brings it there).
  • Favourites: the star in the address, or Ctrl+D; listed on the start page; at most 40; stored in your profile.
  • Find in page: Ctrl+F.
  • Zoom: Ctrl+plus / Ctrl+minus / Ctrl+0, 25–200 %.

What is in the browser menu (⋮)?

The ⋮ button at the right end of the bar (right of "Report a problem") opens the browser menu, in our own tabs and in Chromium tabs alike: New tab (Ctrl+T), New window, Zoom (−, the percentage (click: back to 100 %), +; in a Chromium tab Chromium's own zoom), Find in page (Ctrl+F), History (Ctrl+H), Downloads (opens My files › Downloads in the explorer), Clear browsing data (Ctrl+Shift+Delete) and Settings (about:browser). There is no print (the browser cannot print).

Where is my history?

On about:history (menu ⋮ › History, or Ctrl+H): the visits of both engines (our own and Chromium) per day (Today, Yesterday, then the date), with time, title and host, a search field, Remove per visit and Clear browsing data. At most 10 000 visits and 90 days. By default it is kept for this session only, in memory. If you turn on Keep browser data on this PC (Settings › Privacy, or the link on the history page or about:browser; off by default) it is kept encrypted in your own profile directory on this PC (systeem/browser/geschiedenis, saved every 30 s after a change). It is never sent to the profile server.

How do I clear browsing data?

Menu ⋮ › Clear browsing data, Ctrl+Shift+Delete, or the button on the history page (about:clear-data). Choose a time range (last hour, 24 hours, 7 days, 4 weeks, all time) and what: browsing history, cookies and other site data, cached images and files. It clears both engines:

ChoiceOwn engineChromium
Historythe visits in the range (also in the saved copy)its own history files (History, Visited Links, Top Sites, …) completely, in memory and in the saved copy
Cookies and site data, all timeall cookies (in memory)running: Storage.clearCookies + Storage.clearDataForOrigin for every visited site; not running: the saved cookie and site-storage files in your folder
Cookies and site data, a rangethe cookies of the sites visited in that rangeStorage.clearDataForOrigin for those sites (if Chromium is not running: at its next start)
Cached filesthe icon cacheNetwork.clearBrowserCache (the cache is never saved)

Downloaded files themselves stay in My files › Downloads.

How do I open a site with Chromium?

Use the engine button in the address bar (left of the star, only on http/https): Open with Chromium (this time), Always use Chromium for <host>, or Always use EUZOS for <host>. From a tab with a page of the own engine, Chromium opens in a new tab next to it. On about:browser you choose the default engine and remove per-site rules. From the console: chromium open <url>.

Why does it say "Chromium is not available on this PC"?

There is no Chromium package (not installed in apps/ on partition 2 and not loaded into memory), there is no chrome program in it, starting failed, or Chromium stopped within 4 seconds. The page shows the reason and the buttons "Open with the built-in engine" and "Try again with Chromium". Chromium only runs on x86-64.

How do I get Chromium on my PC?

Tick the Chromium option in the installer (step Apps; see Installer). That writes chromium=yes into \EOS\FW\APPS.TXT; on every boot the PC checks whether Chromium is in apps/, and if not, asks the profile server's app catalogue (GET /api/apps/chromium) and installs the signed package in the background, with a download token if the catalogue names a download server. By hand: apps install chromium (see Desktop and apps).

How do I download a file?

Right-click a link or image › Save link as…, Save image as…, Save file as… or, on an empty spot, Save page as…. The download runs in the background (the tab bar shows "Downloading: name (40%)"), then the Save as dialog opens, starting in My files › Downloads. At most 64 MB and 4 downloads at once. Chromium downloads go to My files › Downloads without a dialog.

What are browser profiles?

Every browser window belongs to a profile; there is always the default one. A profile has its own home page, favourites, history, cookies and, in Chromium, saved logins, so nothing mixes. Open one with New window for another profile in the browser menu (⋮) or the taskbar menu of the browser: choose a profile or create one. A profile can be protected: opening it then asks for your EUZOS password or QR code (Esc goes back). The name is at the right of the tab strip. A tab cannot move to a window of another profile. Each profile has its own Chromium, and they run side by side; if one crashes, only that profile's tabs stop. chromium stop stops them all, chromium stop <name> one. Signing out closes all profiles.

How do I report a problem with a page?

Press Report a problem on the right of the bar. Choose what is wrong (Layout is wrong, Does not load, Too slow, Does not work without JavaScript, Other), add a comment, optionally tick "Send the full address" and "Send a screenshot of this page" (off by default), and press Send. Only possible after login and only on an http(s) page. You get "Thank you! Your report has number N."

Details

The own engine

  • HTML (libs/web/src/html.rs): WHATWG tokenizer and tree construction for the common cases, error recovery without panics, limits (200,000 nodes, 4 MiB HTML); charset from Content-Type or <meta charset>.
  • CSS (css.rs, style.rs): selectors, cascade, @media, @import, custom properties, calc(); flex and grid layout (see docs/BROWSER.md "CSS layout").
  • No JavaScript: scripts are skipped, <noscript> is shown.
  • Network (net::web): HTTP/1.1 with keep-alive, gzip/deflate, redirects, cookies and HSTS in RAM only, cookies only from the site itself; TLS 1.3 only, certificates checked against \EOS\FW\ROOTS.PEM. Mixed content goes over https or not at all; a form from https to http gets a warning first.
  • Limits: HTML page 3 MiB, a stylesheet 768 KiB, all stylesheets 2 MiB, layout work max_steps 1,500,000, page height 400,000 px, history 50 per tab.
  • Privacy: typed form content never goes into the log; addresses only as scheme and host (the path only with browser debug on). At logout favourites, engine choices, history, cookies, icons and opened local files are wiped (browser::logged_out).
  • Not (yet): JavaScript, HTTP/2 and HTTP/3, brotli, a cache, TLS 1.2, PDF viewing, AVIF/BMP images, ::before/::after content.

Internal pages

PageWhatCommands
about:startstart page with favourites and search—
about:browserthe browser settings: default engine at the top, per-site engines (remove), search engine, history and privacy, then about this browser (build, Chromium state)?search-engine=<key>, ?engine=euzos|chromium, ?site-remove=<host>, ?keep-data=on|off (legacy ?zoekmachine=, ?site-weg= still accepted)
about:historyhistory per day, search, remove (legacy name about:geschiedenis)?q=<text>, ?n=<count>, ?remove=<time>.<hash> (legacy ?wis clears all)
about:clear-datathe dialog "Clear browsing data"?range=hour|day|week|4weeks|all&history=on&cookies=on&cache=on&go=1
about:bestand?<n>an HTML file opened from the explorer (in memory, only <style>, no commands)—
about:engine?euzos=<address> / ?chromium=<address>only from the buttons on the "opens with Chromium" page—

Commands in about: pages only work from the browser itself or another about: page, never from a link on a web page (BNET-8).

Chromium in the browser

  • One Chromium process per browser profile for that profile's Chromium tabs; following tabs are targets (Target.createTarget).
  • Control via the DevTools protocol over a pipe (--remote-debugging-pipe, fd 3 and 4), no network port (kernel/src/chromium/control.rs, libs/devtools). The bar maps to Page.navigate, Page.navigateToHistoryEntry, Page.reload, Page.stopLoading; closing a tab: Target.closeTarget.
  • Display: Chromium's Wayland surface is placed in the page area by the kernel compositor (kernel/src/screen/wayland.rs, kernel/src/screen/chromium.rs); input in the page area goes to Chromium, Ctrl+T/W/L/D and Ctrl+Tab stay with the browser.
  • Package: from apps/ on partition 2 (signed) or from RAM (package receive chromium over SSH); runs through the Linux translation layer (x86-64 only).
  • Profile: --user-data-dir=/data/chromium in the app's /data (the user's profile directory, or RAM). What is not kept without "Keep browser data" is listed in euzos_vfs::mirror::BROWSER_DATA.
  • Downloads: Browser.setDownloadBehavior to the app's /tmp/downloads, then to My files › Downloads, or without a profile directory to Save as.
  • Stopping: chromium stop (and logout) stops all of Chromium's processes.

Report a problem (BrowserFeedback)

The panel is libs/web/src/report_panel.rs; sending is kernel/src/browserfeedback.rs, in its own thread. Sent: the address (without user:password@, #fragment and, unless ticked, ?query), the category, the comment (≤ 2000 characters), browser version, build, architecture, language, page area, zoom, HTTP status, load and layout time, size, up to 20 error lines of the browser log for this page, and optionally a screenshot of only the page area (≤ 1280 px wide, PNG ≤ 512 KB). Never cookies, headers or form contents. The id is a per-session value derived from the PC token, so reports cannot be linked to the hardware inventory.

Reference

Console commands

CommandArgumentsWhat it does
browser—Usage help
browser<url>Show a web page in the top browser window (http://, https://, about:start, about:browser)
browser new[url]A new browser window (without url: the start page). Legacy alias: browser nieuw
browser debugon|offTimings of drawing, copying and events per frame in the log, and full paths of addresses. Legacy aliases: aan, uit
chromium[status]Chromium's state
chromium open<url>Open the address in a Chromium tab of the browser (no scheme: https:// is added)
chromium stop—Stop all Chromium processes (also wipes its in-RAM profile)
chromium traceon|offDevTools protocol trace in the log (x86-64). Legacy aliases: spoor, aan, uit
browserfeedback test[small|large]Send a test report (logged in; in a test build without login a 401 is expected). large adds a ~350 KB noise PNG. Legacy aliases: klein, groot
perf start / perf yt / perf net on|off / perf play—Chromium measurements, see Diagnostics
linuxtraceoff|errors|allSystem calls of Linux programs (Chromium) in the log, see Diagnostics
packagesee DiagnosticsApp packages in RAM (how Chromium is loaded by hand)

Functions and modules

Function / moduleRole
crate::browser::commandThe browser console command
crate::browser::start_addressabout:start for the mega menu
crate::browser::profile_loaded / logged_outFavourites, search engine and engines from the profile; wipe at logout
crate::browser::keep_data / set_keep_data / save_data / profile_dir_open"Keep browser data on this PC" and the encrypted history
crate::browser::Browser, BrowserWindow, CrTabA browser, a window with tabs, a Chromium tab
crate::browser::Browser::choose_engineOwn engine or Chromium for a new page
crate::favicon::begin / forgetSite icons in their own thread, cached per host per session
crate::download::start / tick / logged_outBackground downloads to Save as or the clipboard
crate::imagesImages fetched in their own threads after loading
crate::chromium::{open_tab, send_command, link, close_target, wipe, state, status, command}Chromium as engine
crate::chromium::control::{begin, stop, open, attach, command, set_trace, status}The DevTools pipe
crate::chromium::downloads::eventChromium downloads
crate::screen::chromium::{open_url, new_tab, gone, stopped, download_notice}Chromium's area in the window
crate::browserfeedback::{send, png, command}Report a problem
crate::app_installBackground install of Chromium from the app catalogue
libs/web (html, css, style, layout, tabs, favorites, find, zoom, address_bar, engine, pages, report_panel, contextmenu)The engine and the browser UI logic
libs/browserfeedbackThe report format (write in the kernel, strict read on the server)
libs/devtoolsDevTools protocol messages

Config files and profile settings

File / settingKeyValuesMeaning
\EOS\FW\APPS.TXTchromiumjaInstall Chromium in the background after installation
\EOS\FW\APPS.TXTchromium_urlURLTest override: fetch the package from this URL instead of the catalogue
\EOS\FW\ROOTS.PEM—PEM certificatesRoot certificates for TLS
profile settingbrowser-zoekmachineduckduckgo, mojeek, qwant, ecosia, startpageSearch engine
profile settingbrowser-engineeuzos, chromiumDefault engine
profile settingbrowser-site<host> TAB <engine> (one per site, max 32)Per-site engine
profile settingbrowser-favorietone line per favourite (max 40)Favourites
profile directorysysteem/instellingen/browsergegevenson, off (legacy aan, uit, still read)Keep browser data on this PC
profile directorysysteem/browser/geschiedenistextThe kept history (only with keep data on)

Since 27-10-2026 EUZOS writes English config file names, keys, values and confirmation words (for example WIPE-…, environment= in PROFILE.TXT); the old Dutch names (marked legacy here) are still read and accepted (docs/ENGLISH.md).

API endpoints (called by the kernel)

MethodPathUsed for
POST/api/browserfeedback/melding?token=<pc-token>Report a problem. This is the legacy Dutch route, still called by the kernel; the English route is /api/browserfeedback/report (see API)
GET/api/apps/chromiumApp catalogue entry for Chromium (see Apps and downloads)

Protocol messages and formats

BrowserFeedback report (version 1): a line header, an empty line, then the PNG (or nothing). The field names are wire format and stay Dutch:

browserfeedback=1
id=<session id>
build=<build>
arch=x86_64
browser=<version>
taal=<language>
adres=<address>
volledig=0|1
categorie=opmaak|laadt_niet|traag|zonder_js|anders
viewport=<w>x<h>
zoom=<percent>
status=<http status>
laadtijd=<ms>
opmaaktijd=<ms>
bytes=<size>
opmerking=<comment, escaped>
fout=<error line>          (0..n times)
afbeelding=<PNG length>

<PNG bytes>

Response: ok + id=<number>, or fout + reason with 400, 401 (not logged in), 404 (reports off), 408, 413, 429 (too often), 503. Limits: header 16 KiB, PNG 512 KiB; 10 per hour per network, 20 per day per account. Full rules: docs/BROWSERFEEDBACK.md.

DevTools over the pipe: JSON messages of the Chrome DevTools protocol (Target.createTarget, Target.closeTarget, Page.navigate, Page.navigateToHistoryEntry, Page.reload, Page.stopLoading, Browser.setDownloadBehavior), on fd 3 (to Chromium) and fd 4 (from Chromium).

See also

  • docs/BROWSER.md: the browser and its engine
  • docs/CHROMIUM.md: Chromium on EUZOS
  • docs/WAYLAND.md: the compositor in the kernel
  • docs/BROWSERFEEDBACK.md: Report a problem
  • docs/APPS.md: apps and the app store
  • FAQ: Explorer, Desktop and apps, Diagnostics