– Includes Widevine, ffmpeg, chrome plugins, as well as thinLTO and PGO compiler optimizations. It is built with SSE3 and AVX, so it won't launch on CPU's below 2nd gen Core or AMD FX but benefits from Advanced Vector EXtensions. You can disable this and use regular SSE3 like chromium and chrome. (See below.)
> - Experimental PDF annotation support (called "Ink" on ChromiumOS).
> - Patches from Debian including font rendering patch, VAAPI Patch, native notifications patch, title bar patch, and... the VDPAU Patch!! (Rejoice NVidia users)
In general follow build instructions at https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/linux/build_instructions.md and API Keys (if desired) at https://www.chromium.org/developers/how-tos/api-keys
- After initial download of source code, run (from where you cloned this repo) `trunk.sh`. This will update and sync the sources and at the end it will download the PGO profile for chromium. The file will be downloaded to *//chromium/src/chrome/build/pgo_profiles/*.profdata* with the actual file name looking something like 'chrome-linux-main-1632505958-ddbb37bcdfa7dbd7b10cf3a9b6a5bc45e7a958a6.profdata', which should be added to the end of args.gn as per below.
- Then (from where you cloned this repo) run `setup.sh`. This will copy all the files and patches to the needed locations.
- Run `gn args out/thorium` and the contents of args.gn in this repo should be copy/pasted *--Include your api keys here at the top or leave blank, and edit the last line to point to the actual path and file name file name of '*.profdata'.*
- To build, run `autoninja -j8 -C out/thorium chrome chrome_sandbox content_shell -d stats`*The -j# can be changed to limit or increase the number of jobs (generally should be the number of CPU cores on your machine), and the -d stats at the end just shows better verbose stats during compiling. You could also append chromedriver after content_shell to build chromedriver, the selenium compatible browser fuzzing library.*
- To install, copy/paste the contents of your *out/thorium* dir to a good location i.e. *$HOME/bin/thorium*. **RECOMMENDED - Copy and run clean.sh within this dir to clean up build artifacts**. *Then you can just run the browser with `~/bin/thorium/chrome` or the content_shell with `~/bin/thorium/content_shell`.*
- **Proper Install:** To install with a deb, dont copy out/thorium, instead run `autoninja -C out/thorium/ "chrome/installer/linux:unstable_deb"` A nice .deb file will now be in out/thorium and you can install it with `sudo dpkg --install *.deb` It will be called chromium-browser-unstable, but the .debs in the releases section are just renamed to thorium-browser.
- NOTE: To get back to "Trunk", i.e. revert all changes in order to build vanilla chromium, just run `trunk.sh` again.
- NOTE: To compile without AVX, simply go to //chromium/src/build/config/compiler/BUILD.gn, search for *mavx* (theres only two lines), and replace *mavx* with *msse3*.