Chromium Weekly: 2026 Week 2
Overview
This week in Chromium saw an exceptional volume of API-breaking changes across nearly every major component, requiring significant action from embedders. Major architectural shifts include a complete refactor of memory pressure handling and the removal of the Android Monochrome build. Despite the churn, key features like Device Bound Session Credentials and Vertical Tabs saw significant progress, while new web platform APIs like Sanitizer and customizable comboboxes were advanced. This summary covers 2379 relevant commits out of 3211 total across 6 days.
Core Internals & API Modernization
-
⚠️ BREAKING
BREAKING CHANGE: Memory pressure handling was overhauled. The static
base::MemoryPressureListener::SetNotificationsSuppressedis replaced by a new RAII-stylebase::MemoryPressureSuppressionToken. Consequently, numerous classes likeFrameEvictionManager,cc::ResourcePool, andHttpNetworkSessionno longer inherit frombase::MemoryPressureListener, removing their publicOnMemoryPressuremethods. (63f5b8d) (e45c8ae) (4470afa) (6cbcf51) -
⚠️ BREAKING
BREAKING CHANGE: Public Mojo Java bindings were refactored, removing
SideEffectFreeCloseable, makingInterface.Stuba top-level class, and renamingRouter.setIncomingMessageReceiver. (d635aa9) -
⚠️ BREAKING
BREAKING CHANGE: As part of a C++23 migration, the public function
base::ByteSwaphas been removed frombase/numerics/byte_conversions.h. Code must be updated to use the standardstd::byteswap. (5869e71) -
Code modernization efforts continued with a large-scale replacement of
base::Contains()with the C++20std::ranges::contains()across the codebase. (e13cb6a) (f301383) (d696b12) -
Experimental Rust bindings for Mojo (
rustmojo) saw significant progress, with code generation for interfaces and skeleton implementations forRemoteandReceivertypes. (1faffa0) (f4012f3) (bd47705)
Android
-
⚠️ BREAKING
BREAKING CHANGE: The "Monochrome" build configuration (
is_monochrome) has been completely removed from the build system, breaking any downstream projects that relied on it. (763e0f3) (10cf1c5) (5e90c29) -
⚠️ BREAKING
BREAKING CHANGE: For Cronet embedders,
libssl.soandlibpki.soare now statically linked intolibhttpengine.so, and the BoringSSL library name has been stabilized, breaking builds that linked against the old libraries. (f559d5d) (e5cc378) -
⚠️ BREAKING
BREAKING CHANGE: A new
<meta name="text-scale">tag was introduced in WebView, which disables global text scaling and text autosizing, potentially altering the rendering of existing content. TheWebMessageListenerAPI was also made world-aware, breaking method signatures. (b29d632) (27e7c6f) -
⚠️ BREAKING
BREAKING CHANGE: Numerous public Java APIs were broken, including changes to
TabModel::CreateTabto usestd::unique_ptr, the removal ofMoveTabUtils, and a major refactor of the Payments API delegate hierarchy. (a69f7fe) (d477c2d) (ac47931) (5774306) - ⚠️ BREAKING BREAKING CHANGE: The horizontal mouse scroll direction has been inverted to align with Android's standard "natural scrolling" behavior, a significant user-facing change. (5d4f3a6)
-
Work progressed on zero-copy video capture, with support added for creating shared images from multiplanar
AHardwareBuffers and passing metadata to avoid readbacks. (004ddc1) (28ac267) (2922709)
UI & Browser Features
-
⚠️ BREAKING
BREAKING CHANGE: A series of refactors related to "Project Bedrock" and tab strip modernization removed numerous public methods from
BrowserView,TabStripController, andBrowserList, such asBrowserView::tabstrip(),TabStripController::GetProfile(), andBrowserList::GetGuestBrowserCount(). (f55ce20) (c30ea98) (83633e5) (2caf7a2) -
⚠️ BREAKING
BREAKING CHANGE: The
TabListInterfacegained a new pure virtual methodGetTabGroupTabIndices, and theInstanceSwitcherActionsDelegateon Android changed itscloseInstancemethod signature, breaking embedder implementations. (cbf7c2c) (0e94cc8) - Development on Vertical Tabs continued, adding drag-and-drop support for tabs within groups and ensuring custom browser themes are correctly applied. (3c34712) (954cc48)
- Reading Mode received numerous enhancements, including a consolidated appearance menu, improved resilience to renderer crashes, and fixes for UI behavior like hover menus and scrolling. (85a76f0) (9307ef5) (4b0b5f8) (089981c)
-
The
chrome.tabGroupsAPI was enabled for desktop Android, and the side panel extension API behavior was changed to no longer fall back to the global panel onsidePanel.close(). (515db69) (cf0517b)
Web Platform & Rendering
-
⚠️ BREAKING
BREAKING CHANGE: The public Blink canvas API was refactored, removing methods like
ProduceCanvasResource()andSupportsDirectCompositing()fromCanvasResourceProviderand changing the return type ofWebGLRenderingContextBase::PaintRenderingResultsToResourceProvider(). (bbf5880) (f68a61a) (fe10434) (2344244) - The Sanitizer API and Trusted Types for HTML were enabled by default, making these security features generally available to web developers. (a2adf79) (1b461ee)
-
Support was added for a
<datalist>element to act as a popover for a customizable combobox, allowing web authors to fully style the options dropdown. (4da887d) -
New CSS capabilities were introduced behind flags, including name-only
@containerqueries (e.g.,@container (my-container)) and thepage-margin-safetydescriptor for print contexts. (e8204da) (3cc4f62) - A new JPEG XL image decoder was added to the codebase but was quickly reverted due to an ASAN issue. (f9f7212) (abc19ec)
-
Several features were enabled by default to improve performance and provide better attribution, including
LongAnimationFrameSourceCharPosition,ReportLayoutShiftRectsInCssPixels, andSeparateDeferModuleScriptTasks. (d514972) (0813098) (e7e02f3)
Networking & Security
-
⚠️ BREAKING
BREAKING CHANGE: The enterprise policy
DeveloperToolsAvailabilityAllowlistnow implicitly blocks all URLs not on the allowlist when set, a reversal of its previous default-allow behavior. (6b0b832) -
⚠️ BREAKING
BREAKING CHANGE: The
net::BidirectionalStream::Delegate::OnHeadersReceivedsignature has changed to include aconst net::ProxyInfo¶meter, requiring all implementations to be updated. (4b432f4) - Significant infrastructure was added to support Device Bound Session Credentials (DBSC), including exposing lifecycle events to DevTools for easier debugging. The underlying Mojo event structure was also refactored. (62e7e23) (d11af9c) (a6fc0d9)
- To enforce the hardened runtime on macOS, third-party in-process plugins are now blocked by default, with an emergency override switch added. (c54ef9c)
-
The
CrashReportStorageAPI was refactored to use shared memory instead of synchronous IPCs, significantly reducing overhead for sites using the API. (8750c09)
Daily Summaries (6)
- 2026-01-05: Chromium Digest: 2026-01-05 (0 commits)
- 2026-01-06: Chromium Digest: 2026-01-06 (0 commits)
- 2026-01-07: Chromium Digest: 2026-01-07 (0 commits)
- 2026-01-08: Chromium Digest: 2026-01-08 (0 commits)
- 2026-01-09: Chromium Digest: 2026-01-09 (0 commits)
- 2026-01-10: Chromium Digest: 2026-01-10 (0 commits)