ご存じの方も多いと思いますが、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な可能性もあります。
そして、参考にされる場合は自己責任でお願いします。
結局のところ、デフォルトが一番なのですが、弄りたくて仕方のない変態さんは楽しめると思います。
そんな皆様のお役に立てれば幸いです。