2026-04-01
Open Standalone PageChromium Digest: 2026-04-01
Overview
A busy day with 684 total commits, of which 554 were deemed relevant to developers. The day was marked by an unusually high number of breaking changes across the JNI bridge, Blink layout, Autofill, and Mojo permission APIs, requiring significant attention from embedders. Notable feature work includes enabling SharedWorker on all platforms and continued development of AI-powered features. The first commit was
(9648d93) and the last was (c6fdf14).
Breaking Changes
-
⚠️ BREAKING
The
permission.mojominterface was significantly changed.RequestPermissions,RevokePermission, andOnPermissionStatusChangenow use aPermissionStatusWithDetailsstruct instead of a simplePermissionStatusenum, breaking all clients of the permission service. (36e8c6e) (7052b70) (4e04747) -
⚠️ BREAKING
Major changes to the JNI bridge (
jni_zero). The C++ definition ofJArray<T>is no longer a type alias but a distinct class, and the generator tool was updated to handle Java generics. These changes can break embedder C++ code and custom build tooling. (e7c38aa) (8674601) - ⚠️ BREAKING The Android SDK was rolled to version 37.0 and build-tools to 37.0.0. This is a major dependency update that requires embedders to update their build environments. (77027a5)
-
⚠️ BREAKING
In Blink's
LayoutBoxModelObject, the public virtual methodsOffsetLeft()andOffsetTop()were removed and replaced with a singleOffsetPoint()method. Subclasses overriding the removed methods will have build failures. (276436f) -
⚠️ BREAKING
The public Blink header
v8_string_resource.hand theV8StringResourceclass have been removed. Embedders must migrate toToBlinkString()orNativeValueTraitsfor V8-to-Blink string conversions. (ebf66e5) -
⚠️ BREAKING
The public Blink enum
HTMLElementTypewas renamed toElementTypeand its scope was expanded. Code directly referencing the old enum name will break. (8d83154) -
⚠️ BREAKING
The signature of the public virtual method
BrowserAutofillManager::FillOrPreviewForm()was changed, adding ablocked_fieldsparameter. Subclasses that override this method must be updated. (6d25e4a) -
⚠️ BREAKING
The
media::DataSourceinterface signature was changed, making theIsStreaming()andWouldTaintOrigin()virtual methodsconst. Implementations of this interface must be updated to include theconstqualifier. (b156700) -
⚠️ BREAKING
The Presentation API behavior was changed to restrict
http://presentation URLs tolocalhostonly. This may break applications that connect to non-localhost devices on a local network via HTTP. (52c5e88) -
⚠️ BREAKING
The
force_system_menu_for_framelessparameter was removed from the publicviews::Widget::InitParamsstruct. Embedders on Windows using this parameter will have a build failure. (7c5af3a) -
⚠️ BREAKING
Multiple other public API signatures and names were changed, including
blink::WebString::ContainsOnlyASCII,AutofillClient::GetDeviceAuthenticator,BottomSheetControllerFactory::createBottomSheetController,AccessibilityAnnotationService, andaudio::OutputStream::SendLogMessage. (e798b84) (109dc40) (22cba8f) (d133671) (2148e9e) -
⚠️ BREAKING
The third-party
androidx.window.extensionslibrary was updated, which includes breaking API changes such as the removal ofWindowAreaComponent.addRearDisplayStatusListener. (56d4a84)
Blink, Web Platform, and V8
- SharedWorker is now enabled by default on all platforms, including Android where it was previously in an Origin Trial. This makes the feature universally available. (6f4c113)
-
A new feature,
DisconnectWebSocketOnBFCache, was introduced behind a flag. When enabled, open WebSocket connections will be closed instead of preventing a page from entering the Back-Forward Cache. (4796198) -
The customizable
<select>element is now stable and theCustomizableSelectListboxfeature flag has been removed. Follow-up fixes for inertness and click behavior were also landed. (5338ebd) (990f8de) (9c6562f) -
Support was added for the
@navigation(preview)CSS state, allowing developers to style the outgoing page during a View Transition when it's in the 'preview' phase. (9b54f97) -
Blink's
AtomicString::FromUtf8method was made more robust; it will now return a null string for invalid UTF-8 input instead of crashing. (b774601)
Android
- An Entra SSO provider was implemented, allowing Chrome on Android to use platform-level Microsoft credentials for single sign-on. (acb8674) (23368d6)
- Fixed an issue with Bluetooth SCO state management to ensure the SCO state is enabled *before* an explicitly requested input stream starts, preventing recording failures. (9b09a44)
- TalkBack swipe gestures on ARIA sliders are now correctly mapped to increment/decrement actions, fixing accessibility for custom sliders. (cc4e767)
- Significant refactoring occurred in the SnackbarManager to better handle different UI contexts, such as displaying snackbars within bottom sheets. (c9daf03) (3ac03f1) (22cba8f)
Security
- Fixed a vulnerability where inactive frames (e.g., in BFCache) could be used to establish an opener relationship across different BrowsingInstances, breaking site isolation guarantees. (2b5169f)
- Patched a file access bypass vulnerability in DevTools that could be triggered via drag-and-drop. (59d7444)
-
A large number of
DCHECKassertions were upgraded toCHECKin core navigation and Service Worker code to harden release builds against potential logic errors and security exploits. (62e24bf) (3130d85) (cf25df2) (17d5f5c) -
The
ExtensionContentVerificationUsesExtensionRootfeature was enabled by default, improving security by strengthening content verification for extensions. (2aa5824)
UI and Shell
- On macOS, mouse movement event coalescing is now disabled by default. This increases the polling rate for mouse movements, which is beneficial for gaming but changes the default input behavior on the platform. (80792e0)
-
The Bedrock project continued its work decoupling UI from the
Browserclass by migrating more callers to use theBrowserWindowInterface. (524e16b) (765e765) - On iOS, image resizing for image search was moved to a background thread to improve UI responsiveness. (e3d699d)
- Fixed a deadlock that could occur during tab dragging, and resolved a regression where URLs from external apps would not open in the browser on the current workspace. (0cdc11e) (0dfe151)
Autofill and Payments
Media and GPU
- For Graphite on Windows, a new raster command was added to allow the command submission phase to execute earlier and in parallel with compositor work, reducing frame latency. (2cb88d7)
-
Fixed a use-after-free bug in the
MediaFoundationVideoEncodeAcceleratoron Windows by introducing a proper COM proxy for thread safety. (70f35b0) -
Fixed an issue with AAC tail trimming in
AudioFileReaderthat could corrupt output from MP4 files that had been remuxed by OBS. (10bf288)
Build System and Infrastructure
-
⚠️ BREAKING
The low-level Rust Mojo FFI crate was moved from
mojo/public/rust/system/ffitomojo/public/rust/c_mojo_api. This is a build-breaking change for projects that directly depend on the old path. (84d3aff) -
The codebase continues to be modularized to improve build times and dependency hygiene. The
//chrome/browser/offline_pages,//chrome/browser/plugins,//chrome/browser/printing, and//chrome/browser/spellcheckercomponents were among those moved into their own source sets. (b87be23) (dc7f841) (0790c8f) (0234876) -
Multiple extension APIs, including
downloads,documentScan, anddeveloperPrivate, were converted from the legacy JSON schema format to modern WebIDL as part of a larger modernization effort. (da23820) (e2f1994) (d6fb2ac)
2026-03-31
Open Standalone PageChromium Digest: 2026-03-31
Overview
This digest covers 710 commits on the main branch from March 31, 2026, of which 549 were identified as relevant to developers. The first relevant commit was
(39c2ad8) and the last was (bb2ee6a).
Breaking Changes
-
⚠️ BREAKING
Core Browser & UI APIs: Several public C++ APIs in core browser components were changed. In
content/, the virtual methodContentBrowserClient::UpdateEnabledBlinkRuntimeFeaturesInIsolatedWorkerwas removed. Inviews/, core drag-and-drop methods likeviews::Widget::RunShellDragwere renamed (e.g., toRunDragDropLoop). TheBrowserWindow::UserChangedTheme()virtual method was also removed as part of a theme system refactor. (b01d62a) (e246bab) (a863957) -
⚠️ BREAKING
Mojo Interfaces: Multiple stable Mojo interfaces were modified. The
blink::mojom::PermissionServicemethods no longer accept auser_gestureparameter. Thebrowser_controls_api::mojom::BrowserControlsServicemethods were changed to use result-based callbacks instead of being fire-and-forget. TheToolbarUIService::ShowContentSettingsBubblemethod now takes aContentSettingImageTypeinstead ofContentSettingsType. (5168b89) (41af281) (023a4ca) -
⚠️ BREAKING
Component & Feature APIs: The public APIs of several components were altered.
QueryContextualizer::Contextualizehas a new signature. TheCreditCardSuggestionGeneratorconstructor now requires different manager pointers. Theprinting::PrintedDocument::GetMetafile()method was removed. TheAccountSettingServicewas refactored to a genericbase::Value-based API. (a95f201) (82e8f9f) (3ac886f) (19e350b) -
⚠️ BREAKING
Blink & Mojo Internals: Support for the legacy
EnumTraits::FromMojom(..., T* out)signature was removed from Mojo, requiring all custom enum traits to be migrated. In Blink,blink::WebString::FromASCIIwas renamed toFromAscii, and the deprecatedWTF::String::FromUTF8()methods were removed. (a1c3e63) (e296ed2) (b4e81f9) -
⚠️ BREAKING
Android APIs: The public API surface for Android was modified. The virtual method
RenderWidgetHostViewAndroid::OnUnfoldStartedwas removed. For WebView, several JNI methods inAwPrefetchManagerwere renamed, such asgetTtlInSecForTestingtogetTtlInSec. (05f0893) (1b42d6c) -
⚠️ BREAKING
Build System & Feature Flags: The
build_with_tflite_libGN argument was removed fromoptimization_guide, making TFLite a required dependency. ThekTpcdHeuristicsGrantsfeature was removed, which also removed theAllowMechanism::kAllowBy3PCDHeuristicsvalue from the publicCookieSettingsBaseenum. (09a3c27) (8214edf) -
⚠️ BREAKING
Behavioral Change: The
ServiceWorkerAutoPreloadfeature is now enabled by default. This is a significant behavioral change that alters network loading patterns for websites with service workers, which may impact performance and resource fetching logic in embedder applications. (f434667)
Web Platform & Blink
-
Name-only
@containerqueries are now enabled by default, allowing developers to query a container by its name without specifying other query features (e.g.,@container my-container (...)). (b147722) -
A new Inline Script Cache feature has been added behind the
kInlineScriptCacheflag. This feature allows for the persistent caching of inline scripts using a hash of their source text, aiming to improve performance on subsequent page loads. (514b324) (6e5c441) (2816c99) -
View Transitions have been refactored to use a new CSS-driven approach with
@view-transition { navigation: preview }, removing the old heuristic-based two-phase transition model. This is a major behavioral change for this evolving feature. (e91545c) -
The
<usermedia>element now has a readonlyerrorattribute to provide developers with insight into media stream request failures. (a75ca4f) -
The
contentTypeproperty forResourceTimingis now enabled by default, exposing theContent-Typeheader of fetched resources. (709cdf8) -
Fixed a bug where
srcsetimages usingx-descriptorswould not update when the page zoom level was changed. (7e432b4)
UI & UX
-
A mute button has been added to the Video Picture-in-Picture window, available behind the
kVideoPipMuteButtonfeature flag. (911883a) - The TabStrip API was enhanced to support closing entire tab groups, in addition to individual tabs. (7cd1de4)
- Hover cards have been added to tab group headers in the horizontal tab strip, improving discoverability and management. (e8ce621)
- The logic for hiding tab close buttons has been changed to be based on tab width rather than the total number of tabs. (327d95d)
- The UI for the credit card save prompt was updated to replace the expiration date with a GPay icon. (2187fdd)
Android & iOS
-
Android: A new off-main-thread prefetch flow (
OMTPrefetch) has been introduced for WebView to improve performance. (64eed47) -
Android: The build system was updated to use the new
ENABLE_EXTENSIONS_COREflag, enabling consistent behavior for extensions on desktop Android across various subsystems. (09d25e4) (cafefd8) (3d6458b) - Android: The ability to pin the extensions menu icon to the toolbar has been added, with the setting stored locally. (3a0fbca)
-
iOS: A file read operation in
NetExportCoordinatorwas moved off the main thread to prevent UI freezes when exporting network logs. (56320b2)
Security
-
The renderer process will now be terminated if it provides an incorrect
site_for_cookiesortop_frame_originto theRestrictedCookieManager, hardening cross-origin security. (225000a) -
File access restrictions are now correctly enforced for
view-source:file://URLs within DevTools protocol handlers, closing a potential local file access loophole. (1f5d394) -
An integer overflow in
ElementsUploadDataStreamwas mitigated to prevent potential HTTP Request Smuggling attacks. (4c99d24) -
The remoting
SignalStrategynow rejects XML containing a Document Type Definition (DTD) to prevent XML parser vulnerabilities like XXE. (a1262e4) - An IPC validation check was added to AI Page Content extraction to prevent a potential Site Isolation bypass. (06aeef1)
Infrastructure & Services
- Support was added to the audio channel mixer to correctly downmix 5.1.4 and 7.1.4 audio layouts to stereo. (74f53f9) (8c86ae3)
-
The build system was updated to better integrate Rust panics with Chromium's
LOG(FATAL)mechanism, improving crash reporting and debugging for Rust code. (89012c0) -
The internal DNS task resolver (
HostResolverDnsTask) was refactored to use an enum for its security mode instead of a boolean, allowing it to support more states likekPlatformin addition to secure/insecure DNS. (7c5f91c) -
The "Bedrock" project continues its large-scale refactoring to decouple
//chromefrom//content, withBrowserWindowtheme observation andChromeProcessManagerDelegatebeing notable areas of progress. (a863957) (c41e000)
2026-03-30
Open Standalone PageChromium Digest: 2026-03-30
Overview
This digest covers 631 commits to Chromium's main branch on March 30, 2026, from commit (db61443) to (e14b493). Of these, 472 were identified as relevant to developers. The day was marked by an unusually high number of breaking changes to core public APIs, extensions, and networking components, requiring significant attention from embedders and extension developers. Key improvements include new CSS features like
image-rendering: crisp-edges and experimental support for background-clip: border-area.
Breaking Changes
-
⚠️ BREAKING
Public API Removal: The virtual function
GrantCookieAccessDueToHeuristicwas removed from the publiccontent::ContentBrowserClientinterface. Embedder implementations overriding this obsolete function will fail to compile. (ac62164) -
⚠️ BREAKING
Public API Signature Change: Methods like
WasShownonRenderWidgetHostImplandRenderWidgetHostViewBasenow use a native C++ struct (std::optional<blink::RecordContentToVisibleTimeRequest>) instead of a mojo pointer. Embedders calling these methods must update to the new type. (ff88160) -
⚠️ BREAKING
Public API Removal: The
content/browser/tpcd_heuristics/directory and itsCONTENT_EXPORTed classes (e.g.,OpenerHeuristicTabHelper) have been deleted. Any code relying on these obsolete third-party cookie deprecation APIs will break. (037fbcc) -
⚠️ BREAKING
Behavioral Change (Extensions): The
chrome.tabs.createAPI on Android now aligns with desktop behavior, opening new tabs in the main tabbed browser instead of the current window (e.g., a PWA). This may break extensions that relied on the previous Android-specific behavior. (7214a10) -
⚠️ BREAKING
Behavioral Change (Extensions): The
chrome.tabs.moveAPI on Android now disallows moving tabs within PWA or CCT windows and only permits moving the active tab out of such a window. Extensions using this API on Android will encounter new errors and require updates. (307d27c) - ⚠️ BREAKING Behavioral Change (Extensions): WebAuthn Relying Party (RP) ID validation for extensions is now stricter, requiring explicit host permissions for the claimed RP ID's origin. This may break extensions that claimed RP IDs for subdomains without top-level origin permission. (ecf43dd)
-
⚠️ BREAKING
Behavioral Change (UI Toolkit):
views::Widgetwill nowCHECK-fail and deterministically crash if destroyed from within its own callbacks (e.g.,OnWidgetClosing). This turns a potential use-after-free bug into a hard crash, requiring developers to fix incorrect widget lifetime management. (6b98320) -
⚠️ BREAKING
Behavioral Change (Core): The invocation timing of the
OnRenderProcessHostCreatedobserver method is now conditional on IPC channel pausing. This can break embedders who rely on its previous, consistent timing for process initialization logic. (d162ee0) -
⚠️ BREAKING
Public API Removal: The
StartTabOrganizationRequestfunction andkTabOrganizationenum value insignin_metrics::AccessPointhave been removed as part of the feature's deprecation. Embedders using these APIs will have build failures. (725cd43) -
⚠️ BREAKING
Public API Removal (Platform-Specific): The
GetOmniboxAutofillDelegate()function has been removed from thePaymentsAutofillClientinterface on Android and iOS, causing a build break for embedders on those platforms. (21d209f) -
⚠️ BREAKING
Public API Signature Change (Networking): The public Cronet API method
ICronetEngineBuilder.setProxyOptionshas been renamed tosetProxyOptionsV2. Embedders must update to the new method name. (aacecf5) -
⚠️ BREAKING
Public API Signature Change (Networking): The public class
net::SSLClientSessionCachehas migrated frombase::MemoryPressureListenertobase::MemoryConsumer. This removes theOnMemoryPressuremethod, replacing it withOnUpdateMemoryLimitandOnReleaseMemory. (f140d6d) -
⚠️ BREAKING
Public API Removal (Blink): The public methods
Characters8()andCharacters16()have been removed from Blink's coreStringandStringImplclasses. Code must be updated to use theSpan8()andSpan16()methods instead. (b354742) -
⚠️ BREAKING
Web Preferences Name Change: The public web preference
allow_window_focus_without_user_gesturehas been renamed toallow_unrestricted_window_focus. Embedders overriding web preferences must update to the new name. (1d4ce65)
Blink & Web Platform
-
Support has been added for the CSS property
image-rendering: crisp-edges, aligning Chromium with Firefox and Safari for explicit control over image scaling algorithms. (b45f801) -
An experimental CSS feature,
background-clip: border-area, was implemented behind a flag. This allows the background to extend to the outer edge of the border, enabling effects like gradient borders. (a6021f0) -
As part of the "Declarative Web Permissions" feature, the
<usermedia>element has been integrated to make aMediaStreamdirectly available in markup. (3cceac4) -
A bug in serializing the
::highlight()pseudo-element's argument was fixed, ensuring special characters are correctly escaped. (d4c0554)
Core & Public API
-
A new getter for
BeforeUnloadExecutionModehas been exposed on the publicNavigationHandleinterface, allowing developers to observe how abeforeunloadhandler was executed. (32ef21e) -
The signature for the exported accessibility function
FindAccessibleTextBoundarywas updated to usebase::spaninstead ofstd::vector, improving type safety and flexibility. (139617f) -
The public static method
WebContentsImpl::GetAllWebContents()now returns astd::vector<raw_ptr<WebContentsImpl>>as part of a security hardening effort. This may require minor type adjustments for callers. (5524fe7)
Security & Stability
- A Time-of-Check Time-of-Use (TOCTOU) race condition in speech recognition was fixed, preventing a compromised renderer from bypassing microphone permission prompts. (714840a)
-
Validation was added in the browser process to prevent a compromised renderer from hijacking mouse events by improperly calling
SetMouseCapture. (b885cb0) -
The destruction logic for
PrerenderNewTabHandlewas refactored to be asynchronous, preventing a potential use-after-free crash when browsing data is cleared while a prerender is active. (8c1ead5) - Several use-after-free vulnerabilities were addressed across the codebase by ensuring objects remain alive during observer loops or by preventing re-entrant destruction. (95fc202) (d819b46) (e11da14)
Platform-Specific
- Android: The Android SDK was rolled to version 37. (65569e7) (0a12d5a)
-
Android: The
BottomSheetObserverinterface gained a newonContainerSizeChangeddefault method as part of work to allow the bottom sheet to dynamically adjust its height. (162ea7d) - Android: The cursor is now rendered during tab sharing, improving the user experience for viewers. (ec66c01)
- Android: Software decoding for 10-bit VP9 streams (Profile 2) was enabled for Android Desktop on arm64. (201aca0)
-
macOS: To prevent duplicate prompts on macOS 26.4+, Chrome will no longer register itself as a handler for the
UTTypeHTMLcontent type, relying on URL scheme registration to become the default browser. (b616b00)
UI & UX
-
A keyboard shortcut (e.g.,
Alt+Shift+Ron Windows/Linux) was added to open and close Reading Mode. (bd8ce1f) - Fixes were landed for Vertical Tabs to address a crash with multi-selected tabs and to correct close button visibility. (28845c4) (8452c6a)
- The What's New page has fully migrated to its "refresh" URLs, and the corresponding feature flag has been removed. (d0bd5f3)
Infrastructure & Reverts
-
Several commits were reverted due to causing test failures or bugs, including the rollout of
FreeWithSizein PartitionAlloc and a change that disconnected a WebView's accessibility tree in Immersive Reading Mode. (2339495) (d0b5432) (f61b5ef) -
The
auditor.pyscript was optimized to skipcompile_commands.jsongeneration if build files are unchanged, saving significant time for developers. (c3d7db0) -
The obsolete
SafeBrowsing.PakIntegrity.*histograms and their associated code were removed. (a7f5d81)
2026-03-29
Open Standalone PageChromium Digest: 2026-03-29
Overview
This digest covers 12 analyzed commits, highlighting a significant breaking change in core browser interfaces as part of the ongoing 'Bedrock' refactoring. Other changes include UI behavior fixes, internal memory safety improvements, and updates to testing infrastructure.
Core & Internals
-
⚠️ BREAKING
As part of the 'Bedrock' project, numerous public functions in
chrome/browser/ui/browser_commands.hand other helpers have changed their signatures to accept aBrowserWindowInterface*instead of aBrowser*. This is a major breaking change for embedders who directly call these commands, as affected code must be updated to use the new interface. (6fdf39d) -
A large-scale refactoring continued in the media stack to replace file-level
#pragma allow_unsafe_bufferswith granularUNSAFE_TODO()markers to improve memory safety checks. (e0733f4) -
A memory leak in
CrossDeviceSettingImporteron Android was resolved by ensuring an observer is properly removed. (05187f4) -
Internal properties for the 'Compose' feature were renamed, such as
showModelPickertousePecApi. (158dd16)
UI & Features
- The Vertical Tab Strip now supports quickly closing consecutive tabs by triggering a synthetic mouse move event, restoring functionality previously available in the horizontal tab strip. (4d470ec)
-
The
glicTaskOptions API was updated with a newtask_durationenum, allowing UI to adapt based on the expected speed of a task. (619d2d3)
Testing & Infrastructure
-
The test helper
chrome::FindAnyBrowser()has been moved and refactored intoui_test_utils::FindAnyBrowser(), now returning aBrowserWindowInterface*. (2174233) -
Various tests were updated, including a new test for Android WebView's
navigatemethod state restoration, a rewrite of a settings search test, and updates toTestExpectationsfollowing a large Web Platform Tests (WPT) import. (d603680) (261807f) (4bd518d) (10b5c4b)
Localization
-
Translation files (
.xtb) were updated for multiple languages, including Catalan, Estonian, Hindi, and Vietnamese, based on the latest source strings. (fa4c04c)
2026-03-28
Open Standalone PageChromium Digest: 2026-03-28
Overview
This digest covers 50 commits from (13f64e8) to (531c249). Four major breaking changes were identified, impacting WebRTC interfaces, the Variations component, Blink's PagePopupClient, and the Safe Browsing build configuration. Other notable changes include spec alignment for CSS
box-shadow, security hardening against spoofed unload ACKs, and modernization of base::EnumSet.
API & Build System
-
⚠️ BREAKING
The
build_with_tflite_libbuild flag has been removed from Safe Browsing. This flag was effectively always on and unmaintained. Builds that explicitly set this flag will now fail, requiring its removal from embedder configurations. (531c249) -
The Rust crate
itertoolsis no longer marked astestonly, making it available for general first-party use in production code. (de7fa91)
WebRTC
-
⚠️ BREAKING
webrtc::ArrayViewhas been replaced withstd::spanacross several WebRTC interface implementations, includingwebrtc::RtpTransceiverInterfaceandwebrtc::DatagramConnection::Observer. Embedders directly implementing these interfaces must update their method signatures to usestd::span. (ad28c74)
Blink & Rendering
-
⚠️ BREAKING
The public method
PagePopupClient::AddStringin Blink now accepts aStringViewinstead ofconst String&. This is a signature change to a public interface that may require updates for embedders who implement or call this client. (956d471) -
The rendering of
box-shadowfor elements withborder-shapehas been updated to align with the latest CSS Borders 4 specification. This corrects spread expansion and blur handling, leading to more spec-compliant visual output. (776a2c5) -
To improve performance,
RasterSourceupdates forPictureLayerImplare now split into a main-thread staging phase and a compositor-thread incorporation phase. (2a28a87)
Services & Components
-
⚠️ BREAKING
The
LimitedLayerEntropyCostTrackerAPI in the Variations component has been refactored. TheAddEntropyUsedByStudymethod's behavior has changed to no longer check the entropy limit, and embedders must now call the newIsEntropyLimitExceeded()method to perform this check. (80bc68e) -
The Send-Tab-To-Self feature has been updated to support sending a tab's full back/forward navigation history, introducing a new
NavigationHistorystruct to the sync model. (19645de) -
The association between
WebContentsandInterceptNavigationDelegateon Android has been moved from a C++base::SupportsUserDatamechanism to a Java-side map, simplifying the JNI boundary. (e9086b4) - The Optimization Guide's page content annotation service now supports the concatenation of passage embeddings and adds a shopping classifier. (1dcaa2a)
Core & Internals
-
base::EnumSethas been modernized for C++23. Most methods are nowconstexpr, and the 64-element limit forconstexprconstruction of large sets has been removed, improving compile-time capabilities. (b518534) -
Reentrancy is now explicitly allowed for
ObserverListinBrowserCollectionandFileSystemAccessto prevent potential crashes during observer notifications. (5c04081) (29a72db)
Security
-
A check has been added to disallow spoofed
OnUnloadACKmessages during the attachment of an innerWebContents(e.g., for MimeHandlerView), hardening against a potential exploit where a misbehaving renderer could incorrectly trigger frame deletion. (1ccd3de) -
The
client_idis now validated when registering a bundle for an embedded frame sink, ensuring the bundle is associated with the correct renderer process. (57596dc)
UI & Features
-
A feature flag (
#glic-toolbar-button-horizontal-tab-strip) and initial implementation have been added to enable a Gemini button on the desktop toolbar. (00caeeb) (20e8cdc) (262b31e) -
On Android, the Side Panel infrastructure is updated to populate the native view into the Java
SidePanelContainer. (b2a1485)
Testing & Tooling
-
New
gmock_matchershave been added for UKM (URL-Keyed Metrics) entries to provide more descriptive and powerful assertions in tests, such asEXPECT_THAT(entry, HasMetricWithValue(...));. (5d91e91) - The WebUI ESlint plugin tools are being migrated to TypeScript to improve type safety and maintainability. (dba0f84)
- A large number of Web Platform Tests (WPT) have been imported and expectations updated. (0c6f453) (46870b1)
2026-03-27
Open Standalone PageChromium Digest: 2026-03-27
Overview
This digest covers 691 commits on the main branch from March 27, 2026, with 500 identified as relevant to developers. Today's changes are particularly impactful, featuring an unusually high number of breaking changes to core C++ and Java APIs, public Mojo interfaces, and build system configurations. Developers should pay close attention to the 'Breaking Changes' section. First commit:
(891da1c). Last commit: (8c4ca14).
Breaking Changes
-
⚠️ BREAKING
A new pure virtual method,
IsFullscreenAllowedForUnfocusedWebContents, has been added to the publiccontent::ContentBrowserClientinterface. All embedders must implement this method in their subclass to compile. (395a125) -
⚠️ BREAKING
The public Android Java interface
TabModelhas been refactored to extendTabGroupModelFilter. This is a major signature change that will break any custom implementation or usage ofTabModel. (401697a) -
⚠️ BREAKING
The
harfbuzz-ngthird-party directory has been renamed toharfbuzz. This file path change will break any downstream build systems or tools that directly reference the old path. (2f9f433) -
⚠️ BREAKING
Multiple changes were made to core
baselibrary APIs. The behavior ofbase::Thread::IsRunning()has been altered to be similar tostd::thread::joinable(), a legacy overload ofbase::HexEncode()has been removed, andbase::CurrentThread::SetTaskRunner()has been removed. (440b72b) (da12fb5) (031d58e) -
⚠️ BREAKING
The public
blink::mojom::PermissionServiceinterface has been updated. Callbacks forHasPermissionandRequestPermissionnow use a newPermissionStatusWithDetailsstruct instead of thePermissionStatusenum, requiring updates to all callers and implementers. (eee991e) (63142b9) (3c88b7a) -
⚠️ BREAKING
The
ProfileManagerand related files have been moved from//chrome/browserto a new, smaller build target//chrome/browser/profiles:profile_manager. Downstream projects must update their build dependencies to include the new target. (fa00b2f) -
⚠️ BREAKING
The
pdf.mojom.PdfHost.SaveUrlAs()Mojo interface was renamed toSavePdf()and its parameters were removed. The browser now uses its existing knowledge of the document's URL. (97d9dd9) -
⚠️ BREAKING
The public Java JNI bridge
TabScopedSidePanelRegistryBridgeon Android has been removed. The functionality is now handled natively withinTabFeatures. (8bb96ba) -
⚠️ BREAKING
Core sign-in APIs, including
AccountsMutatorandProfileOAuth2TokenService, were updated to use a newsignin::TokenBindingInfostruct, breaking the signatures of several public methods. (72fba35) -
⚠️ BREAKING
The
Left()andRight()convenience methods have been removed from the publicblink::Stringclass. Code must be updated to usesubstr()instead. (f72257b) -
⚠️ BREAKING
The
supports_color_picker_dialogproperty was removed fromOzonePlatform::PlatformPropertiesin the public Ozone API, breaking platform feature detection for embedders. (23eded4) -
⚠️ BREAKING
The
DidChangeThemeColorandDidChangeBackgroundColorIPCs were moved from theblink::mojom::LocalFrameHostinterface toblink::mojom::LocalMainFrameHost, preventing subframes from sending these messages. (c4e43fe) -
⚠️ BREAKING
The public virtual method
AimEligibilityService::GetLocale()was changed to a non-virtual method. Subclasses must now implement the newprotected virtual std::string GetLocaleInternal() const. (1b9a035)
Web Platform & Rendering
-
Cookie parsing has been hardened to reject cookies with an empty name and an ambiguous value (e.g., a cookie line of
=Foo=Bar). This fundamental change to web platform behavior may break sites relying on the old parsing logic. (6e5ceda) -
The behavior of
getPropertyValue('all')andsetProperty('all', ...)in the CSSOM has been changed to align with the specification. Web content that relied on the previous, incorrect implementation may break. (e101190) -
Support has been added for
::view-transition*pseudo-elements to theElement.pseudo()API, allowing script interaction with View Transitions. (1ce2af4) -
A bug in CSS animations has been fixed to ensure
@keyframesrules are correctly looked up across shadow DOM boundaries, improving behavior for::part()and::slotted()pseudo-elements. (8607d18) -
The
ui::Layerclass now supports abackground_invertedproperty, which allows applying an invert filter to the layer's backdrop. (5fd90ca)
Core Internals & Infrastructure
-
The compositor's
cc::TreeSynchronizerhas been refactored to useOwnedLayerImplListas the primary mechanism for tree synchronization between the main and impl threads. (bbda441) -
⚠️ BREAKING
The
LoginSessionReporterprocess and its associated public Mojo interface (login_session.mojom) have been removed on Linux. This was used to gather session environment variables on older versions of GNOME. (f2eec32) -
The
StreamContainerclass has been decoupled from the GuestView infrastructure, allowing it to be shared by both OOPIF PDF and GuestView paths. (8afd2e6) - A deadlock during tab dragging on Wayland/X11 was resolved by allowing the UI thread to yield while waiting for a new window to become visible. (95c487d)
-
⚠️ BREAKING
The public API
LayerTreeHost::CreateSharedMemoryForDroppedFramesUkm()has been deleted as part of a removal of the shared memory mechanism for reportingDroppedFramesUKM. (6c46868)
Security
- The JavaScript code cache is now disabled for PDF renderers and origin-restricted sandboxed iframes to mitigate potential code tampering vulnerabilities. (6fa3337)
-
A security vulnerability was fixed where a compromised extension renderer could bypass the
webRequestBlockingpermission check. (2619b94) - Speculation rules, LCP predictions, and link previews are now restricted to active main frames, preventing inactive or sub-frames from triggering them. (b028f9f)
Android & WebView
-
⚠️ BREAKING
The public Java API for the "Send Tab to Self" feature has been broken. The
PageContextparameter and associated JNI methods have been removed, with form-field extraction now handled entirely in C++. (9282607) -
The
chrome://managementpage is now a WebUI, replacing the previous native view. This change was made to support displaying extensions on Android. (bed3443) -
Input events are now blocked in
CompositorViewHolderwhen the tab content is obscured by a modal dialog or scrim, preventing unintended interactions. (8b551f6) -
A new feature flag,
AndroidDesktopStyleScrollbars, has been added to enable desktop-style scrollbars on devices with fine-pointer input (e.g., a mouse). (c9454db)
2026-03-26
Open Standalone PageChromium Digest: 2026-03-26
Overview
This daily summary covers 684 commits on the main branch, with 513 identified as relevant to developers. Today's changes include a remarkable number of breaking API and behavior modifications across components like Bluetooth, Omnibox, Networking, and WebGL. Key improvements were also made to the web platform, including new parameters for the Web Speech API and better font variation support. This summary covers commits from
(b07f2ee) to (2738560).
API & Behavior Changes (Breaking)
-
⚠️ BREAKING
BREAKING: Bluetooth-related methods such as
AllowWebBluetoothhave been removed from the publiccontent::ContentBrowserClientinterface. Embedders must now implement the newcontent::BluetoothDelegateto provide this functionality. (3cb4ab6) -
⚠️ BREAKING
BREAKING: The
chrome.test.runTests()extension API is now promise-based instead of synchronous. This is a signature and behavioral change to a stable testing API that will break test suites relying on its previous synchronous nature. (d0c2f20) -
⚠️ BREAKING
BREAKING: The public virtual method
IsAuthenticatedForDriveSuggestions()has been removed from thecomponents/omnibox/browser/autocomplete_provider_client.hinterface. Embedders must remove their override of this method. (f8a90a5) - ⚠️ BREAKING BREAKING: On Android, the behavior for handling downloaded PDF files has changed. Completed PDF downloads will now open in Chrome's native viewer by default, instead of triggering an intent for an external application. (483eccb)
-
⚠️ BREAKING
BREAKING: In
org.chromium.chrome.browser.multiwindow.MultiWindowUtils, the public Java methodgetInstanceCountWithFallback()was renamed togetInstanceCount(), andgetIncognitoInstanceCount()was removed. Downstream Android projects using this class will break. (a8ce63d) -
⚠️ BREAKING
BREAKING: The public
wordsattribute has been removed from theSpellCheckCustomDictionaryweb API. Web developers must now use theaddWords()andremoveWords()methods to manage custom dictionaries. (e2b0340) -
⚠️ BREAKING
BREAKING: WebGL's
texImage2DandtexSubImage2Dwill now generate aGL_INVALID_VALUEerror for SVG images that lack an intrinsic size. Previously, this case would fall back to a default 300x150 size, and web content relying on this behavior may break. (213ac82) -
⚠️ BREAKING
BREAKING: The public enum value
CookieSourceType::kUnknownhas been removed fromnet/cookies/cookie_constants.h, and several deprecatedCreateForTestingoverloads were removed fromnet/cookies/canonical_cookie.h. (4cc14f6) -
⚠️ BREAKING
BREAKING: The public struct
media::DecoderBufferSideDatano longer contains theitu_t35_databyte array. It has been replaced with a parsedgfx::HDRMetadataobject, requiring code updates for direct data access. (1fe79fa) -
⚠️ BREAKING
BREAKING: The public function
webauthn::OriginIsAllowedToClaimRelyingPartyIdnow returnsfalseif the origin is not a secure context (e.g., not HTTPS). This is a behavioral change to enforce security, which may affect callers not pre-validating the origin. (9302cf7) -
⚠️ BREAKING
BREAKING: The constructor for
BrowserSwitcherPrefsin the enterpriseBrowserSwitchercomponent has changed. It now takesPrefService*andpolicy::PolicyService*instead of aProfile*, requiring updates for embedders using this feature. (de22de2) -
⚠️ BREAKING
BREAKING: Public static methods
addEntryandaddScrollPositionToPageContexthave been removed from theSendTabToSelfAndroidBridgeJava class, breaking any Android embedders using these methods. (9869306) -
⚠️ BREAKING
BREAKING: The constructor for
AccessibilityQueryServicenow takes astd::vectorof data providers instead of a single one, breaking any embedder code that constructs this service directly. (1e10530)
Web Platform & Blink
-
The Web Speech API now supports a
qualityparameter, allowing web developers to request specific on-device speech recognition models. (2e7e4fd) -
New APIs were added to
WebFormControlElementto extract detailed text layout information from<textarea>elements, in preparation for PDF Ink Signatures. (54204b7) - Blink can now parse and process the AVAR2 font table, enabling support for more advanced font variations. (0fa7607)
-
Support has been added for parsing spatial dimensions (
xywh) in SVG Media Fragment URIs, improving alignment with the W3C specification. (b1df873) -
The experimental WebMCP (Web Model-Calling Protocol) API was updated to use an
AbortSignalfor managing tool registration lifetime, and support was added for describing multi-input parameters. (71866d8) (636a840) -
The
PaintOffsetTranslationForCompositedfeature has been enabled by default, changing how paint offsets are handled for composited layers to improve performance and correctness. (3a7c263)
Android & WebView
-
For WebView, a new
getMaxPrerendersAPI was added to theProfileinterface, allowing developers to query the configured prerender limit. (1cafa5a) -
WebView now exposes the
IgnoreDuplicateNavsfeature viaAwSettings, allowing embedders to opt-in to discarding redundant navigations for performance. (a20495e) - The Cronet build process was improved by moving to a shared library location and shipping fine-grained base targets, which helps reduce package size and improve dependency management. (174f3d8) (abdc916) (17404f4)
-
The JNI system now hooks
env->FindClassto be aware of split APKs, enabling JNI calls into code that resides within Chrome feature splits. (d93249a) -
The New Tab Page continues to be refactored, with
NewTabPageCoordinatornow using aPropertyModelandViewBinderpattern for better architecture. (e2db56f) (505ab04)
iOS
-
A new public API,
SetUserAgent, was added toweb::WebStateto allow embedders to override the user agent on a per-WebState basis. (f521739) - Siri Shortcut support has been added for opening bookmarks. (c83ce48)
-
The internal mapping between
WKWebViewandweb::WebStatewas simplified by moving from a custom linked list to an Objective-C associated object, improving performance and code simplicity. (7984b8d) - The downloads list has been updated with a new search bar. (19a830b)
Media & Graphics
-
A new
media::mp4::HdrMetadataTrackclass was introduced to parse and attach HDR metadata from MP4 files to the corresponding video frames. (830194a) - On Windows, the D3D12 video encoder was updated to report more specific DirectX error codes instead of a generic failure, improving telemetry and debugging. (2d9364b)
-
A VSync stall during fling gestures on Android was fixed by correctly registering the fling scheduler as a
BeginFrameObserver. (5efefdf)
Extensions
-
Test coverage for extensions on desktop Android continues to expand, with API tests for
tabs,i18n,permissions,search, andclipboardbeing enabled or added. (1fa9861) (d198c46) (d93fb5b) (3103734) -
Several internal extension APIs, including
certificateProviderandbrailleDisplayPrivate, were converted from the legacy JSON format to WebIDL for better type safety and maintainability. (757e799) (01733fc) (b22d5a4)
Infrastructure & Code Health
-
The
-Wexit-time-destructorscompiler warning is now enabled by default for Chromium builds to help find and prevent shutdown issues caused by global objects with non-trivial destructors. (0d25486) - The legacy Send-Tab-To-Self UI, which relied on system notifications, has been removed entirely in favor of the modern bubble UI. (577a926)
-
A new presubmit check was added to ensure that
flag-metadata.jsonentries are synchronized withabout_flagsfiles, preventing stale metadata. (812687d) -
Numerous obsolete or fully launched feature flags were removed from the codebase, including
FEED_HEADER_REMOVAL,omnibox-drive-suggestions-no-sync-requirement, andkEnableSideGesturePassThrough. (faa4e0f) (f8a90a5) (b1b7029)
2026-03-25
Open Standalone PageChromium Digest: 2026-03-25
Overview
This daily summary covers 705 commits on the main branch, with 511 identified as relevant to developers. The changes span from commit (60f1c8a)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((60f1c8a)) to (c704012)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((c704012)). Today's changes include an unusually high number of breaking API and build system changes affecting core utilities, Blink, Autofill, and platform-specific code on Android and ChromeOS. Embedders are strongly advised to review these changes for required updates.
Core & Build System
-
⚠️ BREAKING
BREAKING: The
//base:base_javabuild target has been split into smaller, more granular targets (//base:java_exception_reporter,//base:jni_callback,//base:token). Embedders must update theirBUILD.gnfiles to depend on the new, specific targets. (1397b82) -
⚠️ BREAKING
BREAKING: The free function
swapforbase::ScopedGenerichas been changed to take non-constreferences instead ofconstreferences. This signature change will break any code attempting to swapconstScopedGenericobjects. (d507cd7) -
⚠️ BREAKING
BREAKING: The behavior of the public API
base::ReplaceFileon Windows has changed. It will no longer return an error if it fails to create a backup file, instead proceeding with the replacement. Embedders relying on the previous failure condition will experience a behavioral break. (36a258f) -
⚠️ BREAKING
BREAKING: The contract for the public observer interface
ui::gfx::x::EventObserver::OnEventhas been changed to allow reentrant calls. Implementations that were not designed to be reentrant may now fail or exhibit incorrect behavior. (65c7091) -
The
kMojoUseEventFdfeature has been enabled by default on Android to improve input delay and INP metrics. (04ae8a0) -
Checks were added to
HistoryServiceto prevent observers from being registered or unregistered after shutdown, fixing a potential crash. (38032d9)
Blink & Web Platform
-
⚠️ BREAKING
BREAKING: A new virtual function,
GetHTMLElementType(), has been added to the coreblink::Nodeclass. This is an ABI-breaking change that will affect embedders who subclassblink::Nodeor other core DOM classes, as they will now need to provide an implementation for this new function. (f252b9b) -
BREAKING: The public API method
WebInputElement::IsLastInputElementInForm()has been removed fromthird_party/blink/public/web/web_input_element.h. Any code calling this function will no longer compile. (1f62108) -
The CSS property
text-decoration-skip-ink: allis now enabled by default, moving it from an experimental to a stable feature. (1e520da) -
The WebInstall API (
<install>element andnavigator.install()) is now disabled in sandboxed contexts to prevent misuse. (92178a8) - An integer overflow that could crash the renderer when receiving a WebSocket message larger than 4GB has been fixed. (60b543e)
- The JXL image decoder is updated to use frame scanning and seeking for better animation and progressive rendering performance. (d94c83c)
-
The
kLocalNetworkAccessPromptDirectSocketsfeature is now enabled by default, changing the permission workflow for Direct Sockets. (d96e669)
UI & Features
-
⚠️ BREAKING
BREAKING: The virtual method
OnKeywordModeChangedhas been removed from the publicOmniboxClientinterface. Embedders who override this now no-op method must remove their implementations to avoid build failures. (f22d35c) -
⚠️ BREAKING
BREAKING: The
CancelScanmethod was removed from thecrosapi::mojom::DocumentScaninterface as part of a service refactor. ChromeOS clients relying on this mojom method will break. (dcaab7d) - On Linux, middle-click functionality on the new tab button has been restored. (c1ff01c)
-
The Certificate Manager UI (
chrome://settings/certificates) has been migrated from WebUI Polymer to Lit. (56347d7) - Work continues on the "Let Chrome browse for you" (Glic) feature, with context menu improvements and the removal of the side-panel feature flag as it is now fully launched. (11fd237) (88eb0ba)
Android & iOS
-
⚠️ BREAKING
BREAKING: The public Java method
openUrlInOtherWindow()was moved from theMultiInstanceManagerclass to theMultiInstanceOrchestratorclass. Embedders on Android calling this method for multi-window management must update their call sites. (8d0821c) -
⚠️ BREAKING
BREAKING: Support for file-based video capture (via the
--use-file-for-fake-video-captureswitch) has been removed on the Android platform. Embedders using this for testing will find the feature no longer works. (1cabf78) - On Android, Side Panel registries are now supported at both the tab and window scope, allowing for more flexible UI integrations. (58130a8)
- On iOS, a startup hang has been fixed by deferring the registration of background refresh tasks until later in the application lifecycle. (efff262)
Media & Graphics
-
⚠️ BREAKING
BREAKING: The public
gfx::HDRMetadatastruct has been refactored to use internal Skia types. Direct member access (e.g.,.smpte_st_2086) has been removed in favor of new getter/setter methods like.SetMDCV()and.GetCLLI(). Embedders must update their video and graphics integration code. (8cb7cd0) - A bug in the D3D12 video decoder that could cause visual corruption by reading stale bitstream data has been fixed. (5b73734)
- Bounds checking was added to the VP8 hardware accelerator to prevent a potential unsigned integer underflow. (42ff1bc)
Autofill & Payments
-
⚠️ BREAKING
BREAKING: The signature of the public callback
AutofillClient::EntityImportPromptResultCallbackhas been changed. It now requires a second parameter,const EntityImportUIContext&, to pass UI consent details. Embedders implementingAutofillClientmust update their function signatures. (d130440) -
The
Autofill CVC storagefeature flag and related code have been cleaned up following its launch on all platforms. (22e3267)
Extensions
-
⚠️ BREAKING
BREAKING: The public utility function
download_crx_util::IsExtensionDownloadhas been removed fromchrome/browser/download/download_crx_util.h. Embedders should useextensions::util::IsExtensionDownloadinstead. (76c1222) - A potential popup blocker bypass was fixed by adding browser-side validation to ensure only legitimate extension contexts can open popups without user interaction. (3b4c638)
- The feature allowing users to toggle user script injection on a per-extension basis is now enabled by default, and old preference migration logic has been removed. (9ffa658)
Security & Privacy
- Renderer-provided user gesture signals are no longer trusted for permission requests. The browser process now checks the true transient activation state, hardening the permission prompt mechanism. (89632d8) (8dda06b)
-
A potential directory traversal vulnerability in the UI DevTools
GetSourceCodefunction has been patched. (26c7490) - A null-dereference crash in the Digital Identity Credential API was fixed. The crash occurred if an iframe was destroyed while a request was being processed. (b48a021)
Code Health & Infrastructure
-
The
DelayRfhDestructionsOnUnloadAndDetachfeature flag and its associated code paths have been removed, simplifying the lifecycle management ofRenderFrameHost. (aa54fb5) -
Several services, including those for Dedicated and Shared Workers, were updated to use the strongly-typed
content::ChildProcessIdinstead of raw integers, improving type safety. (2a26522) (12222ff) (57d5b4f) -
Numerous launched or obsolete feature flags were removed, including
kTabGridDragAndDrop(iOS),kNtpSafeBrowsingModule,MagicStackAndroid, andAutofillCvcStorageEnabled. (6a5f9a3) (8be876b) (637ab3d) (22e3267) - A significant number of reverts occurred for changes causing build or test failures, including for audio channel layouts, a Graphite GPU backend change, and an experimental sign-in flow on Android. (ce520a1) (d1ffb68) (937ee64)
2026-03-24
Open Standalone PageChromium Digest: 2026-03-24
Overview
A busy day with 687 total commits, of which 519 were deemed relevant to developers. The day saw an unusually high number of breaking changes across the codebase, affecting core APIs, Blink, UI, extensions, and platform-specific code. Major refactors were landed in the sessions, sync, and extensions components, requiring embedders to update their code. Work also continued on multinetworking support and general code cleanup.
API, Core, and Compositor
-
⚠️ BREAKING
BREAKING: The public
syncer::DeviceInfoclass has been refactored to use native C++ types for its members instead of sync protocol buffer types, breaking clients that construct or inspectDeviceInfoobjects. (165bf33) -
⚠️ BREAKING
BREAKING: The public API for
components/sessions::SessionCommandhas been changed. Thesize()method was removed andPayloadAsPickle()was renamed toContentsAsPickle(), breaking embedders using this interface. (364c522) -
⚠️ BREAKING
BREAKING: The core compositor method
cc::LayerImpl::PushPropertiesTohas been renamed toCopyPropertiesToand its functionality split. CustomLayerImplsubclasses overriding the original virtual method must be updated. (b3d21ec) -
⚠️ BREAKING
BREAKING: The behavior of
StringBuilder::operator<<has been changed forcharandUChartypes to serialize them as characters instead of their integer values. This can break code relying on the previous numeric output for logging or serialization. (b97df4a) -
base::PostTaskAndReplyWithResulthas been improved to support reply functions that take multiple arguments by having the task function return astd::tuple. (b791274) -
The
base::FeatureAPI and its macros were moved to a new, self-contained header (base/feature.h) to resolve circular dependencies and improve modularity. (5063835)
Blink and Web Platform
-
⚠️ BREAKING
BREAKING: The IDL definitions for DOM manipulation methods like
beforeHTML()andsetHTML()have been altered, changing the accepted types for theoptionsparameter. This is a breaking change to the public web-facing API. (368d532) -
⚠️ BREAKING
BREAKING: The public Blink class
PauseMicrotasksHandleinevent_loop.hhas been made non-copyable and non-assignable, which will break any code that was previously copying instances. (8222b27) -
⚠️ BREAKING
BREAKING: The public Blink string utility
String::FromUTF8has been renamed toString::FromUtf8and an overload has been removed. (1401a72) -
⚠️ BREAKING
BREAKING: The public API
AtomicString::FromUtf8(const char*)has been removed from Blink. Code should be updated to use theAtomicString::FromUtf8(std::string_view)overload. (a045d0d) -
⚠️ BREAKING
BREAKING: The signature of
RasterInterface::ReadbackYUVPixelsAsync, a core public interface for GPU operations, has been modified. Thesource_sizeandpaste_locationparameters were changed. (85d21e9) -
Support for the
stoppedvalue in theimage-animationCSS property has been implemented, allowing animated images to be stopped and reset to their first frame. (4fa3a3f) - On Android, Document Picture-in-Picture now reparents the video's frame sink to the PiP window's compositor to prevent video stutter when the originating tab is minimized. (01dadfb)
-
The experimental
HighlightPointerEventsfeature and its associatedHighlightPointerEventinterface have been removed, as they were superseded by the shippedHighlightsFromPointfeature. (894087f)
Networking and Services
-
⚠️ BREAKING
BREAKING: The constructor for the core public class
net::ClientSocketPool::GroupIdhas been changed to support multinetworking. Callers must now pass a newtarget_networkparameter. (52a2dea) -
⚠️ BREAKING
BREAKING: The
InitializeRequestmethod in the public base classContentAnalysisInfoBaseis now a pure virtual function. Embedders with custom subclasses must implement this method. (2d6e854) -
⚠️ BREAKING
BREAKING: The public virtual methods
GetSamplingParamsConfigandGetFeatureMetadatahave been removed fromOnDeviceCapabilityandOptimizationGuideKeyedService, breaking embedders who used them for on-device model configuration. (fb071c6) -
As part of the multinetworking effort,
URLRequestandHttpRequestInfoclasses were updated to include atarget_networkmember. (ba4fdb3) (87a4047) (337a3df) -
The
kSkipTpcdMitigationsForAdsfeature and related ad-heuristic logic for third-party cookie deprecation have been removed, simplifying the codebase. (5414c90) -
A browser-side check for the
fullscreenPermissions Policy has been added inRenderFrameHostImpl::EnterFullscreen()to enforce the policy even if the renderer is compromised. (23da98a)
UI, WebUI, and DevTools
-
⚠️ BREAKING
BREAKING: The core WebUI utility
sendWithPromiseinui/webui/resources/js/cr.tsnow requires a mandatory generic type parameter specifying the promise's payload type. Calls without this will no longer compile. (7c7425f) (2035199) -
⚠️ BREAKING
BREAKING: The public class
views::UserResizeDetectorhas been renamed toviews::UserResizeMoveDetector. Embedders using thisui/viewsclass will need to update their code. (18b13c6) -
⚠️ BREAKING
BREAKING: The
TabAlertandTabNetworkStateenums have been moved fromchrome/browser/ui/tabsto the public componentcomponents/tabs/public, changing their include paths and namespaces. (a9634cc) (6b531e1) -
BREAKING: Enum values related to the deprecated Tab Organization feature have been removed from the stable
chrome/browser/ui/webui/tab_search/tab_search.mojominterface, breaking clients of this mojom API. (d479cf0) -
New observer notifications,
OnNativeWidgetUserDragStartedandOnNativeWidgetUserDragEnded, have been added toviews::Widgetto allow clients to distinguish between a window being moved versus resized. (b4fe7f8) -
A new
CrashReportContextdomain has been added to the Chrome DevTools Protocol (CDP) to allow inspection of key-value pairs stored for crash reporting. (ea739c3) - Touchpad history navigation is now enabled by default on Linux, aligning its behavior with Windows and ChromeOS. (9cf0141)
Extensions
-
⚠️ BREAKING
BREAKING: As part of moving
WebstoreInstallerfrom//chrometo//extensions, new pure virtual methods have been added to theExtensionsBrowserClientinterface. This forces all embedders to implement the new methods, causing a compilation break. (cb457f6) -
The
browsernamespace for extensions (kExtensionBrowserNamespaceAndPolyfillSupport) is now enabled by default, shipping the feature. (6f12cd1)
Autofill and Payments
-
⚠️ BREAKING
BREAKING: The core Autofill utility function
ToSafeFieldTypeinfield_types.hhas been refactored to return astd::optional<FieldType>instead of aFieldType, breaking code that uses the old signature. (31cce64) -
⚠️ BREAKING
BREAKING: The
AutofillSharedStorageHandlerclass has been removed. Embedders using this class or instantiatingPersonalDataManagerdirectly will have build failures. (d7b4885) - UI text for saving payment cards and confirmation messages has been updated to reflect "Google Wallet" branding. (b6184b2) (2363e4c) (afdc3d9)
Platform-Specific
-
⚠️ BREAKING
BREAKING (iOS): The
WebStateObserverlist has been marked as re-entrant to prevent crashes. This is a significant behavioral change to a core public API for iOS embedders who may have relied on the previous non-re-entrant notification behavior. (5034d37) -
⚠️ BREAKING
BREAKING (Android): A deprecated, default-implemented
onAddedToTask()method has been removed from the public Java interfaceChromeAndroidTaskFeature. Classes implementing this interface must now implementonAddedToTask(long nativeBrowserWindowPtr). (456ce60) -
⚠️ BREAKING
BREAKING (ChromeOS): The signature of the public mojo interface
PinFactorEditor::CheckPinComplexityhas been changed. The return type is now aresult<>union, and thePinComplexityenum has been simplified. (86f795d) -
(Android)
JniZerohas been patched to override the defaultFindClassbehavior with a version that is aware of APK splits. This is a compatibility fix for third-party libraries like Cardboard that make direct JNI calls. (3312e8f) - (iOS) Drag-and-drop is now enabled by default. (34fefe1)
Build and Infrastructure
-
The
build_with_tflite_libbuild option has been removed from numerous components (Omnibox, Permissions, Autofill, Media, etc.) as it is now universally enabled, simplifying build configurations. (4f546f2) (bc399d2) (c7500c1) (711d2fc) (c907c62) (16a600b) (16777dd) -
The
DirectReceivermojom attribute has been removed. It was a no-op and is no longer enforced or recognized by the mojom toolchain. (d7bb901) (239b3c8) (24d3982) -
Rust code for C++ sequence integration has been moved from
//mojoto//baseas part of establishing new guidelines for Rust code within the corebaselibrary. (e70725a)
2026-03-23
Open Standalone PageChromium Digest: 2026-03-23
Overview
This digest covers 578 commits from March 23, 2026, with 438 deemed relevant to developers. This was a day of significant API refactoring, with numerous breaking changes across core, UI, and ChromeOS components. The first relevant commit was
(12284ce) and the last was (db815f5).
Breaking Changes
-
⚠️ BREAKING
The
crosapi::mojom::cros_display_configinterface was removed entirely. The public C++ APIash::CrosDisplayConfigwas also changed to useint64_tfor display identifiers instead ofstd::string, breaking all clients of the display configuration API on ChromeOS. (13cedb9) (f8e02af) -
⚠️ BREAKING
The core
ui::ClipboardAPI has been changed. MethodsWriteBookmarkandReadBookmarkhave been renamed toWriteURLandReadURLrespectively, and their signatures now use theClipboardUrlInfostruct. (624e217) -
⚠️ BREAKING
The 2-parameter overload of
content::WebContents::IgnoreInputEventshas been removed. Callers must update to the single-argument version. (05268bd) -
⚠️ BREAKING
Account settings logic has been moved from
components/autofillto a newcomponents/account_settingscomponent. This changes header paths and namespaces fromautofill::toaccount_settings::for classes likeAccountSettingService. (a1b05c5) -
⚠️ BREAKING
The
network::mojom::NetworkContext::CreateWebSocketmojo method signature has changed, adding anetwork_restrictions_idparameter. Implementations of this service must be updated. (0f1662a) -
⚠️ BREAKING
The public
TabStripApiObserver::OnTabsClosedmethod andOnTabsClosedEventhave been renamed toOnNodesClosedandOnNodesClosedEvent. (73c9765) -
⚠️ BREAKING
The
blink::mojom::Frame::BeforeUnloadmojom interface signature has changed, adding aforce_to_proceedboolean parameter to support asynchronous execution. (2cb8be8) -
⚠️ BREAKING
The core Blink utility method
AtomicString::FromUTF8()has been renamed toFromUtf8()to conform to style guides. (bd3411c) -
⚠️ BREAKING
The public virtual method
GetOnDeviceCapabilities()has been removed from theOnDeviceCapabilityinterface as part of a refactor. Callers should useModelBrokerClientinstead. (6e00555) -
⚠️ BREAKING
Several public methods (e.g.,
GetIssuerCommonName,GetTimes) have been removed fromX509CertificateModelas part of its refactoring into the newcomponents/certificate_modelcomponent. (35ed0b5) -
⚠️ BREAKING
On Android, the public method
addDestructionObserverhas been removed from theSuggestionsUiDelegateJava interface. (5a70b48) -
⚠️ BREAKING
The
TrackedElementRectsstruct has been moved from theccnamespace to theviznamespace. Embedders accessing this viaRenderFrameMetadatamust update include paths and type names. (2242c67) -
⚠️ BREAKING
The exported C++ switch
blink::switches::kEnableWebGLImageChromiumhas been renamed tokEnableOverlaysAndLowLatencyUsageForWebGL. (1d5f025) -
⚠️ BREAKING
The public API for
CrosAppsApiRegistryon ChromeOS now usescontent::BrowserContext*instead ofProfile*, requiring updates for embedders using this registry. (18b7586)
API & Architecture
-
Several feature flags for launched features were removed, making their behavior permanent. This includes
kQueueNavigationsWhileWaitingForCommit,kContentVerifyJobUseJobVersionForHashing, andkFilesConflictDialog(ChromeOS). (369b2d9) (d49106f) (ae18657) -
As part of Project Bedrock,
profile_manager.ccwas migrated away from usingBrowserListObserverto reduce dependencies on theBrowserobject. (7427fd2) -
A new
LocationIconInterfacewas extracted to decouple the location bar icon's logic from the native Views framework, paving the way for a WebUI implementation. (8222d0b) -
The
JSONParserclass references were removed following its replacement by a Rust-based implementation. (7e81108)
Blink & Web Platform
- WebTransport connections will now be closed when a page enters the BackForwardCache, rather than blocking the page from being cached. (3b1c1a8)
-
An experimental implementation of ML-DSA (a post-quantum signature algorithm) is being added to the WebCrypto API, gated by the
WebCryptoPQCfeature flag. (2da14fd) -
A new method,
WebFormControlElement::GetTextInfo(), was added to retrieve font and glyph information from form elements, intended for use by PDF text annotations. (67421ea) -
The experimental
markerattribute, related to declarative shadow DOM, has been completely removed fromElementandShadowRoot. (f2a2c34)
UI & UX
-
Android: A reusable
TabBottomSheetJNI bridge was introduced to simplify native integrations with the Android bottom sheet. (c2d14de) -
Android: WebView behavior was aligned with the Android ecosystem by removing a custom
select_action_menu_pasteresource ID in favor of the standardandroid.R.id.paste. (0bceff6) - macOS: A crash in the tabstrip that occurred when switching to vertical tabs has been fixed. (703c279)
- iOS: Logic was added to correctly handle the tab count button in the app bar when there are zero tabs. (6fb8703)
Networking & Security
-
Android: Initial support was added to check for network connections blocked by the new Local Network Protection (LNP) permission, introducing a new
ERR_LOCAL_NETWORK_PERMISSION_MISSINGerror code. (7c1ae43) (19434ee) - The Brotli library was updated to fix a decoding hang on certain inputs. (224140d)
- To defend against a potential clickjacking vector, logic was added to traverse local parent frames when checking for SVG filters applied to cross-origin content. (032145b)
Performance & Media
-
The performance of generating stack traces with line numbers on Linux was significantly improved by optimizing how the
.debug_arangessection is parsed. (bd3bd31) - Support was added for parsing and attaching Dolby Vision RPU (dynamic metadata) to H.265 video, improving HDR video playback capabilities. (3e77dae)
-
A large number of UKM (URL-Keyed Metrics) reporters were removed from the compositor (
cc/metrics), simplifying the metrics pipeline. (43be1f5) -
The
ui::gfx::Tween::CalculateValuemethod was optimized by making cubic bezier instances static, avoiding reconstruction on every call. (938e146)
Build & Infrastructure
-
The
ENABLE_EXTENSIONSbuild flag was updated toENABLE_EXTENSIONS_COREin several places to correctly support extensions on desktop Android. (e673bb6) (da00c0f) - The siso build tool was updated to version 1.5.7. (32939b2)
-
Initial
GEMINI.mdfiles were added to several subdirectories to improve the effectiveness of AI-assisted coding tools. (15c8983) (a138750)
2026-03-22
Open Standalone PageChromium Digest: 2026-03-22
Overview
This digest covers 20 commits from the Chromium repository, with a focus on major changes impacting embedders. Key updates include significant API refactoring in the browser UI layer as part of Project Bedrock, resulting in several breaking changes. Other changes involve internal refactoring, bug fixes, and performance improvements.
Browser Core & UI
-
⚠️ BREAKING
BREAKING: As part of the 'Bedrock' project to decouple core browser logic from the UI, several public functions have been removed or had their signatures changed. The function
chrome::GetTabbedBrowserCounthas been removed fromchrome/browser/ui/browser_finder.h. Additionally, numerous utility functions inchrome/browser/ui/chrome_pages.handchrome/browser/ui/singleton_tabs.h(e.g.,ShowSettings,ShowSingletonTab) now require aBrowserWindowInterface*instead of aBrowser*. Embedders directly calling these functions will need to update their code to use the new interfaces or find alternatives. (ebb63bf) (7f61ab9) -
The 'Bedrock' project continues with the introduction of
BrowserCollection::GetLastActiveBrowser()as a modern replacement for older APIs and the migration of macOS-specifichandoff_observeraway fromBrowserListObserver. (27f213d) (ed4f7e5) - Several UI bug fixes were landed, including visual corrections for pinned split tabs in the Vertical Tabs experiment and ensuring back/forward buttons update correctly in the WebUI Browser. (c3f3459) (ff4276f) (6f46759)
Extensions
-
⚠️ BREAKING
BREAKING: The public static method
extensions::ExtensionPrefs::RegisterBrowserPrefshas been renamed toextensions::ExtensionPrefs::RegisterLocalStatePrefsto more accurately reflect its function. Embedders using this method to register preferences will need to update the function call. (8a737a5)
Services & Components
-
In WebAuthn, a more detailed metric
WebAuthentication.Enclave.PinRenewalActionOutcomehas been added to record PIN renewal outcomes, obsoleting the previousWebAuthentication.PinRenewalFailureCausemetric. (8771676) -
A security mitigation (
ADVANCED_MEMORY_SAFETY_CHECKS) has been added toTabModalDialogManagerto help prevent use-after-free vulnerabilities. (8460673) -
The Optimization Guide component received code cleanup, migrating several functions to use
std::string_viewfor improved performance. (bd057d6)
Android
- A recent change to open existing Payments and Addresses settings pages from the Autofill and Passwords screen on Android was reverted due to build failures. (6948ed9)
Internals & Infrastructure
- To improve performance, TLS getters have been exempted from Checked Span bounds checks, which were showing up as hot on Speedometer profiles. (d5c3cbd)
- New unit tests were added for the Checked Span container and the TabSearchPageHandler to verify behavior and prevent future regressions. (346b40a) (dd1e9b6)
- Routine updates include translation file updates, minor comment fixes, and ownership changes. (8b0323b) (8c65b3e) (cadc4dd)
2026-03-21
Open Standalone PageChromium Digest: 2026-03-21
Overview
This digest covers 46 commits from the Chromium repository, spanning from commit (3e3bf49) to (9ba674e). The analysis identifies three major breaking changes in Core APIs, Compositor, and Media, affecting embedders and web applications relying on specific EME behaviors. Other notable changes include advancements in experimental features like Contextual Tasks and WebNN, security enhancements in navigation handling, and various internal refactorings and dependency updates.
Core APIs & Embedders
-
⚠️ BREAKING
BREAKING: The ServiceWorker framework has been migrated to use
content::ChildProcessIdinstead of primitiveinttypes for process IDs. This affects publiccontent/APIs, including the constructor forServiceWorkerClientand the return type ofServiceWorkerClient::GetProcessId(). Embedders interacting with these APIs will need to update their code to use the newChildProcessIdtype. (0e161e8) -
⚠️ BREAKING
BREAKING: The
cc::LayerContextinterface has been modified. Thetarget_local_surface_idparameter was removed from theUpdateDisplayTreeFrommethod. Its functionality is now handled by a new virtual method,SetTargetLocalSurfaceId. Embedders who provide custom implementations ofLayerContextmust update their code to match the new interface signature. (f0fa73e) -
A crash in
ActorKeyedServicehas been fixed. The crash occurred whengetActiveTaskswas called from a callback that was triggered by a task's completion. The fix ensures the completed task is removed from the active list before callbacks are run. (24300df)
Media
-
⚠️ BREAKING
BREAKING: For PlayReady EME on Windows, queries for HDCP 2.3 support will now correctly report as 'not supported' (
OUTPUT_RESTRICTED). Previously, this query may have incorrectly indicated support. This change aligns behavior with the underlying OS capabilities but may break applications that were relying on the previous incorrect behavior. (87eee40) - The Video Capture Device on Android will now send color space information to the client. (3e4c084)
- Hardware-accelerated video decoding via VA-API is now enabled for arm64/aarch64 Linux builds. (f7b4e79)
-
A thread affinity conflict in
CrasAudioHandlerhas been resolved by decoupling it fromVideoCaptureObserverusing a proxy. This fixes a shutdown crash on ChromeOS where the observer was registered on the IO thread but destroyed on the UI thread. (47862bf)
Rendering & Compositing
-
A bug in the
html-in-canvasfeature that caused incorrect compositing for inline elements has been fixed. This prevents the creation of unnecessary composited layers for canvas descendants. (9ba674e) -
Internal methods
Document::ImplicitClose()andLocalDOMWindow::DocumentWasClosed()have been renamed toDocument::DispatchLoadEventandFinalize()andLocalDOMWindow::DispatchLoadAndPageshowEvents()respectively to more accurately reflect their function. This is a code clarity improvement with no functional change. (3e3bf49)
Extensions
-
A performance optimization for
WebRequestproxying in WebViews has been introduced behind thekOptimizeWebRequestProxyfeature flag. When enabled, it avoids global proxying for all renderers when awebviewextension is present, instead applying proxying on a more granular, frame-aware basis. This also fixes a bug where WebSocket and WebTransport requests from WebViews in WebUI were not being intercepted. (95c9427) - A histogram has been added to track the length of text set on extension action badges. This data will be used to determine if a length limit should be imposed in the future to prevent memory issues from buggy extensions. (73e8489)
Experimental Features
-
Several validation checks have been added to the experimental WebNN API to prevent buffer overflows and handle invalid padding values in
conv2dand pooling operations within the TFLite backend. (41c622e) (63c8325) (8859cdd) - The experimental 'Contextual Tasks' feature is now enabled on Android. Additional changes include adding a debugging interface and fixing UI behaviors like element jumping and keyboard navigation. (6ebc299) (2505a80) (0dbe100) (f0a4abc)
- A context menu entry has been added for the experimental 'Glic' (Gemini in Chrome) feature, which will be controlled via an experiment. (8df2c9f)
Security
-
Logging for unexpected
Originheaders on navigation requests has been refined to only trigger on renderer-initiated navigations. This avoids firing on legitimate browser-initiated cases, such as going back to a POST that redirected to a GET. (bbbb03f) -
The order of checks in the
RequireCTDelegatehas been refactored for efficiency. The delegate will no longer check if a Certificate Transparency requirement can be overridden if it's already known that the SCTs comply with the policy. (5ade5a4)
Infrastructure & Internals
-
Third-party dependencies have been updated, including rolls for
libaom,WebGLconformance tests, and patches formediapipe. (e021654) (5863585) (7d11d4e) -
A new feature flag,
kUseStrongRefToSharedImageInterface, has been added to allowClientSharedImageto hold a strong reference toSharedImageInterface, preventing it from becoming invalid during use. (2951d29)
2026-03-20
Open Standalone PageChromium Digest: 2026-03-20
Overview
This summary covers 583 commits on the main branch from March 20, 2026, with 431 deemed relevant to developers. The day saw an unusually high number of breaking changes across core internals, JNI, platform APIs, and extensions. The first commit of the day was
(0939042) and the last was (f08dfd5).
Build System & Core Internals
-
⚠️ BREAKING
The bundled
xdg-mimeandxdg-settingsutilities have been removed. Production Linux builds must now ensure the host system has a sufficiently modern version ofxdg-utilsinstalled, changing a long-standing dependency assumption. (4258ce4) -
⚠️ BREAKING
The Windows message pump observer API in
basehas been significantly altered.MessagePumpForUI::Observeris renamed toNativeEventObserver, the registration model now only supports a single observer, and method signatures have changed (e.g., fromconst MSG&touintptr_t). (6be9b03) (fe915f0) -
⚠️ BREAKING
The core
blink::Platform::InitializeBlink()method signature has changed to accept an optionalcppgc::StackStartMarker. Embedders that implement or call this platform initialization function directly must update their code. (3a44bcf) -
⚠️ BREAKING
The public static methods
Time::ResetHighResolutionTimerUsage()andTime::GetHighResolutionTimerUsage()have been removed frombase/time/time.h. (2cf132b) -
Several browser components have been modularized into their own build targets to improve build times and dependency hygiene, including
//chrome/browser/taskbar,//chrome/browser/readaloud, and//chrome/browser/guest_view. (ee6b0f0) (ed17521) (59597bd)
JNI (Java Native Interface)
-
⚠️ BREAKING
The JNI generator's naming convention for calling static Java methods from C++ has changed. The
Jprefix on the JNI struct is removed, so calls likeJMyClassJni::foo()must be updated toMyClassJni::foo(). (fa5d1a7) -
⚠️ BREAKING
JNI-generated constants and field accessors have been moved into their respective mirror types. Native code must be updated to access them via the new pattern, e.g.,
JMotionEventJni::CONSTANTinstead ofJNI_MotionEvent::CONSTANT. (62719ab)
Web Platform & Rendering
-
⚠️ BREAKING
The compositor API
cc::TrackedElementFeaturehas been converted from a standardenumto anenum class. Client code must be updated to use scoped enumerators (e.g.,cc::TrackedElementFeature::kAIHighlight) and can no longer treat it as an integer. (faaa9c8) (28294a2) -
⚠️ BREAKING
Following the removal of the
kSynchronizedScrollingfeature, the public methodcc::Scheduler::SetTreePrioritiesAndScrollStatehas changed its signature. TheScrollHandlerStateenum and its corresponding parameter have been removed. (65b5613) -
A new experimental feature, 'Platform-provided behaviors' for Custom Elements, was introduced. It allows elements to opt into platform capabilities like form association via
attachInternals(). (458af53) -
The CSS Color 5
alpha()function has been implemented, available behind theCSSAlphaColorFunctionruntime feature flag. (38994fc) -
To align with spec updates, user action pseudo-classes like
:hoverand:activenow stop propagating at the top layer boundary. This behavior is controlled by theUserActionPseudosStopAtTopLayerflag. (9a341b9) -
The Rust-based JPEG parser is now enabled by default. In Web Audio, support was added for 5.1.4 and 7.1.4 channel layouts, while the experimental
kWebAudioAllowDenormalInProcessingfeature was removed. (5c98c56) (6587cd7) (e8aacdb)
Security & Networking
-
⚠️ BREAKING
The public interface method
SecurityPrincipal::IsWebUI()now returnstrueforchrome-search://URLs. Embedders relying on this method for security or UI logic may need to update their code to account for this behavioral change. (2ba6492) -
⚠️ BREAKING
The recently added public API
google_apis::GetCdmCertificate()has been removed via a revert. (2172bc8) - Chrome's Certificate Transparency (CT) policy evaluation will now ignore Signed Certificate Timestamps (SCTs) delivered via OCSP-stapled responses. This change is enabled by default. (4d1a2f7)
-
DoH (DNS-over-HTTPS) requests now use an empty
IsolationInfoto allow Alt-Svc information to be cached across network changes, enabling faster QUIC connections on startup. (6ca275c)
Extensions
-
⚠️ BREAKING
Nine methods have been removed from the
chrome.passwordsPrivateextension API as part of a migration to Mojo. Extensions using methods likeisAccountStorageActive(),showAddShortcutDialog(), ordeleteAllPasswordManagerData()will break. (17f18ce) - On Android, a site permissions button and toggle have been added to the extensions menu, giving users a direct entry point to manage site access for an extension. (4221f3c) (9510ca7)
Autofill & Payments
-
⚠️ BREAKING
IbanManagerhas been refactored from a per-profileKeyedServiceto a per-tab object. The associatedIbanManagerFactoryhas been deleted, breaking the previous public API for accessing the manager. (9ef7381) -
The
kAutofillFewerTrivialRefillsandAutofillAndPasswordsInSameSurfacefeature flags and related code have been removed, as the features are now stable and enabled by default. (8fb02ab) (5ef709d) (9ec10ed)
Platform-Specific Changes
-
⚠️ BREAKING
In the public iOS
OmniboxFocusDelegateprotocol, theomniboxDidResignFirstResponderdelegate method has been renamed toomniboxDidEndEditing. Implementors of this delegate must update their method name. (178f648) -
The
READ_MEDIA_VIDEOandREAD_MEDIA_IMAGESpermissions were removed from the Android Manifest, as the code paths requiring them were found to be unreachable on modern Android versions. (0939042) - The extensions downloads danger prompt has been enabled on desktop Android, unifying the user experience with other desktop platforms. (f08dfd5)
2026-03-19
Open Standalone PageChromium Digest: 2026-03-19
Overview
This summary covers 699 commits on the main branch from (37f1b6e)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((37f1b6e)) to (1d4c146)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((1d4c146)), with 520 commits identified as relevant to developers. The day was marked by an unusually high number of breaking changes across core APIs, including
content::WebContents, Autofill, GPU interfaces, and the DevTools protocol. A major update to the ICU library also introduces significant behavioral changes to stable web APIs.
Breaking Changes
-
⚠️ BREAKING
A new pure virtual method,
GetTextSelectionBounds, was added to the publiccontent::WebContentsinterface. All classes inheriting fromWebContentsmust now implement this method to compile. (8020df7) -
⚠️ BREAKING
The ICU library was rolled to version 78.2 (Unicode 17/CLDR 48), causing behavioral changes to stable web APIs. This affects timezone formatting (e.g., 'GMT' becomes 'GMT+0'), IDNA processing, and date formats in multiple locales, which may impact web content relying on specific
IntlAPI outputs. (f72d48e) -
⚠️ BREAKING
The public
views::WidgetObserverinterface was modified.OnWidgetUserResizeStartedandOnWidgetUserResizeEndednow require aWidget*parameter, which will cause compilation failures for all existing implementations. (6ba9721) -
⚠️ BREAKING
The
TabOrganizationServiceand its factory have been removed. Any code that previously accessed thisProfileKeyedServicewill fail to compile. (4a44e72) (ae844ac) -
⚠️ BREAKING
The signature for the
AutofillManager::Observer::OnSuggestionsHiddenmethod was changed to include aSuggestionHidingReasonparameter, breaking existing observer implementations. (95237ac) (33c01b8) -
⚠️ BREAKING
Several public APIs in the GPU command buffer client interface were removed. The virtual methods
CanCopySharedImageToGLTextureViaSkiaandCanCopySharedImageToGLTextureViaTextureCopywere removed fromGLES2Interface, andset_low_latency_enabledwas removed fromDrawingBuffer. (eeb6937) (5a7ae68) (ea62d18) -
⚠️ BREAKING
The DevTools protocol was changed: the
isAdRelatedboolean field onDOM.Nodeis replaced with a more detailedadProvenanceobject. Clients of the protocol relying on the old field will break. (f9c4f88) -
⚠️ BREAKING
The ChromeOS display configuration API was refactored. Several
crosapi::mojomtypes were replaced with new C++ types in theash::namespace, changing the public API signature ofash::CrosDisplayConfig::GetDisplayUnitInfoList. (a957de3) -
⚠️ BREAKING
On Android, the public Java interface
ChromeAndroidTaskFeaturewas changed. TheonAddedToTask()method is deprecated and a newonAddedToTask(long nativeBrowserWindowPtr)method was added, representing a behavioral break for embedders. (5648537) -
⚠️ BREAKING
Method signatures in public security interstitial classes (e.g.,
SSLBlockingPage,SSLErrorHandler) were changed to usenet::Errorinstead ofint, breaking embedders who subclass or directly call these methods. (9c67a87) -
⚠️ BREAKING
Multiple public utility functions in
wtf/text/ascii_ctype.hwere renamed (e.g.,IsASCIIUppertoIsAsciiUpper). The old function names were removed, breaking any code that relied on them. (7d97071) -
⚠️ BREAKING
The public mojom interface
on_device_translation::mojom::Translatorwas renamed toOnDeviceTranslator, breaking any client code that uses this interface. (db9cfd4)
Web Platform & Blink
-
The
UnencodedDigestruntime feature flag was removed, making validation of theUnencoded-Digestheader for subresource integrity mandatory. This could break sites that were sending incorrect digests. (402e0ab) -
The
light-dark()CSS function now supports image values, allowing developers to specify different images for light and dark modes. This is gated behind theCSSLightDarkImageexperimental flag. (d4665c3) - Foundational code for the WebXR Mesh API was added, including IDL definitions and Mojo interfaces. The feature is behind a flag. (919794c)
-
A behavioral change was implemented for
image-animation: pausedto freeze the animation on the current frame instead of resetting to the first frame, aligning with the CSS specification. (2cdcd5c) -
The
::expand-iconpseudo-element was implemented for<menuitem>elements that have submenus, allowing developers to style the submenu indicator. (259db83) -
A thread-safety issue with
WordBreakIteratorandSentenceBreakIteratorwas fixed by making them thread-local. This prevents crashes when these are used in Workers via the Proofreader API. (d72e069) -
For the Digital Credentials API, the error returned when a user cancels the flow was changed from
NotSupportedErrorto the more specificNotAllowedError. (f6d8d2e)
UI & UX
- On macOS, the First Run Dialog has been migrated from the native Cocoa UI to the cross-platform Views UI. (5ce0c2b)
-
The public API
BrowserUserEducationInterface::CanShowFeaturePromo()was removed and replaced with an internally-restricted method, breaking external callers. (48c0c42) -
The method signature for
ShowContextMenuin the publictoolbar_ui_api.mojominterface was changed. It now requires agfx.mojom.Rectinstead of agfx.mojom.Point, breaking WebUI implementations that use this API. (4c3a21b) -
On Android, the public Java method
MultiWindowModeStateDispatcher#canEnterMultiWindowMode()was removed. Embedders must update their code for multi-window state management. (dc47bc9) -
The
chrome://updaterpage is now enabled by default, with its feature flag removed. (b84c089) -
A new
TabStripServiceAggregatorwas introduced to allow clients like Tab Search to observe tabs across multiple browser windows. (b76328c)
Autofill & Passwords
-
Several unused
FieldTypeenums related to flight reservations and orders were removed from the public Autofill API (components/autofill/core/browser/field_types.handautofill_private.idl). (73deb77) -
The
DenseSet::max_size()method was changed from a member function to astaticfunction. Code calling this method on an instance (e.g.,my_set.max_size()) will no longer compile. (fd760d0)
Security & Networking
-
A DNS rebinding vulnerability in the DevTools WebSocket handler was fixed. The handler now validates the
Hostheader, which is critical when using--remote-allow-origins=*. (7bdbd07) - Local Network Access (LNA) checks are now enabled by default for WebTransport and WebSockets, enhancing security for local devices by requiring explicit permission for public websites to access them. (53bd4f6)
-
The signature for the content-layer API
StoragePartitionImpl::RevokeNetworkForNoncesInNetworkContextwas changed, breaking callers. (996bdae) - WebUSB control transfer protections were strengthened to block requests targeting protected interface classes like HID or Mass Storage. (89b42d2)
- The WebSocket deflate stream chunk size was increased from 4KB to 32KB, which should improve throughput and reduce CPU usage for large compressed messages. (e0f9987)
-
A new enterprise policy,
SharedWorkerExtendedLifetimeEnabled, was introduced to allow administrators to control the lifetime of SharedWorkers. (d53e73e)
GPU & Media
-
Function signatures in the public
media/base/vector_math.hheader were changed to usebase::spaninstead of raw pointers and sizes. This modernizes the API but will break any code that calls these functions directly. (83d50c7) -
To reduce video stuttering in WebRTC, a new
SharedMediaContextProviderbound to the Media Thread (instead of the main thread) is now used for video scaling. (d1b8e21) - Support was added for parsing IT35 timed metadata tracks in MP4 streams. (f42c791)
- The experimental Symphonia media backend enabled support for PCM and Vorbis codecs. (d190491)
Code Health & Infrastructure
-
A large, multi-part refactoring removed
CookieSourceType::kUnknownfrom test APIs, forcing tests to explicitly declare the cookie source type and improving code safety. (174b8af) (0dd9df5) (866fce1) (35d8544) (d3467fe) -
The ongoing effort to modularize
chrome/browsercontinued, withchrome/browser/renderer_host/being further componentized. (f5c22f4) (0011b0c) - Gperf is now sourced from CIPD on Linux to ensure hermetic builds. (d3a8e1e)
-
Numerous obsolete feature flags were removed, including
kTabOrganization,kDevToolsPrivacyUI,kTPCDAdHeuristicSubframeRequestTagging, andgame-dashboard-gamepad-support. (4a44e72) (fb48516) (4cc4079) (acf3be6)
2026-03-18
Open Standalone PageChromium Digest: 2026-03-18
Overview
This summary covers 577 relevant commits out of 752 total, from (d723889)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((d723889)) to (8758f77)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((8758f77)). The day saw numerous breaking changes to public APIs in core systems, ChromeOS, and graphics, alongside significant behavioral changes to web platform features like URL parsing and pointer events.
Public API & Core Systems
-
⚠️ BREAKING
BREAKING: The
base::spantwo-argument constructor now performs bounds checking by default. This can cause runtimeCHECKfailures in existing code. To retain the old behavior, callers must be updated to explicitly passbase::uncheckedas the first argument. (4aa6967) -
⚠️ BREAKING
BREAKING: The public virtual method
RequestPermissionshas been removed from thecontent::PermissionControllerDelegateinterface. Embedders must remove their overrides and useRequestPermissionsFromCurrentDocumentinstead. (4035ccf) -
⚠️ BREAKING
BREAKING: The
initiator_origin_trial_featuresargument has been removed from the public API methodsThrottlingURLLoader::CreateLoaderAndStartandThrottlingURLLoader::Start. Embedders calling these methods will have build failures. (f37f0b8) -
⚠️ BREAKING
BREAKING: The public virtual method
GetHandleId()has been removed from thecontent::PrerenderHandleinterface. Embedders must migrate to usingGetPrerenderHostId(). (df805b8) -
⚠️ BREAKING
BREAKING: The public method
pin_infobar_controller()has been removed from theBrowserWindowFeaturesclass. Client code must now use the staticPinInfoBarController::From()method. (6d4a020) -
⚠️ BREAKING
BREAKING: Several obsolete feature flags, including
kShortcutsNotApps,kPushMessagingBackgroundMode, andkRemoveSupervisedUsersOnStartup, have been removed fromchrome/common/chrome_features.h. Code referencing these will fail to build. (3151653) -
The
base::ScopedObservationutility has been updated with a new template parameter to help track and fix dangling pointer issues at compile time. (940f2c7) (adc3bcf)
Web Platform & Blink
- ⚠️ BREAKING BREAKING: IDNA 2008 ContextJ rules are now enabled by default, significantly changing how internationalized domain names (IDNs) are parsed. URLs that were previously valid may now be considered invalid, and vice-versa, potentially impacting security and routing. (3ae9984)
-
⚠️ BREAKING
BREAKING: The
SuppressPointerStreamAfterDragfeature is now enabled by default. This alters the standard behavior of pointer events after a drag-and-drop operation, which can break web applications that rely on the previous event stream. (58ccecd) -
⚠️ BREAKING
BREAKING: The error handling for the stable Web-based Payment Handler API has changed. Promise rejections with an
"OperationError"DOMException fromPaymentRequestEvent.respondWithare now treated as an internal error, not a user cancellation. This may break existing payment handlers. (c02af0a) -
The CSS
line-clampproperty behavior has been changed so that floats no longer increase the container's height, aligning with a new CSSWG resolution. (c7d7b3d) -
The
@revertCSS at-rule is now enabled for stable release, allowing authors to revert cascaded properties to the user-agent stylesheet level. (2263d72) -
On Android,
aria-valuetextfor range controls will no longer be mapped to the accessibility node's primary text, correcting a semantic inaccuracy in the accessibility tree. (6bd98e6) -
The element count for WebNN operands is now limited to
INT_MAXto align with implicit backend limits. (0d0cb58)
ChromeOS & Ash
-
⚠️ BREAKING
BREAKING: Numerous ChromeOS-specific preference keys related to End-of-Life (EoL) and device enrollment have been moved from the common header
chrome/common/pref_names.hto the Ash-specificash/constants/ash_pref_names.h. Embedders referencing these from the old location will have their builds broken. (0da2b70) (82aedde) -
⚠️ BREAKING
BREAKING: The public CROSAPI
cros_display_config.mojominterface has been modified. Thecrosapi::mojom::TouchCalibrationtype was removed and replaced with an internal type, breaking clients of this stable interface between Ash and Lacros. (69dad59) -
The dismantling of the
cros_display_config.mojominterface continues, with types likeDisplayLayoutInfoandDisplayConfigPropertiesbeing migrated to internal C++ structs inash. (72935c2) (7f94944) (bf35cd6)
Graphics & GPU
-
⚠️ BREAKING
BREAKING: Bindings for the ANGLE-specific OpenGL functions
glCompressedTexImageRobustANGLEandglDisableExtensionANGLEhave been removed from the publicui/glAPI. Embedders calling these functions directly will experience build failures. (958237a) -
⚠️ BREAKING
BREAKING: The recently added
SharedGpuContext::CreateAsyncmethod has been removed from the public Blink platform headershared_gpu_context.h. Any code that adopted this asynchronous creation path will be broken. (d73e9cd) -
To improve performance, checks for multiplanar texture sampling capabilities are now performed lazily in the
SharedImageManager. (4326118)
Android
-
⚠️ BREAKING
BREAKING: The Screenshot Monitor feature has been completely removed from Android. This includes the deletion of its public Java interfaces (
ScreenshotMonitor.java,ScreenshotMonitorDelegate.java) and all associated implementation. Any code depending on this feature will be broken. (4144a97) -
The
InputConnectionthread priority has been increased toTHREAD_PRIORITY_URGENT_DISPLAYto improve responsiveness to input events. (2be407e) -
The
ViewAndroidDelegatewas updated to use JavaWeakRefmaps instead of C++WeakRefs to avoid exhausting the finite pool of global JNI references. (fe77f31) -
A series of commits moving WebView Navigation APIs out of an experimental state were reverted, restoring the previous API state, including the
SupportLibWebViewNavigationClientAdapter. (3e4f021)
Networking
-
⚠️ BREAKING
BREAKING: The public constant
kDefaultMaxSocketsPerProxyChainhas been removed from thenet/socket/client_socket_pool_manager.hheader. Any code referencing this constant will now fail to compile. (db73207) -
The experimental
WebTransportSendGroupinterface has been added behind a feature flag, allowing for sending a group of streams with a single call. (03ebdaf) - A bug in data URL parsing was fixed to correctly preserve base64 decoding even when the URL contains an invalid MIME type. (148ff94)
Security & Privacy
- A 15-minute throttling window has been introduced for approximate geolocation updates. This mitigates the risk of a site reconstructing a user's precise location from multiple frequent samples. (7d99a69)
- The dialog shown when an extension overrides the default search provider will now display the search engine's URL instead of its name for non-prepopulated engines, making it harder for malicious extensions to spoof reputable providers. (5a827af)
- Atomic cookie deletion via the Chrome DevTools Protocol (CDP) has been restored for trusted clients like DevTools and Playwright, while retaining stricter filtering for less trusted clients like extensions. (8c3121e)
Performance & Memory
-
A new feature,
kDiscardOnCommitLimit, has been added for Windows. When enabled, it allows proactive tab discarding when the system's available commit memory falls below a threshold, aiming to prevent memory-related crashes. (d0cc6f3) - A performance optimization was added to the style recalculation path for pseudo-elements, showing significant gains on several benchmarks. (b629b7f)
Build System & Dependencies
-
The
//third_party/lighttpddependency has been completely removed from the build system. (8fe0e97) -
The
sqlitelibrary was updated to version 3.51.3, which includes fixes for buffer overruns and other issues. (016a5e5) -
The
expatlibrary was rolled forward, incorporating numerous bug fixes and minor feature updates. (703b76e)
2026-03-17
Open Standalone PageChromium Digest: 2026-03-17
Overview
This summary covers 683 commits to the Chromium main branch on March 17, 2026, from
(3233143)... to (e202271).... Of these, 526 were identified as relevant to developers. The day was marked by an unusually high number of breaking changes across core C++, Java, and Mojom APIs, impacting crypto, media, networking, and sync. Significant behavioral changes were also made to stable web APIs like Element.scrollParent and location.ancestorOrigins, requiring web developers to verify their code.
Web Platform & Blink
-
⚠️ BREAKING
Support for creating several non-standard event types with
document.createEvent()has been removed. Calls for types likeAnimationEvent,CloseEvent, andWheelEventwill now throw aNotSupportedError. This aligns with web standards but will break sites relying on the old behavior. (a112e48) -
⚠️ BREAKING
The behavior of
Element.scrollParenton the<body>element has been changed to align with CSSWG specifications. It now returns the document's scrolling element instead ofnull, which could break scripts or layouts that relied on the previous behavior. (90bd81c) -
⚠️ BREAKING
The
location.ancestorOriginsproperty now returns a cachedDOMStringListobject instead of creating a new one on each access. This aligns with spec updates but may break code that expected a new, distinct object on each call. (8ab1ce0) -
⚠️ BREAKING
The public
blink::mojom::StorageAreainterface was updated. Methods likePutandDeletenow take aStorageAreaSourcePtrstruct instead of astd::stringfor thesourceparameter, requiring embedders using this mojom to update their calls. (e431bee) -
⚠️ BREAKING
The serialization of
font-familyin the CSSOM has been reverted to its older behavior by moving theCSSFontFamilySerializationfeature flag back to experimental. This means names with spaces will be quoted again (e.g.,"Times New Roman"), which can break JavaScript that performs string comparisons on this property. (ba9bc2c) (f099307) -
⚠️ BREAKING
The public method
WebURLRequest::SetHttpOriginIfNeededhas been removed from theblink::public::platform::WebURLRequestclass, which will cause compilation failures for any embedder code that was using it. (4852d79) -
A bug was fixed where setting
video.disablePictureInPicture = truefailed to correctly exit an active Picture-in-Picture session. (b6c732e) -
New
overscrollevents are now dispatched with timing similar to scroll snap changes, providing more synchronized feedback for gesture-based navigation. (d8fbafb)
Services, Networking & Security
-
⚠️ BREAKING
The public
syncer::DataTypeSyncBridgeclass now has a new pure virtual method,TrimAllSupportedFieldsFromRemoteSpecifics. Embedders with custom sync bridge implementations will fail to compile until this method is implemented. (a531d36) -
⚠️ BREAKING
The public
crypto/kdf.hAPI has been renamed.DeriveKeyPbkdf2HmacSha1is nowPbkdf2HmacSha1, andDeriveKeyScryptis nowScrypt. Embedders using these key derivation functions will have build failures. (640d483) -
⚠️ BREAKING
The public API for Device-Bound Session Cookies (DBSC) was changed. The method
set_allows_device_bound_session_registrationwas renamed toset_allows_device_bound_sessionsinnet::URLRequestandservices::network::ResourceRequest. (3e700ff) -
⚠️ BREAKING
The public
PrivacySandboxServiceinterface was simplified by removing theGetRequiredPromptTypeandPromptActionOccurredmethods. Embedders calling these methods will have build failures. (a7c87e2) -
⚠️ BREAKING
The
process_idmember in the publiccontent::ServiceWorkerVersionBaseInfostruct was changed fromintto the strongly-typedcontent::ChildProcessId, breaking consumers of this struct. (6e9eb7a) -
A new static method
HttpNoVarySearchData::ParseFromHeaderValue()has been added, allowing more efficient parsing of theNo-Vary-Searchheader without constructing a fullHttpResponseHeadersobject. (cecaa7e) -
A race condition that could cause crashes when a profile was rapidly closed and reopened has been fixed by adding a new synchronization mechanism to
ProfileManager. (052f564) -
The
kSCTAuditingfeature is now permanently enabled on non-Android desktop builds, and its associated feature flag has been removed. (24258bf) - Support for the X25519 key exchange algorithm has been added to the core crypto library. (e5ebc0b)
Core & Public APIs
-
⚠️ BREAKING
The public
content::FrameConnectorinterface was refactored, removing the virtual methodsSetIsInert,OnSetInheritedEffectiveTouchAction,UpdateRenderThrottlingStatus, andUpdateViewportIntersection. Custom implementations must be updated. (9040a39) -
⚠️ BREAKING
Deprecated
int-based overloads forAddandRemovemethods inChildProcessSecurityPolicyImplhave been removed. Callers must now use the strongly-typedChildProcessId. (62ce02f) -
⚠️ BREAKING
Several command-line switches have been removed from the public header
chrome/common/chrome_switches.h, includingkCrashOnHangThreads,kEnableCloudPrintProxy, andkNoServiceAutorun. (08ad5f9)
GPU, Media & Audio
-
⚠️ BREAKING
Legacy methods have been removed from the public
media::AudioDecoderConfigclass, including a constructor, anInitializemethod, andSetChannelsForDiscrete. Code must be updated to use modern constructors that accept aChannelLayoutConfig. (c9acbb5) -
⚠️ BREAKING
The signature for the public
gpu::GLES2Interface::CopySharedImageToGLTextureViaTextureCopymethod has changed, removing the redundantsrc_sizeparameter. All call sites must be updated. (d713cdd) -
⚠️ BREAKING
The
shared_image_swap_chainfield has been removed from the publicgpu::SharedImageCapabilitiesstruct on all non-Windows platforms. Code on macOS, Linux, etc. that references this field will no longer compile. (b800237) -
The media-internals page (
chrome://media-internals) was improved, adding the ability to search for media players by their URL. (ebcf225) (40664a5)
Android & WebView
-
⚠️ BREAKING
The public Java method signature for
DeviceInput.supportsKeyboard()has been changed toDeviceInput.supportsKeyboard(Context context), breaking any code calling the method without the newContextparameter. (077ee52) -
⚠️ BREAKING
In Android WebView, the
PrefetchOperationCallbackinterface has been changed. TheonSuccess()method is deprecated and replaced withonResult(int resultCode). The old method now throws anUnsupportedOperationException. (6505742) -
A new virtual method,
CanResize(), was added to the publicui::BaseWindowinterface on Android, allowing callers to check if a window is resizable. (6f8a29a) - A warning snackbar will now appear if command-line flags are loaded from a file, alerting users to potential instability or malicious configurations. (0092142)
- A race condition in the Tab Bottom Sheet was fixed by ensuring any previously open sheet is closed before a new one is shown. (3599ae6)
iOS
-
A new public
ScreenshotProtectionAPIwas introduced, allowing developers to mark specificUIViews for obfuscation during screen captures. (7c86673) -
The passkey implementation now supports
AbortSignal, allowingnavigator.credentials.get()requests to be cancelled from JavaScript. (b8f3208) (c1096f1) -
The
chrome://safe-browsingWebUI page is now implemented for iOS. (16b41bd)
UI & UX
- Multiple improvements were made to Vertical Tabs, including touch dragging, immersive fullscreen hit-testing corrections, and ensuring the active tab is scrolled into view on session restore. (1bf24c8) (4168494) (733ee18) (fbb38bf)
-
Logic for handling featured search matches (e.g.,
@history) was centralized inOmniboxEditModelto ensure consistent behavior across all UIs. (c15da50) - A regression was fixed where the bookmark bar was not being correctly displayed on custom New Tab Pages. (1c9353d)
-
A new untrusted WebUI has been added for an AI Overlay Dialog at
chrome-untrusted://ai-overlay-dialog. (ae7feab)
Extensions
- A significant performance bottleneck during browser shutdown has been fixed. The process for removing filtered event listeners was optimized to avoid O(N^2) complexity, which could delay shutdown by tens of seconds for extensions with many listeners. (dec6118)
-
A new
ExtensionInstallTimePermissionProviderwas added to allow the Site Settings page to correctly reflect permissions (like geolocation) granted to extensions via their manifest. (7307848) - The TabStrip API's event handling for tab removals was made more reliable, particularly for tabs inside groups. (16a8f4c)
Performance & Optimization
-
The
usb_idsdatabase was optimized by replacing raw character pointers with anIndexPointer. This reduces binary size by ~743KiB and lowers copy-on-write memory usage by eliminating over 560KiB of dynamic relocations. (0475bb4) -
The
PictureLayerImplwas optimized to perform checkerboarding computations in layer space, avoiding unnecessary and potentially expensive scaling operations. (6c977d6) -
Text rendering performance was improved by allowing the shape cache to be used for non-initial
font-feature-settingsand for text nodes that start or end with open/close tags. (f15b91f) (e01b3c6)
Build, Infrastructure & Code Health
-
The
LIFETIME_BOUNDcompiler annotation was added to severalbase/stringsutility functions to help catch use-after-free bugs by ensuring returned string views do not outlive their source string. (95bfd23) -
A new Python script (
tools/git/worktree.py) was added to simplify the process of creating and managing Git worktrees for Chromium development. (ebcffad) -
Ongoing modularization efforts continued, breaking down large
//chromecomponents into smaller, more focused targets like//chrome/browser/wallet,//chrome/browser/tab_contents, and//chrome/browser/external_protocolto improve dependency hygiene. (bb75a48) (1982bfe) (2542f99) (7f8a972) -
The third-party Rust
zipcrate was rolled from version 7.2.0 to 8.2.0. (ea07cca)
2026-03-16
Open Standalone PageChromium Digest: 2026-03-16
Overview
A day with a high volume of breaking changes across core APIs. Out of 548 total commits, 405 were flagged as relevant to developers. The changes span UI, content, media, extensions, and core utilities, requiring significant updates for many embedders. Major refactoring efforts continue in the UI layer with the "Bedrock" project, and several features on Android and iOS have been either removed or fully launched. The day's activity started with commit (4e4b30e) and ended with (44f0d80).
UI & UX
-
⚠️ BREAKING
BREAKING CHANGE: The public method
views::WebView::SetCrashedOverlayViewhas been removed. Embedders must now useTakeCrashedOverlayViewto provide a custom view for a crashed web contents. (cbbb542) -
⚠️ BREAKING
BREAKING CHANGE: The public
ui::PlatformClipboard::IsSelectionOwnermethod has been changed from a synchronous boolean return to an asynchronous callback-based signature. This affects all platform clipboard implementations and requires callers to adapt. (f56f565) -
⚠️ BREAKING
BREAKING CHANGE: The TabStrip mojom API's
OnDataChangedEventis now a union containing a field mask. This allows clients to identify which tab properties have changed but is a non-backwards-compatible change requiring client updates. (e2acfde) - The "Search Resumption Module" feature has been completely removed from Android, including its feature flag, Java classes, and C++ bridge. (4830d98)
- On Android, middle-click support was added to the home button to open the homepage in a new background tab, aligning behavior with desktop. (b9ac297)
- Fixes were implemented for vertical tabs to correct width calculations during pinning/unpinning animations and to ensure activated tabs are scrolled fully into view. (f50be19) (47a5730)
-
The "Bedrock" project continues, with numerous call sites updated to use the
BrowserWindowInterfaceabstraction instead of the concreteBrowserclass. (ba815fd) (4a045d1) (98777b3)
Web Platform, Content & Blink
-
⚠️ BREAKING
BREAKING CHANGE: Public
content::ServiceWorkerContextinterfaces now use the strongly-typedcontent::ChildProcessIdinstead ofint process_id. Embedders must update method signatures inServiceWorkerContextObserverSynchronousandServiceWorkerContextCoreObserver. (1f8433c) (491060e) -
⚠️ BREAKING
BREAKING CHANGE: The
SetStorageAccessApiStatusmethod was removed from the publicblink::mojom::LocalFrameHostmojo interface to fix a race condition. Clients using this IPC will break. (3fe82e5) -
⚠️ BREAKING
BREAKING CHANGE: The public method
String::Truncate()has been removed from Blink's corewtf_string.h. Code must be updated to usesubstr()instead. (adeb097) -
The non-standard
-webkit-search-results-decorationpseudo-element styling was removed from the user-agent stylesheet as it has no effect. (a4ce098) -
On Android, cursor tracking is now enabled for
contenteditableelements, improving the user experience with on-screen keyboards. (e36b350)
Media & GPU
-
⚠️ BREAKING
BREAKING CHANGE: The signature of
media::AudioDecoderConfig::Initializewas changed to useChannelLayoutConfig. The correspondingAudioDecoderConfigmojom struct was also modified, breaking both C++ calls and wire compatibility. (62da318) -
The core
gpu::command_buffer::client::GLES2Interfacewas updated with new virtual methodsCanCopySharedImageDirectlyToGLTexture()andCanCopySharedImageToGLTextureViaSkia(). While they have default implementations, this modifies a key interface for GPU embedders. (fe5ea1e) (2a7f0ca)
Extensions
-
⚠️ BREAKING
BREAKING CHANGE: The signature of
extensions::ServiceWorkerState::Observer::OnWorkerStopwas changed to include theblink::ServiceWorkerToken. Observers of this state must be updated. (2cc7179) -
⚠️ BREAKING
BREAKING CHANGE: The
extensions::DisplayInfoProviderAPI was changed from asynchronous to synchronous.SetDisplayLayoutandGetDisplayLayoutnow return their results directly instead of using callbacks. (a2e1c0b) (7b0fc8f)
ChromeOS & Ash
Autofill & Wallet
-
⚠️ BREAKING
BREAKING CHANGE: The public method
FormFieldData::selected_option()has been removed fromcomponents/autofill. Code must be migrated to useselected_option_text(). (2348edd) -
⚠️ BREAKING
BREAKING CHANGE: Several data model structs (
Passport,DriverLicense,NationalIdentityCard, etc.) have been removed from the public headercomponents/wallet/core/browser/data_models/wallet_pass.h. (e96642c)
Features & Services
-
⚠️ BREAKING
BREAKING CHANGE: The
PrivacySandboxQueueManagerclass and its accessorGetPrivacySandboxNoticeQueueManager()have been removed from the publicPrivacySandboxServiceinterface as part of a notice UI cleanup. (55c649e) -
⚠️ BREAKING
BREAKING CHANGE: The
pdf_infobar_controller()accessor was removed fromBrowserWindowFeatures. Consumers must now use thepdf::infobar::PdfInfoBarController::From(browser)pattern to access the controller. (c12f6fa) - The Device-Bound Session Credentials (DBSC) feature has graduated from its origin trial and is now enabled by default. (ebf37aa)
-
Several features are now enabled by default and have had their feature flags removed, including
StaticStorageQuota,SetDefaultDropEffect, and the iOS "Close Other Tabs" feature. (5ea1a81) (3da57f8) (4059dc3) - The Android-specific "TinkerTank" feature has been deleted from the codebase. (4783f6f)
Core & Infrastructure
-
⚠️ BREAKING
BREAKING CHANGE: The public method
base::PickleIterator::ReadStringPiece16has been removed from the fundamentalbase::Pickleutility due to memory alignment issues. Code should be updated to useReadString16. (9ba8054) -
Security was hardened by adding validation in the browser process to verify that
WindowOpenDispositionvalues sent from the renderer via IPC are legitimate. (4ccc2d9) -
A
CHECKfailure inTransportClientSocketPoolwas fixed. The code no longer assumes thatInit()on an idle socket will not returnERR_IO_PENDING. (9205cf1) - The Public Suffix List was updated to the latest version. (a4dd319)
2026-03-15
Open Standalone PageChromium Digest: 2026-03-15
Overview
This digest covers 8 commits, identifying one major breaking change. The changes include updates to macOS integration, UI enhancements for Vertical Tabs, additions to iOS enterprise features, and various internal test and infrastructure fixes. The breaking change affects embedders on macOS who use the system settings utility functions.
macOS Integration
-
⚠️ BREAKING
Updates system settings wrappers in
base/mac/mac_util.hto support upcoming macOS versions. BREAKING: This change renames and removes several values in the publicbase::mac::SystemSettingsPaneenum. For example,kDateTimeis nowkGeneral_DateTime, andkPrivacySecurity_Pasteboardis replaced bykPrivacySecurity_PasteFromOtherApps. Embedders on macOS usingOpenSystemSettingsPane()must update their code to use the new enum values to avoid compilation errors. (6c38bdc)
UI & UX
iOS
-
Introduces a new factory class,
IOSCloudBinaryUploadServiceFactory, as part of the enterprise cloud content scanning feature set on iOS. (d7a5387)
Experimental Features
- Enhances the experimental Prompt API to reject calls with invalid constraints or prefix conflicts, improving error handling for the underlying AI language model services. (648dcfa)
Infrastructure & Testing
Localization
-
A routine update synchronizes translation files (
.xtb) with the latest strings from the main branch. (524df74)
2026-03-14
Open Standalone PageChromium Digest: 2026-03-14
Overview
This digest covers 69 commits from the Chromium repository, focusing on major breaking changes, new features, and significant bug fixes. Key updates include breaking API changes in the Search Engines and Android UI components, advancements in CSS rendering for Grid and transitions, and continued development of AI-related features in the Omnibox and Page Content Annotation services. Internal refactoring efforts have also improved the modularity of the webapps and Glic build targets.
API Changes & Refactoring
-
⚠️ BREAKING
BREAKING: Renames public methods in the
TemplateURLclass within thecomponents/search_enginescomponent.RequiresDeletionConfirmationis nowRequiresRemovalConfirmationin both C++ and Java, andShouldConfirmDeletionis nowShouldConfirmRemovalin C++. Embedders using these methods must update their code. (ea9f934) -
⚠️ BREAKING
BREAKING: The
ActionConfirmationDialog.show()method on Android has been refactored to use a builder pattern. Instead of accepting a long list of parameters, it now takes a singleConfirmationDialogParamsobject. This is a signature change to a public UI component that will break existing callers. (1e426a2) -
The internal API for Device-Bound Session Credentials (DBSC) has been simplified. The
priorityparameter was removed fromSessionStore::RestoreSessionBindingKeyas part of a larger refactor moving garbage collection logic into theSessionStore. (01c58d5) -
The
chrome::CanSavePage()function has been updated to operate over theBrowserWindowInterfaceinstead of directly usingbrowser_finder.hAPIs. This is part of an ongoing effort to reduce dependencies from//chrome/browser/sharing_hubto//chrome/browser/ui. (3e8881c) -
The
WebUIBubbleDialogViewno longer observes widget closing events directly, simplifying its lifecycle management. This is an internal UI refactoring with no impact on embedders. (d18477d)
Features & Services
- The Page Content Annotations API has been extended to allow consumers to observe results from the on-device category classifier. This is accompanied by a change to validate that the classifier model is only used with the correct embedding model version. (adbe66e) (faa0230)
- On Android, the extensions menu has been updated with native C++ and JNI plumbing to support optional sections, such as reload prompts or host access requests. This lays the groundwork for future UI changes. (7169aed)
- A logical implementation of Document Isolation Policy (DIP) has been added for environments without default SiteInstanceGroups, such as Android WebView. This enables cross-origin isolated capabilities as a short-term solution until SiteInstanceGroups are fully available. (1175447)
- FedCM navigation interception is now permitted for embedder login requests, even if the broader interception feature flag is not enabled. Additionally, the ambient FedCM UI will now use the IdP-claimed login state for accounts. (e1dfa92) (222fae6)
-
Client-side code has been added to support a new Optimization Guide feature,
MODEL_EXECUTION_FEATURE_ANNOTATION_REDUCER_QUERY_CLASSIFIER. (243bb0b)
UI & UX
- A confirmation dialog is now shown on Android before removing a search engine. (b7ada3f) (0694ab8)
- The Android Omnibox (AIM) continues to see development, with changes to build the AIM URL from input state, control new tool/model buttons, and show the current model selection. (d4aa1f2) (cef8547) (f49ad1c) (4cb3667) (44dda5e)
- In Vertical Tabs, the close button is now hidden on inactive tabs until hovered. Additionally, keyboard shortcuts (Cmd/Ctrl+Shift+Arrow) to move tabs to the start/end of the list have been re-enabled. (d8e69d7) (0492460)
- On the New Tab Page, a toast notification has been added to allow users to undo the disabling of action chips. (773ba66) (6409484)
Blink & Rendering
- A behavioral change has been made to CSS Grid layout to align with a CSSWG resolution. Row gaps will now be suppressed across fragmentation breaks, even if a spanning item is present. (bdeb9e7)
-
Bugs in discrete CSS transitions (
CSSTransitionDiscrete) have been fixed, improving behavior for unregistered custom properties and transitions starting from an unset state. (95f88e4) - Selection handle visibility checks have been improved by using the full selection edge for calculations in both Blink and the compositor, which should lead to more reliable handle rendering. (ceeb95d)
Build & Infrastructure
-
Significant refactoring of the
chrome/browser/webappsbuild targets has been completed to create more modular, platform-specific targets and clearer dependency boundaries. (c26595f) (f68a6c0) -
A new ESLint check has been added to the WebUI build process to disallow the use of the legacy
chrome.sendAPI in new Desktop WebUI, enforcing the move to Mojo. (d9c984b) -
The GlicNudge classes have been moved to
//chrome/browser/glic/browser_uito better separate nudge logic from tab strip UI, and their build targets have been refactored. (ee1115b) -
The extensions schema compiler now supports the
nodocattribute on enum values, allowing specific values to be excluded from generated documentation. (f698dba)
Bug Fixes
-
Fixed a memory leak and a potential use-after-free in the Glic
HostManagerby ensuring tab-only hosts are correctly removed when their WebUI handler is destroyed. (811ffd3) -
Corrected a
bad_variant_accesscrash in the PDF Ink signature feature's undo/redo model caused by an incorrect variable reference. (54539cd) - Fixed context lost checks for WebGL query and sync objects. (f7d4fef)
- Disabled the Enhanced Safe Browsing (ESB) migration prompt when Safe Browsing preferences are managed by enterprise policy. (bfa6fc4)
2026-03-13
Open Standalone PageChromium Digest: 2026-03-13
Overview
This digest covers 606 commits on the main branch for March 13th, 2026, with 437 commits identified as relevant to developers. The day was marked by a significant number of breaking changes, most notably a large-scale, multi-part refactoring of the
ui::Clipboard API to be fully asynchronous. Other major breaking changes affected Blink string types, ChromeOS crosapi interfaces, and core service constructors. First commit: (1c93014), Last commit: (9bf8133).
Breaking Changes
-
⚠️ BREAKING
The
ui::Clipboardand its platform backends (Ozone, X11) have been refactored to be fully asynchronous. This includes replacing the synchronousIsFormatAvailablewith an asyncGetAllAvailableFormats, changing thePlatformClipboard::OfferClipboardDatasignature, and removing blocking calls from the X11 backend. These changes will break most embedder and platform implementations. (54777b8) (9dc355d) (e316366) -
⚠️ BREAKING
In a reversal, a previous change to make
ui::PlatformClipboard::IsSelectionOwnerasynchronous was reverted. The method is now synchronous again, breaking any platform implementations that had already updated to the async version. (f80ba53) -
⚠️ BREAKING
Core Blink string APIs have been modified.
blink::String::Remove()is replaced byerase(), andLowerASCII()is replaced byToAsciiLower(). Additionally, several public ASCII utility functions inwtf/text/ascii_ctype.hwere renamed (e.g.,IsASCIIHexDigittoIsAsciiHexDigit). (f2bc5fe) (fcbc3d1) (2d6b0d5) -
⚠️ BREAKING
Several public service and mojom interfaces have new signatures. This includes the
network::mojom::CookieManager(removal of 3PCD methods),content::ServiceWorkerContextObserverSynchronous(new token parameter),federated_auth_request.mojom(parameter refactor), andsessionsclasses (newOSCryptAsync*constructor parameter). (9bf8133) (aa8f4cd) (1be409c) (ac940ff) -
⚠️ BREAKING
The mojo-based
crosapifor display configuration (CrosDisplayConfigControllerandCrosDisplayConfigObserver) has been removed in favor of a pure C++ interface. Additionally, the publicBrowserProcessPlatformPart::GetAccountManagerFactory()method has been removed. (774ba09) (d98a49d) (0563a98) -
⚠️ BREAKING
Signatures for public virtual methods in the rendering stack have changed.
GLES2Interface::CanCopySharedImageToGLTextureViaTextureCopynow takes aClientSharedImage*, andSchedulerStateMachine::SendBeginMainFrameno longer has a default parameter. This will break custom implementations. (62ecbea) (c182a8f) -
⚠️ BREAKING
Other major breaking changes include the removal of observer management methods from the public
TabStripModelAdapterinterface and the removal ofset/getWebViewNavigationClientfrom the public Android WebView API (though later re-added as deprecated). (c9b4d76) (085da41)
Web Platform
-
The CSS
@supports at-rule()feature is now enabled by default, allowing developers to query for support of specific at-rules directly in their CSS. (8480cfa) -
Scaffolding for ML-KEM support has been added to the WebCrypto API. The
encapsulateKey,encapsulateBits,decapsulateKey, anddecapsulateBitsmethods are now present on theSubtleCryptointerface, though not yet fully implemented. (4e0b148) - Runtime feature flags for several stable CSS Anchor Positioning features have been removed now that the features are stable. (eb959bb) (81b2618) (bfa5e4c)
-
The experimental
DelayStopForMediaElementSourceNodefeature was completely removed from WebAudio to fix a heap-use-after-free bug, restoring stricter lifecycle invariants in the audio pipeline. (7020a2c)
Platforms (Android, Ash, Linux)
- Support for SysV init systems has been removed from Chrome Remote Desktop on Linux. The service now relies exclusively on systemd. (cd7f371)
- On Android, support for Entra SSO was enabled by initializing the necessary platform authentication infrastructure. (a389a49)
-
A large number of ChromeOS-exclusive feature flags and switches were migrated from
chrome/commonandchrome/browserintoash/constantsto improve code separation between Chrome and Ash. (c9c745f) (4502e56) (182b610)
Features & Services
-
The
kAutofillEnableLoyaltyCardsFillingfeature was launched and its flag removed, making loyalty card filling functionality enabled by default. (9d45f2f) -
The public
PrerenderHandleandNavigationHandleinterfaces were updated to exposePrerenderHostId, allowing throttles to more easily identify specific prewarm navigations. (dc14e7f) (f09a40e) -
The legacy
PriceTrackingPageActionControllerand its related UI entry points have been completely removed from the codebase. (e34e396)
Build & Code Health
-
The GRIT tool was updated to use multiprocessing during its output phase, which can significantly speed up builds for projects with large
.grdresource files. (d4c945b) -
The ongoing effort to modularize
//chrome/browsercontinues, withsharing_hub,update_client,memory,unified_consent, andrlzbeing moved into their own component build targets to improve dependency hygiene. (563c9a0) (624946b) (15e29f9) (ae443f5) (f68b476) - A new Critical User Journey (CUJ) framework service and its underlying primitives were added to the codebase to track critical user interaction sequences for metrics and analysis. (8ea46c8) (f6ed313) (74c0235)
-
The build system was updated to support the
-fsanitize=returnClang flag to detect functions that exit without returning a value. (99ba1f5) (9357bfb)
2026-03-12
Open Standalone PageChromium Digest: 2026-03-12
Overview
This daily summary for March 12, 2026, covers 692 commits, with 489 identified as relevant to developers. The day was marked by a significant number of breaking API changes across Android, Networking, and core Blink components, requiring embedder attention. Key improvements include performance gains in CSS Grid layout, enhanced security for sandboxed frames, and the stabilization of several features. The first relevant commit was
(156499f) and the last was (115d9a2).
Android
-
⚠️ BREAKING
The build configuration
default_target_sdk_versionis no longer a settable GN argument and has been converted to an internal variable. Build scripts overriding this value will break. (c285b9c) -
⚠️ BREAKING
The public Java classes
SyncPromoControllerandSignInPromohave been removed as part of a feature cleanup. Code using these UI components must be updated. (0db58b8) -
⚠️ BREAKING
The public Java class
MetricsRecorderin the Send Tab to Self feature has been renamed toSendTabToSelfMetricsRecorder, requiring import updates. (be5ed24) -
⚠️ BREAKING
The public Java class
SigninManagerImplhas been moved to theorg.chromium.chrome.browser.signin.servicespackage. Embedders will need to update their import paths. (737d3e3) -
⚠️ BREAKING
The public Java interface
ClickWithMetaStateCallbackhas been changed. The methodonClickWithMetanow requires an additionalbuttonStateparameter. (1f83783) -
A new setting,
SetEmbedderSuppliedCacheForwardEntriesAllowed, has been exposed to Android WebView, allowing embedders to disable caching of forward navigation entries to save memory. (e48fb38) -
Guest view
WebContentswill now correctly inherit the color scheme from their hostWebContents, improving support for OS-level dark and light modes. (a2c0314)
iOS
-
⚠️ BREAKING
In the iOS fullscreen controller, the public enum
FullscreenExitReasonhas been removed andFullscreenModeTransitionReasonhas been renamed toFullscreenModeTransitionTrigger. (7cfecc2) -
The
DownloadTaskinterface now includes aGetWeakPtr()method to help consumers prevent use-after-free errors. (4b39016)
Networking
-
⚠️ BREAKING
The public
HttpStreaminterface has been changed. MethodsGetTotalReceivedBytes()andGetTotalSentBytes()now returnbase::ByteSizeinstead ofint64_t, requiring embedders to update their implementations. (5895f46) -
⚠️ BREAKING
The
net::ClientSocketPool::PreconnectCompletionCallbacksignature has changed. It now receives astd::unique_ptr<ClientSocketHandle>upon successful preconnection. (88f44d9) -
A MIME type mapping for Markdown files (
.mdtotext/markdown) has been added. (ade6ca0) -
The
ServiceWorkerAutoPreloadfeature has been enabled by default after a successful experiment. (d500868)
Blink & Rendering
-
⚠️ BREAKING
Core string manipulation methods in Blink's string classes were renamed for consistency (e.g.,
StringView::CodepointAtis nowCodePointAt, andString::CharacterStartingAtis nowCodePointAtOrZero). Low-level string manipulation code will break. (42dbfc5) -
Performance of CSS Grid layout has been significantly improved by migrating key data structures (
GridTrackCollection,GridLayoutData) to Oilpan, reducing data copying during layout. (a1db64d) - The rendering pipeline is now more robust, as invalid browser controls height values sent to Viz are clamped to a valid range instead of causing an error. (d22dd57)
- Web App Manifest localization is now enabled by default. (0c74d0b)
-
A bug where
inputandchangeevents were not fired for declarative Web Model-View-Controller (WebMCP) tool executions has been fixed. (246e55f)
Services & Components
-
⚠️ BREAKING
The public
FormFieldDatastruct and its correspondingautofill_types.mojominterface were modified to includeselected_option_text. This breaks consumers of this data structure. (95b08b3) -
⚠️ BREAKING
Media playback error handling has changed. A hardware context reset that fails to recover will now surface a
PIPELINE_ERROR_HARDWARE_CONTEXT_RESETerror, which may require updates to application-level error handling. (bbfb0b5) -
⚠️ BREAKING
In the tab restore service, the public member
sessions::tab_restore::Window::typehas been renamed towindow_typeto resolve a name shadowing issue. (4b2975c) -
⚠️ BREAKING
The virtual method
IsPossiblySkippableAdEntryForTesting()has been removed from the publiccontent::NavigationEntryinterface as part of a history intervention refactor. (61ed18a) -
⚠️ BREAKING
The static method
bookmarks::BookmarkNodeData::GetBookmarkFormatType()has been removed. The format type should now be accessed viaui::ClipboardFormatType::BookmarkEntriesType(). (dfec277) -
The
google_apiscomponent now provides new factory methods (CreateAccountNotFound,CreateRequestCanceled) onGoogleServiceAuthErrorfor improved error creation. (1286fb1)
Security & Permissions
-
A browser-side validation check has been added to
RunJavaScriptDialog()to enforce theallow-modalssandbox attribute. This prevents a compromised renderer from showingalert,confirm, orpromptdialogs without permission. (7e25766) -
The
kWebPermissionAPIfeature flag has been removed, as the Web Permissions API (navigator.permissions.query()) is now a stable, long-enabled feature. (b62aea4)
Extensions
-
Extension messaging will now correctly throw an error when a script attempts to send a
SharedArrayBuffer, which is unsupported, instead of silently failing or resolving tonull. (7c8c8fb) -
A large number of internal API tests (e.g., for
nativeMessaging,omnibox,printerProvider) have been migrated from Manifest V2 to Manifest V3. (b2f7a35) (868a121) (4e191e7) (70ea9fa) (c1fb238)
Build System & Infrastructure
-
A large number of JNI bindings have been updated to use the
@JniTypeannotation, improving type safety and enabling build-time checks between Java and C++. (59c8330) (7555add) -
Code modularization continues with many components being moved into their own
BUILD.gntargets to improve dependency management and build structure. (9c845fc) (c132b3d) (3401c7c) -
Local debugging on macOS using the native Apple linker is now easier, as certain linker warnings are suppressed when
use_lld=false. (970efbd)
2026-03-11
Open Standalone PageChromium Digest: 2026-03-11
Overview
This daily summary for March 11, 2026, covers 668 commits, with 511 identified as relevant to developers. Highlights include numerous breaking API removals across core systems, UI, and platform-specific code. Other major changes include the removal of several web-facing APIs, significant security hardening like enabling the network service sandbox on Windows by default, and continued migration of extensions to Manifest V3. The first relevant commit was
(878f494) and the last was (1dd3629).
Breaking Changes
-
⚠️ BREAKING
BREAKING: The signature of the public virtual method
ClientSocketPool::RequestSocketshas changed. The callback parameter is now aPreconnectCompletionCallback(base::OnceCallback<void(bool)>) instead of aCompletionOnceCallback(base::OnceCallback<void(int)>). Embedders implementing or calling this core networking API must update. (ad97a90) -
⚠️ BREAKING
BREAKING: The method signature for
ScrollEndin core input handling interfaces (InputHandler,CompositorDelegateForInput,LayerTreeHostImpl) was changed to pass compensated scroll delta. This is an API break for embedders. (9ec5ed7) -
⚠️ BREAKING
BREAKING: The underlying type of the core
ui::KeyboardCodeenum has been changed, resulting in an ABI-breaking change that will affect embedders linking against Chromium. (e9e9cf3) -
⚠️ BREAKING
BREAKING: The
(const char* data, int size)overload forbase::File::WriteAtCurrentPoshas been made private. Embedders must migrate to thebase::spanoverload. (42d167b) -
⚠️ BREAKING
BREAKING: The signature of the public static method
AutofillSuggestionController::GetOrCreatewas changed to include a newAutofillSuggestionTriggerSourceparameter. (a29ad42) -
⚠️ BREAKING
BREAKING (macOS): The
CHILD_PLUGINhelper process type has been removed. Embedders on macOS relying on this legacy child process type for less strict library validation must migrate to other process types. (12d359c) -
⚠️ BREAKING
BREAKING (ChromeOS): The public function
chrome::ShowAppManagementPage()has been removed from the general-purposechrome_pages.hheader and migrated into the Ash-specificash::SettingsAppManager. Embedders must update their code to use the new manager. (ae02e83) -
⚠️ BREAKING
BREAKING (Android): The public Java class
org.chromium.chrome.browser.sync.TrustedVaultClientwas removed. Downstream code must migrate toorg.chromium.components.trusted_vault.TrustedVaultClient. (1ae80bc) -
⚠️ BREAKING
BREAKING (Android): The deprecated, two-argument
createScreenCaptureIntentmethod was removed from the publicMediaCapturePickerDelegateJava interface. Implementations must now use the three-argument variant. (2d0f192) -
⚠️ BREAKING
BREAKING: Several public APIs have been removed or refactored, including
EnableVideoCaptureServiceSafeMode(),PrivacySandboxActivityTypesService,AccessibilityAnnotationServiceobservers, and theTabSearchContainerandClick to CallUI components. Several App Mode command-line switches were also moved to an internal header. (a252ae8) (44dc583) (77cb6c6) (d43a49d) (47aad4d) (06d9ced)
Web Platform & Blink
-
The
<command>element is now treated as an invalid element during HTML parsing, aligning with the WHATWG specification. It was previously parsed as a special void element in the<head>. (baff9bb) -
The
fireOnEveryPaintoption has been removed from theResizeObserverAPI. This non-standard and little-used option is no longer supported. (e0ce255) -
The
GeolocationSensorAPI has been removed from the codebase, as the specification was discontinued. (f2a0ff6) -
A new
alwaysNegotiateDataChannelsoption was added to the WebRTCRTCConfigurationdictionary, implementing a W3C extension to force SCTP negotiation even if no data channels are created initially. (1fcfe41) -
The behavior of
navigator.storage.estimate()in Incognito mode has been altered to prevent privacy leaks. It will now return values that do not reveal discrepancies in storage capacity, which could have been used to detect Incognito mode. (c48f71d) -
Reader Mode's underlying
Readability.jslibrary was updated to improve content extraction on recipe websites. (5a78e07) -
The
focusgroupcontroller will no longer consumeAlt+Arrowkey events, preventing interference with standard back/forward navigation shortcuts. (2aed26a)
UI & UX
-
The
TabSearchContainerand "auto tab groups" nudge button have been removed from the tab strip, simplifying the UI. (d43a49d) - The "Click to Call" page action icon and its associated feature code have been completely removed from the browser. (47aad4d)
-
⚠️ BREAKING
On Android, the "Following" feed feature and its associated UI (
FeedManagementActivity,FollowManagementActivity) have been removed to simplify the Feed experience. (1f1fda2) -
A new
HitTestCallbackwas added toviews::FrameView, providing a uniform hook for subclasses to customize hit-testing behavior in the non-client area. (7c1ec2a) - Support for multi-promo "SetupList" cards on the New Tab Page has been removed in favor of a simpler single-promo design. (b233318)
- On iOS, support for Dynamic Type was added to the new toolbar and app bar for improved accessibility. (1d48f04)
Security & Privacy
- The network service sandbox is now enabled by default on Windows, a significant security hardening measure that restricts the privileges of the network process. (a0ad012)
-
The
Authorizationheader is now correctly stripped fromfetch()keepalive requests during cross-origin redirects to align with web specifications and prevent credential leakage. (5fb6646) -
The
ChildMemoryConsumerRegistryHostwas hardened with resource limits and validation to improve security against compromised child processes. (13fc6d1) - Permissions policies for the Digital Identity Request API are now enforced in the browser process, not just the renderer, for improved security. (0f622d1)
Autofill & Passwords
-
New methods were exposed on
HTMLOptionElementandHTMLSelectElementto allow Autofill to select options by index, which is more robust for fields with duplicate display values. (118baa7) - Logic for the built-in password store backend was updated to return more actionable errors and notify observers of those errors, improving diagnostics. (242d7c0)
Extensions
-
A large number of extension API tests (for
history,management,context_menus,metricsPrivate, etc.) have been updated from Manifest V2 to Manifest V3, continuing the deprecation effort. (36f2f4c) (c4f4143) (bdbefc8) (35e7b66) (0b8b89d) -
A crash in
ServiceWorkerTaskQueuewas fixed, which could occur when a stale context initialization IPC arrived after an extension was reloaded. (d12bcc8)
Build & Infrastructure
-
The effort to modularize the browser continues, with source code for
page_info,data_sharing,engagement, andperformance_monitorbeing moved into their own GN targets. (f7272c2) (b49f647) (1703de6) (5e70d3b) -
The
abseildependency was rolled, bringing in new utilities likeabsl::SourceLocation. (c34a655) -
Numerous expired feature flags were removed from the codebase, including
enable-service-workers-for-chrome-untrusted,EnableNtpEnterpriseShortcuts, and flags related to Autofill and Password Manager features that have now launched. (2ceeca1) (b2574b0) (e484c32) (b937d39)
2026-03-10
Open Standalone PageChromium Digest: 2026-03-10
Overview
This digest covers 707 commits to the Chromium main branch, with 509 deemed relevant to developers. The changes span from a first commit of
(d31051c) to a last commit of (39de2dc). The day was marked by numerous breaking changes to public C++, Java, and Mojo APIs, alongside new web platform features and significant internal refactoring.
Breaking Changes
- ⚠️ BREAKING The ANGLE D3D9 backend has been removed as a fallback option. If D3D11 initialization fails, Chromium will now fall back to software rasterization (D3D11 WARP). This may affect rendering performance on systems that previously relied on the D3D9 fallback. (282348e)
-
⚠️ BREAKING
The public
AutofillClientinterface has changed.ShowAutofillAiFailureNotificationwas removed and replaced byShowAutofillAiSaveToWalletFailureNotificationandShowAutofillAiFetchFromWalletFailureNotification. Embedders must update their implementations. (b1627f2) -
⚠️ BREAKING
On Android, the public Java method
setKeyboardCaptureEnabled()has been removed fromAconfigFlaggedApiDelegate, which will cause build failures for embedders using it. (4dc7411) -
⚠️ BREAKING
The Android
MediaDrmBridgeJNI methodonSessionClosedand its C++ counterpart now require areasonparameter, breaking the previous API signature for EME implementations. (a2ece5c) -
⚠️ BREAKING
The public
AppBannerManager::Observerinterface was modified by renamingOnComplete()toOnBannerShown(). Observers of the app banner manager must be updated. (241d09a) -
⚠️ BREAKING
The signature for
BrowsingDataQuotaHelper::FetchResultCallbackhas changed. It now takes itsQuotaInfoArrayparameter by value instead of by const reference, requiring updates for code that queries storage quota. (0f27d66) -
⚠️ BREAKING
The
should_show_inactiveboolean field was removed from the publictabs::TabDialogManager::Paramsstruct. The behavior is now determined automatically based on window state. (ddc789c) -
⚠️ BREAKING
On iOS, the virtual method
infobars::InfoBarManager::OpenURLnow includes atext_fragmentparameter. Embedders who subclassInfoBarManagermust update their method signatures. (36d70fc) -
⚠️ BREAKING
On ChromeOS, several methods (
GetPrinters,GetCapability,GetStatus) were removed from thecrosapi::mojom::LocalPrinterinterface, breaking the public API between Ash and Lacros. (ee69dea) -
⚠️ BREAKING
The
structured_metrics_service.mojominterface has been removed fromcrosapion ChromeOS, representing a removal from the public API surface between Ash and Lacros. (0a8a8c8)
Blink & Web Platform
-
Support was added for the new CSS
attr()function grammar (attr(<declaration-value>, <declaration-value>?)), enabling more dynamic styling based on element attributes. (e33187e) - The Direct Sockets API now supports Source-Specific Multicast (SSM), enabling more advanced networking capabilities for isolated web apps. (0302377)
-
The Clipboard API's
clipboard.read()performance has been improved by deferring the reading of clipboard data untilgetType()is called, avoiding expensive upfront data fetching. (216f733) -
The Event Timing API was updated to report the web-exposed
event.target()instead of an internal raw target, providing more reliable performance data to developers. (8fe4d91) -
Several fixes were made to the Popover API, improving focus navigation when an invoker is
inertand preventing focus restoration from incorrectly re-opening a popover. (de66fea) (685c58b) -
A bug in canvas
measureText()was fixed to improve bounding box precision for small font sizes by using float-precision bounds from glyph outlines. (3f9f2e3) -
The experimental
CanvasDrawElementInSubtreefeature was removed, as it was incompatible with a new rendering approach for canvas children. (638a2d9)
ChromeOS
-
⚠️ BREAKING
The
crosapiinterface between Ash and Lacros was changed by removing methods fromcrosapi::mojom::LocalPrinterand removing thestructured_metrics_service.mojominterface entirely. Callers must be updated. (ee69dea) (0a8a8c8) -
The
launcher_search.mojominterface was removed fromcrosapi, and its data structures were replaced with native C++ structs to streamline omnibox search result handling. (a8ba571) -
The
kEnableWebGLImageChromiumcommand-line switch is now restricted to ChromeOS only, as its correctness is not guaranteed on other platforms. (9fccafe)
Android
-
⚠️ BREAKING
Multiple breaking changes were made to public Android APIs. The
setKeyboardCaptureEnabled()method was removed fromAconfigFlaggedApiDelegate, and theMediaDrmBridgeJNI methodonSessionClosednow requires areasonparameter. (4dc7411) (a2ece5c) -
Navigation logic was updated to support creating new tabs with a pre-existing
WebContentsinstance, a change now used by the Chrome Extension Host Delegate. (a4c5f24) - For Send-Tab-To-Self, functionality was added to propagate scroll-to-text fragments from a received entry to the page load request, enabling automatic scrolling upon navigation. (3829c79)
-
A new observer method,
OnHighlightedTabsChanged(), was added to theTabListInterfaceObserverto notify of changes to highlighted tabs. (17d005d)
Services & Components
-
⚠️ BREAKING
The public
AutofillClientinterface was updated to use more specific failure notifications for AI-based Wallet features, replacingShowAutofillAiFailureNotificationwith two new methods. (b1627f2) -
⚠️ BREAKING
The
BrowsingDataQuotaHelper::FetchResultCallbacksignature was changed to take itsQuotaInfoArrayparameter by value, breaking existing implementations. (0f27d66) - The browser process layer for the Prompt API's 'Tool use' feature was implemented, bridging Blink with the On-Device Model Service. (baf5997)
-
To support the upcoming "Buy Now, Pay Later" (BNPL) feature, the Autofill
Suggestionobject was updated to include aTabIndexfor organizing suggestions into tabbed panes. (c4b4f1a) -
A series of commits were made to respect the two-step shutdown of
KeyedService, ensuring services likeShoppingServiceandHistoryClustersServiceunregister their observers fromHistoryServicecorrectly to prevent shutdown crashes. (d2a4301) (f91b877) (c7d1fe6) (b45f34f) -
The Trusted Vault Android bridge was moved from
chrome/into//componentsto improve modularity and code sharing. (d031ef5)
UI & UX
-
⚠️ BREAKING
The
AppBannerManager::Observerinterface was changed by renamingOnComplete()toOnBannerShown(), and theshould_show_inactiveparameter was removed fromTabDialogManager::Params. (241d09a) (ddc789c) - The Side Panel infrastructure was refactored to be more platform-agnostic in preparation for its use on Android. (f1041bd) (70eca5b) (2af1630) (1ddac02)
-
⚠️ BREAKING
On iOS, the
InfoBarManager::OpenURLmethod signature was changed to support scrolling to a text fragment when opening a URL from an infobar. (36d70fc) -
The
ElementTrackerViewsAPI was updated to allow explicit requests for non-visible views, providing more flexibility for UI automation and testing. (c00788d)
Code Health & Infrastructure
-
The
url_param_filterdirectory and its remaining files were deleted, completing the removal of the feature. (6af3e35) -
The
grit.pybuild tool was optimized to skip Python's slow garbage collection on exit, speeding up large resource builds by over a second. (757fea0) -
A new mechanism, behind the
SQLitePersistentCookieStoreEarlyInitfeature flag, allows the cookie store to initialize on a background thread upon creation to reduce latency for initial cookie access. (24ddf87) -
Numerous expired feature flags were cleaned up from the codebase, including
LayoutFlexNewRowAlgorithm. (32b7a9d) (e917aeb) (7d0dc59) (f6e3828)
2026-03-09
Open Standalone PageChromium Digest: 2026-03-09
Overview
This summary covers 373 relevant commits out of 521 total, from (704c022)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((704c022)) to (71c55fc)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((71c55fc)). The day was marked by an exceptionally high number of breaking changes across core APIs, including V8, Blink, Content, and various utility libraries, requiring significant attention from embedders.
Breaking Changes
-
⚠️ BREAKING
V8 API: Older
...V2suffixed functions likeHolderV2(),GetPrototypeV2(), andSetPrototypeV2()have been removed from the public V8 API. Embedders must migrate to the modern, unsuffixed equivalents. (37e0529) -
⚠️ BREAKING
Blink WTF & Platform: The core Blink utility library
wtfsaw several breaking changes.wtf::Vector::AppendRange()was removed in favor ofAppend(), andwtf::PodRedBlackTreelost its publicsize()method andVisitorclass. Additionally,wtf::PodIntervalSearchAdapterwas removed and the signature ofPodIntervalTree::AllOverlapswas changed. (4a0293f) (96feb1a) (39a7e93) -
⚠️ BREAKING
Blink API: The signature of
blink::Path::Applywas changed to usebase::FunctionRefinstead of a C-style function pointer. Separately,blink::WebMenuSourceTypewas removed and fully replaced byui::mojom::MenuSourceType. (2e98bc1) (75a48e0) -
⚠️ BREAKING
Content & Extensions API: The public method
content::RenderProcessHost::IsForInitialWebUI()was removed and replaced withIsForTopChromeWebUI(). In the extensions system, the virtual methodExtensionHostDelegate::CreateTabnow requires aconst GURL& target_urlparameter, forcing subclasses to update. (0747310) (3fc5459) -
⚠️ BREAKING
History Component: A broad refactoring replaced
int64_twith the strongly-typedhistory::ClusterIdfor cluster IDs across the publiccomponents/historyAPI. This is a non-transparent type change requiring migration. (9cb1107) -
⚠️ BREAKING
Base & Metrics API: The
base::Reversedutility now has stricter template constraints which may break some existing usages. Inbase/metrics, the signatures forDeserializeHistogramInfo()andMergeHistogramDeltaToStatisticsRecorder()were changed to require new parameters. (52254e7) (b51c5e3) -
⚠️ BREAKING
Graphics (Ozone): The
native_pixmap_unique_idfield was removed from the publicui::OverlaySurfaceCandidatestruct. Embedders with custom Ozone backends must update their implementations. (1523733) -
⚠️ BREAKING
Networking API: The public struct
network::ConnectionAllowlistwas changed, converting boolean members likeredirection_allowedinto a newRedirectBehaviorenum. This breaks the API contract for consumers. (9d5b5cf) -
⚠️ BREAKING
Android & JNI: The public helper
jni_zero::Cast()has been removed; code must now use theAs()method onScopedJavaLocalRef. Additionally, a revert toCaptioningControlleraltered its public constructor signature. (64f58c3) (3b7cb50) -
⚠️ BREAKING
ChromeOS (Ash): The
ash::VideoConferenceManagerClientinterface was refactored from an asynchronous, callback-based pattern to a synchronous, direct-return pattern, breaking all existing client implementations. (8e40d72)
Blink & Rendering
-
The
SoftNavigationContextis now created based on Event Timing interactions, aligning it more closely with the INP (Interaction to Next Paint) metric. (704c022) -
A new, more efficient
subview()method has been added toblink::Stringandblink::StringViewfor creating non-copying substrings. (05f5906) -
SharedImages created by WebGL will now include the
RASTER_READusage flag, allowing them to be read back via the raster interface. The associated feature flag has been removed. (d01041e) (6b1cab2) -
The public API for ad detection on image resources was refactored, replacing
bool IsAdResource()withconst std::optional<AdProvenance>& GetAdProvenance(). (f0c4f0a) -
A bug was fixed to ensure that modifying
@supportsand@navigationrule conditions via CDP correctly triggers a style recalculation. (af87586)
Networking & Services
-
The
CancelPendingCallbacksBeforeFetchRestartfeature for ServiceWorker is now enabled by default on all platforms, improving reliability during fetch restarts. (2cdd4c4) - Redirect chains are now sanitized when committing error pages, reducing the risk of cross-site information leakage into a renderer process. (4468713)
- Logic for Secure DNS canary domain probing was refactored to be more precise about when probes are initiated. (9cff51a)
Android & iOS
-
Android: Several features were enabled by default, including
ClankDefaultSearchApi,RobustWindowManagementfor multi-window handling, and touchpad overscroll gestures for back/forward navigation on phones. (1b34a92) (87f844d) (232064f) -
Android WebView: The
Profile.setSpeculativeLoadingConfigAPI has been deprecated. (495db07) - iOS: Reader Mode translation is now enabled by default. (b53956f)
-
iOS: A large number of components were modernized to replace the deprecated
UIWindow initwithinitWithWindowScene. (a687976) (a0e9bf8) (80af57f)
Features & UI
-
Passwords: A new delegate,
PasswordChangeFromCheckupDelegate, was introduced to handle password change flows initiated from the Password Checkup page. (3717b70) (0784373) - Cast: The maximum frame size limit for the Cast Receiver was increased from 512KB to 10MB to better support higher-resolution streams. (292c655)
- ChromeOS: As part of a code isolation effort, file manager preferences have been migrated from common prefs to Ash-specific prefs. (c81108e)
-
Feature flags for several shipped features, including the Navigation API and the Android Photo Picker (
READ_MEDIA_*permissions), were removed. (6a4c053) (6c34dea)
Code Health & Infrastructure
-
Developer Experience: The C++ style guide was updated to allow the use of
std::ranges::tofor more modern and concise container conversions. (df05b07) -
Performance: The
HttpUtil::IsTokenCharfunction was optimized using a static table lookup, significantly improving its performance in benchmarks. (9a33438) -
Testing: A new test utility,
content::CrashFrameProcess, has been added tobrowser_test_utils.hto simplify the process of crashing a frame's renderer process in browser tests. (efe7d29) -
Third-party dependencies were updated, including
libpngto v1.6.55,libaom,QUICHE, and several Rust crates. (0c8fd85) (c31a32b) (7da4cf7) -
A new CDP protocol,
WebMCP, was introduced for listing available tools. (18ae39a)
2026-03-08
Open Standalone PageChromium Digest: 2024-10-27
Overview
This digest covers 3 commits, analyzing changes from (4304525)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((4304525)) to (ede9410)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((ede9410)). The analysis focuses on identifying major breaking changes for embedders. No breaking changes were identified in this set of commits, with all modifications pertaining to internal test infrastructure.
Testing
-
Adjustments were made to browser tests for the
Prerender2Fallbackfeature. These changes modify test expectations and remove prefetch matching timeouts in preparation for potentially enabling the feature by default. The modifications are confined to test code and do not affect production behavior. (4304525) (ede9410) - New unit tests have been added to validate UMA metric reporting for the Live Translate feature. A test related to profile preference registration was also removed to resolve unrelated test failures. (84f0d5f)
2026-03-07
Open Standalone PageChromium Digest: 2026-03-07
Overview
This digest covers 80 commits, from commit (01b8595) to (85b4f29). A significant behavioral change was made to how fullscreen mode interacts with iframe navigation. Other notable updates include the re-enabling of the WebNN Origin Trial, the introduction of a Rust-based JPEG parser, and numerous refactorings in Android sign-in, GuestView, and on-device AI APIs.
Web Platform
- ⚠️ BREAKING BREAKING CHANGE: The behavior of fullscreen mode has been altered. Previously, fullscreen would only exit upon navigation of the main frame. Now, it will also exit if a subframe that requested fullscreen (or contains the fullscreen element) performs a cross-document navigation. This change could affect web applications that rely on the previous behavior of iframes navigating without impacting the fullscreen state. (9f026d2)
- The WebNN Origin Trial has been re-enabled for M-147 after progress on security issues. (bd34687)
-
The
AttachShadowAPI now correctly uses the document's custom element registry by default, instead of the tree scope's registry, aligning its behavior with the DOM specification. (b7e068f) -
The Geolocation API now supports an
Approximateaccuracy mode, mapping to a newGEOLOCATION_APPROXIMATEpermission type. (4f11a5e) -
The Direct Sockets API has been updated to allow
MCAST_JOIN_SOURCE_GROUPandMCAST_LEAVE_SOURCE_GROUPsocket options in the network service sandbox, and the separate feature flag for multicast (kMulticastInDirectSockets) has been removed, consolidating it under the mainDirectSocketsfeature. (acf3861) (85b4f29) -
Code related to
ElementInternals.typehas been deleted. This was an experimental feature behind a flag that was never enabled by default. (3ba8c47) -
The
:filteredpseudo-class for customizable comboboxes now uses case-insensitive matching. (43683dd)
Android
-
Significant refactoring continues on the Android sign-in flow to support an "activity-less" sign-in experience, reducing reliance on
SigninAndHistorySyncActivity. (cdab182) (2ae4bf4) (2e1b49e) -
The
AutocompleteControllerin the omnibox has been moved toFuseboxSessionStateto ensure it is always valid when an input session begins, simplifying logic for handling native initialization. (bf18672) -
The unimplemented
clearPrefetchmethod has been removed from Android WebView's internalProfileclass. The public-facing API in the support library is preserved but marked as deprecated to maintain interface compatibility. (2a37e7c) - The logic for tab persistence and restoration has been updated to better handle the active tab, including using a cached active tab ID during the restore process. (cafe98d) (4f559f2) (86f7e09)
- Trusted Web Activities (TWAs) will now display the origin by default. (d5b65d9)
Internals & Refactoring
-
A new public interface,
SurfaceEmbedConnector, has been introduced to allow embedding a childWebContentswithin a parent without a traditional OOPIF connection, intended for WebUI scenarios. (a01932c) (70e95fb) -
Gesture event handling in
GuestViewand its subclasses has been refactored to useSetIgnoreZoomGesturesinstead of overridingPreHandleGestureEvents, simplifying the implementation for disabling pinch-to-zoom. (bc8afa5) -
A new Rust-based JPEG parser has been introduced behind the
kUseRustJpegParserfeature flag, with tests running against both the C++ and Rust implementations to ensure correctness. (7532a03) -
The
beforeunloadlogic has been made more robust by refactoring pending reply tracking to useGlobalRenderFrameHostIdinstead of raw pointers, reducing the risk of use-after-free bugs. (da47bac) -
The
AdTracker'sCalculateIfAdSubresourcemethod has been refactored to return anAdProvenanceobject directly, simplifying ad tracing logic and ensuring provenance is preserved across redirects. (eff3574) -
The
kPwaNavigationCapturingWithScopeExtensionsfeature flag has been removed as the feature is now enabled by default. (a3f9929)
On-Device AI
- Eligibility for on-device model audio input on GPU has been changed from a performance class list to a requirement of at least 6GB of VRAM. (6f3a201)
-
Language support for AI APIs has been refactored. The default supported languages now include Spanish and Japanese, and a new flag,
summarizer-api-for-gemini-nano, has been added. (5f7603d)
UI & UX
- In-Product Help (IPH) and tutorials have been added for the Vertical Tabs feature and the tab search combo button to improve user education and feature discovery. (e05fe9e) (6415828)
- An experimental feature arm that showed a PDF infobar when a PDF was loaded has been removed due to lower-than-expected user interaction. (365d98a)
- A bug has been fixed in the omnibox WebUI that caused it to incorrectly exit keyword mode when a default, non-selectable match was present. (ff7cbb0)
2026-03-06
Open Standalone PageChromium Digest: 2026-03-06
Overview
This daily summary covers 741 commits, with 565 deemed relevant to developers. The changes span from the first commit ((2b3bc52)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((2b3bc52))) to the last ((485e8be)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((485e8be))). The day was marked by a large number of breaking changes to public C++, Mojo, and command-line APIs, requiring significant updates for embedders and implementers of various Chromium interfaces.
Breaking Changes: Core & C++ Interfaces
-
⚠️ BREAKING
base::FileI/O methods are now private and requirebase::span. The public, non-spanifiedbase::File::Readandbase::File::Writeoverloads that take a rawchar*have been made private. Embedders must migrate to the public overloads that usebase::span, which also feature a different return type (std::optional<size_t>instead ofint). (2f6529b) -
⚠️ BREAKING
Multiple interfaces now require implementation of new pure virtual methods. Implementers of
blink::WebMediaPlayermust addShutdown(),NotificationSchedulerClientmust addOnShowNotification(), andDomStorageDatabasemust renameRewriteDB()toCleanUpStaleData(). Builds will fail without these updates. (2f6df87) (6a1607a) (6f9a1f4) -
⚠️ BREAKING
ui::ElementIdentifierand related types are now strongly-typed.ui::ElementIdentifier,ui::CustomElementEventType, andTypedIdentifierOldhave been migrated to a newUniqueIdentifiersystem. Code that relied on the previousvoid*or alias definitions will break and must be updated to use the new strongly-typed identifiers. (3ac974d) (fe6930d) (ed4367a) -
⚠️ BREAKING
The public class
TabRendererDatahas been removed. Clients are now required to use thetabs::TabDatastruct instead to represent a tab's visual state. This is a public API removal that will break any code depending onTabRendererData. (af1897a) (bf0fd12) -
⚠️ BREAKING
The
remoting::SignalStrategypublic interface has been refactored. FTL-specific methods have been moved out of the base class and into a new, dedicatedFtlSignalStrategyclass. Embedders of the remoting component using FTL methods directly fromSignalStrategymust update their code. (f154eb3) -
⚠️ BREAKING
The
DataTypeController::GetPreconditionState()method signature has changed. This pure virtual method in the sync component now requires a new context parameter, breaking all existing subclass implementations. (37a2d3f)
Breaking Changes: Web & Feature APIs
-
⚠️ BREAKING
The
caBLEv1 extension has been removed from the WebAuthn public API. This includes its removal fromAuthenticationExtensionsClientInputsin Blink and theauthenticator.mojominterface. Web applications or embedders using this v1-specific extension will break. (8b50d0e) -
⚠️ BREAKING
The
PageLoadMetricsObserver::OnSoftNavigationUpdatedmethod has been removed. It is replaced byOnSoftNavigation(), which no longer passesmojom::SoftNavigationMetricsas an argument. Observers must now retrieve this data via thePageLoadMetricsObserverDelegate, breaking existing implementations. (a431cb8) -
⚠️ BREAKING
The
Audits.checkContrastcommand has been removed from the DevTools protocol. Any automation or tooling that relies on this command for programmatic accessibility contrast checks will break. (f0f700c) -
⚠️ BREAKING
The callback type for
FederatedEmbedderLoginRequesthas changed. The callback incontent/public/browser/webid/federated_embedder_login_request.his now abase::OnceCallbackinstead ofbase::RepeatingCallback, requiring updates for FedCM embedders. (2d27c87) -
⚠️ BREAKING
Several public utility methods and command-line switches have been removed. This includes
ExtensionTabUtil::OpenOptionsPageFromAPI, the--launch-isolatedswitch (replaced by registry settings on Windows), and the--disable-webgl-image-chromiumswitch. (1567ebe) (03a70ad) (8854092)
Breaking Changes: Platform Specific
-
⚠️ BREAKING
The
media_message_center::NotificationThemestruct andSetColorThememethod have been removed from Ash. Embedders relying on this method to theme media notifications must migrate to theMediaColorThemesystem. (3037e41) -
⚠️ BREAKING
The
crosapi::mojom::SearchResultConsumerinterface has been removed. This breaks the public API contract between Chrome and ChromeOS for clients that used this Mojo interface for asynchronous favicon updates in launcher search results. (6e0cbba) -
⚠️ BREAKING
The public
contentViewmethod has been removed fromios/web/public/web_state.h. This is a public API removal for iOS embedders, who must find an alternative way to access the web content view. (b7e91a5) -
⚠️ BREAKING
The Mirroring Service and
cast_unittestsare no longer built for Android. This is a significant change for any Android build configurations that depended on these components. Note: This change was temporarily reverted due to build failures. (f041e4f) (c2bb3f3)
Web Platform & Media
-
The
border-shapeCSS property is now enabled by default, allowing developers to create non-rectangular borders on elements. (e8744fa) - A new job type was added to allow WebSocket connections to reuse existing QUIC sessions, enabling WebSocket over HTTP/3 and improving connection performance. (9c623b4)
-
Support for
iterationComposite: accumulatehas been implemented for CSS transforms, allowing animations to build upon each other. (d72cf81) -
Static
<video controls>elements are now treated as replaced normal-flow stacking elements to fix painting order issues with surrounding content. (86b497d) - Logic has been added to generate origins from nonces for sandboxed iframes in both the browser and renderer processes. (8fcb4c3) (4b16c54)
UI & UX
- The Vertical Tabs feature received several improvements, including better accessibility for reordering, preventing scrollbars during animations, and enabling tab activation on link drag hover. (fa9ee99) (b37372c) (22d54ca)
-
The
cr-searchboxPolymer component was refactored to extract the input field into a new<cr-searchbox-input>LitElement, improving modularity in WebUI. (aa79bce) - The bookmarks overflow menu will now remain open after an item is deleted, improving user workflow. (a324040)
- The WebUI for the deprecated Auto Tab Groups (ATG) feature has been removed. (549edd6)
Platform Specific
-
Android: Autoplay logic was updated to better align with desktop by supporting
AutoplayAllowlistandAutoplayAllowedenterprise policies, gated by new feature flags. (1aef470) - Android: The PDF viewer toolbar received new zoom controls and other layout updates. (fe18251) (4c45a93)
-
Android: The
SyncPromoControllerandSigninPromocomponents were removed following the UNO phase 2 launch. (d8ff434) -
iOS: A significant effort was made to deprecate the use of
initWithFramein tests in favor ofinitWithWindowSceneto align with modern iOS SDKs. (2ed8655) (a53b8e0) (39f02fa) - iOS: Network error translation was improved to correctly handle nested errors introduced in recent iOS versions. (4a62a8c)
Code Health & Infrastructure
-
An initial Rust implementation of
ChildProcessSecurityPolicywas introduced. It will run in parallel with or replace the C++ version, controlled by a feature flag, as part of a memory safety initiative. (5440cf2) - A new embedder API was added to the Back-Forward Cache to allow disabling the caching of forward navigation entries. (e2a6aae)
-
The
DiceResponseParamsstructure was refactored to support multiple accounts, in preparation for the upcoming Connected Accounts flow. (740a888) (2f4419c) - A potential out-of-memory crash in the History Embeddings component was fixed by adding a size check before decompressing gzip data. (3dcee0a)
- Scaffolding and infrastructure were added for new AI-powered features, including a new AI Taxonomy API and the "Finds" project, which will use an LLM API. (4f13048) (0fb9b77)
2026-03-05
Open Standalone PageChromium Digest: 2026-03-05
Overview
A day marked by numerous breaking API changes and significant refactoring efforts across the codebase, particularly in the
base library, networking stack, and platform-specific components. Out of 724 total commits, 544 were deemed relevant to developers. The day's changes began with commit (9fa596c) and concluded with (605a489). A high number of reverts indicates some recent instability on the main branch.
Breaking Changes
-
⚠️ BREAKING
net::NetworkDelegate: A new pure virtual method,ShouldForceIgnoreSiteForCookies, has been added to the publicnet::NetworkDelegateinterface. Embedders who subclass this interface must implement the new method to avoid compilation failures. (9e66171) -
⚠️ BREAKING
net::CertVerifyResult: The public fieldhas_sha1has been removed from thenet::CertVerifyResultstruct as part of the final removal of SHA-1 support. Code relying on this field for certificate verification logic will no longer compile. (70a730f) -
⚠️ BREAKING
baseLibrary: Thebaselibrary saw multiple breaking changes.base::AvailablePhysicalMemoryMonitorwas renamed tobase::AvailableMemoryMonitor, and the non-std::spanoverload ofbase::File::ReadAtCurrentPoswas made private, requiring callers to migrate to the span-based version. (0ed195d) (3b61a3b) -
⚠️ BREAKING
Blink & Web Platform: The public Blink API has been modified. The
Node::textContentForBinding()method signature was changed, theWebFetchClientSettingsObjectstruct was altered to use a nested policy container, and theDownSampler::Processmethod was updated to usebase::spaninstead of raw pointers. (ccebd1f) (f0e69bf) (9e96b7c) -
⚠️ BREAKING
Extensions: The
chrome.tabs.update()API will now throw an error when an extension attempts to un-highlight the last selected tab, a change from its previous silent failure. Additionally, the internalExtensionWebUIclass has been renamed toExtensionUrlOverrides. (ebae198) (10f8396) -
⚠️ BREAKING
Android: Multiple core UI classes have had their public constructors changed, including
TabModel(adds aCustomTabProfileTypeparameter) andContextMenuDialog(adds arootViewparameter). The obsolete JNI bridge for History Clusters (history_clusters_bridge.h) has also been removed. (78cc547) (9ec8807) (55b5ef7) -
⚠️ BREAKING
iOS: The public
web::WebStateDelegateinterface was modified, renamingAuthCallbacktoHTTPAuthCallbackand updating theOnAuthRequiredmethod. Separately, theAssistantContainerDelegatemethoddidUpdateHeight:was replaced withdidUpdateExpandPercentage:. (81fa4a6) (4537527) -
⚠️ BREAKING
ChromeOS: A major refactoring of the print preview dialog has resulted in the removal of several public classes and interfaces, including
PrintPreviewWebcontentsManager,PrintPreviewCrosClient, andPrintPreviewCrosDelegate. (1397320) -
⚠️ BREAKING
Enterprise: The
require_metadata_verdictfield has been removed from the publicContentAnalysisRequestprotobuf message inconnectors.proto, which will break enterprise connectors relying on this field. (0cb8117) -
⚠️ BREAKING
Remoting: The public
SignalStrategy::Listenerinterface was changed by replacing theOnSignalStrategyIncomingMessagemethod withOnSignalStrategyIncomingFtlMessage, which has a different signature. (bbbcf8a) - ⚠️ BREAKING Build System: A large-scale refactoring of the JNI generation system has changed the public dependencies of numerous core build targets. This may break embedder build configurations that rely on the previous dependency graph. (f1caee7)
Web Platform & Blink
- The Web Crypto API is now more robust with the implementation of the ChaCha20-Poly1305 algorithm. Its algorithm lookup now also uses ASCII case-insensitive matching. (38ea0fe) (1e6da5e)
-
New CSS features have been added: the
path-lengthproperty to correspond with the SVGpathLengthattribute, and support for sharingrandom()values in custom property animations. (ddb3a52) (e02815d) -
Event Timing now supports
navigate,popstate, andhashchangeevents, exposed behind the newNavigationEventTimingfeature flag. (c6a49e3) -
The JS Self-Profiling API is now enabled for Dedicated Workers when allowed by the document's
Permissions-Policy. (1f9a5a2) - The WebAudio API is now more resilient, gracefully handling out-of-memory conditions during audio decoding instead of crashing the renderer. (f434b48)
-
On macOS, the accessibility role for the
<br>tag has been changed fromgrouptostatictextto prevent VoiceOver from announcing it as an empty group. (dfe2472)
Security & Enterprise
-
The
IncognitoModeUrlBlocklistandIncognitoModeUrlAllowlistenterprise policies have been launched to stable. (de0b2fd) -
To prevent administrators from accidentally blocking internal pages, an exception for the
chrome://scheme is now automatically added when a wildcard (*) is used in theURLBlocklistpolicy. (b7792df) - Security has been hardened by adding bounds checking in the browser process for Tar and Xz archive extraction to prevent integer overflows from malformed archives. (2f05465)
- A new permission model for motion and light sensors has been introduced behind a feature flag, adding an "ask" option to the existing "allow/block" model. (008a9c7)
Core & Infrastructure
-
A new utility,
base::reinterpret_span<T>(), has been added for safely reinterpreting byte spans. (9a040b8) -
A use-after-free bug in
base::OnceCallbackListhas been fixed, which could occur whenNotify()was called re-entrantly. (36acd49) -
To reduce IPC serialization overhead, the
MemoryConsumeridentification mechanism was refactored to use an integer hash instead of a string. (d8eb846) -
A new metric,
Platform.MicrocodeVersion, has been added to track CPU microcode versions on Linux systems. (076774b)
Android
-
The
chrome.commands.onCommandextension event now includes thetabsargument, improving parity with desktop platforms. (11f9011) - A new Picture-in-Picture (PiP) media indicator has been added to the tab UI, making it easier for users to identify which tab is in PiP mode. (fa2887a)
-
A new feature flag,
FullscreenVideoPictureInPicture, was added to control the new PiP behavior for fullscreen videos. (2f38ce8)
iOS
Developer Tools
Reverts & Stability
-
A breaking change to the
PageLoadMetricsObserverinterface, which modified theOnSoftNavigationmethod, was quickly reverted due to test failures. (7e5b07f) (3a124a1) -
A performance improvement for
TabModellookup on Android was reverted due to crashes, though a revised version was later relanded. (9e3a430) (2e435b3) -
A change to the
BookmarkContextMenuwas reverted due to a hang on X11. (b6c8047)
2026-03-04
Open Standalone PageChromium Digest: 2026-03-04
Overview
This digest covers 712 commits on the main branch from (5ce3994)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((5ce3994)) to (91ea801)" target="_blank" rel="noopener noreferrer" class="text-sky-500 hover:text-sky-300 font-mono">((91ea801)), with 527 deemed relevant to developers. The day saw a large number of breaking API changes across core UI, content, and base libraries, alongside the graduation of several features and significant refactoring in Android JNI management and Autofill.
Breaking Changes
-
⚠️ BREAKING
The public API
ui::Clipboard::GetStandardFormatswas changed from a synchronous function to an asynchronous one that takes a callback. Embedders calling or overriding this method must update their implementation to the new asynchronous signature. (14c828a) -
⚠️ BREAKING
The virtual method
CreateURLLoaderHandlerForServiceWorkerNavigationPreloadon the publiccontent::ContentBrowserClientinterface was renamed. Embedders overriding this method must update to the new name:CreateURLLoaderHandlerForServiceWorkerInitiatedNavigationRequest. (66509a9) -
⚠️ BREAKING
The default behavior of the public API
WebContents::IgnoreInputEventshas changed. It now ignores accessibility input events by default, which may break embedders relying on the previous behavior for accessibility features. (c208fa7) -
⚠️ BREAKING
The FedCM API has been refactored. The public class
FederatedActorLoginRequestwas removed and replaced bycontent::webid::FederatedEmbedderLoginRequest. Thecontent::webid::IdentityCredentialSourceinterface was also changed. Embedders using this flow must update their code. (5c44bb8) -
⚠️ BREAKING
The public class
chrome::IsolatedBrowserfor Windows has been removed. It is replaced by a new free function,chrome::LaunchIsolatedBrowser, which returns abase::Processinstead of an object. Consumers of the old class-based API must migrate. (18f98f7) -
⚠️ BREAKING
The deprecated
Pickle::WriteBytes(const void* data, size_t length)andPickle::WriteDatamethods have been removed frombase/pickle.h. Code must be updated to use thespan-based overloads. (18a2af4) (4fda9b2) -
⚠️ BREAKING
Public helper functions in
jni_zero.hhave been renamed. The lvalue version ofCast()is nowCastDup(), and the template parameter order for the rvalueCast()is swapped. This will break code directly using these JNI helpers. (b79b840) -
⚠️ BREAKING
The web-exposed
pseudoTargetDOM attribute has been moved fromMouseEvent,FocusEvent, etc., to their parent interface,UIEvent. This is a breaking change for web content that interacts with these event objects. (9b1025c)
Web Platform & Blink
-
The CSS
contrast-color()function is now enabled by default and shipping. (c103765) -
The
CSSPseudoElementinterface and theevent.pseudoTargetattribute are now enabled by default, making them available to all web content. (27d3b7f) -
The behavior of the CSS
allshorthand property has been fixed to correctly reset all applicable properties as per the specification, affecting bothsetProperty()andgetPropertyValue(). (dba0609) -
The Cronet networking library now supports "Adaptive Bidirectional Streams", a transparent enhancement to the
createBidirectionalStreammethod for handling adaptive network logic. (a118e80) -
A bug was fixed in the on-device Web Speech API where
install()would hang for Gemini Nano models due to a missing listener. (968c900) - The scroll predictor was refactored to better separate real and synthetic predictions, aiming to prevent reversals and improve smoothness. (3b36543) (7495d3a)
Services & Core Internals
-
Several components were modularized into their own directories to improve code structure, including
//chrome/browser/history_embeddings,//chrome/browser/language_detection, and//components/enterprise/data_protection/. (96bf15c) (7a1edc2) (12ae470) (8f94e41) -
The
UpdateClientpublic interface in the Component Updater now includes aCleanupStaleDownloadsmethod to perform best-effort cleanup of old temporary files at startup. (b095a1b) -
A new enterprise policy,
ExtensionDOMActivityLoggingEnabled, was added to control telemetry collection for extension DOM activity. (20089d3) -
Logic was added to parse
redirectandwebrtcparameters from theConnection-AllowlistHTTP header, which will be used to control those features on a per-document basis. (0881a55) -
Significant refactoring occurred in Autofill, including improving address normalization, implementing fixed-length obfuscation for sensitive AI data, and moving
AutofillFormatStringto a separate file. (4f47e99) (e284e30) (b634e65) -
The foundation for Safe JNI Pointers was introduced by adding core marker interfaces like
JniTypeTokenandJniPtrtojni_zero. (871d151)
Android
-
To improve scalability and reduce JNI global reference usage,
InfoBarContainer,SmartSelectionClient, andWebContentsDelegateAndroidwere refactored to locate their Java peers via the associatedWebContentsorTabinstead of holding persistent global references. (7f1d1c0) (b8740ec) (624f025) -
A new JNI method,
PasteFromImageBytes, has been added toImeAdapterto allow for more efficient pasting of images from raw byte data, bypassing URL encoding/decoding. (85c4f95) - Send Tab to Self was enhanced to propagate the user's scroll position by generating and attaching a text fragment to the shared tab entry. (04f26ef)
-
Nesting support was added to
AnchoredPopupWindow, allowing popups to be displayed from within other popups. (7e9738a) -
Several critical reverts were landed to fix crashes and stability issues in Android WebView related to
AwContentscontext tracking andActivityWindowAndroidconstructors. (e23b4c7) (ffa30de) (1c03342)
Desktop & UI/UX
-
WebUI-based back and forward buttons were added behind the
kWebUIBackButtonfeature flag. (ad1ed8f) - The vertical tab strip received visual improvements, including a higher contrast outline for pinned tabs in dark mode and opacity animations for adding/removing tabs. (bc90d82) (fc40d95)
- A bug in Mac's immersive mode was fixed, preventing extra space from appearing when switching to vertical tabs. (452a371)
- The PWA migration dialog will now re-appear if a user cancels the uninstall process, preventing the app from closing unexpectedly. (2f92070)
iOS
Feature Removals & Graduations
- The "Tab Declutter" feature and its associated UI have been completely removed from the codebase. (5bbd8d1)
-
The
kEnableLazyLoadImageForInvisiblePagefeature was enabled by default, allowing images withloading=lazyto be deferred even when the page is not visible. The flag has been removed. (02e5ec9) (3ce18ba) - The Feed has been removed from the New Tab Page on Android desktop form factors as part of the NTP Simplification effort. (aa6fff3)
-
Several feature flags were removed, graduating their features to default behavior, including
kSendTabToSelfIOSPushNotifications,AnimateSuggestionsListAppearancefor omnibox, andGlicFreWarming. (6274346) (b153fad) (ac5f288)
Developer Tools
- The DevTools Context selection agent, which allows developers to select an execution context (e.g., top frame, iframe), has been enabled by default. (ab1b459)
2026-03-03
Open Standalone PageChromium Digest: 2026-03-03
Overview
This summary covers 339 commits on the main branch, with 247 identified as relevant to developers. The changes span from commit
(7d231e6) to (d17b81a) and include a significant number of breaking API changes across ChromeOS, media, networking, and core browser interfaces.
Breaking Changes
-
⚠️ BREAKING
CrosDisplayConfig API: The mojo interface
crosapi::mojom::CrosDisplayConfigControllerand its observercrosapi::mojom::CrosDisplayConfigObserverhave been replaced with the pure C++ interfacesash::CrosDisplayConfigandash::CrosDisplayConfig::Observer. Clients like LaCrOS must update to the new C++ API. (27f97b7) (49287a5) -
⚠️ BREAKING
User Session Observer: The public observer method
UserManager::UserSessionStateObserver::UserAddedToSessionhas been removed. Embedders must migrate tosession_manager::SessionManagerObserver::OnSessionCreated()to listen for new users. (59bbf63) -
⚠️ BREAKING
Web Audio Provider: The signature of the public virtual method
WebAudioSourceProvider::ProvideInputhas been changed. Embedders implementing this interface must update their method to usebase::spaninstead ofstd::vector. (54421a1) -
⚠️ BREAKING
Viz BufferQueue API: The
viz::BufferQueuepublic API has been refactored.SwapBuffersSkippedwas removed, andSwapBuffersno longer accepts a damage rect. Embedders must now call the newUpdateBufferDamagemethod separately beforeSwapBuffers. (f7de62a) -
⚠️ BREAKING
Media Mojo Interface: The
media.mojom.SharedMemoryVideoFrameDatainterface has been modified. Thestridesfield is nowuint32instead ofint32, and support for the interleaved IMC4 pixel format was removed. Mojo clients using this interface require updates. (d0a80fe) -
⚠️ BREAKING
Certificate Verification: The
VERIFY_ENABLE_SHA1_LOCAL_ANCHORSflag has been removed from the publicnet::CertVerifyProc::VerifyFlagsenum. This enforces stricter SHA-1 validation, and code using this flag will no longer compile. (0533a59) -
⚠️ BREAKING
Chrome Apps API: The
chrome.browserAPI has been removed for non-ChromeOS platforms (Windows, Mac, Linux), breaking any remaining extensions that use it as part of the ongoing deprecation. (d1392f5) -
⚠️ BREAKING
Browser UI Component: The public class
glic::GlicLegacySidePanelCoordinatorand its accessorglic_side_panel_coordinator()have been removed from theBrowserWindowFeaturesinterface. (402018e) -
⚠️ BREAKING
Web Performance API Behavior: The behavior of the web-exposed
SoftNavigationEntryandInteractionContentfulPaintperformance APIs has changed. The calculation forstartTimeanddurationhas been altered, which can break web performance monitoring tools that rely on the previous values. (b736e30)
API & Core Interfaces
Web Platform & Blink
-
Animation support has been added for
contrast-color()within thebox-shadowproperty. (b365c44) -
A bug has been fixed where animating a pseudo-element to
display:nonewould incorrectly remove it from the DOM. (521bc13) -
For improved code health and safety,
blink::Vector::AppendSpan()andAppendVector()have been removed in favor ofappend_range(), and a newString::substrmethod with stricter bounds checking was added. (3c83e99) (8532aed) (49db258)
ChromeOS & Ash
-
To improve OS/browser separation, numerous ChromeOS-specific preferences (Kiosk, factory reset, essential search, etc.) have been moved from
chrome/common/pref_names.hto the Ash-specificash/constants/ash_pref_names.h. (83edd08) (d998a3b) (b7c1d9d) (eb9f998) -
The
PrintPreviewHandlerChromeOSwas refactored to useCupsPrintersManagerobservers directly, simplifying its architecture. (9dc14b1)
Security
Networking & Storage
- For Service Workers, an optimization was added to bypass the synthetic response path when a navigation is intercepted by an embedder. (3c79032)
- The SQL disk cache received a fix for a double-decrement bug during entry eviction and a simplification of its pending task tracking logic. (c463655) (3691420)
UI & Features
Page 1 of 2