Fork of chromium/google-chrome to fix the white flash issue explained in this video
Chromium version 57.0.2925.0
Changed the background color from white to black in chrome pages. Removes the flash.
There are 2 main bugs in white flash
- when clicking links and opening them in new tabs or moving between tabs
- when opening new windows.
This fixes both of them in commit https://github.com/hbtlabs/chromium-white-flash-fix/commit/b1c4d8efd43fa46c61b9dc695f387f41a16947fb
Because it replaces the white by black and most websites have a white background and most people don't use a dark theme. Hence, the white flash is a non issue for the majority of users. Also, the webkit fix changes the background of chrome:// pages to black
Issue has been logged multiple times since https://bugs.chromium.org/p/chromium/issues/detail?id=1373 Most recent progress is https://bugs.chromium.org/p/chromium/issues/detail?id=470669 The issue has been broken down since they are attempting an algorithmic fix https://bugs.chromium.org/p/chromium/issues/detail?id=21798
Algorithmic fix: determining what's the background color of the current page or theme page then applying it during rendering instead of choosing white by default.
Package is for ubuntu64 precise and would install as chromium-beta
deb package libs to be unpacked (optional)
Limited to version chrome v56
Jonathan Timbaldi is working on turning all chrome pages dark here Windows binaries with this fix have been built.
Instructions here Binaries here MIRROR of chrome version 56
If there is demand, I will compile for other platforms. Since compiling for other platforms that I don't use requires installing mac/windows + building the project and its deps, it's not worth doing. Feel free to do it and share the binaries.
Use a chrome extension that has access to the chrome:// pages and inject whatever stylesheet you want. Example: https://github.com/hbt/chromedotfiles
Try disabling your theme. Some themes e.g https://chrome.google.com/webstore/detail/developer-edition-dark/lglfmldlfmbbehalkgiglehhjblbfcjo are known to create a micro white flash
download flash player and load it manually
Example:
nohup /opt/chromium.org/chromium-beta/chrome --disable-infobars --ppapi-flash-path=/home/hassen/programs/flash_player_ppapi_linux.x86_64/libpepflashplayer.so --allow-file-access %U --disk-cache-dir="/tmp/ram" &> /dev/null &
Chromium is not google chrome. It doesnt have the widevine codec plugin. Check in chrome://plugins
Chromium doesnt come with google features. You can include them by create API keys on your google account. Instructions
The links enclosed point to chrome 57 binaries. The browser does not auto-update. You can compile the branch to the latest version or wait until binaries are released and linked on this README.
Main reasons this is not done frequently are:
- code changes and this fix has to be adjusted (takes time)
- compile + release process is manual (takes time)
[chromium build instruction] (https://www.chromium.org/developers/how-tos/get-the-code)
Build from Docker using [https://github.com/hbt/chromium-white-flash-docker] (https://github.com/hbt/chromium-white-flash-docker)
In latest versions, the code has changed and this fix might no longer apply.
Steps:
- use docker image
- select version and build
- fix any build issues
- apply white flash fix
- produce deb files
Checklist:
- fix works (new tab, moving between tabs and new window)
- minimal side effects from fix (black background in chrome pages)
- deb files do not require libs (view below)
- docker repo is up-to-date
- a branch with the right tags exists
- links in this readme are up-to-date
For some chromium versions, building a deb file results in error (cannot link libraries) Use these instructions to install the binary, copy the libraries and update the path
export IGNORE_DEPS_CHANGES=1
ninja -C out/Release "chrome/installer/linux:beta_deb"
sudo dpkg -i chromium-browser-beta_57.0.2925.0-1_amd64.deb
# copy the libs manually
sudo -s
cd /opt/chromium.org/chromium-beta
mkdir libs
cp -R /media/hassen/linux-tmp/chromium/src/out/Release/*.so .
# fix the path
echo "/opt/chromium.org/chromium-beta/libs" > /etc/ld.so.conf.d/chrome_beta.conf
sudo ldconfig
# run browser
chromium-browser-beta
Getting "ERR_SSL_PROTOCOL_ERROR" or "This site can’t provide a secure connection" go to chrome://flags Set TLS to 1.2
This fork will be flagged as deprecated the moment those bugs are solved. It's been a few years, so don't hold your breath.