Chromium Weekly: 2025 Week 50
Overview
A monumental week for API evolution, this summary covers approximately 1870 relevant commits out of 2518 total across 6 days. The period was dominated by an exceptionally large number of breaking changes across core services, UI, networking, and platform-specific APIs, requiring immediate action from many embedders. Beyond API churn, significant web platform updates landed, including changes to CSS viewport unit behavior and lazy loading, while a major architectural refactor in Blink was attempted and reverted. Key feature work includes enabling the OOPIF PDF viewer by default on desktop and adding PDF handling capabilities to Chrome on Android.
Breaking Changes
-
⚠️ BREAKING
BREAKING CHANGE: A massive number of C++ APIs were broken.
EnterpriseIdentityServicewas removed entirely.autofill::AutofillClientlost methods likeGetPopupScreenLocation()andDidFillForm().TabStripModel::selection_model()changed its return type.signin::OAuthConsumerRegistrygained a new pure virtual method.media::VideoFrame's mapping APIs were removed. The ownership model forblink::Gradientwas changed fromscoped_refptrtostd::unique_ptr. (5d6bd7b) (80af047) (0e0c6aa) (58e491f) (01e5c4c) (a607b59) (2e59e5c) -
⚠️ BREAKING
BREAKING CHANGE: Core
baselibrary and networking APIs were updated.net::ERR_DNS_SERVER_FAILEDwas removed in favor of more specific error codes.base::SysInfomemory functions now returnByteSizeinstead ofByteCount. The deprecatedSimpleURLLoader::BodyAsStringCallbackDeprecatedwas removed, requiring migration to thestd::optionalversion. (0b88079) (c7e3442) (31e0c06) -
⚠️ BREAKING
BREAKING CHANGE: The browser updater component's public API was refactored. Embedders must now include the new central header
updater.has previous headers likeBrowserUpdaterClientare now internal or removed. (d4d03c1) (793c922) -
⚠️ BREAKING
BREAKING CHANGE: Multiple Android Java APIs were changed.
AwBackForwardCacheSettingswas removed from the WebView API in favor of direct methods.ActivityTabProviderandBrowserControlsVisibilityDelegateno longer inherit fromObservableSupplierImpl, requiring callers to use.asObservable(). (b8c03f6) (01f1868) (1aa8864) -
⚠️ BREAKING
BREAKING CHANGE: The
extensions.webRequestAPI now formatssecurityInfo.certificates.fingerprint.sha256as a colon-separated hex string (AA:BB:CC...) instead of a contiguous one, which may break extensions that parse this value. (33cf423) -
⚠️ BREAKING
BREAKING CHANGE: The
content::RenderProcessHost::FastShutdownIfPossiblepublic API signature was changed to add a new optional parameter, breaking embedders who implement theRenderProcessHostinterface. (1095311) (4b90c98)
Web Platform & Rendering
- The Out-of-Process iframe (OOPIF) for the PDF viewer is now enabled by default on Windows, macOS, and Linux, improving security and stability by isolating the PDF content in its own process. (30caec7)
-
CSS viewport units (
vh,vw, etc.) now account for the presence of classic scrollbars on the root element. This aligns Chrome with a new specification consensus and may affect page layouts. (83692eb) -
The behavior of
<img loading="lazy">was updated to better align with the HTML specification. An image element will now correctly wait until it enters the viewport to fire itsloadevent, even if the resource was fetched out-of-band. (c1c615c) -
A large-scale architectural refactoring to remove the
Supplementablepattern from core Blink classes likeDocumentandPagewas attempted and subsequently reverted due to instability, putting a significant internal modernization effort on hold. (98766f7) (5d280d5) (926943c) (c9da8ad) -
Native support for Matroska MIME types (
.mkv,.mka) was added, allowing these video and audio files to be played inline by the browser instead of being automatically downloaded. (d081300)
Services & Extensions
-
A critical bug was fixed where the browser could hang if an extension used a blocking
webRequestlistener in a service worker that was active but had not yet finished registering its listeners. (022ce91) -
A garbage collection mechanism was implemented for Bound Session Credentials (DBSC), allowing the
UnexportableKeyServiceto delete orphaned token binding keys and improve storage hygiene. (262fa98) - The extensions messaging system is being updated to support structured cloning, with serialization logic being moved to common code to prepare for more complex data passing. (69363e6) (88e3bae)
Android
- Chrome on Android can now be registered as an application to open PDF files, allowing users to open PDFs from other apps directly in the browser via an "Open with" intent. (237aee7)
-
The
desktopCaptureAPI is now enabled for desktop Android, providing screen sharing capabilities for web applications on tablet form factors. (4ab565d) - The Tab Resumption feature, which helps users resume previous tasks on the New Tab Page, is now enabled by default, and its associated feature flag has been removed. (7e8699d)
Infrastructure
-
A pure Rust JPEG XL decoder,
jxl-rs, was added as a third-party dependency, continuing the integration of memory-safe languages for image parsing. (740e9bb) - The FontConfig dependency was updated to build without FreeType, removing FreeType-related APIs and simplifying the build dependency graph on Linux. (94a6cd7) (eee60fc)
Daily Summaries (6)
- 2025-12-07: Chromium Digest: 2025-12-07 (0 commits)
- 2025-12-08: Chromium Digest: 2025-12-08 (0 commits)
- 2025-12-10: Chromium Digest: 2025-12-10 (0 commits)
- 2025-12-11: Chromium Digest: 2025-12-11 (0 commits)
- 2025-12-12: Chromium Digest: 2025-12-12 (0 commits)
- 2025-12-13: Chromium Digest: 2025-12-13 (0 commits)