<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>

<title>Web Browser Engineering</title>
<atom:link href="https://browser.engineering//rss.xml" rel="self" type="application/rss+xml" />
<link>https://browser.engineering/</link>
<description>News, new chapters and blog posts</description>
<language>en</language>


<webMaster>author@browser.engineering (Pavel Panchekha &amp; Chris
Harrelson)</webMaster>

<item>
<title>Reusing Previous Computations</title>
<link>https://browser.engineering/invalidation.html</link>

<pubDate>Fri, 14 Jul 2023, 13:15:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Supporting Embedded Content</title>
<link>https://browser.engineering/embeds.html</link>

<pubDate>Mon, 20 Mar 2023, 9:50:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Making Content Accessible</title>
<link>https://browser.engineering/accessibility.html</link>

<pubDate>Fri, 7 Oct 2022, 13:31:00 -0700</pubDate>

<description>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.</description>
</item>
<item>
<title>Animating and Compositing</title>
<link>https://browser.engineering/animations.html</link>

<pubDate>Wed, 26 May 2022, 12:33:00 -0700</pubDate>

<description>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!</description>
</item>
<item>
<title>Scheduling Tasks and Threads</title>
<link>https://browser.engineering/scheduling.html</link>

<pubDate>Mon, 14 Feb 2022, 09:55:00 -0700</pubDate>

<description>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.</description>
</item>
<item>
<title>Adding Visual Effects</title>
<link>https://browser.engineering/visual-effects.html</link>

<pubDate>Fri, 17 Dec 2021, 17:45:00 -0700</pubDate>

<description>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.</description>
</item>
<item>
<title>Keeping Data Private</title>
<link>https://browser.engineering/security.html</link>

<pubDate>Fri, 15 Oct 2021, 16:15:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Running Interactive Scripts</title>
<link>https://browser.engineering/scripts.html</link>

<pubDate>Thu, 16 Sept 2021, 12:49:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Sending Information to Servers</title>
<link>https://browser.engineering/forms.html</link>

<pubDate>Fri, 20 Aug 2021, 14:32:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Handling Buttons and Links</title>
<link>https://browser.engineering/chrome.html</link>

<pubDate>Thu, 1 Jul 2021, 18:14:00 -0600</pubDate>

<description>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!</description>
</item>
<item>
<title>Applying User Styles</title>
<link>https://browser.engineering/styles.html</link>

<pubDate>Sun, 6 Jun 2021 18:49:00 -0600</pubDate>

<description>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!</description>
</item>
<item>
<title>Why Widgets?</title>
<link>https://browser.engineering/blog/why-widgets.html</link>

<pubDate>Mon, 10 May 2021 11:05:00 -0600</pubDate>

<description>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!</description>
</item>
<item>
<title>History of the Web</title>
<link>https://browser.engineering/history.html</link>

<pubDate>Mon, 3 May 2021 12:12:00 -0600</pubDate>

<description>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.</description>
</item>
<item>
<title>Laying Out Pages</title>
<link>https://browser.engineering/layout.html</link>

<pubDate>Mon, 5 Apr 2021 15:08:00 -0600</pubDate>

<description>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!</description>
</item>
<item>
<title>Browsers and the Web</title>
<link>https://browser.engineering/intro.html</link>

<pubDate>Sat, 6 Mar 2021 14:44:00 -0700</pubDate>

<description>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.</description>
</item>
<item>
<title>Constructing the Document Tree</title>
<link>https://browser.engineering/html.html</link>

<pubDate>Thu, 4 Feb 2021 12:49:00 -0700</pubDate>

<description>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!</description>
</item>
<item>
<title>Code Outlines</title>
<link>https://browser.engineering/blog/outlines.html</link>

<pubDate>Tue, 5 Jan 2021 12:28:00 -0700</pubDate>

<description>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.</description>
</item>
<item>
<title>Formatting Text</title>
<link>https://browser.engineering/text.html</link>

<pubDate>Fri, 11 Dec 2020 16:47:00 -0700</pubDate>

<description>Chapter 3 is ready. Read about typography, baselines, and
tags! Our browser lines up text with style! My favorite aside is the
Michigan Supreme Court case on font sizes.</description>
</item>
<item>
<title>Why Python?</title>
<link>https://browser.engineering/blog/why-python.html</link>

<pubDate>Fri, 18 Sept 2020 10:30:00 -0600</pubDate>

<description>Why is Web Browser Engineering in Python? In short, Python
is popular, readable, and has access to standard system
APIs.</description>
</item>
<item>
<title>Introducing Chris Harrelson</title>
<link>https://browser.engineering</link>

<pubDate>Sun, 30 Aug 2020 11:06:00 -0600</pubDate>

<description>Have you noticed that the byline on
https://browser.engineering has changed? Chris Harrelson will be joining
Web Browser Engineering as a co-author. He’s already working to make WBE
deeper and more realistic based on his experience on the Chrome
team.</description>
</item>
<item>
<title>Drawing to the Screen</title>
<link>https://browser.engineering/graphics.html</link>

<pubDate>Thu, 13 Aug 2020 09:43:00 -0600</pubDate>

<description>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.)</description>
</item>
<item>
<title>Typos and Comments</title>
<link>https://browser.engineering/blog/feedback.html</link>

<pubDate>Wed, 5 Aug 2020 12:33:00 -0600</pubDate>

<description>I’ve written some code to crowdsource typo corrections and
comments from readers. Looking forward to seeing your
feedback!</description>
</item>
<item>
<title>The Beginning</title>
<link>https://browser.engineering/blog/beginning.html</link>

<pubDate>Fri, 24 Jul 2020 17:26:00 -0600</pubDate>

<description>A quick backstory behind the book, and my plan for writing
it.</description>
</item>
<item>
<title>Downloading Web Pages</title>
<link>https://browser.engineering/http.html</link>

<pubDate>Fri, 24 Jul 2020 17:25:00 -0600</pubDate>

<description>Chapter 1 is about URLs, sockets, and HTTP requests. Read
about how a browser creates a network connection, what the OS does to
help, and how it requests specific web pages.</description>
</item>
</channel>
</rss>
