Web Browser Engineering
Blink28625 Syys 2025

Web Browser Engineering

The excerpts provide an extensive overview of the complex field of web browser engineering, starting with the historical context of the web's foundational technologies like HTTP and HTML. The text details the iterative process of building a simplified browser, covering core functionalities such as network requests (including sockets and HTTP status codes), rendering (layout, text formatting, and graphical user interfaces like SDL/Skia), and styling with CSS (parsing, cascading, and inheritance). Furthermore, the source addresses sophisticated topics crucial to modern browsers, including JavaScript execution (DOM manipulation and event handling), security features (CSRF, XSS, and Content-Security-Policy), performance optimization (multi-threading, rendering cadence, and incremental layout using techniques like ProtectedField), and accessibility features like zooming and dark mode. Finally, it explores the implementation of complex embedded content, notably images and iframes, which introduces the concepts of cross-origin communication and site isolation.


Jaksot(397)

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

Bridges Skia’s recorded commands to the GPU command buffer; submits and SwapBuffers to present. (Backend: GL/Vulkan/Metal via GPU process.)

23 Syys 202532min

viz::SkiaRenderer

viz::SkiaRenderer

Renderer that turns quads into Skia operations (recording DDLs / drawing to the output surface).

23 Syys 202552min

viz::Display

viz::Display

The display compositor that walks the aggregated render passes and issues draw commands for the final output.

23 Syys 202538min

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

Scroll processing and overscroll detection in the compositor. The LayerTreeHostImpl in cc implements the compositor-thread InputHandler that processes gesture scroll updates and flings. It manages the...

23 Syys 202527min

blink::EventHandler (Blink core input handling)

blink::EventHandler (Blink core input handling)

Scroll chain builder and overscroll chaining logic. Blink’s EventHandler is responsible for building the scroll chain (the sequence of nested scrollable ancestors) when the user scrolls an element . I...

23 Syys 202526min

blink::ElasticOverscrollController

blink::ElasticOverscrollController

Overscroll orchestration and animation. This Blink-side controller manages the rubber-banding (elastic stretch and rebound) effect when a scrollable area is overscrolled. It observes gesture scroll ev...

23 Syys 202526min

viz::Surface / SurfaceAggregator

viz::Surface / SurfaceAggregator

Receives frames from one or more surfaces (main page and OOPIFs), aggregates them into a single display frame.

23 Syys 202535min

viz::CompositorFrameSink (client side)

viz::CompositorFrameSink (client side)

The submission interface used by cc to hand the frame to viz.

23 Syys 202531min