Chromium

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Chromium and the translation is 98% complete.

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.
js-type-check Enable JavaScript type-checking for Chrome's web technology-based UI. Requires Java.
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.
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

Important
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
Note
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

Tip
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:

FILE /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):

FILE /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:

FILE ~/.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:

FILE /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 än chrome-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.

Se även

  • Firefox — Mozilla's web browser.
  • Chrome — Google's proprietary (closed source) web browser.

Referenser