https://browser.engineering/index.html
Web Browser Engineering
Pavel Panchekha & Chris Harrelson
Twitter * Blog * Patreon * Discussions
* Introduction
* Part 1: Loading Pages
* Part 2: Viewing Documents
* Part 3: Running Applications
* Part 4: Modern Browsers
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.
The cover for Web Browser Engineering, from Oxford University Press
The cover for Web Browser Engineering, from Oxford University Press
Pre-order Web Browser Engineering
Web Browser Engineering will be published by Oxford University Press
before the end of the year. To get it as soon as it's out, pre-order
now!
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!
Introduction
1. Preface
2. Browsers and the Web
3. History of the Web
Part 1: Loading Pages
1. Downloading Web Pages
URLs and HTTP requests
2. Drawing to the Screen
Creating windows and drawing to a canvas
3. Formatting Text
Word wrapping and line spacing
Part 2: Viewing Documents
4. Constructing an HTML Tree
Parsing and fixing HTML
5. Laying Out Pages
Inline and block layout
6. Applying Author Styles
Parsing and applying CSS
7. Handling Buttons and Links
Hyperlinks and browser chrome
Part 3: Running Applications
8. Sending Information to Servers
Form submission and web servers
9. Running Interactive Scripts
Changing the DOM and reacting to events
10. Keeping Data Private
Cookies and logins, XSS and CSRF
Part 4: Modern Browsers
11. Adding Visual Effects
Blending, clipping, and compositing
12. Scheduling Tasks and Threads
The event loop and the rendering pipeline
13. Animating and Compositing
Smooth animations using the GPU
14. Making Content Accessible
Keyboard input, zooming, and the accessibility tree
15. Supporting Embedded Content
Images, iframes, and scripting
16. Reusing Previous Computation
Invalidation, editing, and correctness
Conclusion
1. What Wasn't Covered
2. A Changing Landscape
Appendix
3. Glossary
4. Bibliography
5. About the Authors
6. Contributors
7. List of courses taught from this book
8. One-page version
(c) 2018-2023 Pavel Panchekha & Chris Harrelson