Chromiumを改造したくなったので今話題のFLoCを削除してみたの巻

最近自作OSから逃げている人です。

今回はタイトルの通り、chromiumからFLoCを消していきます
Javascriptやhtmlの知識、精神力と強力なPCが必要なのでご注意ください。

事前知識
FLoCとは:googleが広告を出しつつユーザーのプライバシーを考えるために作った仕組み。いろいろと問題があって批判がいっぱい 詳しくはこの記事が詳しいよ


chromiumとは:googleが開発しているブラウザ(OSS) chromeの骨組みみたいなもの(雑な説明)

 

で今回の実装イメージとしては
・デフォルトでonになっているFLoCをoffにする
・設定画面を消す(実際は入れないようにするのほうが近い)

です

 

1つめをやっていきます
まずユーザー設定のファイルを探すところから

LocalAppData\User Data\Preferencesですね(Winの場合)

floc関係ならflocって入っているだろうなーと検索していくと、出てきました
floc_enabled
見るからにflocが有効かどうかのオプションです2

ここからデフォルトでFLoCをoffにするにはUser Data\Preferencesのfloc_enabledをfalseにすればよさそうと見当がつきます

ソースコードからfloc_enabledを検索していくと
src\components\privacy_sandbox\privacy_sandbox_prefs.ccに

RegisterBooleanPref(prefs::kPrivacySandboxFlocEnabled, true, ...);

関数名と引数の名前からこれっぽさそうですね
関数名から性質を考えて2つ目がデフォルト値っぽいです

RegisterBooleanPref(prefs::kPrivacySandboxFlocEnabled, false, ...);

 

変更しました

ビルド、起動して(User Dataディレクトリ内のデータを消さないと過去の設定が受け継がれてバグの原因になるので注意!)無事無効になったことを確認しました。
(私の今回の例ではその上のprefs::kPrivacySandboxApisEnabledもfalseにしています
 上にあったサンドボックスを有効化するかーみたいなあれですね)

2つめ
設定画面を消します(入れなくします)
設定画面は少し特殊で、いろいろと処理をしてから実際の設定のプログラムになっているっぽいのです。何が言いたいのかというと、直接設定のソースをいじる、ということはできないのです。(やっぱりうまく伝わらない)

 

そんな時に使うのが開発者ツール君です
どんなソースコードになっているのか、消したい対象がなんてidをしているのか一発でわかります。その代わり重い。めちゃくちゃ重い。


ですが根気良く調べていくと、

<cr-link-row id="privacySandboxLinkRow">

ってなコードが見つかります。

labelを見ると、おっこれだとなります。(プライバシーサンドボックス)

先述した通りこれはいろいろ処理をした後のソースコードです。
処理前のソースコードで検索すると、

src\chrome\browser\resources\settings\privacy_page\privacy_page.html
にありました。
というわけでFLoCを無効化するために設定に行けないようにします。
消してしまえば終わり。(私の場合はその下のaタグも消してます。)

そしてビルドすると...

画像

出来ました!

プライバシーサンドボックスという項目はなくなり、FLoCは無効化され、
FLoC嫌いな人が喜ぶ環境に!

こんな感じで改造してました。
雑な説明で申し訳ない。語彙力が欲しいところ。
なかなか環境整備は大変ですが、もし機会や環境があればぜひやってみてください。
面白いですし、かなりの勉強になりますよ。