Chromium Weekly Digest Logo

Chromium Weekly Digest

Week 49 of 2025 (2025-11-30 to 2025-12-06)

Chromium Weekly: 2025 Week 49

Overview

This week was marked by an extraordinary number of breaking API changes, headlined by the default C++ standard being raised to C++23. Across 3,162 commits, with over 2,300 deemed relevant, developers made significant updates to core interfaces like ContentBrowserClient, media::VideoFrame, and WebAuthn, requiring widespread updates for embedders. Major features like the built-in HLS player were shipped, while legacy code such as the old headless mode and the "Identifiability Study" was removed.

Breaking Changes & API Evolution

  • ⚠️ BREAKING BREAKING CHANGE The default C++ standard is now C++23. This is a major toolchain update requiring embedders to use a compatible compiler and adapt to stricter language rules or updated standard library behavior. (5047a65)
  • ⚠️ BREAKING BREAKING CHANGE Multiple virtual methods were removed from the core content::ContentBrowserClient interface, including IsUnpartitionedStorageAccessAllowedByUserPreference, GetUserAgentBasedOnPolicy, and IsInitialWebUIScheme. This breaks all embedder implementations. (fcea483) (18b17a9) (26c4ae9) (f9d507d)
  • ⚠️ BREAKING BREAKING CHANGE The media::VideoFrame API was heavily refactored. STORAGE_GPU_MEMORY_BUFFER was renamed to STORAGE_MAPPABLE_SHARED_IMAGE, VideoFrame::ScopedMapping was made non-virtual, and viz::TransferableResource was changed to use a ClientSharedImage object. (715fc38) (42fcda8) (db2f79e) (bbb801f) (fdbf02d)
  • ⚠️ BREAKING BREAKING CHANGE The public WebAuthn and Identity APIs were significantly changed. The webauthn::PasskeyModel interface was refactored to use a unified GetPasskeys() method, FIDO headers were moved to device/fido/public/, and the AccountInfo::hosted_domain field was made private. (c1498b4) (583d7e5) (0615b88) (0cc5bbc) (bb0a00d) (265e995)
  • ⚠️ BREAKING BREAKING CHANGE Support for the old headless mode via --headless=old has been completely removed. Scripts relying on this argument will now launch the new headless mode instead. (b18a8a9)
  • ⚠️ BREAKING BREAKING CHANGE Major refactoring on Android removed TabModelImpl, redesigned the WebAuthn callback system into a unified WebauthnRequestCallback, and changed the core ObservableSupplier utility to be monotonic. (ba8d47a) (b8d1545) (4478f90) (416a61c)
  • ⚠️ BREAKING BREAKING CHANGE The public mojo::ConnectionGroup::Ref class was renamed to mojo::ConnectionGroupRef to improve build times by allowing forward declaration. Consumers of this API must update to the new name. (a0aae0e)

Web Platform & Blink

  • Several features were enabled by default and had their flags removed, including the built-in HLS player, the location.origin API, and the CSS multi-column properties column-height and column-wrap. (f100e37) (d390482) (a6dd974)
  • The experimental "Identifiability Study" (Privacy Budget) feature and its associated code, metrics, and mojo interfaces have been removed from the codebase. (db00ab2) (0d71dc3) (52c1810) (b770092)
  • CSS letter-spacing and word-spacing now support percentage values. The focusgroup feature was also improved with a priority attribute and navigation based on visual order. (8405f8d) (b43c1e0) (03107b9)
  • The cookieStore API now supports the maxAge property, allowing developers to set a cookie's expiration relative to the current time. (516446e)
  • ⚠️ BREAKING BREAKING CHANGE The XSLTProcessor web API is now gated by a feature flag. If disabled, the API is removed from the global scope, which could break sites that rely on it. (13f370a)

Core Services & Security

  • The Session Storage implementation was refactored to improve data lifecycle management and prepare for a future swappable SQLite backend. Work also continued on transparent disk cache encryption for the network service. (a87a03d) (0fdd088) (cd57155)
  • The GPU persistent cache is now used for Ganesh and GL shader caches, centralizing cache management. On Wayland, frame timing is improved for Variable Refresh Rate (VRR) displays by using wp_presentation v2. (0e93910) (9fc41d8)
  • The components/ip_protection feature was deleted from the codebase. The legacy UserAgentReduction enterprise policy was also removed. (a402ef2) (c6fcfae) (64f74a0)
  • Security was hardened by enabling Branch Target Identification (BTI) for Linux on Arm builds. The Sanitizer API was also improved to enforce parsing in an inert DocumentFragment. (b885f91) (ae77388)

Mobile Platforms (Android & iOS)

  • ⚠️ BREAKING BREAKING CHANGE A large-scale refactoring for the Android "Tab Collection" project continued, removing legacy classes like TabModelImpl and TabGroupModelFilterImpl to unify tab management logic. (ba8d47a) (b8d1545) (64dbe67) (e23a3ed)
  • The AwNavigationListener interface for Android WebView was updated with a new onLargestContentfulPaint method to expose web performance metrics to embedders. (5339dca)
  • On iOS, development continued on the AI-powered Composebox and the native Passkey client. The file upload panel was also updated to use the modern PHPickerViewController. (10d7f06) (e424d9b) (929f329)
  • On iOS, the Reading Mode feature was enabled by default for non-US regions and now supports automatic language translation detection. (da536ae) (f700d5f)
Daily Summaries (7)
← Back to all summaries