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.
Follow this book’s blog or Twitter for updates. You can
also talk about the book with others in our discussion
forum .
If you are enjoying the book, consider supporting us on Patreon .
Or just send us an
email !
Part 1: Drawing Graphics
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 a Document Tree
Parsing and fixing HTML
Laying Out Pages
Inline and block layout, plus the box model
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