Web browsers are ubiquitous, but how do they work? This book explains, building a basic but complete web browser, from networking to JavaScript, in a couple thousand lines of Python.
Buy Web Browser Engineering
Web Browser Engineering is available in English for about $50 from Bookshop.org, B&N, or Amazon, and in Korean from Yes24 or directly from Hanbit. More translations coming soon.
Follow this book’s blog, Mastodon, or Twitter for updates. There’s a discussion forum for the book on Github, or you can email us directly.
Introduction
Part 1: Loading Pages
- Downloading Web Pages
URLs and HTTP requests - Drawing to the Screen
Creating windows and drawing to a canvas - Formatting Text
Word wrapping and line spacing
Part 2: Viewing Documents
- Constructing an HTML Tree
Parsing and fixing HTML - Laying Out Pages
Inline and block layout - Applying Author Styles
Parsing and applying CSS - Handling Buttons and Links
Hyperlinks and browser chrome
Part 3: Running Applications
- Sending Information to Servers
Form submission and web servers - Running Interactive Scripts
Changing the DOM and reacting to events - Keeping Data Private
Cookies and logins, XSS and CSRF
Part 4: Modern Browsers
- Adding Visual Effects
Blending, clipping, and compositing - Scheduling Tasks and Threads
The event loop and the rendering pipeline - Animating and Compositing
Smooth animations using the GPU - Making Content Accessible
Keyboard input, zooming, and the accessibility tree - Supporting Embedded Content
Images, iframes, and scripting - Reusing Previous Computation
Invalidation, editing, and correctness