Invalidation is a key technique all major browsers use to make for fast rendering and smooth interactions, but it’s also famously difficult. Chapter 16 explains how to make it work right.| Web Browser Engineering
Images and iframes introduce performance and security concerns that impact browser architecture, but they also build on and extend existing concepts like event loops, rendering, and accessibility in an elegant way. Chapter 15 explains how.| Web Browser Engineering
Accessibility is an important topic, and often not well understood. Chapter 14 of Web Browser Engineering explains how it works, and also how almost every web user benefits from it in one way or another.| Web Browser Engineering
Animations make browsers more fun, but they also require solving a lot of really interesting algorithmic and design challenges to utilize GPU-accelerated compositing. Find out how in our new chapter, Animating and Compositing!| Web Browser Engineering
With a new year and then some more time to actually finish things, we present a new chapter on Scheduling Tasks and Threads. This chapter splits the browser into multiple threads, with threaded raster and scrolling, in only a couple thousand lines of code.| Web Browser Engineering
Today we’re releasing a chapter on Adding Visual Effects. This first chapter on Modern Browsers swaps in modern libraries and implements some recent web features like blending, stacking contexts, surfaces, and clipping.| Web Browser Engineering
Today we’re releasing a chapter on Keeping Data Private. Cookies enable a whole economy of personalized web applications—but also raise issues of security and privacy. New, powerful browser-side tools can help.| Web Browser Engineering
Today we’re releasing a chapter on Running Interactive Scripts. Binding a JavaScript engine to our browser—and building the system for passing data between JavaScript and browser code—makes possible a whole new world of interactive web applications.| Web Browser Engineering
Today we’re releasing a chapter on Sending Information to Servers. In it, our browser becomes an application platform, starting with a 90s-style guest book. The next few chapters will explore that theme, building more and more capable web applications as we go.| Web Browser Engineering
Today we’re releasing a chapter on Handling Buttons and Links. This is the chapter when the browser really starts surfing the web. It also becomes a pretty good way to read this book!| Web Browser Engineering
Today we’re releasing a chapter on Applying User Styles. I hope you’ll find that building a simple CSS parser and implementing selector matching and inheritance is interesting, approachable and fun!| Web Browser Engineering
We’re working interactive widgets to Web Browser Engineering to better explain the concepts and to make room for discoveries. But it’s not easy!| Web Browser Engineering
Today we’re releasing a new chapter on the History of the Web. The rest of the book is about how web browsers work, but this chapter is about why. It’s about the goals and motivations for the web and for web browsers, which shape the way they work.| Web Browser Engineering
We’re releasing Chapter 5. It introduces layout trees, the data structure at the center of layout. Building, laying out, and rendering layout trees is how every web page you view is rendered!| Web Browser Engineering
The intro chapter is here! Now you get to find out why this book was worth writing, mostly in Chris’s words. Plus you’ll learn a few things about where the web came from and how the sausage is made.| Web Browser Engineering
Chapter 4 is out! It’s decked out with HTML parsing and error handling, and starts building out the core data structures of the browser. Plus, it has tips for leveraging implicit tags to make your HTML cleaner and simpler!| Web Browser Engineering
I’ve added a code outline tool to help you see the intermediate-level structure of a web browser. As Chris and I write more chapters, it’ll become more and more useful.| Web Browser Engineering
Why is Web Browser Engineering in Python? In short, Python is popular, readable, and has access to standard system APIs.| Web Browser Engineering
Chapter 2 is ready. Read about window handles, display lists, and events. Our browser creates a window, draws text to it, and tells a story about a monkey. (My favorite part is the aside on Chinese line layout.)| Web Browser Engineering
I’ve written some code to crowdsource typo corrections and comments from readers. Looking forward to seeing your feedback!| Web Browser Engineering
A quick backstory behind the book, and my plan for writing it.| Web Browser Engineering
Downloading Web Pages| browser.engineering
Web Browser Engineering| browser.engineering
Formatting Text| browser.engineering
Web Browser Engineering| browser.engineering