Chromium
Chromium är en variant av Googles webbläsare Chrome med en öppen källa. Den har ett minimalt gränssnitt, kraftfulla webbutvecklingsverktyg och en inbyggd aktivitetshanterare. Chromium-projektet är på framkanten vad gäller genomförandet av nya webbstandarder.
Eftersom Chromium är av öppen källkod får den juridiskt sätt inte omfatta många funktioner som den proprietära Google Chrome-webbläsaren innehåller som standard, det vill säga automatiska uppdateringar. En komplett lista med skillnader kan hittas i Chromium-förvaret.
Installation
USE-flaggor
USE flags for www-client/chromium Open-source version of Google Chrome web browser
X
|
Add support for X11 |
component-build
|
Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use. |
cups
|
Add support for CUPS (Common Unix Printing System) |
custom-cflags
|
Build with user-specified CFLAGS (unsupported) |
debug
|
Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use. |
gtk4
|
Build with GTK4 headers. |
hangouts
|
Enable support for Google Hangouts features such as screen sharing |
headless
|
Build Ozone only with headless backend, NOT RECOMMENDED for general use. |
kerberos
|
Add kerberos support |
libcxx
|
Use bundled libc++ instead of libstdc++ for building. |
lto
|
Build with Link Time Optimizations (via clang's ThinLTO) |
official
|
Enable Official build instead of Developer build. |
pax-kernel
|
Allow building on a PaX-enabled kernel |
pgo
|
Build with Profile Guided Optimizations (2-stage compilation) |
pic
|
Disable optimized assembly code that is not PIC friendly |
proprietary-codecs
|
Enable codecs for patent-encumbered audio and video formats. |
pulseaudio
|
Add support for PulseAudio sound server |
qt5
|
Add support for the Qt 5 application and UI framework |
screencast
|
Enable support for remote desktop and screen cast using PipeWire |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
suid
|
Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels |
system-av1
|
Use system libaom and dav1d instead of the bundled one. |
system-ffmpeg
|
Use system ffmpeg instead of the bundled one |
system-harfbuzz
|
Use system harfbuzz instead of the bundled one. |
system-icu
|
Use system icu instead of the bundled one |
system-png
|
Use system libpng instead of the bundled one. |
vaapi
|
Enable Video Acceleration API for hardware decoding |
wayland
|
Enable dev-libs/wayland backend |
widevine
|
Unsupported closed-source DRM capability (required by Netflix VOD) |
icu
För att undvika emerge slot-konflikter med dev-libs/libxml2, som förhindrar Chromium att emergas, måste
icu
USE-flaggan ställas in i /etc/portage/make.conf. Om icu
nyligen inställts, uppdatera systemet innan du emergar Chromium med hjälp av följande:root #
emerge --ask --update --deep --newuse @world
L10N
Det finns många tillgängliga språk via Chromiums L10N USE_EXPAND-variabel. Så många, att wikin faktiskt inte kan visa upp alla. För en fullständig lista med lokaliseringsspråk, kör:
user $
equery u www-client/chromium | grep -i l10n
equery-verktygen kommer som en del av app-portage/gentoolkit-paketet. För att kunna använda kommandot ovan behöver det paketet vara installerat.
För mer information gällande lokalisering, se Localization article-artikeln.
Emerge
Var medveten om att kompilering av Chromium kan kräva mycket tid, CPU-kraft, och system minne. Tillhandahåll 2 GB system minne per make-tråd (som definieras av MAKEOPTS, se det här inlägget). Att kompilera Chromium medan systemet är under tung belastning är förmodligen inte en bra idé.
Efter att önskade USE-flaggor är inställda, emerge Chromium med kommandot nedan:
root #
emerge --ask www-client/chromium
Konfiguration
Clang
För att kompilera Chromium med Clang, se först Clang#Clang_environments.
För specifikt Chromium behövs följande env-inställningar:
/etc/portage/env/clang-chromium
# Om så önskas, lägg till dessa i EXTRA_GN: # - thin_lto_enable_optimizations=true # - use_thin_lto=true # - is_cfi=true EXTRA_GN="use_lld=true is_clang=true clang_use_chrome_plugins=false" # # Behövs för GCC 11 CHROMIUM_FORCE_LIBCXX=yes
Därefter, aktivera det (notera att vi tar baskonfigurationen från den andra artikeln, sedan lägger till inställningarna vi nyss definerade):
/etc/portage/package.env
# compiler-clang: kompilera med en allmänn Clang-miljö (se Clang-artikeln) # clang-chromium: kompilera med modifieringar anpassade för Chromium www-client/chromium compiler-clang clang-chromium
HiDPI
Chromiums visuella output är i regel frånkopplad från en skrivbordsmiljös DPI-proportion. Den kan instrueras att starta i ett proportionerat läge genom att använda alternativet --force-device-scale-factor
. Detta alternativ kan ta emot ett heltals- eller decimalvärde. Vanlig proportionalitet börjar på 1,0. För att till exempel förstora Chromiums gränssnitt med 1,5 gånger:
user $
chromium --force-device-scale-factor=1.5
En fullständig lista med alternativ kan hittas här.
Gediget stöd för Wayland
Sedan version 87 kan gediget stöd för Wayland i Chromium åstadkommas genom att medföra följande alternativ:
user $
chromium --enable-features=UseOzonePlatform --ozone-platform=wayland
För att starta Chromium med Waylands backend varje gång, lägg till följande rader i användarens konfigurationsfil:
~/.config/chromium-flags.conf
--enable-features=UseOzonePlatform --ozone-platform=wayland
Inaktivera tab hover-kort
Sedan version 91.0.4472.77 är det inte längre möjligt att inaktivera tab hover-kort med Chromes flaggor. Det verkar inte finnas någon prioritet att återinföra denna funktion hos Google. För att inaktivera dem kan du ge Portage denna patch:
/etc/portage/patches/www-client/chromium/hover-card.patch
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc index 2c94eb0..1f7bde0 100644 --- a/chrome/browser/ui/views/tabs/tab_strip.cc +++ b/chrome/browser/ui/views/tabs/tab_strip.cc @@ -2149,6 +2149,7 @@ void TabStrip::OnMouseEventInTab(views::View* source, } void TabStrip::UpdateHoverCard(Tab* tab, HoverCardUpdateType update_type) { + return; // En del operationer (inklusive exempelvis starta ett drag) kan göra att // tabbens fokus ändras samtidgt som flikremsan börjar animera; // hover-kortet borde inte synas just då.
Se även Tillagd inställning för tab hover-kort.
Användning
Chrome URL:er
Liksom Firefox har Chromium många interna Chrome-URL:er (specialsidor) som används för utökad konfiguration, felsökande, uppgiftshantering osv. En uttömmande lista med specialsidor kan nås på chrome://about/
.
Centrala specialsidor:
chrome://components/
- visar aktiverade komponenter och en knapp för att leta efter uppdateringar för respektive komponent. Ibland kan det vara nödvändigt att för hand uppdatera PPAPI Adobe Flash-modulen genom det här gränssnittet när man använder Chrome.chrome://chrome/
- visar Om sidan, vilket inkluderar versionsnummer.chrome://extensions/
- en sida för att hantera tillägg.chrome://flags/
- aktivera/inaktivera experimentella funktioner.chrome://flash/
- visar särskilld information om Adobe Flash Player (om så tillgänglig för Chromium).chrome://gpu/
- visar information vad gällande användning av grafikacceleration.chrome://history/
- visar webbhistorik. Även tillgänglig genom hamburgarmenyn eller genom att trycka på Ctrl+h.chrome://memory-redirect/
- mät minnesanvändning, både av webbläsaren och enskilda tabbar.chrome://net-internals/
- massor av information gällande nätverkskopplingar.chrome://plugins/
- visar en lista av tillägg. Aktivera/inaktivera dem genom det här gränssnittet. (Utfasat sedan Chrome version 57[1].)chrome://version/
- visar mer information änchrome
-sidan.
Felsökning
Tabbar crashar
Emellanåt crashar tabbar i Chromium. Det kan finnas många orsaker till detta, dock är brist på system minne den mest förekommande orsaken. Det här kan framförallt hända i Gentoo om man kompilerar en www-client/chromium-uppdatering samtidigt som Chromium körs.
free-kommandot kan användas för att se mängden tillgängligt minne:
user $
free -h
total used free shared buff/cache available Mem: 15G 11G 735M 789M 3.4G 3.1G
Lösningen är att frigöra minne tills kompileringen slutförs. Öppna en resursövervakare och avsluta processer som använder stora mängder av minnet.