ご存じの方も多いと思いますが、Chromium系ブラウザではブラウザ名://flags*(i.e. chrome://flags)*にて試験機能にアクセスでき、様々な機能を先取りして自分好みに最適化できます。
色々と有用な設定が多いので、私が設定している項目を備忘録的にまとめます。
参考にされる場合は自己責任でお願いします。
適当かつ勝手に解釈しているので、正確にはflagsページの説明を参照してください。
Google chromeではchrome://aboutにてブラウザの状態や設定を変更するchrome URLsの一覧にアクセスが可能です。
本記事でも各所に僕がよく使うchrome://○○(←なんて名前なのでしょうか)を記載していますので参考にして下さい。
トラブルの対処法も最後に記しています。
環境
chrome://versionで詳細なバージョン情報が確認可能です。
執筆時点の環境です。
追記
4/26、安定版が90となっています。Ver.92に対応しました。
8/3、安定版が92となっています。Ver.94に対応しました。
# Google Chrome
90.0.4430.11 (Official Build) dev (64 ビット) (cohort: Dev)
# OS
Windows 10 OS Version 2009 (Build 21327.1000)
# Google Chrome
90.0.4430.11 (Official Build) dev (32 ビット)
# OS
Android 11; Pixel 4a (5G)
私は「先取り好き」の変態なのでデベロッパー版を愛用しています。
バージョンが違うと設定項目が存在しないことがありますが、基本的には共通です。
パフォーマンス系
主にパフォーマンスを向上する設定です。
実際体感することは少ないですが、精神的快速が手に入ります。
グラフィックス系
グラフィックス系を設定します。
パフォーマンスとエネルギー効率がトレードオフになる可能性が高いです。
OS共通
WindowsでもAndroidでも設定可能な項目です。
Override software rendering list
chrome://flags/#ignore-gpu-blocklist
enableにすることで、GPUで処理しないとされている項目を無効化します。
結果として全てGPUで処理されるようになり、パフォーマンス向上が見込まれます。
モバイルではデフォルトのままが好ましいかもしれません。
GPU rasterization
chrome://flags/#enable-gpu-rasterization
enableにすることで、点と線の位置情報で構成されたデータを画像に変換する処理(ラスタライズ)にGPUを使用します。
最適化されたチップを用いることでパフォーマンス向上が見込まれます。
Zero-copy rasterizer
chrome://flags/#enable-zero-copy
enableにすることで、GPUが直接メモリに読み書きするようになります。
無駄な処理が最小化されパフォーマンス向上が見込まれます。
Skia API for compositing
chrome://flags/#enable-skia-renderer
enableにすることで、OpenGL ESの代わりにGoogleが開発している次世代レンダラーのSkiaを使用します。
Windows 7以降およびAndroid 4.1以降で有効だと思われます。
Ver.94では削除されています。
Windows
Windowsでのみ設定可能な項目です。
#zero-copy-video-capture
chrome://flags/#zero-copy-video-capture
enableにすることで、カメラがGPUに最適化されたバッファを作成し、可能であればハードウェアエンコーダーがそのバッファを使用します。
Var.92では削除されています。
Choose ANGLE graphics backend
chrome://flags/#use-angle
ANGLEに使用するグラフィックスバックエンドを指定します。
ちなみにANGLEとはAlmost Native Graphics Layer Engineの略ですが、Almost native(笑)。
詳細は説明のとおりですが、NVIDIA GPU搭載であればOpenGLにすることで、重たい処理を要求される場合にパフォーマンスが向上するかもしれない。かつ、もれなく消費電力及びメモリー使用量も増えるぞい!とのことです。
OpenGLにするとGPUのファンがガンガン回ります。
その他
諸々のパフォーマンスを向上させる設定です。
Experimental QUIC protocol
chrome://flags/#enable-quic
enableにすることで、次世代の通信規格であるQUICを有効にします。
規格策定中ではありますが、徐々に広まりつつあります。
利用可能な中で最新の暗号化技術TLSv1.3前提で設計されていたり、ハンドシェイクが不要なUDPが用いられていたりと、是非利用したいプロトコルです。
特にネットワーク環境が悪い場合に恩恵が多いと思われます。
#dns-httpssvc
chrome://flags/#dns-httpssvc
enableにすることで、QUICを優先的に利用しようとします。(あくまでTryさん)
QUICは初回アクセス時にその対応が示されるので、最初のコネクションには使用されません。
例えば、あるサイトに初めてアクセスした際、最初にダウンロードされるindex.htmlへのアクセスではQUICは適用されず(index.htmlのレスポンスヘッダにQUICに対応していることが示されるので、ブラウザはそれを読み取り次のリクエストからQUICを用いる)、index.htmlからリンクされているscript.jsやstyle.cssなど諸々のソースにQUICが適用されます。
この設定を有効にするとDNSにQUICへの対応の如何を問い合わせ、対応していた場合に初回からQUICでアクセスを試行することがあります。
また、DNSからHTTPS対応が示された場合にも接続をHTTPSにアップグレードすることがあります。
Ver.92では削除されています。
Parallel downloading
chrome://flags/#enable-parallel-downloading
enableにすることで、並列ダウンロードを有効にします。
大容量ファイルを複数ダウンロードする際に有効かと思われます。
#enable-heavy-ad-intervention
chrome://flags/#enable-heavy-ad-intervention
enableにすることで、デバイスのリソースを過剰に使用する広告(重たい広告)を無効にします。
Ver.92で削除されました。
Heavy ad privacy mitigations
chrome://flags/#heavy-ad-privacy-mitigations
disableにすることで、重たい広告のプライバシーへの介入を禁止します。
デフォルト値であるenableだと介入が緩和されるそうです。
セキュリティ系
セキュリティ(及びプライバシー保護)を向上する設定です。
基本的にGoogleが将来目指している理想像を先取りする形になります。
旧態依然としたサービスがブロックされるなど、正しく動作しない可能性もあります。
細かい説明は長くなるので省きました。
詳しく知りたい方は説明を読んだりググったりしてください。
変更後がデフォルト値と変わらないものもありますが、明示する意味で記載しています。
OS共通
TLS 1.3 Early Data
chrome://flags/#enable-tls13-early-data
enableにすることで、TLSv1.3で利用可能なEarly dataを利用します。
対応したサーバーでは、利用可能な場合ハンドシェイクが省略されるので、読み込み速度が向上する可能性があります。
TLS Post-Quantum Confidentiality
chrome://flags/#post-quantum-cecpq2
enableにすることで、ゴリラみたいに強力な暗号で保護します。
量子コンピュータが登場した場合、昨今の一般的な暗号化技術は全て無効化されると言われていますが、Post-quantum(量子の後の)暗号化技術では量子コンピュータによる暗号解読攻撃に対して安全であると考えられている暗号アルゴリズムを使用します。
リソースを大量に消費してバッテリー持ちなどに悪影響を与えるかもしれません。
#legacy-tls-enforced
chrome://flags/#legacy-tls-enforced
enableにすることで、非推奨となった古い暗号化方式を無効にします。
Ver.94では削除されています。
#same-site-by-default-cookies
chrome://flags/#same-site-by-default-cookies
enableにすることでセキュリティが向上しますが、一部のサードパーティークッキーがブロックされるため正常に動作しないサイトが発生する可能性があります。
細かい説明は省きますが、要は**正しく設定されていないCookie**をブロックします。
Ver.94では削除されています。
#cookies-without-same-site-must-be-secure
chrome://flags/#cookies-without-same-site-must-be-secure
enableにすることでセキュリティが向上します。
内容は上の項目と同じような感じで、上の項目がenableの場合にのみ効果を持ちます。
Ver.94では削除されています。
#schemeful-same-site
chrome://flags/#schemeful-same-site
enableにすることで、同一ドメインから異なるスキームで読み込まれた場合、異なるものとして扱われます。
(つまり**https://example.comでhttp**://example.com/image.webpを読み込もうとした場合に適用される)
Ver.94では削除されています。
#strict-origin-isolation
chrome://flags/#strict-origin-isolation
enableにすることで、Site-isolationを厳密に行います。
Site-isolationとはChromeが行っている処理で、簡単に言うと、サイトごとに異なるプロセスを用いることでサイト間の干渉を防ごうとするものです。
同時にAとBのサイトを開いているときに、BがAで入力された内容を傍受できないようにしていると思えばよいと思います。
メモリ使用量とCPU使用率が増加するかもしれません。
#omnibox-default-typed-navigations-to-https
chrome://flags/#omnibox-default-typed-navigations-to-https
enableにすることで、Omniboxに入力されたドメインへの接続をデフォルトでHTTPSを用いて試行します。
Omniboxとはブラウザの上部にある**URLとかが表示されているバー**のことです。
Ver.94では削除されています。
#mixed-forms-disable-autofill
chrome://flags/#mixed-forms-disable-autofill
enableにすることで、HTTPとHTTPSが混在したコンテンツでの自動入力を無効にします。
Ver.94では削除されています。
#mixed-forms-interstitial
chrome://flags/#mixed-forms-interstitial
enableにすることで、HTTPとHTTPSが混在したフォームで全画面警告を表示します。
Ver.94では削除されています。
HTTPS-First Mode Setting
chrome://flags/#https-only-mode-setting
enableにすることでHTTPSを優先して使用するそうです。
説明を読む限りはHTTPS優先の設定項目が追加されるとのことですが、当方環境では確認できません。
Strict Extension Isolation
chrome://flags/#strict-extension-isolation
Site isolationの一環で、タブごとのプロセスだけでなく拡張機能のプロセスも分離します。
Android
Androidでのみ設定可能な項目です。
#enable-site-isolation-for-password-sites
chrome://flags/#enable-site-isolation-for-password-sites
enableにすることでセキュリティが向上します。
前述のSite-isolation関連です。
#enable-site-per-process
chrome://flags/#enable-site-per-process
enableにすることでセキュリティが向上します。
#safety-check-android
chrome://flags/#safety-check-android
enableにすることで安全確認をしてくれます。
具体的にはパスワード漏洩チェックや更新の確認etc..だそうです。
Devチャンネルでは不要ですが、#password-checkを有効化する必要があります。
#safe-browsing-enhanced-protection-android
chrome://flags/#safe-browsing-enhanced-protection-android
enableにすることで保護強化機能を使用します。
DevチャンネルではデフォルトでGUIからの操作も可能です。(設定>プライバシーとセキュリティ>セーフブラウジング)
Advanced
端末によって動作が不安定になったり、表示が崩れたりします。
#enable-vulkan
chrome://flags/#enable-vulkan
次世代3DグラフィクスAPIのVulkanを使用します。(川崎のバイクじゃないよ!)
対応している場合はパフォーマンス向上が見込まれますが、非対応の場合は画面が点滅したり、挙動が著しく緩慢になったりします。
仕様などを確認して慎重に導入してください。
ちなみにPixelは全シリーズ対応しています。
#enable-force-dark
chrome://flags/#enable-force-dark
Webコンテンツに対してダークモードを強制します。
有機ELディスプレイでは消費電力が抑えられるなどメリットも多いですが、非常に見にくくなるコンテンツも多々あります。
また、Webコンテンツ側でダークモードに対応している場合に、提供されたCSSが適用されない不具合もあります。
「百聞は一見に如かず」ですので試してみるとよいと思いますが、僕はDefault*(Disable)*にしています。(なんたってものすごく見にくいからね!)
Ver.92では削除され、デフォルトでイイ感じになりました。
Change web-facing behaviors that prevent origin-level isolation
chrome://flags/#isolation-by-default
セキュリティやプライバシー保護のためGoogleの理想とするオリジン分離を実現するそうです。
ただ、理想と現実はかけ離れており正常に利用できないことが多々あります。
正しく起動しなくなった場合
起動しないンゴwwwとなった時の対処法です。
特にGPU系をいじった場合に陥ることがあるかもしれません。
オプションで拡張機能をリセットして起動し、設定画面から問題のものを変更します。
まずChromeがインストールされている場所に移動します。
コマンドプロンプトを開いて以下のように入力します。
# Chrome
cd C:\Program Files\Google\Chrome\Application
# Chrome Dev
cd C:\Program Files\Google\Chrome Dev\Application
コマンドプロンプトにて、試験機能を全て無効にするオプションを付与して起動します。
# 使うツール次第で頭に付けるものを変えてください。
.\chrome.exe --no-experiments
chrome.exe --no-experiments
無事起動したら、拡張機能を開いて問題のものを無効にします。
最後に
かなり頻繁に項目が入れ替わりますし、DevチャンネルだけでStable版では存在しないなど、404な可能性もあります。
そして、参考にされる場合は自己責任でお願いします。
結局のところ、デフォルトが一番なのですが、弄りたくて仕方のない変態さんは楽しめると思います。
そんな皆様のお役に立てれば幸いです。