Outline of benefits of Thorium over vanilla Chromium.

Chromium is an amazing project, and I simply wanted to add to the amazingness by adding things I think fit well for people already using Chromium.

I have created a fork of Chromium, called Thorium, named after radioactive element No. 90.

I make builds for linux > https://github.com/Alex313031/Thorium Windows > https://github.com/Alex313031/Thorium-Win and MacOS/Android/different CPU architectures > https://github.com/Alex313031/Thorium-Special

Thorium has speed/performance flags, implemented as compiler and configuration flags. Namely:

The use of AVX and AES instructions. CFlag and LDFlags and Rust COPT flags changed from their default values of 2 to 3, lto_opt_level changed from 0 to 3, import_instr_limit changed from 5 to 100, all debug constructs stripped from binaries, and finally, various LOOP optimizations implemented as -mllvm flags passed to the LLVM Clang compiler.

This nets a 2-8% performance improvement, depending on the benchmark.

Some benchmarks I have ran and the results. >
Octane V2: 51836 vs 50048
Speedometer: 160 vs 149
Lighthouse run on github.com: 96 vs 94
Jetstream: 159 vs 150

Some package/UI changes include the addition of content_shell (a minimal browser window that just runs the core browser engine called blink in a window, useful for testing and web devs), and chromedriver (a selenium compatible browser automation and fuzzing program), as well as .desktop and wrapper files for content shell, and new menu options when right clicking the launcher on Linux to open content_shell or open in "safe mode" where all flags set in chrome://flags are temporarily ignored in case of a crash caused by them.

Patches included in Thorium are from various sources, or made by me. These include:

MPEG-DASH support.
A fix for font rendering on linux.
VAAPI patches for linux, including an Intel HD patch that allows GPU Acceleration on older Intel chips.
VDPAU patch to allow hardware accelerated video decode on some Nvidia cards using the proprietary driver on Linux.
A patch for the pulseaudio sandbox.
Security patches for DNS over HTTPS (DoH) that set it to secure mode by default and reduce the HTTP headers to the bare minimum, reducing the data an attacker could see.
Enabling Do Not Track by default.
Showing full URLs in the omnibox (address bar) by default.
Disabling FLOC by default.
Disable the Google API Key warning. (However Thorium now has baked in API Keys, enabling Google Sync) This previously prevented the annoying infobar, and is still included for people who build Thorium themselves without API Keys.
Add more search engines like duckduckgo, ecosia, ask, and yandex.
Remove the addition of the google chrome apt sources list in the .deb installer.

Add useful command line flags to the wrapper and .desktop file including: Disabling the Default Browser check and InfoBar, Experimental web platform features, Experimental Canvas2D, showing component extensions on chrome://extensions, requiring a user gesture to initiate playback of media, VAAPI Video decoder, Page Info v2, and Parallel Downloading.

Make portable releases in .zip format for windows and linux, with runners for each, as well as a .desktop file for installing on linux distros that don't use .deb packaging like arch or gentoo.


Comments

  1. Just to let you know, I love this project and have been using it at work. My company provisions Google Chrome with a bunch of settings including forced allowed cookies. So I can't test my website as a regular user, even using incognito window with 3rd party cookies disabled (seems my enterprise settings are still active even then).

    I went looking for Chromium builds for my M1 mac and couldn't find a binary that worked. Then I landed on your project. The Thorium Special build for M1 worked great, and now I can use a Chromium based browser without my company's enterprise settings messing up my local development.

    I'm a happy dev because of you <3

    ReplyDelete
  2. thorium for Android, you can't log in to your accounts to synchronize bookmarks

    ReplyDelete
  3. Part 2:
    No, it's never about 'safety & security'. Check out these lies 4 instance ~>
    "The command line flag --enable-hardware-overlays=single-fullscreen enables the single full screen strategy.
    Hardware overlay is a video overlay technique that uses a dedicated memory buffer in a computer's video hardware to render an image to a display screen. It's used to improve the display of fast-moving video images, such as those from a TV card, DVD, or computer game."
    = No, it does nothing, & is only there 2 pretned (((They))) R doing something 2 try & fix it, while they keep making it WORSE!
    "–single-process = Runs the renderer and plugins in the same process as the browser"
    = Ya sure, 4 a few SECONDS until something like ((($hredIt))) / Reddit, crashes the whole thing because they pretend it can't B fault-tolerant like Firefox & every other browser B 4 the 'multi-thread apocalypse' ((($kam))) =P

    iAm experimenting with lots offlags & here R $um iUse rite now that seem OK but it's always evolving ~>
    START "" ".\Z\ZuPurToob.exe" --unlimited-storage --screen_ai --enable-hardware-overlays=single-fullscreen --allow-http-screen-capture --disable-auto-wpt-origin-isolation --allow-cross-origin-auth-prompt --keep-old-history --disk-cache-dir="C:\_Cache_(Deletable)\ZuPurToob" --crash-dumps-dir="C:\_Cache_(Deletable)\ZuPurToob\CrashDump" --user-data-dir="%~dp0%\YorZtov" --disk-cache-size=1073741824 --max_old_space_size=1024 --no-default-browser-check --no-first-run --disable-sync --ungoogled-supermium --ui-prioritize-in-gpu-process --disable-breakpad --disable-encryption --disable-machine-id --enable-background-thread-pool --disable-gpu-sandbox --in-process-gpu --instant-process --disable-site-isolation-for-policy --renderer-process-limit=1 --task-manager-show-extra-renderers --test-child-process --aggressive-cache-discard --disable-crashpad-forwarding --disable-crash-reporter --disable-crashpad-for-testing --disable-logging-redirect --disable-logging --disable-threaded-animation --document-user-activation-required --disable-client-side-phishing-detection --allow-outdated-plugins --classic-omnibox --classic-omnibox-border --compact-ui --enable-features=SupermiumCustomTabs --password-store=basic --disable-features=OptimizationHints --disable-features=DialMediaRouteProvider --disable-features=TabHoverCards,PowerBookmarksSidePanel,AutofillServerCommunication,CertificateTransparencyComponentUpdater,OptimizationHints,DialMediaRouteProvider,BackForwardCache --disable-back-forward-cache --disable-component-update --allow-file-access-from-files --ash-no-nudges --allow-running-insecure-content --password-store=basic --disable-background-networking --disable-domain-reliability --metrics-recording-only --override-metrics-upload-url --no-pings

    = Note the 'overlays' thing doesn't work (yet = may need 2 'roll yor own' similar type thing) & iDunno yet if 'unlimited storage' or 'keep old history' work either, but from reading through the '(((Flags)))' seem 2 B options 2 streamline things ~>
    https://peter.sh/experiments/chromium-command-line-switches/
    BTW: U can reach me at 'balkanguy (at) live (dot) com' if U want $$$ 4 this stuff =D I'm happy 2 pay if that's wat U need! iOnly care about PERFORMANCE! =)

    ReplyDelete

Post a Comment

Popular posts from this blog

The Good, the Bad, and the Ugly

AVX2 Builds and new ChromiumOS builds.