Chromium

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

Chromium は、Blink レンダリングエンジンをベースとした、オープンソースなグラフィカルウェブブラウザです。プロプライエタリな Google Chrome ブラウザの基礎となっています。

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 は証明書の管理に Network Security Services を使っています。chrome://settings/certificates で証明書を管理できます。

フラグを永続化する

ノート: chromium-flags.conf ファイルとそれに付随するカスタムランチャースクリプトは、Arch Linux の様々な Chromium パッケージに固有のものです。Google Chrome に対しては、代わりに chrome-flags.conf (開発版やベータ版の場合は chrome-チャネル名-flags.conf) を使用してください。

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

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

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

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

~/.config/chromium-flags.conf
# この行は無視されます。
--start-maximized
--incognito

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

少なくとも Chromium 110 から、ほとんどのシステムに対して GPU アクセラレーションがデフォルトで有効化されています。あなたのシステム構成がブラックリストと合致する場合、以下のフラグを永続的な設定追加する必要があります:

警告: レンダリングブラックリストを無効化すると、ホストのクラッシュなどの不安定な挙動を引き起こすかもしれません。詳細については chrome://gpu にあるバグレポートを見てください。
~/.config/chromium-flags.conf
--ignore-gpu-blocklist
--enable-zero-copy

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

ノート:
  • この機能に対する Chromium や Arch Linux からの公式サポートはありません [2]。しかし、公式リポジトリの chromium は VA-API サポートありでコンパイルされており、専用のフォーラムスレッドで助けを求めることができます。
  • Chromium バージョン 122 から、追加の VA-API のパッケージはもはや必要なくなりました。公式リポジトリの chromium パッケージでネイティブな Wayland バックエンドを使用している場合、VA-API は動作します。
  • AMD GPU デバイス上では、VA-API はそのままでは動作しません。動作させるには mesa >= 24.1 が必要であり、Vulkan を有効化する必要があります。これによって、X11/XWayland で WebGL の問題が発生する場合があります。ネイティブ Wayland サポートでの Vulkan はバージョン 125.0.6422.141-1 から動作します。
ノート: chromium-flags.conf の適切なフラグの組み合わせを見つけようとしているのであれば、このファイルには --enable-features や --disable-features で始まる行はそれぞれ多くとも1行しか含むことができないことに注意してください。複数の機能はコンマで繋げることができます。

