Firefox 80 あたりから、一部で「~のウェブサイトで修復不能なネットワークプロトコル違反が発生しました。」というエラーが発生する件の対応方法です。
症状
例えばtwitterであれば、次のようなメッセージが表示される。
リクエストを正常に完了できませんでした
https://twitter.com/ のウェブサイトで修復不能なネットワークプロトコル違反が発生しました。
このページは、データの伝送中にエラーが検出されたため表示できません。
ウェブサイトの所有者に連絡を取り、この問題を報告してください。
対策
対策1
修正するためには、下記の手順で「serviceworkers」から問題の出ているサイトに関する情報を削除します。
- Firefoxで「about:serviceworkers」を開く
- 「登録された Service Workers」としてズラズラっと何かが表示される
- 問題の出ているサイト(ここではtwitterとする)を探す
- 「オリジン: https://twitter.com」と表示されている段の一番下に「更新」「登録解除」というボタンが並んでいるので、「登録解除」を押す
以上です。Firefoxの再起動が必要な場合があるようです。
問題の出ていたサイトにアクセスすると正しく表示されるはずです。
対策2
この対策2は、上記対策1だけでは少しすると再発するなど、エラー解決ができない場合の根本的な対策です。
- 上記、対策1を行う
- Firefoxで「about:config」を開く
- ”dom.serviceWorkers.enabled”で絞り込む
- ”true”であれば、”false”に変更する
- Firefoxを再起動する
serviceworkersとは?
念の為、作業した仕組みの概要について理解しておきましょう。
サービスワーカー(serviceworkers)とは、「プログレッシブウェブアプリ(PWA、Progressive Web Apps)」と呼ばれる新しい仕組みを構成する技術要素です。
この仕組みを利用することで、Webサイトで高速な表示やオフライン操作を可能とします。いわば新しい高度で安全な仕組みのキャッシュエリアを提供することで、Webページでアプリのようなサービスが提供できると思えば良いでしょう。
プログレッシブウェブアプリ | MDN
https://developer.mozilla.org/ja/docs/Web/Progressive_web_apps
そしてFirefoxブラウザで、現在管理しているサービスワーカーを表示するアドレスが「about:serviceworkers」だというわけです。
今回、主にエラーの発生しているtwitterでは、何らかの原因でこのサービスワーカーの制御がうまく行っていないようで、あちこちでこのエラーに遭遇している方がいるようです。仕組み的にはキャッシュのようなものであるため、不具合が出ているようなら削除すれば次回アクセス時に再構築されることで初期化できるということになります。