Chromium

提供: ArchWiki
2022年6月30日 (木) 22:35時点におけるAshMyzk (トーク | 投稿記録)による版 (→‎ネイティブ Wayland サポート: 同期)
ナビゲーションに移動 検索に移動

関連記事

Chromium は Google によるオープンソースのグラフィカルウェブブラウザです。Blink レンダリングエンジンを使用しています。

Chromium と Google Chrome との違いについては このページ を見てください。さらに:

  • 同期は Chromium 89 以上 (2021-03-02) で利用できません。[1]
ノート: 同期は、Chrome の OAuth2 認証情報を使用するか、自分の認証情報を取得することで一時的に利用可能にできますが、免責事項に注意し、この方法を長期的な解決策と考えないでください。長期的な解決策としては、ブックマークの同期するために xbrowsersync に移行することを検討してください。

他の Chromium ベースのブラウザは アプリケーション一覧/インターネット#Blink ベース を見てください。

インストール

Chromium をインストールできるパッケージがいくつか存在します:

Google Chrome のパッケージは:

ノート: Chromium プライバシーページによると(日本語訳):「Chromium のソースコードをコンパイルすることで利用可能になる Google と通信する機能は、Google プライバシーポリシーに従います。」Google サービスとの統合をすべて避けたい人向けにプライバシー重視の Chromium 派生版があります。

設定

デフォルトアプリケーション

Chromium をデフォルトのブラウザに設定したり、ダウンロードしたファイルを開くときに Chromium がどのアプリケーションを起動するかを変更したりするには、デフォルトアプリケーション を見てください。

証明書

Chromium は証明書の管理に NSS を使っています。chrome://settings/certificates で証明書を管理できます。

フラグを永続化する

ノート: chromium-flags.conf ファイルとそれに付随するカスタムランチャースクリプトは Arch Linux の chromium パッケージに固有のものです。google-chromeAURgoogle-chrome-devAUR では、代わりに chrome-flags.confchrome-dev-flags.conf を使ってください。

フラグは chromium-flags.conf ファイル内に記述して $HOME/.config/ に置くことができます。($XDG_CONFIG_HOME 環境変数を設定した場合は、その環境変数が示すディレクトリの中にファイルを置いてください。)

