Skip to content

riii111/simple_browser

Repository files navigation

simple browser

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

https://github.com/d0iasm/saba

OS

https://github.com/hikalium/wasabi/tree/for_saba

About

ブラウザを作ってみる(簡易版)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages