WasabiOS上で、簡易版ブラウザを作成。
書籍『[作って学ぶ]ブラウザのしくみ──HTTP、HTML、CSS、JavaScriptの裏側』より。
- URLのパース
スキーム、ホスト、ポート番号、パス、クエリパラメータに分解 - HTTPの実装
HTTPクライアントの実装。
ホスト名→IPアドレスに変換、ストリームの構築や、リクエスト・レスポンスライン・ヘッダの構築など。
今回はHTTP/2を利用。 - HTMLのパース
HTML→DOMツリーへ変換。 ステートマシンを用いてHTMLの字句解析、構文解析を実装。 - CSSのパース
CSSの字句解析や、構文解析(CSSOMの構築)。 - GUIの実装
GUIアプリケーションウィンドウを作成
ユーザからの入力を取得しページ内容を描画
リンククリックでナビゲーションなど - ページの動的な変更を反映
JavaScriptの加算・減算の実装
抽象構文木(AST)の構築
JavaScriptの変数や関数呼び出しの実装
ブラウザAPIの追加など
https://github.com/d0iasm/sababook/tree/main