Chromium Weekly Digest Logo

Chromium Weekly Digest

Week 52 of 2025 (2025-12-21 to 2025-12-27)

Chromium Weekly: 2025 Week 52

Overview

This week saw a significant number of breaking API changes across core components, networking, and platform-specific code, impacting embedders on all platforms. Major internal modernizations included migrating from base::ByteCount to base::ByteSize and removing base::to_underlying. This summary highlights 36 relevant commits out of 850 total across 7 days.

Breaking Changes

  • ⚠️ BREAKING BREAKING CHANGE The public ChromeAndroidTask Java interface was refactored to support multiple Activities. Methods were renamed (e.g., setActivityScopedObjects to addActivityScopedObjects) and now manage a list of activities, requiring updates from embedders. (81d2478)
  • ⚠️ BREAKING BREAKING CHANGE The utility function base::to_underlying and its header have been removed from the codebase. All call sites must be migrated to use std::to_underlying. (271bd17)
  • ⚠️ BREAKING BREAKING CHANGE The TrackingProtectionSettings and TrackingProtectionOnboarding classes and their factories have been removed from the Privacy Sandbox components, breaking consumers of these services. (36e492c) (18e568e)
  • ⚠️ BREAKING BREAKING CHANGE The TaskManagerInterface API was updated to use the type-safe base::ByteSize and std::optional for memory and network reporting, changing the signatures of methods like GetMemoryFootprintUsage and GetProcessTotalNetworkUsage. (c89f2a8) (3010a9b)
  • ⚠️ BREAKING BREAKING CHANGE On Android, the org.chromium.net.X509Util class was refactored. The ensureInitialized method was removed, and embedders must now use getVerifier() to obtain a verification object. (b580880)
  • ⚠️ BREAKING BREAKING CHANGE For AOSP builds, the Cronet shared library was renamed from libmainlinecronet.{version}.so to libhttpengine.so, which will break build systems and dynamic loaders targeting the old name. (f836219)
  • ⚠️ BREAKING BREAKING CHANGE Several public methods for raw cookie access, such as GrantReadRawCookies, have been removed from ChildProcessSecurityPolicyImpl. (41b3b0a)
  • ⚠️ BREAKING BREAKING CHANGE Public members of AccountInfo (e.g., picture_url) were made private. Callers must now use accessor methods like GetAvatarUrl(). (d2acdce) (454a9ad)
  • ⚠️ BREAKING BREAKING CHANGE On iOS, a new pure virtual method, IsUsingCustomCardIconEnabled(), was added to the PaymentsAutofillClient interface, requiring implementation by iOS embedders. (0cf318d)

Code Modernization & Refactoring

  • A large-scale migration from the int64_t typedef base::ByteCount to the type-safe base::ByteSize class was performed across the codebase, notably affecting byte formatting functions and the Task Manager API. (b1dfe54) (eae5d29) (c89f2a8)
  • Observer patterns in ChromeOS for SessionManagerClient, UserManager::Observer, and LoginState were updated to use the safer CheckedObserver and ScopedObservation classes for improved lifetime management. (949baab) (063bace) (5240e1f)

UI & Features

  • Significant progress was made on the experimental 'Contextual Tasks' side panel, with numerous commits landing to implement UI elements like the Lens button, fix crashes, and improve keyboard handling. (face966) (d7075c2)
  • Work on Vertical Tabs continued, with new support for dragging tabs to and from the vertical strip and logic for tab group collapse/expand animations. (cdbede9) (96affd4)
  • The Tab Search toolbar button is now enabled by default. (2b20533)

Networking

  • ⚠️ BREAKING BREAKING CHANGE A major QUICHE library roll deprecated numerous legacy QUIC version-check methods (e.g., UsesTls()) in favor of IsIetfQuic() and added a new OnConfigNegotiated() method to the QuicSession::Visitor interface. (c5b2270)

Android

  • The bookmark manager gained a 'Copy link' option in its selection menu and added listeners for hover and touch events in preparation for drag-and-drop functionality. (d5213c7) (97f09a7)
  • To improve usability on touch-only devices, the link hover status bar (which shows a URL at the bottom of the screen) is now restricted to devices with a precision pointer like a mouse or stylus. (6018c7e)

Extensions

  • The sidePanel.open API now supports WINDOW_ID_CURRENT, allowing an extension to open a side panel in the current window without needing to query for its ID. (beede36)
  • API documentation for runtime.onMessage and other messaging APIs was updated to officially clarify that listeners can return a Promise for asynchronous responses, aligning with modern web development practices. (5309887) (0d1975a)
Daily Summaries (7)
← Back to all summaries