17
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Chromeを最適化するflagsリスト

Last updated at Posted at 2021-03-07

ご存じの方も多いと思いますが、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に対応しました。

Windows
# Google Chrome
90.0.4430.11 (Official Build) dev (64 ビット) (cohort: Dev)
# OS
Windows 10 OS Version 2009 (Build 21327.1000)
Android
# 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.jsstyle.cssなど諸々のソースにQUICが適用されます。
この設定を有効にするとDNSQUICへの対応の如何を問い合わせ、対応していた場合に初回から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.comhttp**://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にすることで、HTTPHTTPSが混在したコンテンツでの自動入力を無効にします。
Ver.94では削除されています。

#mixed-forms-interstitial

chrome://flags/#mixed-forms-interstitial

enableにすることで、HTTPHTTPSが混在したフォームで全画面警告を表示します。
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な可能性もあります。
そして、参考にされる場合は自己責任でお願いします。

結局のところ、デフォルトが一番なのですが、弄りたくて仕方のない変態さんは楽しめると思います。
そんな皆様のお役に立てれば幸いです。

17
23
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?