Chromium Weekly: 2025 Week 51
Overview
This week in Chromium saw an exceptionally high volume of changes, with 2200 relevant commits out of 2936 total. The period was dominated by a wave of breaking API changes across core C++, Android, and the web platform, requiring significant attention from embedders. Alongside this churn, key web platform features like
text-justify and elastic overscroll were enabled by default, and major internal refactoring efforts like "Project Bedrock" continued to modernize the codebase.Widespread Breaking Changes
-
⚠️ BREAKING
BREAKING CHANGE: A major behavioral change in
ui::views::Viewnow causes a fatal crash in production builds if a view's child list is modified during iteration, a condition that was previously a debug-only check. (4b55b0b) -
⚠️ BREAKING
BREAKING CHANGE: Android embedders face numerous mandatory updates.
WebContentsDelegateAndroidrequires a newsetContentsBoundsmethod,TabWebContentsDelegateAndroid.addNewContentsneeds aPictureInPictureWindowOptionsparameter, and theloadTimeparameter in WebView'sonFirstContentfulPaintis now in milliseconds instead of microseconds. (8986073) (4528cd2) (96cb376) -
⚠️ BREAKING
BREAKING CHANGE: Several stable web platform behaviors were altered. The
clipboardchangeevent will now only fire if the page has user activation or theclipboard-readpermission, and theCustomizableSelectListboxfeature was enabled by default, changing the behavior of<select multiple>. (2872da4) (a6eb827) -
⚠️ BREAKING
BREAKING CHANGE: The reporting mechanism for Soft Navigation Largest Contentful Paint (LCP) was refactored from a pull-based to a push-based model, requiring embedders to implement a new
DidObserveSoftLargestContentfulPaintmethod on theWebLocalFrameClientinterface. (4430311) - ⚠️ BREAKING BREAKING CHANGE: Build system support for older hardware was removed. Support for ARMv6 has been dropped, and NEON SIMD support is now mandatory for all ARM builds, including for third-party libraries like libvpx and libaom. (e6b1ab2) (9178bee) (5d71603)
-
⚠️ BREAKING
BREAKING CHANGE: Numerous public C++ interfaces were broken.
content::ContentBrowserClientrequires a newIsAndroidAdvancedProtectionEnabledmethod,permissions::PermissionsClienthadGetTrackingProtectionSettingsremoved, and the deprecatedcrypto::HMACclass was removed entirely. (832db4a) (25d5686) (06d7910)
Web Platform & Blink
-
The
text-justifyCSS property is now enabled by default, potentially affecting text layout for justified content. On the interaction side, elastic overscroll effects are now on by default for non-root scrollers, and theAsyncTouchMovesImmediatelyAfterScrollfeature was enabled on all platforms to improve scroll responsiveness. (9ef16c6) (403b52a) (ce82799) -
The Navigation API was enhanced with the shipping of the
navigation.transition.toproperty, exposing the destination entry during a transition. For security, thetrusted-types-evalCSP keyword was implemented to create exemptions foreval(). Additionally, the<meta name="text-scale">tag, previously Android-only, is now supported on desktop platforms. (3d8faaf) (a1b6be4) (2cfc493) -
⚠️ BREAKING
BREAKING CHANGE: The WebCodecs
AudioEncoderAPI now imposes a fixed limit on the number of concurrent encodes, a behavioral change that may break applications that queue a large number of encoding tasks. (4448cc9)
Core Internals & Performance
-
⚠️ BREAKING
BREAKING CHANGE: The "Project Bedrock" initiative made significant progress in decoupling core components from the global
BrowserList. Numerous public static methods onBrowserListwere removed, pushing consumers toward more modern patterns likeBrowserCollectionObserver. (bde29c0) (64c605a) (e4aff77) -
WebUI loading performance was improved by introducing a synchronous
InitialWebUINavigationURLLoader, which moves resource loading into the renderer process. To improve stability, microtask execution is now suppressed via V8 APIs while a page is in the Back-Forward Cache. (6fc5621) (b448fd5) (117d86b) -
A new SQLite backend for DOM Storage was introduced behind the
kDomStorageUseSqlitefeature flag, beginning a migration away from LevelDB. In a widespread memory safety effort, many core APIs, including those in audio and MIDI, were "spanified" to replace raw pointer usage withbase::span. (72cd734) (70146e2) (dd77334)
UI, Features & Policy
-
⚠️ BREAKING
BREAKING CHANGE: The "Tab Organization" feature and its associated services have been removed from the codebase. In enterprise policy, support for the deprecated
CloudPrintProxyEnabledpolicy was also removed. (e1c53e2) (8dd15b8) -
A new feature, controlled by
kRedactPasswordFieldsInScreenshots, allows for redacting password fields from screen captures. For Picture-in-Picture, the window ID is now exposed to screen capture APIs, allowing it to be excluded from the capture of the frame that opened it. (08603f6) (6cf22fc) -
On Linux, the XDG Print Portal (
kLinuxXdgPrintPortal) has been enabled by default, modernizing the printing stack. On Android, theSaveInstanceStateObserverinterface was extended to support persisting state across device reboots. (eb227d2) (3fe2dd5)
Daily Summaries (7)
- 2025-12-14: Chromium Digest: 2025-12-14 (0 commits)
- 2025-12-15: Chromium Digest: 2025-12-15 (0 commits)
- 2025-12-16: Chromium Digest: 2025-12-16 (421 commits)
- 2025-12-17: Chromium Digest: 2025-12-17 (0 commits)
- 2025-12-18: Chromium Digest: 2025-12-18 (0 commits)
- 2025-12-19: Chromium Digest: 2025-12-19 (0 commits)
- 2025-12-20: Chromium Digest: 2025-12-20 (0 commits)