Chromium Weekly Digest Logo

Chromium Weekly Digest

Week 3 of 2026 (2026-01-11 to 2026-01-17)

Chromium Weekly: 2026 Week 3

Overview

An exceptionally active week saw 2322 relevant commits out of 3168 total, marked by an unprecedented number of breaking changes across the entire codebase. Major behavioral shifts were introduced for Extensions and Android, while numerous public C++ APIs were removed or refactored, requiring significant updates from embedders. Key developments include the integration of the JXL image format, the final removal of the Chrome Refresh 2023 flag, and the deletion of major components like the native Cronet implementation and VVC video codec support.

Breaking Changes

  • ⚠️ BREAKING BREAKING CHANGE Asynchronous extension APIs now return a Promise in all contexts, including for Manifest V2 extensions. Calls that previously returned undefined without a callback will now return a Promise, potentially breaking extensions that checked for an undefined return value. (3e0fd5a)
  • ⚠️ BREAKING BREAKING CHANGE A massive, codebase-wide change on Android replaced jboolean with bool in numerous public JNI function signatures, requiring Android embedders to update their native method calls to match the new type. (adeddc7) (88258a7)
  • ⚠️ BREAKING BREAKING CHANGE The permissions system underwent a major refactor, altering the public APIs of permissions::PermissionRequestManager, permissions::PermissionsClient, and PermissionContextBase. Methods like Accept and Deny now require a PromptOptions parameter, breaking existing implementations. (7688ee1) (b47e74e) (5d3a4e1)
  • ⚠️ BREAKING BREAKING CHANGE The widely used Android Java interface ObservableSupplier has been renamed to MonotonicObservableSupplier, causing widespread build failures for any embedder using this common pattern. (b8cb84d)
  • ⚠️ BREAKING BREAKING CHANGE The utility base::Contains() will now trigger a static_assert build error when used on containers that have their own .contains() or .find() methods, forcing migration to more efficient container-specific functions. (4a17af8)
  • ⚠️ BREAKING BREAKING CHANGE The DevTools protocol command Network.getRequestPostData now base64-encodes binary request bodies and adds a base64Encoded boolean to the response, requiring client updates to parse binary post data. (e51443c)
  • ⚠️ BREAKING BREAKING CHANGE Numerous public C++ APIs were removed or refactored, including BrowserFrameView layout methods, content::ContentBrowserClient::IsThirdPartyStoragePartitioningAllowed, WebAppRegistrar::IsInstallState, and gpu::FeatureInfo::FeatureFlags, breaking builds for embedders. (9c5016d) (bde1f50) (e849b33) (5810d0a)

Web Platform & Blink

  • The JXL (JPEG XL) image decoder has been integrated into the codebase. The feature is enabled by default at build time and can be activated via the #enable-jxl-image-format flag. (8215ebd)
  • ⚠️ BREAKING Support for the VVC (H.266) video codec has been completely removed from the codebase, including experimental parsers and public media::VideoCodecProfile enum values. (1e56231) (bdb67c3)
  • The DataUrlMimeTypeParameterPreservation feature is now enabled by default, which preserves MIME type parameters during data: URL parsing to better align with the Fetch Standard. (8e1a893) (20d11f7)
  • The View Transitions API has been enhanced with a new Element.activeViewTransition attribute, providing a direct reference to the active ViewTransition on a given scope. (8d132fe)
  • CSS continues to evolve with support added for the hanging keyword in the text-indent property, updates to Masonry layout properties, and a fix for position: sticky behavior with overconstrained boxes. (367f1f9) (21c9e7c) (6c24b5a)

Android

  • ⚠️ BREAKING To reduce Chrome's binary size, XR-related code has been refactored into a Dynamic Feature Module (DFM). Access to XR classes is now brokered through the XrModule interface, a breaking change for direct instantiations. (155e63e) (d49aca5)
  • The chrome.tabGroups API is being ported to desktop Android, with support for onCreated, onRemoved, and onMoved events landing this week. (e572b54) (c260a71) (4dd3d0f)
  • WebView debugging is improved as the main thread name will no longer be overridden, providing more accurate and useful Perfetto traces. (941b582)
  • Branding in various Autofill and payment UIs has been updated from "Google Pay" to "Google Wallet" to reflect the new product identity. (b3f264c) (d3dc71f) (4f028fd)

UI & Features

  • The "Chrome Refresh 2023" UI is now the permanent and only option available, as the controlling feature flags (kChromeRefresh2023, kChromeWebuiRefresh2023) have been removed. (6d6528f)
  • The updated Global Media Controls UI is now enabled by default on all non-ChromeOS desktop platforms. (6153529)
  • The "run on OS login" functionality for PWAs is now permanently enabled on desktop platforms, and its feature flag has been removed. (fe87d68)
  • Significant development continues on the Vertical Tab Strip (VTS) UI, with improvements to custom corner rendering, animations, and drag-and-drop behavior between tab groups. (e331d37) (1378fb4) (9f2782b)

Code Health & Removals

  • ⚠️ BREAKING BREAKING CHANGE The entire native implementation of Cronet (//components/cronet/native) and the associated gRPC support library have been deleted from the codebase, as the native implementation was never officially supported. (bf972e6)
  • ⚠️ BREAKING BREAKING CHANGE The mechanism for overriding UI strings via Variations has been completely removed, including the generate_ui_string_overrider build target and related public function signatures in VariationsService. (8c51996)
  • The legacy TabLoader-based session restore mechanism has been fully removed, finalizing the migration to the more modern PerformanceManager-based implementation. (cf33d9c) (3f0d5d7)
  • As part of a large-scale modernization effort, C++ #warning preprocessor directives are now treated as build errors. (6dc257b)
Daily Summaries (7)
← Back to all summaries