GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • The Chromium Projects
  • Home
  • Chromium
  • ChromiumOS
  • Report bugs
  • Discuss
  • Chromium Blog
  • Google Chrome Extensions
  • noted
  • Creative Commons Attribution 2.5 license
  • BSD License
  • Privacy
  • Edit
  • A Generic theme for the Test Shell

This view

  • Original page
  • New address

GeezerVison is showing www.chromium.org — Design Documents

For Developers >

Design Documents

Start Here: Background Reading

  • Multi-process Architecture: Describes the high-level architecture of Chromium Note: Most of the rest of the design documents assume familiarity with the concepts explained in this document.
  • How Blink works is a high-level overview of Blink architecture.
  • The "Life of a Pixel" talk (slides / video) is an introduction to Chromium's rendering pipeline, tracing the steps from web content to displayed pixels.
  • [somewhat outdated] How Chromium Displays Web Pages: Bottom-to-top overview of how WebKit is embedded in Chromium

See Also:

  • Design docs in source code
  • Design doc template

General Architecture

  • Conventions and patterns for multi-platform development
  • Extension Security Architecture: How the extension system helps reduce the severity of extension vulnerabilities
  • HW Video Acceleration in Chrom{e,ium}{,OS}
  • Inter-process Communication: How the browser, renderer, and plugin processes communicate
  • Multi-process Resource Loading: How pages and images are loaded from the network into the renderer
  • Plugin Architecture
  • Process Models: Our strategies for creating new renderer processes
  • Profile Architecture
  • SafeBrowsing
  • Sandbox
  • Security Architecture: How Chromium's sandboxed rendering engine helps protect against malware
  • Startup
  • Threading: How to use threads in Chromium

Also see the documentation for V8, which is the JavaScript engine used within Chromium.

UI Framework

  • UI Development Practices: Best practices for UI development inside and outside of Chrome's content areas.
  • Views framework: Our UI layout layer used on Windows/Chrome OS.
  • views Windowing system: How to build dialog boxes and other windowed UI using views.
  • Aura: Chrome's next generation hardware accelerated UI framework, and the new ChromeOS window manager built using it.
  • NativeControls: using platform-native widgets in views.
  • Focus and Activation with Views and Aura.
  • Input Event Routing in Desktop UI.

Graphics

  • Overview
  • GPU Accelerated Compositing in Chrome
  • GPU Feature Status Dashboard
  • Rendering Architecture Diagrams
  • Graphics and Skia
  • RenderText and Chrome UI text drawing
  • GPU Command Buffer
  • GPU Program Caching
  • Compositing in Blink/WebCore: from WebCore::RenderLayer to cc::Layer
  • Compositor Thread Architecture
  • Rendering Benchmarks
  • Impl-side Painting
  • Video Playback and Compositor
  • ANGLE architecture presentation

Network stack

  • Overview
  • Network Stack Objectives
  • Crypto
  • Disk Cache
  • HTTP Cache
  • Out of Process Proxy Resolving Draft [unimplemented]
  • Proxy Settings and Fallback
  • Debugging network proxy problems
  • HTTP Authentication
  • View network internals tool
  • Make the web faster with SPDY pages
  • Make the web even faster with QUIC pages
  • Cookie storage and retrieval

Security

  • Security Overview
  • Protecting Cached User Data
  • System Hardening
  • Chaps Technical Design
  • TPM Usage
  • Per-page Suborigins
  • Encrypted Partition Recovery
  • XSS Auditor

Input

  • See chromium input for design docs and other resources.

Rendering

  • Multi-column layout
  • Style Invalidation in Blink
  • Blink Coordinate Spaces

Building

  • IDL build
  • IDL compiler

See also the documentation for GYP, which is the build script generation tool.

Testing

  • Layout test results dashboard
  • Generic theme for Test Shell
  • Moving LayoutTests fully upstream

