WebExtensions APIの"NetworkInformation"がちょっと残念な件

私は自称スマフォライトユーザー
何を持ってライトと言うかですが、月間データ使用量が300MB~500MBくらいで落ち着いているほどデータ通信をしていない→そもそもあまりスマフォを使っていないと言うわけです。


いや、正確にはもともと携帯電話料金にお金を掛けたくない派なのでWiFi接続の場合はバシバシ使います(←自宅内やらホテルやら。)が、出先でWebブラウズする際には画像を非表示にしてJavascriptの動作も最低限広告カットアドオンも併用して徹底的にデータ量を減らしています。
元々はWebブラウズ時のウザい広告をカットするための画像非表示運用ですが、これに慣れると画像はあくまで補足情報でありでテキストだけに着目できるほうが快適だという事に気づきます。
一石二鳥と言うことでいつの間にかこのスタイルになっていました。


この『画像非表示』がポイントでして、古い(Android版)Firefox 68まではブラウザ自体に『WiFi環境下でのみ画像を表示する』という設定オプションがあり、これがたいへん役に立っています。
そしてFirefox 69以降はこの機能がカットされてしまったため、私は最新版に乗り換えができないのです。
そして有名な広告カットアドオン『uBlock Origin』に内包する画像非表示機能ではデータ使用量は減らない仕組みで力不足。

過去に"uBlock Origin"を実験した日記
https://…/2023/12/19/ Firefox 120&"uBlock Origin"ではデータ通信量が多すぎる件

長い前置きでしたが先日コメントで『Easy Image Blocker』(Akira Atsumiさん作成)なるアドオンの存在を教えて頂きました。

https://addons.mozilla.org/ja/firefox/addon/easy-image-blocker/

どういう仕組みで画像表示をカットしているのか(データ通信量削減につながっているのか)ソースコードが公開されていたので斜め読みしてみました。
なるほどWebExtensionってJavascriptなのね。(そのまんま?)

・Easy image blockerのソースコード:components/background.js blockImage関数

そしてimageタグのロードが始まるタイミングでのイベントリスナーとして動作し、imageタグ処理の都度その画像を読み込むのか否かをblockImage関数で判定しているというもの。
なるほど~こういう理屈か~♪


シンプルでわかりやすい。
そして私が欲しい機能『WiFi環境下でのみ画像読み込み』もこの判定に加えれば良さそうな気が!


その手のAPIが無いのかグーグル先生に聞いてみると・・・・
ビンゴ!!NetworkInformation APIなるものが存在し、これをコールする事で接続回線の種類やらが取得できる!!

・typeプロパティの戻り値

なんだ~、それであれば先ほどの処理を多少アレンジすれば私の望みが叶いそう!!
開発者に(対応してもらえるかどうか分からないけれど)機能リクエストを出してみようか?


だがさらに詳細にNetworkInformation APIを調べてみたら、一瞬だけFirefox Androidでもサポートされましたが、Firefox Android 99にて機能削除されてしまった模様(泣)
その理由が・・・・

Firefox開発チームでは、安全が担保された物しか実装したくない。NetworkInformation APIだと例えば回線種別がいつ4GからWiFiに切り替わったのかを毎日調査されたらその人がいつ帰宅するのか?とかの行動パターンがバレてしまう。

・・・・と言うことで機能除外のスタンスらしい。


そうかぁ~確かに一理あるけれど、この考え方により私が欲しい機能は実現できない模様です。
今後も気になるのでもう少し状況を注視していこうかと。