特別な構文は使用されず、フラグはターミナルに書き込まれるのと同じように定義されます。

  • 引数は空白で分割され、シェルのクォート規則が適用されますが、それ以上の解析は実行されません。
  • ファイル中のどこかが不適切に引用されている場合、致命的なエラーが発生します。
  • フラグは読みやすくするために別の行にすることができますが、これは必須ではありません。
  • ハッシュ記号(#)で始まる行は読み飛ばされます。(これは chromium ランチャースクリプトでのみサポートされており、google-chromeAUR パッケージで chrome-flags.conf を使用している場合は動作しません)

以下は、フラグ --start-maximized --incognito を定義している chromium-flags.conf ファイルの例です。

~/.config/chromium-flags.conf
# This line will be ignored.
--start-maximized
--incognito

GPU アクセラレーションを強制する

警告: レンダリングブラックリストを無効化すると、ホスト環境のクラッシュを含む不安定な挙動を引き起こすかもしれません。詳細については chrome://gpu にあるバグレポートを見てください。

デフォルトでは、Linux 版の Chromium は如何なる GPU アクセラレーションも使用しません。GPU アクセラレーションを強制するには、以下のフラグを永続的な設定追加してください。

~/.config/chromium-flags.conf
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy

さらに、GPU ワークアラウンドが使用されないようにするために --disable-gpu-driver-bug-workarounds フラグも渡す必要があるかもしれません。フラグが設定されて利用可能になれば、chrome://gpu でフラグが "Hardware accelerated" と表示されるはずです。

この記事またはセクションは情報が古くなっています。
理由: 2021年5月にバグフィックスが mesa にマージされました。[2] (Discuss)

mesa 20.1.1 以降、--enable-native-gpu-memory-buffers は壊れています。[3]

ハードウェアビデオアクセラレーション

ノート:
  • この機能に対する Chromium や Arch Linux での公式サポートはありません [4]。しかし、公式リポジトリの chromium は VA-API サポートありでコンパイルされており、専用のフォーラムスレッドで助けを求めることができます。
  • ネイティブ Wayland を使用しているときは、VA-API は chromium パッケージで機能しませんが、chromium-wayland-vaapiAUR では機能します。

Chromium で VA-API サポートを有効にするには:

  • 使用中のビデオカード用の適切な VA-API ドライバをインストールしてください。そして、VA-API が有効化されて正常に動作していることを確認してください。ハードウェアビデオアクセラレーションを見てください。プロプライエタリな NVIDIA サポートは、libva-vdpau-driver-chromiumAURlibva-vdpau-driver-vp9-gitAUR をインストールする必要があります。
  • --enable-features=VaapiVideoDecoder オプションを設定してください。ANGLE GL レンダラーと libva-intel-driver を使用している場合は、これで十分です。
  • ANGLE を使用している場合、Chromium は古い i965 ドライバを強制的に使用し、intel-media-driver が使用されていると失敗します。回避策として、VA-API を手動で設定してください。詳細については [5] を見てください。
  • Xorg でシステムの GL レンダラーを使用するには、--use-gl=egl--use-gl=desktop のどちらか一方を使用してください。XWayland では、--use-gl=egl フラグを使用してください(現在、一部のシステムでカクつきが発生しますFS#67035)。
  • VA-APU がまだ動作しない場合は、--disable-features=UseChromeOSDirectVideoDecoder フラグを試してください。[6]

ヒントとテクニック

使用中の VA-API ドライバでサポートされているコーデックの動画の視聴がうまく行くかどうか確認するには(vainfo はどのコーデックがサポートされているかを表示しますが、Chromium は VP9 と h264 だけをサポートします):

  • Ctrl+Shift+I を押すか、コンテキスト(右クリック)メニューの 検証 ボタンを押して DevTools を開いてください
  • Media inspection タブを追加してください: ハンバーガーメニュー(︙) > More tools > Media
  • 新しく開いた Media タブで、Video Decoder の Hardware decoder の状態を見てください。

十分に大きな動画でテストしてください。バージョン 86 から、デスクトップ版の Chromium は 720p よりも大きい動画でしかアクセラレーションを使用しません

VP8/VP9 ハードウェアデコードが使用できない Youtube を視聴しているときに CPU 使用率を減らすには、h264ifyenhanced-h264ify 拡張機能を使用してください。

一部のシステム(特に XWayland)では、GPU アクセラレーションを強制する必要があるかもしれません。このセクションでの目的に対しては --ignore-gpu-blocklist のみで十分です。

Skia レンダラーは、現在ビデオデコードアクセラレーションと互換性がないので、無効化する必要があるかもしれません: --disable-features=UseSkiaRenderer

PDF ビューアプラグイン

Chromium と Google Chrome には Chromium PDF Viewer プラグインがバンドルされています。このプラグインを使用したくない場合は、chrome://settings/content/pdfDocuments 内の Download PDFs を確認してください。

Flash Player プラグイン

Flash Player のサポートは Chromium 88 で削除されました。[7]

XWayland での動作

NVIDIA 社のプロプライエタリドライバを使用している場合、XWayland 上で Chromium を実行すると、GPU プロセスが時々クラッシュすることがあります。GPU プロセスがクラッシュしないようにするには、以下のフラグを追加してください。

--use-angle=vulkan --use-cmd-decoder=passthrough
ノート: これはすべての XWayland 関連のクラッシュを防止するわけではありません。

ネイティブ Wayland サポート

バージョン 97 以降、Chromium でのネイティブ Wayland サポートは、次のフラグを使用して有効にできます [8]:

--ozone-platform-hint=auto

永続的な設定については、#フラグを永続化するを参照してください。このフラグはブラウザのフラグメニューからも設定できます。

この設定により、wayland セッション内では wayland Ozone バックエンドが選択されます。なので、X11 と Wayland を頻繁に切り替える場合でも、デスクトップエントリは一つだけで大丈夫です。

ノート: ブラウザのフラグメニューで "ozone-platform-hint" を変更すると、ブラウザが再起動ボタンを表示させます。しかし、これは使用しないでください。ブラウザは、フラグが変更される前のプラットフォームで再起動されるからです。ブラウザを閉じて、その後、再び開く必要があります。

ヒントとテクニック

次の記事を参照してください: Chromium 設定

トラブルシューティング

フォント

ノート: Chromium は独自のサンドボックスを使っているため、fontconfig/GTK/Pango/X などと完全な統合がされていません。詳しくは Linux Technical FAQ を参照してください。

タブのフォントサイズが大きすぎる

GTK#設定 で言及されているように、Chromium は GTK の設定を使用します。Chromium は設定されると、タブに gtk-font-name の設定を使用します(これにより、ウインドウのフォントサイズと合わなくなる場合があります)。この設定を上書きするには、--force-device-scale-factor=1.0 を使用してください。

WebGL

使用中のグラフィックカードが Chromium のブラックリストに入っている可能性があります。#GPU アクセラレーションを強制する を見てください。

Bumblebee で Chromium を使っている場合、GPU のサンドボックスによって WebGL がクラッシュすることがあります。このようなときは、optirun chromium --disable-gpu-sandbox で GPU のサンドボックスを無効にできます。

上記の方法で問題が解決しない場合、chrome://gpu/ のデバッグ情報を見て下さい。

Chromium はユーザプロファイルに GPU に関する誤った情報を保存することがあります。例えば、Optimus を使って Nvidia カードから Intel カードに切り替えた場合、たとえ Nvidia カードや primusrun/optirun を使用していなくても、chrome://gpu に Nvidia カードが表示されます。異なるユーザデータディレクトリを使って実行することにより(例: chromium --user-data-dir=$(mktemp -d))、この問題を解決できる場合があります。持続的な解決策として、~/.config/chromium/Local\ State を削除して GPU の情報をリセットできます。

HiDPI の描画がおかしい

Chromium は自動的に HiDPI ディスプレイでの倍率設定を行います。しかし、これにより GUI の描画がおかしくなることがあります。

--force-device-scale-factor=1 フラグをを使用して、自動倍率設定を上書きできます。

ネイティブの Wayland サポート が有効化されている場合、Chromium は、各モニタに設定された倍率を元に自動的に倍率を設定します。

GNOME Keyring を使用していると起動するたびにパスワードを要求される

GNOME/Keyring#パスワードが保存されない を見てください。

ネットワーク内の Chromecast が検出されない

chrome://flags/#load-media-router-component-extension 内の Media Router Component Extension を有効化する必要があります。

パスワードだけが同期されない

同期がパスワードに対してだけ機能しない場合(chrome://sync-internals/ で確認できます)、プロファイルのログインデータを削除してください:

$ rm ~/.config/chromium/Default/Login\ Data*

詳細は Google Chrome Help forum を見てください。

デスクトップ環境を切り替えると cookie とパスワードが消える

Chromium を起動したときにターミナルに Failed to decrypt token for service AccountId-* というメッセージが表示される場合、Chromium が間違ったパスワード保存バックエンドを使おうとしたのかもしれません。これはデスクトップ環境を切り替えたときに起こりえます。

Chromium 設定#使用するパスワードストアの設定 を見てください。

Google Sync を有効化すると起動時に固まる

--password-store=basic フラグを使うか、他の適切なパスワードストアを使って Chrome を起動してみてください。

Chromium 設定#使用するパスワードストアの設定 を見てください。

デフォルトのブラウザとして設定するかを毎回尋ねてくる

KDE を使用していて、一度 Firefox を(Firefox 内のボタンをクリックして)デフォルトのブラウザとして設定したことがある場合、たとえ "デフォルトに設定" ボタンをクリックしたとしても 、Chromium を起動するたびに毎回 Chromium をデフォルトのブラウザとして設定するかを尋ねられることがあります。

Chromium は xdg-settings check default-web-browser chromium.desktop を実行することで chromium がデフォルトのブラウザであるかを確認します。そのコマンドの出力が "no" である場合、chromium がデフォルトのブラウザでないと認識します。xdg-settings スクリプトは以下の MIME の関連付けを確認し、すべてが chromium.desktop であることを期待します:

x-scheme-handler/http
x-scheme-handler/https
text/html

これを直すには、システム設定 > アプリケーション > デフォルトのアプリケーション > Web browser を開いて、Chormium を指定してください。そして、text/html の MIME の関連付けを設定してください。

$ xdg-mime default chromium.desktop text/html

最後に、MIME のデータベースを更新してください:

$ update-mime-database ~/.local/share/mime

"このブラウザまたはアプリは安全でない可能性があります" Google へのログインエラー

2020年04月20日以降、Web 開発用に --remote-debugging-port=9222 フラグを指定して chromium を実行すると、 Google アカウントにログインできません。このフラグを一時的に無効にしてログインすると、再び有効にできます。

144Hz + 60Hz モニタを使うと Chromium が 60fps でとまる

この問題に対する適切な回避策があります。以下のフラグを永続的な設定追加してください:

~/.config/chromium-flags.conf
--use-gl=egl
--ignore-gpu-blocklist
--enable-gpu-rasterization

これにより、コンポジタが 144fps でリフレッシュする場合、144Hz ディスプレイ上で使用すると Chromium が 144fps で実行されます。これにより、少しカクつくかもしれないことを留意してください FS#67035。しかし、60 fps で止まるよりはマシです。

Chromium でスクロール速度が遅い

Chromium や Electron ベースのアプリケーションでマウスホイールのスクロールが遅すぎることがあります。以下にいくつか解決法を挙げます。

Libinput#マウスホイールのスクロール速度の調整 では libinput の libinput_event_pointer_get_axis_value 関数をインジェクトし、スケール係数を変更するインターフェイスを提供します。これはアプリケーションレベルのインジェクションではないので、アプリケーション固有のスケール係数調整用の追加スクリプトが必要です。Chromium の縦幅の小さい開発者ツールでは、スケール係数を十分大きくするとスクロールが速くなりすぎるかもしれないことに注意してください。

imwheel は X のホイールボタンのイベントを複数回リプレイすることでスクロールの距離を増やします。しかし、chromium は実際のスクロールとリプレイされたスクロールを2つのイベントとして認識します。これらの間には小さいですが感知できる遅延が存在します。なので、一回のマウスホイールスクロールで2回のページジャンプが発生します。タッチパッドのスクロールでも注意が必要です。

Linux Scroll Speed FixSmoothScroll はスクロール距離の変更をサポートする chromium 拡張機能です。ウェブページ内でスクロールすると、現在フォーカスされているノードの最も近いスクロールできる祖先を見つけて、たとえその祖先が一番下までスクロールされていたとしても、その祖先に対してスクロールメソッドがピクセル距離を使って呼ばれます。なので、テキストエディタやスクロール可能な要素にスクロールすると、マウスを動かす以外の方法でその要素からスクロールして出ることはできません。また、拡張機能ベースの手段は Chromium 外では利用できません。

参照