Open3
nest: GitHub Pages のサイトをCross Origin Isolationしつつローカルのデバイスに接続させる

とりあえずやりたい事はできた:
ページ( https://okuoku.github.io/fnest-toplevel/index.html )をロードすると:
- coi-serviceworker のようなサービスワーカーが常駐し、ヘッダをCOIを満たすように書き換える = SharedArrayBufferが使用できるようになる(WasmLinuxの必須要件)
- 前書いたHTTPシグナリングによりWebRTCでローカルデバイスと通信できる
セキュリティ
素のHTTPでローカルデバイスと通信できちゃダメじゃんという気はするが、Cross Origin Isolationの要件である、ブラウザコンテキストの分離自体は達成しているのでOKということのようだ。
window.open
でポップアップは開いているものの、特にOpenした先ではopenerを介した通信はしていない。localStorageに対しては書き込んでるけど。

Cross Origin Isolation
全体的に async
await
を使って書いている。今回のユースケースではcredentiallessへのfallbackは不要なので除いている。

素HTTPシグナリング
今回はbuild lessにしたかったのでJOSEの実装を node-jose
から jose
に乗り換えている。
node-jose
と違ってデフォルトで暗号アルゴリズムを設定したりしないので自分で設定を行う必要がある。