Chromium 設定

提供: ArchWiki
2018年6月17日 (日) 21:29時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

特に注意書きがなければ以下の設定は Chromium と Chrome の両方で使うことができます。

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

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

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

Tmpfs

tmpfs にキャッシュ

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

物理ディスクに対する 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-daemonAUR はその目的で開発されているスクリプトであり AUR から直接インストールできます。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 プロセスを作成します [1]。Chromium の起動時にコマンドラインスイッチを指定することで挙動を変更することが可能です。

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

$ chromium --process-per-site

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

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

さらに Tab SuspenderThe 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

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://flags を開いて #enable-native-notifications フラグを有効にしてください。バージョン 59 以上が必要です。

U2F 認証

Chromium で U2F 機能を有効にするには libu2f-host ライブラリをインストールする必要があります。U2F キーをユーザーからアクセスするのに必要な udev ルール が含まれています。U2F キーはデフォルトでは root からしか使えないため、ルールをインストールしていないと Chromium はエラーを吐きます。

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

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

AURprofile-cleanerAURbrowser-vacuumAUR でメンテナンスができます。

セキュリティ

WebRTC

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

WebRTC は こちらのページ でテストできます。

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

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>&-

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

参照:

例 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 を設定すると機能しなくなることがあります。

プライバシー拡張

Firefox ブラウザの人気のプライバシー拡張は大抵 Chromium でも利用できます。詳しくは Firefox プライバシー#拡張を見てください。

ヒント:
  • 拡張を大量にインストールするとツールバーが一杯になります。操作不要の拡張 (例: HTTPS Everywhere) は右クリックして Hide in Chromium menu を選択することで非表示にできます。
  • プライバシー拡張を全てインストールすることは推奨されません。互いに干渉して逆効果になる可能性があり、セキュリティを向上させる効果を見込めないためです。

ScriptBlock

ScriptBlock は Firefox アドオンの NoScript と似ています。どちらもウェブサイトによる JavaScript の実行を阻止します。ただし ScriptBlock はシンプルな設計で使いやすくなっています。デフォルトで JavaScript をブロックします。JavaScript を許可・一時的に許可することができます。許可するとページ内の全ての JavaScript が実行できるようになるため、Privacy Badger と組み合わせて使うと良いでしょう。

拡張は Chrome ウェブサイトからインストールできます: ScriptBlock

ScriptSafe

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... から PrivacySend a "Do Not Track" request with your browsing traffic にチェックしてください。

ノート: DNT は全てのウェブサイトのトラッキングを止めるものではありません。機能をオンにしても、データを収集・解析される可能性は残ります。

使用するパスワードストアの設定

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 ウォレットを自動的にアンロックを参照。

フラグを永続的に設定

ノート: chromium-flags.conf は Arch Linux 固有のファイルで、カスタムランチャースクリプトによってサポートされています。chromium 42.0.2311.90-1 で追加されました。google-chromeAUR の場合、chrome-flags.conf を使ってください。

$HOME/.config/ (あるいは環境変数を設定している場合 $XDG_CONFIG_HOME) にある chromium-flags.conf ファイルにフラグを記述できます。

特殊な構文はありません。ターミナルに書くのと同じようにフラグは定義します。

  • 引数は空白で分けてシェルのクォートルールが適用されます。
  • ファイル内のクォートの使い方が間違っている場合、致命的なエラーが発生します。
  • フラグは読みやすいように複数行にわたって記述できますが、必須ではありません。
  • ハッシュ記号 (#) から始まる行は無視されます。

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

# This line will be ignored.
--start-maximized
--incognito

参照