
ChromeブラウザのUnloadイベントサポート廃止について
概要
Window: unload event - Web APIs | MDN は、ウェブ開発者にとって馴染み深いイベントの一つであり、データの保存、後処理の実行、統計データの送信など、ユーザーがページを離れる際に実行されるコードを記述するために使用されています。
しかし、近年のウェブプラットフォームの進化やセキュリティ、パフォーマンス最適化の要求により、Chromeブラウザでは unload イベントのサポートを段階的に廃止しています。
本記事では、unload イベントが廃止された理由、その代替技術の紹介、そして当社メディアプレーヤーにおけるサポート状況についての情報を提供します。
この問題に関する詳細な説明は以下のリンクをご参照ください。
unload イベントの問題点
unload イベントのサポートが廃止される理由として、以下の主要な問題があります。
1. セキュリティの問題
unload イベントは、悪意のあるスクリプトがページを離れるユーザーを対象に追加攻撃を実行する可能性があります。例えば、ユーザーデータの無断送信や クリックジャッキング (clickjacking) などのセキュリティリスクを引き起こす恐れがあります。
2. パフォーマンスの問題
ブラウザは unload イベントハンドラーを呼び出すため、ページを離れるタイミングで特定のタスクを強制的に実行する必要があります。これにより、ページ遷移速度が低下し、ユーザーのブラウジング体験が妨げられる可能性があります。
3. 最新標準との非互換性
unload イベントは、最新のウェブ標準に沿わない動作を示します。特に、非同期通信や段階的な更新が重視される現在のブラウジングパターンでは、unload の利用例が減少しています。
4. モバイル環境での問題
モバイルブラウザでは、バックグラウンド処理がPCよりも頻繁に発生し、unload イベントが実行されないケースが多々あります。
代替技術の紹介
従来 unload イベントを利用している場合は、以下の代替技術の使用が推奨されます。
pagehide イベント: ユーザーがページを離れるタイミングで発生します。
visibilitychange イベント: ページの表示状態が変更された際に発生します。
これらのイベントは、unload と同様の機能を提供しつつ、セキュリティおよびパフォーマンス上の問題を最小限に抑えることができます。
さらに、ブラウザは unload イベントを使用した非同期リクエストの送信を保証しません。
そのため、Navigator: sendBeacon() method - Web APIs | MDN を使用してデータを送信することが、より信頼性の高い選択肢となります。
このAPIは、ネットワークリクエストをバックグラウンドで処理し、ページ読み込みのパフォーマンスに影響を与えません。
スケジュール
2023年後半の Chrome 120 以降、段階的に unload イベントの機能削除が開始され、2025年前半までにすべてのユーザーに適用される予定です。
当社プレーヤーのサポート
カテノイドが提供するブラウザベースのHTML5メディアプレーヤーは、unload イベントを利用していないため、unload イベント削除オプションを有効にした状態(unload イベントがサポートされない状態)でも Chrome ブラウザ で問題なく動作することを内部テストで確認しました。
また、プレーヤー内に含まれる jQuery などのJavaScriptライブラリにunload イベントコードが存在する場合がありますが、実際には使用されておらず、将来的なアップグレードで完全に削除される予定です。
さらに、Microsoft Edgeブラウザも同じエンジンを使用しているため、同様の変更が加えられると予想されます。ただし、適用スケジュールは異なる可能性があります。一方、FirefoxやSafariなどの他のブラウザエンジンでは、現時点で unload イベントサポート終了の計画はないようです。詳細は Chrome Platform Status をご参照ください。
結論
進化するウェブエコシステムの中で、JavaScript APIも変化を続けています。
Chrome における unload イベントのサポート終了は、セキュリティ、パフォーマンス、実際の利用状況に基づく決定です。
カテノイドは、これらの変化に対応し、メディアプレーヤーをはじめとするソリューションの継続的なアップグレードを進めています。
今後も業界の主要な変化および関連する当社ソリューションの最新情報を提供してまいります。


