Chromium 設定
特に注意書きがなければ以下の設定は Chromium と Chrome の両方で使うことができます。
目次
- 1 ブラウズのエクスペリエンス
- 1.1 chrome://xxx
- 1.2 Chromium タスクマネージャ
- 1.3 ダウンロードタブのアイコンが表示されない
- 1.4 Chromium が Preferences ファイルを上書きしてしまう
- 1.5 検索エンジン
- 1.6 Tmpfs
- 1.7 新しいブラウザインスタンスを起動
- 1.8 torrent クライアントで *.torrent ファイルやマグネットリンクを直接開く
- 1.9 タッチスクリーンデバイスでタッチスクロール
- 1.10 メモリの使用量を減らす
- 1.11 ユーザーエージェント
- 1.12 DOM Distiller
- 1.13 特定の GPU の使用を強制する
- 1.14 Firefox からブックマークをインポート
- 1.15 ネイティブ通知の有効化
- 1.16 U2F 認証
- 1.17 Dark mode
- 2 プロファイルのメンテナンス
- 3 セキュリティ
- 4 フラグを永続的に設定
- 5 参照
ブラウズのエクスペリエンス
chrome://xxx
URL フィールドに chrome://xxx と入力することで様々な設定にアクセスすることができます。完全なリストは URL フィールドに chrome://chrome-urls と入力することで見ることが可能です。以下有名な URL のリスト:
- chrome://flags - WebGL などの実験的な機能や GPU によるウェブページのレンダリングなどにアクセスできます。
- chrome://extensions - 現在使用している Chromium 拡張を表示・有効化・無効化。
- chrome://gpu - 様々な GPU オプションの状態。
- chrome://sandbox - サンドボックスの状態を表示。
- chrome://version - バージョンや
/usr/bin/chromium
を実行するときに使われたスイッチを表示。
自動的に更新される Chromium のスイッチ (コマンドラインパラメータ) のリストが こちら にあります。
Chromium タスクマネージャ
Shift+ESC でブラウザのタスクマネージャを立ち上げることができます。メモリや CPU、ネットワークの使用量が閲覧可能です。
ダウンロードタブのアイコンが表示されない
Chromium のダウンロードタブで適当なアイコンの代わりにアイコンのプレースホルダ (壊れたドキュメントを示すアイコン) が表示される場合、おそらく adwaita-icon-theme がインストールされていません。
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.org や wikipedia.org などのウェブサイトは検索を実行してから Settings > Search を選択して Manage search engines.. ボタンをクリックすることで簡単に検索できるように設定できます。エントリを "Edit" してキーワードを w などに変更してください (ショートカットは自由に決めて下さい)。これでアドレスバーに "w arch linux" と入力するだけで "Arch Linux" で検索できるようになります。
Tmpfs
tmpfs にキャッシュ
物理ディスクに対する Chromium のキャッシュの書き込みを制限したい場合、--disk-cache-dir=/foo/bar
フラグでキャッシュの書き込み先を変更することができます:
$ chromium --disk-cache-dir=/tmp/cache
キャッシュは一時的になり、再起動したりハードロックすると消えます。もしくは、以下のように設定することもできます:
/etc/fstab
tmpfs /home/username/.cache tmpfs noatime,nodev,nosuid,size=400M 0 0
tmpfs にプロファイル
/tmp
や /dev/shm
などの tmpfs ファイルシステムにプロファイルを保存することで Chromium の応答性が改善されます。
プロファイルを動的に管理するスクリプトを使うことで信頼性と使いやすさを最大限高めることができます。
profile-sync-daemon はその目的で開発されているスクリプトであり AUR から直接インストールできます。profile-sync-daemon はブラウザプロファイルのディレクトリのシンボリックリンクを作成し、定期的にメモリと同期をとります。詳細については Profile-sync-daemon の記事を参照して下さい。
新しいブラウザインスタンスを起動
ブラウザを起動すると、最初に同じプロファイルを使っているインスタンスが他にないか確認されます。存在する場合、新しいウィンドウは既存のインスタンスに関連付けられます。以下のように --user-data-dir
パラメータを使って起動することで別のプロファイルでブラウザを起動できます:
$ chromium --user-data-dir=/path/to/some/directory
torrent クライアントで *.torrent ファイルやマグネットリンクを直接開く
デフォルトでは Chromium は *.torrent
ファイルを直接ダウンロードするため、ファイルを torrent クライアントで開くには画面左下の通知をクリックする必要があります。以下の方法で毎回クリックする手間を省けます:
*.torrent
ファイルをダウンロード。- 画面左下に表示される通知を右クリック。
- "Always Open Files of This Type" チェックボックスにチェックを入れる。
デフォルトの関連付けの変更については xdg-open を見てください。
タッチスクリーンデバイスでタッチスクロール
使用するタッチデバイスを指定する必要があります。タッチスクリーンデバイスを xinput list
で確認して、--touch-devices=x
パラメータを付けて Chromium を起動してください ("x" はデバイスの id に置き換えてください)。
メモリの使用量を減らす
デフォルトでは、Chromium は開いているウェブサイトの数だけ OS プロセスを作成します [1]。Chromium の起動時にコマンドラインスイッチを指定することで挙動を変更することが可能です。
例えば、全てのウェブサイトでひとつのプロセスを共有するには:
$ chromium --process-per-site
シングルプロセスモデルを使うには:
$ chromium --single-process
さらに Tab Suspender や The Great Suspender(GPLv2)、OneTab などの拡張を使うことでアクティブでないタブを停止・保存することができます。
ユーザーエージェント
Chromium の起動時に --user-agent="[string]"
パラメータを指定することでユーザーエージェントは任意に変更することができます。
DOM Distiller
Chromium には Firefox のリーダーモードと同じようなものとして オープンソースプロジェクト の DOM Distiller が存在します。--enable-dom-distiller
フラグを付けて Chromium を起動することで "Distill page" メニューオプションがアンロックされます。もしくは永続的に設定することもできます。DOM Distiller はページから無駄なコンテンツを排除して読みやすくするだけでなく、印刷用にページを単純化します。
chrome://dom-distiller
を開くことで内部的なデバッグページを見ることができます。
特定の GPU の使用を強制する
GPU が複数ある環境の場合、Chromium はレンダリングに使用する 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
0x8086
と 0x1912
は使用したい GPU の ID に置き換えてください (chrome://gpu
ページで確認できます)。
Firefox からブックマークをインポート
Firefox から Chromium にブックマークをインポートすることができます。
Chromium で chrome://settings/importData
を開いてください。
コンピュータに Firefox がインストールされている場合、直接 Firefox からブックマークなどをインポートできます。
Mozilla Firefox を選択してください。不要なアイテムのチェックは外してかまいません。Import をクリックしてから Done をクリックすればインポートは完了です。
他の PC からブックマークをインポートする場合、先に Firefox からブックマークをエクスポートする必要があります。
Firefox で Ctrl + Shift + O > Import and Backup > Export Bookmarks To HTML
を選択してください。
後の作業は同じです。chrome://settings/importData
を開いてください。ただし今度は From ドロップダウンメニューで Bookmarks HTML File を選択して Choose File ボタンをクリックしてブックマークファイルをアップロードします。
ネイティブ通知の有効化
chrome://flags を開いて #enable-native-notifications フラグを有効にしてください。バージョン 59 以上が必要です。
U2F 認証
Chromium で U2F 機能を有効にするには libu2f-host ライブラリをインストールする必要があります。U2F キーをユーザーからアクセスするのに必要な udev ルール が含まれています。U2F キーはデフォルトでは root からしか使えないため、ルールをインストールしていないと Chromium はエラーを吐きます。
Dark mode
To enable dark mode (used in prefers-color-scheme in CSS, JavaScript, Settings and Dev-Tools) and enable the dark theme (normally used for incognito mode) append the following flag to persistent configuration:
~/.config/chromium-flags.conf
--force-dark-mode --enable-features=WebUIDarkMode
Dark mode by system preference
This Chromium issue aims to bring dark mode based on GTK theme selection into Chromium.
In the future, all that will be required to properly use system preference, is setting Designs to GTK in chrome://settings/appearance
.
プロファイルのメンテナンス
Chromium は Sqlite データベースを使用して履歴やお気に入りを管理しています。Sqlite データベースは使っているうちに断片化していきます。しかしながら、データベースをチェックしたり最適化するプロセスが存在しないため、断片化によって段々とパフォーマンスに影響が出て来ます。デフラグを行ってデータベースから未使用領域を削除することで、起動時間やブックマークや履歴に関連する作業を素早く実行することができます。
AUR の profile-cleaner と browser-vacuumAUR でメンテナンスができます。
セキュリティ
WebRTC
WebRTC は JavaScript を使用する通信プロトコルですが、VPN を使っている場合でもマシンの IP アドレスやハードウェアのハッシュ値が漏洩する可能性があります。VPN ソフトウェアによってはスクリプトの実行が阻止されることもありますが、プロトコルを直接ブロックしてしまう方が安全です。2016年10月現在、Chromium で WebRTC を無効化する方法はありませんが、ローカル IP アドレスの漏洩を阻止する拡張が存在します [3]。
WebRTC は こちらのページ でテストできます。
SSL 証明書
Chromium には SSL 証明書マネージャが存在しません。Chromium は NSS の共有 DB ~/.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>&-
使用方法はコメント化されている行を見てください。
参照:
- http://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu
- https://chromium.googlesource.com/chromium/src/+/master/docs/linux_cert_management.md
例 2: Firefox を使って TomatoUSB から証明書を分離
firefox ブラウザを使って証明書をファイルに保存してデータベースに手動でインポートすることができます。
firefox を使用:
- 取得先の URL を開く。
- "This Connection is Untrusted" 警告画面が表示されたら I understand the Risks > Add Exception... をクリック。
- View > Details > Export をクリックしてどこか一時的な場所に証明書を保存 (以下の例では
/tmp/easy.pem
を使用)。
Chromium で使用する証明書をインポート:
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "easy" -i /tmp/easy.pem
Canvas Fingerprinting
Canvas Fingerprinting は HTML5 の canvas のレンダリング結果の差異を使ってユーザーを識別する技術です。--disable-reading-from-canvas
フラグを使うことで Canvas Fingerprinting を使えないようにすることができます。
フラグが機能しているかどうか確認するには こちらのテスト を実行して "hash of canvas fingerprint" の結果を確認してください。
プライバシー拡張
Firefox ブラウザの人気のプライバシー拡張は大抵 Chromium でも利用できます。詳しくは Firefox プライバシー#拡張を見てください。
ScriptBlock
ScriptBlock は Firefox アドオンの NoScript と似ています。どちらもウェブサイトによる JavaScript の実行を阻止します。ただし ScriptBlock はシンプルな設計で使いやすくなっています。デフォルトで JavaScript をブロックします。JavaScript を許可・一時的に許可することができます。許可するとページ内の全ての JavaScript が実行できるようになるため、Privacy Badger と組み合わせて使うと良いでしょう。
拡張は Chrome ウェブサイトからインストールできます: ScriptBlock
ScriptSafe
ScriptSafe はウェブをユーザーが制御できるようにしてセキュアなブラウジングを実現するブラウザ拡張です。シンプルで直感的であることに重きが置かれています。
詳しくは GitHub を見てください。
拡張は Chrome ウェブサイトからインストールできます: ScriptSafe
Vanilla Cookie Manager
プライバシーを保護する Chrome の Cookie ホワイトリストマネージャです。不必要な cookie を自動的に削除します。cookie は認証やサイト設定の保存などに使われるものですが、残念ながらユーザーのトラッキングにも使用されています。
cookie は完全にオフにしたり、サードパーティ cookie だけをオフにできます。ただし Gmail やカレンダーなどウェブアプリが利用している cookie も排除してしまいます。
Vanilla ではホワイトリストに入っているサイトの cookie だけを選択的に許可します。不要な cookie は自動で削除されます (あるいは手動で削除することもできます)。
詳しくは GitHub を見てください。
拡張は Chrome ウェブサイトからインストールできます: Vanilla Cookie Manager
TrackMeNot
TrackMeNot は人気の検索エンジンに定期的にランダムな検索クエリを送ることで、本当のクエリを「ゴースト」クエリの群衆の中に隠します。
Chrome Web Store から拡張をインストールできます。
Do Not Track
Chromium の 'Do Not Track' オプションはデフォルトではオフになっています。有効にするには chrome://settings
を開いて Show advanced settings... から Privacy の Send a "Do Not Track" request with your browsing traffic にチェックしてください。
使用するパスワードストアの設定
Chromium はパスワードストアを使ってパスワードと (cookie の値を暗号化するのに使われる) Chromium Safe Storage キーを保存します [4]。
デフォルトでは Chromium は使用するパスワードストアを自動的に認識しますが、デスクトップ環境やウィンドウマネージャを変えたときにパスワードと cookie が失われてしまう可能性があります。
--password-store
フラグで以下のどれかの値を指定して Chromium を起動することで特定のパスワードストアを強制的に使うようにすることができます [5]:
gnome
- Gnome Keyring を使用kwallet
- KDE Wallet を使用basic
-Login Data
ファイルにプレーンテキストとしてパスワードと cookie の暗号鍵を保存detect
- デフォルトの自動認識
例えば、Gnome Keyring を使うようにするには --password-store=gnome
を付けてください。永続化する方法は#フラグを永続的に設定を参照。
他のデスクトップ環境のパスワードストアを使う場合、自動的にアンロックされるように設定すると良いでしょう。GNOME Keyring#GNOME 以外でキーリングを使用するや KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロックを参照。
フラグを永続的に設定
$HOME/.config/
(あるいは環境変数を設定している場合 $XDG_CONFIG_HOME
) にある chromium-flags.conf
ファイルにフラグを記述できます。
特殊な構文はありません。ターミナルに書くのと同じようにフラグは定義します。
- 引数は空白で分けてシェルのクォートルールが適用されます。
- ファイル内のクォートの使い方が間違っている場合、致命的なエラーが発生します。
- フラグは読みやすいように複数行にわたって記述できますが、必須ではありません。
- ハッシュ記号 (#) から始まる行は無視されます。
以下は chromium-flags.conf
ファイルで --start-maximized --incognito
フラグを定義する例です:
# This line will be ignored. --start-maximized --incognito