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::ContentBrowserClientinterface, includingIsUnpartitionedStorageAccessAllowedByUserPreference,GetUserAgentBasedOnPolicy, andIsInitialWebUIScheme. This breaks all embedder implementations. (fcea483) (18b17a9) (26c4ae9) (f9d507d) -
⚠️ BREAKING
BREAKING CHANGE The
media::VideoFrameAPI was heavily refactored.STORAGE_GPU_MEMORY_BUFFERwas renamed toSTORAGE_MAPPABLE_SHARED_IMAGE,VideoFrame::ScopedMappingwas made non-virtual, andviz::TransferableResourcewas changed to use aClientSharedImageobject. (715fc38) (42fcda8) (db2f79e) (bbb801f) (fdbf02d) -
⚠️ BREAKING
BREAKING CHANGE The public WebAuthn and Identity APIs were significantly changed. The
webauthn::PasskeyModelinterface was refactored to use a unifiedGetPasskeys()method, FIDO headers were moved todevice/fido/public/, and theAccountInfo::hosted_domainfield was made private. (c1498b4) (583d7e5) (0615b88) (0cc5bbc) (bb0a00d) (265e995) -
⚠️ BREAKING
BREAKING CHANGE Support for the old headless mode via
--headless=oldhas 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 unifiedWebauthnRequestCallback, and changed the coreObservableSupplierutility to be monotonic. (ba8d47a) (b8d1545) (4478f90) (416a61c) -
⚠️ BREAKING
BREAKING CHANGE The public
mojo::ConnectionGroup::Refclass was renamed tomojo::ConnectionGroupRefto 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.originAPI, and the CSS multi-column propertiescolumn-heightandcolumn-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-spacingandword-spacingnow support percentage values. Thefocusgroupfeature was also improved with apriorityattribute and navigation based on visual order. (8405f8d) (b43c1e0) (03107b9) -
The
cookieStoreAPI now supports themaxAgeproperty, allowing developers to set a cookie's expiration relative to the current time. (516446e) -
⚠️ BREAKING
BREAKING CHANGE The
XSLTProcessorweb 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_presentationv2. (0e93910) (9fc41d8) -
The
components/ip_protectionfeature was deleted from the codebase. The legacyUserAgentReductionenterprise 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
TabModelImplandTabGroupModelFilterImplto unify tab management logic. (ba8d47a) (b8d1545) (64dbe67) (e23a3ed) -
The
AwNavigationListenerinterface for Android WebView was updated with a newonLargestContentfulPaintmethod 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)
- 2025-11-30: Chromium Digest: 2025-11-30 (0 commits)
- 2025-12-01: Chromium Digest: 2025-12-01 (0 commits)
- 2025-12-02: Chromium Digest: 2025-12-02 (0 commits)
- 2025-12-03: Chromium Digest: 2025-12-03 (0 commits)
- 2025-12-04: Chromium Digest: 2025-12-04 (0 commits)
- 2025-12-05: Chromium Digest: 2025-12-05 (0 commits)
- 2025-12-06: Chromium Digest: 2025-12-06 (0 commits)