2026年7月17日(金)掲載 2,689本日 0
HN10957

【衝撃】ブラウザがブラウザの中で動く?WebAssemblyでFirefoxをブラウザ内に移植してみた

Show HN: Firefox in WebAssembly

coolelectronics約22時間前

議論

10
0coolelectronicsスレ主109約22時間前

これはFirefoxブラウザの全機能を<canvas>要素上にレンダリングするプロジェクトです。Geckoエンジン、すべてのUIコンポーネント、そしてJavaScriptエンジンのSpidermonkeyに至るまで、すべてをWebAssemblyにコンパイルして実行しています。面白いポイントをいくつか紹介します。まず、通信は完全にエンドツーエンドで暗号化されています。WebSocket経由のTCP通信を実現するためにWISPプロトコルを採用しました。次に、実験的なサイト高速化手法として、新規のWASM->JS JITを実装しています。ちなみに、このポート開発にはデバッグとJIT研究だけで25k以上のopus/fableトークンを費やしました。これはWebAssemblyの限界を押し広げるための楽しい実験の一環です。より実用的な「ブラウザ・イン・ブラウザ」体験を求めるなら、メモリ消費を抑えたhttps://github.com/HeyPuter/browser.js も開発しているのでぜひ試してみてください。

1coolelectronics約21時間前

あ、それから質問してる人へ。firefox-wasmの中でさらにfirefox-wasmを動かして、その中でまたFirefoxを起動することもできるよ!ただ、そのレベルまでいくとかなり不安定になるから、一度しか読み込ませられなかったけどね。

2degamad約21時間前

こういうのが存在してくれて本当に嬉しい。ここ数ヶ月、自分でも同じようなことをやろうかと考えていたところなんだ。

最近VIDAA OS搭載のテレビを買ったんだけど、これってウェブページをレンダリングして動く、ロックされたLinuxベースのOSなんだよね。内蔵ブラウザは広告ブロックに対応してなくて(VIDAA側がテレビで広告を表示して儲けてるんだろうね)、ウェブページ形式じゃないと新しいアプリもインストールできない仕様でさ。

これを使えば、今のブラウザの中でFirefoxを動かして、そこにuBlock Originを入れられるかもしれない…。今週末のプロジェクトはこれに決まりだな。

3MajesticHobo2約21時間前

これでブラウザのサンドボックス問題は完全に解決だね。

5yjftsjthsd-h約20時間前

この移植にはデバッグとJIT研究のために2万5000ドル以上のopus/fableトークンを費やした

これはWebAssemblyの限界を押し広げるためのただの楽しい実験だった

プロジェクト自体は大好きなんだけど、あえて聞かせて。2万5000ドル使うのが「楽しい実験」なら、君にとっての「真面目な仕事」のハードルは一体どこにあるんだい?

6brewmarche約20時間前

Firefox 152.0.6 (aarch64)で試してみたけど、拡張機能なしでも動かせなかった。

  [chrome-demo] chrome assets ready
  [gecko] warning: unsupported syscall: __syscall_madvise
  [gecko] embed-xul: main() on the app pthread (PROXY_TO_PTHREAD)
  [gecko] embed-xul: GECKO_GL_PASSTHROUGH=1
  [gecko] embed-xul: GECKO_COARSE_CLOCK=1
  [gecko] embed-xul: GECKO_GPU=1 (GPU/WebRender->canvas rendering)
  [gecko] xul_init: GRE dir = /gre
  [gecko] Pthread 0x11051000 sent an error! blob:https://developer.puter.com/edc1bd0a-b844-4a18-a69a-63dd49dc304a:8906: SecurityError: Security error when calling GetDirectory
7koolala約19時間前

Firefoxでフラグ設定が必要なWASM拡張機能がなぜ必要なの?回避策やポリフィルでなんとかする方法は本当になかったのかな?パフォーマンス的にどうしても外せない部分なの?

8elmer2約19時間前

このデモを試すときは気をつけたほうがいいよ。whatismyip.comに行くと、104.28.233.73が表示される。これを使えばIPアドレスを偽装して悪事を働くやつが出てきそうだ。

9andai約19時間前

説明文に似たプロジェクトのbrowser.jsについて触れられてるけど、あれには何か実際の実用例があるの?