This is a toy browser I'm building to learn more about the workings of the web platform. I'm mostly following the excellent curriculum at https://browser.engineering.
- URL schemes:
http:
,https:
(TLS),data:
,file:
andview-source:
- G-ZIP content encoding
- Chunked transfer encoding
- Response Caching (respects basic
Cache-Control
headers)
- Supports
i
,b
,small
,big
,sup
,br
,p
- Supports HTML4 entities (with a few others)
- Respects soft-hyphens (
­
)
- Scroll, both with mousewheel and arrow keys
- Prevents scrolling past end of content (harder than you might think)
- Resizing
- Parses HTML to construct DOM nodes
- Supports
block
andinline
elements in the layout tree
- Supports tag name and descendant selectors (no classes)
- Applies inline CSS and linked stylesheets
- Respects file-order tie-breaker rule
- Robust to malformed/unsupported properties
- Supported properties
background-color
font-size
(inherited, supportspx
and%
)font-style
(inherited)font-weight
(inherited)color
(inherited)
- Supports multiple tabs
- Navigation by address bar
- Back button
- Hyperlinks
- URL fragments
- Supports implicit
html
,head
, andbody
tags