vainfo (ハードウェアビデオアクセラレーション#VA-API の確認 を参照) の出力を見て VA-API のサポートがあることを確認した場合は、ひとまず以下のフラグだけで試してみてください:

~/.config/chromium-flags.conf
--enable-features=VaapiVideoDecodeLinuxGL

それ以外の場合は、以下を読んでください。

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

  • 使用中のビデオカード用の適切な VA-API ドライバをインストールしてください。そして、VA-API が有効化されて正常に動作していることを確認してください。ハードウェアビデオアクセラレーションを見てください。プロプライエタリな NVIDIA サポートは、libva-vdpau-driver-vp9-gitAUR をインストールする必要があります。
  • --enable-features=VaapiVideoDecoder オプションを設定してください。ANGLE GL レンダラーと libva-intel-driver を使用している場合は、これで十分です。
  • ANGLE を使用すると、intel-media-driver が使用されている場合、Chromium は古い i965 ドライバを強制的に使用し失敗します。回避策として、VA-API を手動で設定してください。詳細については [3] を見てください。
  • Xorg か Wayland でシステムの GL レンダラを使用するには、--use-gl=egl を使用してください。Chrome 112 を使用している場合、このオプションはもはや必要ないかもしれず、AMD GPU を使用している場合は GPU アクセラレーションの機能が壊れる場合があります。
  • VA-API がまだ動かない場合は、--enable-features=VaapiIgnoreDriverChecks--disable-features=UseChromeOSDirectVideoDecoder フラグを試してください。
  • VA-API が Xorg と古い GPU 上でまだ動かない場合は、LIBVA_DRI3_DISABLE=1 環境変数を設定してください [4]

Vulkan

Vulkan を使用する場合、以下のフラグが必要で、Chromium 126 と Mesa 24.1 ではこれで十分でしょう:

~/.config/chromium-flags.conf
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE

先述の追加のフラグは入れないでください。

ヒントとテクニック

この記事またはセクションは情報が古くなっています。
理由:
  • Wayland + RADV の環境では Chromium は AV1 に VaapiVideoDecoder を使用します。
  • Wayland + RADV の環境では Chromium は全てのサイスの動画に VaapiVideoDecoder を使用します。
(Discuss)

使用中の 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-h264ifyNot yet, AV1[5] 拡張機能を使用してください。

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

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

KDE 統合

Plasma との統合は plasma-browser-integrationインストールしてください。詳細は KDE Plasma Browser Integration を見てください。

PDF ビューアプラグイン

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

Xwayland での動作

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

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

ネイティブ Wayland サポート

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

--ozone-platform-hint=auto

これがうまくいかない場合 (例えば Weston バージョン 106 以下の場合)、次を使ってください:

--ozone-platform=wayland

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

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

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

追加で、インプットメソッドの問題が発生している場合は、新しい GTK を強制すると良いかもしれません:

--gtk-version=4

Fcitx5 を使用していて上記のフラグを使うと正しく動作しない場合は、--gtk-version=4 の代わりに --enable-wayland-ime フラグを使用してみてください。[7]

ノート: text_input_v1 プロトコルが実装されている場合に限り、--enable-wayland-ime フラグは機能します。このプロトコルを実装している既知のコンポジタは Weston、KWin、Hyprland です。

ナビゲーションのタッチパッドジェスチャ

2本の指でスワイプすると戻ったり進んだりする機能を有効にするには、以下のフラグを使用してください:

--ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation

ヒントとテクニック

特に注意書きがなければ以下のヒントとテクニックは Chromium と Chrome の両方で使うことができます。

ブラウズのエクスペリエンス

chrome:// URL

多くの調整は Chrome の URL からアクセスすることができます。完全なリストは chrome://chrome-urls を参照してください。

  • chrome://flags - WebGL などの実験的な機能や GPU によるウェブページのレンダリングなどにアクセスできます。
  • chrome://extensions - 現在使用している Chromium 拡張を表示・有効化・無効化。
  • chrome://gpu - 様々な GPU オプションの状態。
  • chrome://sandbox - サンドボックスの状態を表示。
  • chrome://version - バージョンや /usr/bin/chromium を実行するときに使われたスイッチを表示。

Chromium のスイッチ (コマンドラインパラメータ) の自動的に更新される完全なリストが こちら にあります。

Chromium タスクマネージャ

Shift+ESC でブラウザのタスクマネージャを立ち上げることができます。メモリや CPU、ネットワークの使用量が閲覧可能です。

Chromium が Preferences ファイルを上書き/オーバーライドしてしまう

Google アカウントの同期を有効にしている場合、~/.config/chromium/Default/Preferences 下の Preferences ファイルに直接編集を加えていても Chromium によって上書きされてしまいます。上書きされないようにするには、--disable-sync-preferences スイッチを付けて Chromium を起動してください:

$ chromium --disable-sync-preferences

デスクトップ環境のログイン時にバックグラウンドで Chromium を起動する場合、デスクトップ環境から使用するコマンドを以下のようにしてください:

$ chromium --disable-sync-preferences --no-startup-window

検索エンジン

wiki.archlinux.orgwikipedia.org などのウェブサイトは検索を実行してから Settings > Search を選択して Manage search engines.. ボタンをクリックすることで簡単に検索できるように設定できます。エントリを "Edit" してキーワードを w などに変更してください (ショートカットは自由に決めて下さい)。これでアドレスバーに "w arch linux" と入力するだけで "Arch Linux" で検索できるようになります。

ノート: URL バーに何か入力すると自動的に Google 検索が使われます。また、ハードコードされたキーワードトリガとして ? プレフィックスが使えます。

Tmpfs

tmpfs にキャッシュ
ノート: Chromium はブラウザのプロファイルディレクトリとキャッシュディレクトリを分離して保存します。

物理ディスクに対する Chromium のキャッシュの書き込みを制限したい場合、--disk-cache-dir フラグでキャッシュの書き込み先を変更することができます:

$ chromium --disk-cache-dir="$XDG_RUNTIME_DIR/chromium-cache"

キャッシュは一時的になり、再起動したりハードロックすると消えます。もしくは、tmpfs 領域を /etc/fstab 内でセットアップすることもできます:

/etc/fstab
tmpfs	/home/username/.cache	tmpfs	noatime,nodev,nosuid,size=400M	0	0

または、/tmp へのシンボリックリンクを作成してください。以下のコマンドを実行する前に、Chromium のキャッシュフォルダは削除しておいてください:

$ ln -s /tmp /home/ユーザ名/.cache/chromium
tmpfs にプロファイル

/tmp/dev/shm などの tmpfs ファイルシステムにプロファイルを保存することで、プロファイル全体が RAM 内に保存されるので、Chromium の応答性が改善されます。

profile-sync-daemon などの、プロファイルを動的に管理するスクリプトを使うことで信頼性と使いやすさを最大限高めることができます。profile-sync-daemon はブラウザプロファイルのディレクトリのシンボリックリンクを作成し、定期的にメモリと同期をとります。詳細については Profile-sync-daemon の記事を参照して下さい。

新しいブラウザインスタンスを起動

ブラウザを起動すると、最初に同じプロファイルを使っているインスタンスが他にないか確認されます。存在する場合、新しいウィンドウは既存のインスタンスに関連付けられます。以下のように --user-data-dir パラメータを使って起動することで別のプロファイルでブラウザを起動できます:

$ chromium --user-data-dir=/path/to/some/directory
ノート: ユーザーデータのデフォルトパスは ~/.config/chromium/ です。

torrent クライアントで *.torrent ファイルやマグネットリンクを直接開く

デフォルトでは Chromium は *.torrent ファイルを直接ダウンロードするため、ファイルを torrent クライアントで開くには画面左下の通知をクリックする必要があります。以下の方法で毎回クリックする手間を省けます:

  • *.torrent ファイルをダウンロード。
  • 画面左下に表示される通知を右クリック。
  • "Always Open Files of This Type" チェックボックスにチェックを入れる。

デフォルトの関連付けの変更については xdg-open を見てください。

タッチスクリーンデバイスでタッチスクロール

使用するタッチデバイスを指定する必要があります。タッチスクリーンデバイスを xinput list で確認して、--touch-devices=x パラメータを付けて Chromium を起動してください ("x" はデバイスの id に置き換えてください)。

ノート: スレーブポインタのデバイスは使えません。マスターポインタの ID を使ってください。

メモリの使用量を減らす

デフォルトでは、Chromium は開いているウェブサイトの数だけ OS プロセスを作成します [8]。Chromium の起動時にコマンドラインスイッチを指定することで挙動を変更することが可能です。

例えば、全てのウェブサイトでひとつのプロセスを共有するには:

$ chromium --process-per-site

シングルプロセスモデルを使うには:

$ chromium --single-process
警告: シングルプロセスモデルは安全でなく他のモデルに存在しないバグが含まれている可能性があるため推奨されていません [9]

さらに Tab SuspenderOneTab などの拡張を使うことでアクティブでないタブを停止・保存することができます。

ユーザーエージェント

Chromium の起動時に --user-agent="[string]" パラメータを指定することでユーザーエージェントは任意に変更することができます。

DOM Distiller

Chromium には Firefox にあるのと似たレンダリングモードが存在します。これは DOM Distiller と呼ばれ、オープンソースプロジェクトです。 デフォルトでは無効化されていますが、chrome://flags/#enable-reader-mode フラグを使用することにより有効化できます。このフラグは永続化させることができます。 DOM Distiller は、ページのコンテンツから不要なものを取り除くことでより良いレンダリングエクスペリエンスを提供するだけでなく、印刷用にページを単純化してくれます。後者のチェックボックスオプションが印刷ダイアログから削除されたものの、不要なものを取り除いたページを印刷することは依然として可能です。これらには、基本的には同じ効果があります。

フラグを有効化すると、ウェブサイトから不要なものを取り除くことができると Chromium が判断したときに、"Enter reader mode" メニューアイテムとアイコンがアドレスバーに出現します。

特定の GPU の使用を強制する

GPU が複数ある環境の場合、Chromium はレンダリングに使用する GPU (ディスクリートや統合 GPU) を自動的に検出します。99% は問題ありませんが、誤った GPU が選択された場合 (VFIO GPU パススルー環境でディスクリートグラフィックが選ばれるなど)、chrome://gpu は GPU プロセスを初期化できないというエラーを吐きます。同じページの Driver Information には複数の GPU が表示されます (GPU0, GPU1, ...)。ユーザーフレンドリな方法で GPU を切り替えることはできませんが、デバイス/ベンダー ID を使って Chromium のフラグで使用する GPU を設定できます:

$ chromium --gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x1912

0x80860x1912 は使用したい GPU の ID に置き換えてください (chrome://gpu ページで確認できます)。

Firefox からブックマークをインポート

Firefox から Chromium にブックマークをインポートすることができます。

Chromium で chrome://settings/importData を開いてください。

コンピュータに Firefox がインストールされている場合、直接 Firefox からブックマークなどをインポートできます。

Mozilla Firefox を選択してください。不要なアイテムのチェックは外してかまいません。Import をクリックしてから Done をクリックすればインポートは完了です。

ノート: Chromium でまだ何もブックマークを作成していない場合、ブックマークバーにブックマークが表示されます。既にブックマークが存在する場合、ブックマークは "Imported From Firefox" というラベルが付いた新しいフォルダに保存されます。

他の PC からブックマークをインポートする場合、先に Firefox からブックマークをエクスポートする必要があります。

Firefox で Ctrl+Shift+o Import and Backup > Export Bookmarks To HTML を選択してください

後の作業は同じです。chrome://settings/importData を開いてください。ただし今度は From ドロップダウンメニューで Bookmarks HTML File を選択して Choose File ボタンをクリックしてブックマークファイルをアップロードします。

後の作業は同じです。chrome://settings/importData を開いてください。ただし今度は From ドロップダウンメニューで Bookmarks HTML File を選択して Choose File ボタンをクリックしてブックマークファイルをアップロードします。

ネイティブ通知の有効化

chrome://flags#enable-system-notifications を開いて、Enabled を選択してください。

マウスの中ボタンでの自動スクロールを有効化する

自動スクロールはまだ試験的な機能です [10]。開発版ビルドでない Chromium または Chromium ベースのブラウザで、Linux 環境で動作させている場合は、デフォルトで無効化されています。[11]

この機能を有効化するには、ブラウザを --enable-features=MiddleClickAutoscroll フラグで起動してください。このオプションを永続化させたい場合は、#フラグを永続化する を見てください。

ノート:
  • --enable-blink-features--enable-features と同じように動作しますが、ブラウザが、このフラグはサポートされておらず、安定性とセキュリティが損なわれると警告を表示することがあります。
  • 代替策として Chrome Web Store から似たような機能を持つ WHEELY のような拡張機能を追加することもできます。
ヒント: もう一つの手段は、chromium-extension-autoscrollAUR です。しかし、このパッケージは古くなっており、公式ではないため、推奨されていません。使用する場合は注意してください。

U2F 認証

libfido2 ライブラリをインストールしてください。このパッケージは、(通常) ユーザとして U2F キーにアクセスできるようにするために必要な udev ルールを提供します。 U2F キーはデフォルトでは root としてしかアクセスできないので、これらのルールが無いと Chromium はエラーを吐きます。

テーマ

Chromium に現在の GTK テーマをブラウザメニューやコントロールで使用させることができます。chrome://settings/appearanceUse GTK を押してください。

ダークモード

Chromium 114 から、ユーザの優先外観を自動的に決定するために XDG デスクトップ ポータル が使用されるようになりました (issue)。よって、ダークモードの有効化とユーザの GTK テーマが切り離されました。この設定は、CSS、JavaScript、設定、そして Dev-Tools の prefers-color-scheme に適用されます。

優先外観を変更する方法は、XDG Desktop Portal バックエンドに依存します。例えば、多くのデスクトップ環境はそれぞれの外観設定インターフェイスにモードを切り替えるスイッチを提供しています。または、例えば xdg-desktop-portal-gtk 場合は、以下のコマンドを使って優先モードを prefer-lightprefer-darkdefault に設定します:

$ dconf write /org/gnome/desktop/interface/color-scheme \'prefer-dark\'

dbusdbus-send を使用することで、現在の優先外観をクエリできます (ドキュメント):

$ dbus-send --session --print-reply=literal --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:org.freedesktop.appearance string:color-scheme | tr -s ' ' | cut -d ' ' -f 5
  • 0: 設定無し
  • 1: ダークモードを優先
  • 2: ライトモードを優先
Chromium 114 より前

ダークモードを有効化し、ダークテーマ (通常、incognito モードで使用されます) を有効化するには、以下のフラグを永続的な設定追加してください:

~/.config/chromium-flags.conf
--force-dark-mode
--enable-features=WebUIDarkMode

サイドパネルを有効化する

サイドパネルは chrome://flags から有効化できます。Side panel を有効化/無効化することができ、Side panel borderSide panel drag and drop といったオプションを変更できます。

プロファイルのメンテナンス

Chromium は Sqlite データベースを使用して履歴やお気に入りを管理しています。Sqlite データベースは使っているうちに断片化していきます。しかしながら、データベースをチェックしたり最適化するプロセスが存在しないため、断片化によって段々とパフォーマンスに影響が出て来ます。デフラグを行ってデータベースから未使用領域を削除することで、起動時間やブックマークや履歴に関連する作業を素早く実行することができます。

profile-cleanerbrowser-vacuumAUR でメンテナンスができます。

セキュリティ

JIT を無効化

JS エンジンにおけるセキュリティ上の脆弱性のうち約半分は JIT に原因があります。パフォーマンスが劣化しますが、--js-flags=--jitless フラグを使用することで、JavaScript からネイティブなコードへの just-in-time コンパイルを無効化できます。

WebRTC

WebRTC は JavaScript を使用する通信プロトコルですが、VPN を使っている場合でもマシンの IP アドレスやハードウェアのハッシュ値が漏洩する可能性があります。VPN ソフトウェアによってはスクリプトの実行が阻止されることもありますが、プロトコルを直接ブロックしてしまう方が安全です。2016年10月現在、デスクトップ版 Chromium で WebRTC を無効化する方法はありませんが、ローカル IP アドレスの漏洩を阻止する拡張が存在します 。そのひとつがこの拡張機能です。

WebRTC は https://browserleaks.com/webrtc でテストできます。

警告: IP の漏洩は防げても、Chromium はユニークなハッシュを送信しており、それを止める方法はありません。詳しくは https://www.browserleaks.com/webrtc#webrtc-disable を読んでください。

SSL 証明書

Chromium には SSL 証明書マネージャが存在しません。Chromium は NSS の共有データベース ~/.pki/nssdb を使用しています。データベースに SSL 証明書を追加するには、シェルを使う必要があります。

自己署名証明書の CAcert 証明書を追加

CAcerts を取得して nssdb を作成してください (存在しない場合)。作成するには nss パッケージをインストールして以下を実行する必要があります:

$ mkdir -p $HOME/.pki/nssdb
$ cd $HOME/.pki/nssdb
$ certutil -N -d sql:.
$ curl -k -o "cacert-root.crt" "http://www.cacert.org/certs/root.crt"
$ curl -k -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt 
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt
ノート: データベースのパスワードを作成していない場合、作成する必要があります。

これでユーザーは手動で自己署名証明書をインポートできるようになります。

例 1: シェルスクリプトを使って TomatoUSB から証明書を分離

以下は証明書を展開してユーザーの nssdb に追加するシンプルなスクリプトです:

#!/bin/sh
#
# usage:  import-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
exec 6>&1
exec > $REMHOST
echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n "$REMHOST" -i $REMHOST 
exec 1>&6 6>&-

使用方法はコメント化されている行を見てください。

参照:

例 2: Firefox を使って TomatoUSB から証明書を分離

firefox ブラウザを使って証明書をファイルに保存してデータベースに手動でインポートすることができます。

Firefox を使って:

  1. 取得先の URL を開く。
  2. "This Connection is Untrusted" 警告画面が表示されたら I understand the Risks > Add Exception... をクリック。
  3. View > Details > Export をクリックしてどこか一時的な場所に証明書を保存 (以下の例では /tmp/easy.pem を使用)。

Chromium で使用する証明書をインポート:

$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "easy" -i /tmp/easy.pem
ノート: 名前は証明書にあわせて変更してください。上記の例では "easy" が証明書の名前です。

参照:

Canvas Fingerprinting

Canvas Fingerprinting は HTML5 の canvas のレンダリング結果の差異を使ってユーザーを識別する技術です。--disable-reading-from-canvas フラグを使うことで Canvas Fingerprinting を使えないようにすることができます。

フラグが機能しているかどうか確認するには こちらのテスト を実行して "hash of canvas fingerprint" の結果を確認してください。

ノート:
  • 一部の拡張機能は canvas からの読み込みを必要としており、--disable-reading-from-canvas を設定すると壊れる場合があります。
  • YouTube プレイヤーや Google マップは canvas からの読み込みができないと正しく動作しません。Qutebrowser issue 5345BBS#255958BBS#276425

プライバシー拡張

ブラウザ拡張機能#プライバシー を参照してください。

ヒント: あまりにも多くの拡張機能をインストールしてしまうと、ツールバーのスペースを圧迫してしまうかもしれません。ユーザと対話しない拡張機能 (例: HTTPS Everywhere[リンク切れ 2023-04-22]) は、拡張機能を右クリックして Hide in Chromium menu を選択することで隠すことができます。

Do Not Track

Do Not Track を有効化するには、chrome://settings を開き、Advanced まで下へスクロールして、Privacy and securitySend a "Do Not Track" request with your browsing traffic にチェックを入れてください。

特定のパスワードストアを強制する

Chromium はパスワードストアを使ってパスワードと (cookie の値を暗号化するのに使われる) Chromium Safe Storage キーを保存します [12]

デフォルトでは Chromium は使用するパスワードストアを自動的に認識しますが、デスクトップ環境やウィンドウマネージャを変えたときにパスワードと cookie が失われてしまう可能性があります。

--password-store フラグで以下のどれかの値を指定して Chromium を起動することで特定のパスワードストアを強制的に使うようにすることができます [13]:

  • gnome-libsecret - libsecret 経由で Gnome Keyring を使用
  • kwallet5 - KDE Wallet 5 を使用。
  • kwallet6 - KDE Wallet 6 を使用。
  • basic - Login Data ファイルにプレーンテキストとしてパスワードと cookie の暗号鍵を保存
  • detect - デフォルトの自動認識

例えば、Gnome Keyring を使うようにするには --password-store=gnome-libsecret を付けてください。永続化する方法は #フラグを永続化する を参照。

他のデスクトップ環境のパスワードストアを使う場合、自動的にアンロックされるように設定すると良いでしょう。GNOME/Keyring#キーリングを使用するKDE Wallet#ログイン時に KDE ウォレットを自動的にアンロック を参照。

ハイブリッドポスト量子鍵交換を有効化する

バージョン 155 から Chromium は、TLS 1.3 向けのハイブリッドポスト量子鍵交換 X25519Kyber768 をサポートしています [14]。この機能はデフォルトで無効化されていますが、chrome://flags/#enable-tls13-kyber フラグで有効化できます。

トラブルシューティング

フォント

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

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

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

Chrome Refresh 2023 がデフォルトになってから、Cantarell フォントを使用している GNOME で動かすとタブタイトル内の一部の文字 (小文字の g など) が切れてしまうことがあります。chromium.org のイシューを参照してください。

この問題が解決するまでの回避策は、フォント設定#デフォルトまたは代替フォントを設定する に載っている設定を使って Cantarell から別のフォントに変えることです。例えば:

~/.config/fontconfig/conf.d/10-chromium-font.conf
<match target="pattern">
    <test name="prgname" compare="eq">
        <string>chromium</string>
    </test>
    <test qual="any" name="family">
         <string>Cantarell</string>
    </test>
    <edit name="family" mode="assign" binding="strong">
        <string>Ubuntu</string>
    </edit>
</match>

この設定は、プロセスの名前が chromium にマッチする場合にのみ適用されます。Google Chrome に対しては chrome としてください。

WebGL

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

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

WebGL サポートのデバッグ情報は 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#パスワードが保存されない を見てください。

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

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

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

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

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

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

#特定のパスワードストアを強制する を見てください。

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

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

#特定のパスワードストアを強制する を見てください。

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

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 アカウントにログインできません。このフラグを一時的に無効にしてログインすると、再び有効にできます。

60 FPS より高いリフレッシュレートのディスプレイを使用しているのに Chromium は 60 FPS で描画される

一般的な問題に関する上流のバグレポートはここにあり、その他の回避策が見つかるかもしれません。また、混合リフレッシュレートに関する問題はここで報告されています。

混合リフレッシュレート

ヒント: この問題は Wayland バックエンドには存在しない可能性があります。要検証。

混合リフレッシュレート (例えば 60 Hz と 144 Hz) のあるディスプレイを使用している場合、Chromium は最も低いリフレッシュレートのディスプレイに合わせて描画するかもしれません。

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

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

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

Wayland バックエンドで実行する

この問題を引き起こす Wayland コンポジタ固有の問題があるようです。

特に、Plasma 5 は環境によらず 60Hz で描画されるようですが、Plasma 6 (この記事の時点では rc1) では Chromium が高いリフレッシュレートでも問題なく動作します。

その他の解決策がうまく行かなかった場合は、XWayland バックエンドに切り替えてみてください。

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

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

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

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

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

動画がロードされるが再生されない

これは PulseAudio の問題である場合があります。PulseAudio/トラブルシューティング#ブラウザ (firefox) が動画をロードするが、再生しない で提案されている修正方法を確認してください。

データベースの破損によりパスワードが保存されない

パスワードデータベースは破損することがあり、その場合、再ビルドする必要があります。再ビルドすると、データベース内の全データが破壊され、保存されているパスワードは失われます。

ターミナルから Chromium を起動すると、以下のように出力されます:

[472531:472565:1207/055404.688559:ERROR:login_database.cc(1048)] Password decryption failed, encryption_result is 2

Chromium を終了し、3つのデータベースファイル (~/.config/chromium/Default/Login Data*) を削除してください。

Chromium を再度起動すると、データベースファイルが再作成されるはずです。

KDE Wayland でカーソルが正しく描画されない

KDE#Plasma のカーソルがときどきおかしくなる を参照してください。

Wayland で Chromium のウィンドウが透明になる

あるバグにより、chromium 124 はコマンドラインフラグ --ozone-platform=wayland を明示的に指定して起動する必要があります。

参照

翻訳ステータス: このページは en:Chromium の翻訳バージョンです。最後の翻訳日は 2024-07-28 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。