ServiceWorkerとupgrade-insecure-requestsで、httpsで提供されていないMixed Contentなリソースでもロードできた。
- レスポンスヘッダで Content-Security-Policy: upgrade-insecure-requests を指定
- SWでのonfetchで、fetchしてみて失敗したやつは、same originにある自作アプリ(https)にhttpでこのurlをかわりにとってくるように依頼
- 自作アプリはurlパラメータで受け取ったurlを代わりに取得し、レスポンスヘッダどボディをそのままかえす
- SWは自作アプリからのresponseをevent.respondWithに設定する
Cookieやヘッダの扱いに問題はあるにせよ、とりあえず動いた。 セキュリティ的にはdowngradeしてて問題がありそうなので、自作アプリでしっかり対策しないとまずいかも