Feature-Specific

  • about:conflicts
  • Accessibility: An outline of current (and coming) accessibility support.
  • Auto-Throttled Screen Capture and Mirroring
  • Browser Window
  • Chromium Print Proxy: Enables a cloud print service for legacy printers and future cloud-aware printers.
  • Constrained Popup Windows
  • Desktop Notifications
  • DirectWrite Font Cache for Chrome on Windows
  • DNS Prefetching: Reducing perceived latency by resolving domain names before a user tries to follow a link
  • Download Page (Material Design Refresh)
  • Embedding Flash Fullscreen in the Browser Window
  • Extensions: Design documents and proposed APIs.
  • Find Bar
  • Form Autofill: A feature to automatically fill out an html form with appropriate data.
  • Geolocation: Adding support for W3C Geolocation API using native WebKit bindings.
  • Generic-Sensor : Access sensor data
  • IDN in Google Chrome
  • IndexedDB (early draft)
  • Info Bars
  • Installer: Registry entries and shortcuts
  • Instant
  • Isolated Sites
  • Linux Resources and Localized Strings: Loading data resources and localized strings on Linux.
  • Media Router & Web Presentation API
  • Memory Usage Backgrounder: Some information on how we measure memory in Chromium.
  • Mouse Lock
  • Omnibox Autocomplete: While typing into the omnibox, Chromium searches for and suggests possible completions.
    • HistoryQuickProvider: Suggests completions from the user's historical site visits.
  • Omnibox/IME Coordination
  • Omnibox Prefetch for Default Search Engines
  • Ozone Porting Abstraction
  • Password Form Styles that Chromium Understands
  • Password Generation
  • Plugin Power Saver
  • Preferences
  • Prerender
  • Print Preview
  • Printing
  • Rect-based event targeting in views: Making it easier to target views elements with touch.
  • Replace the modal cookie prompt
  • SafeSearch
  • Sane Time: Determining an accurate time in Chrome
  • Secure Web Proxy
  • Service Processes
  • Site Engagement: Tracking user engagement with sites they use.
  • Site Isolation: In-progress effort to improve Chromium's process model for security between web sites.
  • Software Updates: Courgette
  • Sync
  • Tab Helpers
  • Tab to search: How to have the Omnibox automatically provide tab to search for your site.
  • Tabtastic2 Requirements
  • Temporary downloads
  • TimeTicks: How our monotonic timer, TimeTicks, works on different OSes
  • UI Mirroring Infrastructure: Describes the UI framework in ChromeViews that allows mirroring the browser UI in RTL locales such as Hebrew and Arabic.
  • UI Localization: Describes how localized strings get added to Chromium.
  • User scripts: Information on Chromium's support for user scripts.
  • Video
  • WebSocket: A message-oriented protocol which provides bidirectional TCP/IP-like communication between browsers and servers.
    • Design doc: mostly still relevant but some parts have been revised. In particular, mojo is used for the communication between Blink and //content now.
    • WebSocket handshake: The HTTP-like exchange before switching to WebSocket-style framing in more detail.
    • Obsolete design doc: WebSocket code has been drastically refactored. Most of the code described in this doc is gone. It is mostly only of historical interest.
  • Web MIDI
  • WebNavigation API internals
  • Web NFC

OS-Specific

  • Android
    • Java Resources on Android
    • JNI Bindings
    • Android WebView docs
    • Child process importance
  • Chrome OS
    • See the Chrome OS design documents section.
  • Mac OS X
    • AppleScript Support
    • BrowserWindowController Object Ownership
    • Confirm to Quit
    • Mac App Mode (Draft)
    • Mac Fullscreen Mode (Draft)
    • Mac NPAPI Plugin Hosting
    • Mac specific notes on UI Localization
    • Menus, Hotkeys, & Command Dispatch
    • Notes from meeting on IOSurface usage and semantics
    • OS X Interprocess Communication (Obsolete)
    • Password Manager/Keychain Integration
    • Sandboxing Design
    • Tab Strip Design (Includes tab layout and tab dragging)
    • Wrench Menu Buttons
  • iOS
    • WKWebView Problems Solved by web// layer

Other

  • 64-bit Support
  • Layered Components
  • Closure Compiling Chrome Code
  • content module / content API
  • Design docs that still need to be written (wiki)
  • In progress refactoring of key browser-process architecture for porting
  • Network Experiments
  • Transitioning InlineBoxes from floats to LayoutUnits

Full listing of all sub-pages:

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.