Chromium Weekly Digest Logo

Chromium Weekly Digest

Week 51 of 2025 (2025-12-14 to 2025-12-20)

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::View now 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. WebContentsDelegateAndroid requires a new setContentsBounds method, TabWebContentsDelegateAndroid.addNewContents needs a PictureInPictureWindowOptions parameter, and the loadTime parameter in WebView's onFirstContentfulPaint is now in milliseconds instead of microseconds. (8986073) (4528cd2) (96cb376)
  • ⚠️ BREAKING BREAKING CHANGE: Several stable web platform behaviors were altered. The clipboardchange event will now only fire if the page has user activation or the clipboard-read permission, and the CustomizableSelectListbox feature 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 DidObserveSoftLargestContentfulPaint method on the WebLocalFrameClient interface. (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::ContentBrowserClient requires a new IsAndroidAdvancedProtectionEnabled method, permissions::PermissionsClient had GetTrackingProtectionSettings removed, and the deprecated crypto::HMAC class was removed entirely. (832db4a) (25d5686) (06d7910)

Web Platform & Blink

  • The text-justify CSS 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 the AsyncTouchMovesImmediatelyAfterScroll feature was enabled on all platforms to improve scroll responsiveness. (9ef16c6) (403b52a) (ce82799)
  • The Navigation API was enhanced with the shipping of the navigation.transition.to property, exposing the destination entry during a transition. For security, the trusted-types-eval CSP keyword was implemented to create exemptions for eval(). Additionally, the <meta name="text-scale"> tag, previously Android-only, is now supported on desktop platforms. (3d8faaf) (a1b6be4) (2cfc493)
  • ⚠️ BREAKING BREAKING CHANGE: The WebCodecs AudioEncoder API 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 on BrowserList were removed, pushing consumers toward more modern patterns like BrowserCollectionObserver. (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 kDomStorageUseSqlite feature 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 with base::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 CloudPrintProxyEnabled policy 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, the SaveInstanceStateObserver interface was extended to support persisting state across device reboots. (eb227d2) (3fe2dd5)
Daily Summaries (7)
← Back to all summaries