Download 149.0.7827.55 from the Chrome Stable for macOS
Download Google Chrome 149.0.7827.55 with the branch, platform, release date, and file size shown clearly on the same page.
What users usually want to know first
What changed in Chrome 149.0.7827.55
Google Chrome 149.0.7827.55 is available here as part of the macOS Stable archive. Use this release page when you want the exact version, the current package details, and quick access to the correct installer.
Stable release date: June 2nd, 2026
Unless otherwise noted, the following changes apply to Chrome 149 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
CSS and UI
CSS gap decorations
CSS gap decorations let you style gaps in container layouts like grid and flexbox, similar to column-rule in multiple-column layout. This feature is highly requested by web developers who must use hacks to style the gaps in grid and flexbox layouts today.
It brings new CSS properties like column-rule-inset, row-rule-inset, column-rule-visibility-items, and row-rule-visibility-items, and supports animation of rule width, color, and insets.
Related technical references: CSS gap decorations blog post · ChromeStatus.com entry · Spec
Clip text overflow on user interaction
When a user interacts (for example, by editing or using caret navigation) with text that has text-overflow: ellipsis set, the text temporarily switches from ellipsis to clip. This lets the user see and interact with the hidden overflow content. This feature applies to all editable and non-editable elements. For form controls, such as <textarea> and <input>, this behavior is already supported.
Related technical references: ChromeStatus.com entry · Spec
Remove explicit border color UA stylesheet rule for tables
This change removes the erroneous border-color: gray CSS rule from the UA stylesheet for the <table> element. The HTML specification does not contain this rule, and it prevented borders from defaulting to currentColor. Neither Firefox nor WebKit have this gray border color rule in their UA stylesheet, leading to interoperability issues.
Related technical references: ChromeStatus.com entry · Spec
Support path() and shape() in shape-outside
Adds support for the path() and shape() shape functions in the CSS shape-outside property. These functions let developers define float exclusion shapes more flexibly and support animation.
Related technical references: ChromeStatus.com entry · Spec
Support rect() and xywh() in shape-outside
Adds support for the rect() and xywh() basic shape functions in the CSS shape-outside property. These functions let developers define float exclusion shapes using rectangle coordinates, aligning Chrome with Firefox and Safari which already support this feature.
Related technical references: ChromeStatus.com entry · Spec
User action pseudo-class top layer boundary
Changes :hover, :active, and :focus-within matching on parents of elements to match only up to the first top layer element in the parent chain. Since top layer elements are typically rendered disconnected from their parent chain visually, it does not make sense to change parent styles when a top layer element is hovered or activated.
Related technical references: ChromeStatus.com entry · Spec
Web app scope system accent color
Restricts access to the system accent color for CSS keywords (AccentColor and AccentColorText) and accent-color: auto to be only within a web app and initial profile context. This limits a significant fingerprinting vector when exposing the user's system colors widely on the web.
Related technical references: ChromeStatus.com entry · Spec
image-rendering: crisp-edges
image-rendering: crisp-edges indicates that image should be scaled in a way that preserves contrast and edges, and which avoids smoothing colors or introducing blur to the image in the process.
Chrome, Firefox, and Safari treat crisp-edges and pixelated as synonyms and implement both using nearest-neighbor scaling.
Related technical references: ChromeStatus.com entry · Spec
Support 'path-length' as a CSS property
Introduces a new CSS property, path-length, which maps to the SVG pathLength presentation attribute. This applies to SVG geometry elements that support pathLength (including <path>, <circle>, <rect>, <line>, <polyline>, <polygon>, and <ellipse>), allowing authors to specify it in stylesheets, inline styles, and animations.
Related technical references: ChromeStatus.com entry · Spec
Web APIs
Intl.Locale.prototype.variants
Adds Intl.Locale.prototype.variants as stated in the ECMA-402 specification, and accepts variants in the options bag in the Intl.Locale constructor.
Related technical references: ChromeStatus.com entry · Spec
Payment Request: Allow payment handlers to report back internal errors
Lets payment handlers accessed using the Payment Request API return distinct errors for "user cancelled" (AbortError) versus "internal payment app error" (OperationError). This lets developers retry or fall back to a different flow when an internal app error occurs, while properly stopping if the user cancels.
Related technical references: ChromeStatus.com entry · Spec
Respect autocorrect="off" for Windows touch keyboard in TSF
Makes Chrome's TSF integration detect and revert touch keyboard autocorrections on Windows when the focused editable element has autocorrect="off" set.
Related technical references: ChromeStatus.com entry · Spec
Selective Clipboard Format Read
Enhances the Asynchronous Clipboard API by deferring actual clipboard data retrieval from the OS until the web application calls getType(). Instead of eagerly fetching all available formats at read() time, the browser now returns ClipboardItem objects with available MIME types but without the underlying data, which reduces CPU usage and improves responsiveness.
Related technical references: ChromeStatus.com entry · Spec
Network and connectivity
Disconnect WebSockets on bfcache entry
Active WebSocket connections no longer prevent a page from entering the Back/Forward Cache (bfcache). By closing connections on bfcache entry instead of marking the document as ineligible, the browser allows pages with active WebSockets to be stored and restored.
Related technical references: ChromeStatus.com entry · Spec
New origin trials
Gamepad event-driven input API
Extends the Gamepad API with a new event-driven model that lets applications receive gamepad input with lower latency. Instead of relying on frequent polling using navigator.getGamepads(), developers can now listen for a rawgamepadinputchange event, which fires whenever new input data is available from the device.
Related technical references: Origin Trial · ChromeStatus.com entry · Spec
Permissions Policy: focus-without-user-activation
Lets embedders control programmatic focus from embedded content with the focus-without-user-activation permissions policy. When the policy is denied for a frame, programmatic focus calls (element.focus(), autofocus, window.focus(), dialog.showModal(), and popover focusing) are blocked unless triggered by user activation.
Related technical references: Origin Trial · ChromeStatus.com entry · Spec
WebAssembly custom descriptors
Lets WebAssembly store data associated with source-level types more efficiently in new "custom descriptor" objects. These custom descriptors can be configured with prototypes for the WebAssembly objects of that source-level type, which lets methods be installed on a WebAssembly object's prototype chain and called directly from JavaScript using normal method call syntax.
Related technical references: Origin Trial · ChromeStatus.com entry · Spec
Official source: Chrome 149 Release Notes
Installation notes
After downloading the package, confirm that the branch and platform match your device before launching the installer or extracting the archive. If you only need a standard everyday browser, Stable is usually the safest choice. If you are testing new behavior, Beta, Dev, and Canary are better fits.
Related release pages
For newer or older builds in the same branch, open the category archive linked above. For different platforms, use the related desktop archives in the sidebar.
Frequently asked questions
These FAQ blocks help the page read like a complete release article instead of a download stub, which is better for trust and better for SEO.
Should I use this release or stay on Stable?
If you just want the safest everyday browsing experience, Stable is usually the right default. Preview branches are better for testing, compatibility checks, and early feature access.
Why show exact version numbers so prominently?
Because exact-version queries are common in English search behavior, especially for QA teams, enterprise users, and people trying to reproduce a bug or environment.
Why keep a full article around the download buttons?
A stronger page body gives users context and gives Google clearer signals about what the release page actually covers.
Where should older releases live?
Older versions belong in the category archive page, with this article template handling exact-version landing pages one release at a time.