Chrome 149 beta

Xuất bản: Ngày 6 tháng 5 năm 2026

Trừ phi có ghi chú khác, các thay đổi sau đây áp dụng cho bản phát hành mới nhất của kênh Chrome beta cho Android, ChromeOS, Linux, macOS và Windows. Tìm hiểu thêm về các tính năng được liệt kê tại đây thông qua các đường liên kết được cung cấp hoặc trong danh sách trên ChromeStatus.com. Chrome đang ở giai đoạn thử nghiệm beta kể từ ngày 6 tháng 5 năm 2026. Bạn có thể tải phiên bản mới nhất xuống trên Google.com cho máy tính hoặc trên Cửa hàng Google Play trên Android.

CSS và giao diện người dùng

Xoá quy tắc biểu định kiểu UA về màu đường viền rõ ràng cho bảng

Thay đổi này sẽ xoá quy tắc CSS border-color: gray bị lỗi khỏi biểu định kiểu UA cho phần tử <table>.

Quy cách HTML không chứa quy tắc này và quy tắc này khiến các đường viền không mặc định thành currentColor một cách không chính xác. Cả Firefox và Webkit đều không có quy tắc màu đường viền gray này trong biểu định kiểu UA của chúng, dẫn đến các vấn đề về khả năng tương tác.

Hỗ trợ path()shape() trong shape-outside

Thêm chức năng hỗ trợ cho các hàm hình dạng path()shape() trong thuộc tính shape-outside của CSS. Các hàm này cho phép nhà phát triển xác định các hình loại trừ nổi bằng cách sử dụng toạ độ hình chữ nhật.

Hỗ trợ rect()xywh() trong shape-outside

Thêm tính năng hỗ trợ cho các hàm hình dạng cơ bản rect()xywh() trong thuộc tính CSS shape-outside. Các hàm này cho phép nhà phát triển xác định các hình loại trừ số thực bằng cách sử dụng toạ độ hình chữ nhật, giúp Chrome phù hợp với Firefox và Safari (vốn đã hỗ trợ tính năng này).

Màu nhấn hệ thống trong phạm vi ứng dụng web

Hạn chế quyền truy cập vào màu nhấn của hệ thống đối với các từ khoá CSS và accent-color: auto chỉ trong một ứng dụng web và bối cảnh hồ sơ ban đầu.

Các từ khoá CSS AccentColorAccentColorText tạo thành một vectơ tạo dấu vân tay quan trọng khi hiển thị rộng rãi màu hệ thống của người dùng trên web. Do đó, các API này chỉ có trong ngữ cảnh ứng dụng web đã cài đặt. Các chế độ kiểm soát biểu mẫu có accent-color: auto cũng khớp với phạm vi này khi tính năng này ra mắt. Điều này giúp nhà phát triển và người dùng có kỳ vọng nhất quán hơn về màu sắc hệ thống, đồng thời tuân thủ các quy định hạn chế về việc nhận dạng bằng vân tay đối với AccentColor[Text].

Cắt văn bản bị tràn khi có lượt tương tác của người dùng

Khi người dùng tương tác (chỉnh sửa hoặc điều hướng bằng con nháy) với văn bản có text-overflow: ellipsis được đặt, văn bản sẽ tạm thời chuyển từ dấu ba chấm sang đoạn văn bản cho phép người dùng xem và tương tác với nội dung bị tràn ẩn. Tính năng này áp dụng cho tất cả các phần tử có thể chỉnh sửa và không thể chỉnh sửa. Đối với các chế độ điều khiển biểu mẫu (textarea, input), hành vi này đã được hỗ trợ.

Khoảng trống trang trí CSS

CSS gap decorations (phần trang trí khoảng trống CSS) cho phép bạn tạo kiểu cho khoảng trống trong bố cục vùng chứa như lưới và flexbox, tương tự như column-rule trong bố cục nhiều cột. Tính năng này được các nhà phát triển web yêu cầu rất nhiều. Họ phải sử dụng các giải pháp tạm thời để tạo kiểu cho khoảng trống trong bố cục lưới và bố cục hộp linh hoạt hiện nay.

image-rendering: crisp-edges

image-rendering: crisp-edges cho biết hình ảnh phải được điều chỉnh tỷ lệ theo cách duy trì độ tương phản và các cạnh, đồng thời tránh làm mịn màu hoặc làm mờ hình ảnh trong quá trình này.

Ranh giới lớp trên cùng của lớp giả hành động người dùng

Tính năng này thể hiện hành vi được mô tả trong quy cách Bộ chọn CSS cấp 4, trong đó nêu rõ rằng :hover, :active:focus-within khớp với phần tử mẹ của các phần tử, nhưng chỉ khớp với phần tử lớp trên cùng đầu tiên trong chuỗi phần tử mẹ. Thay đổi đối với Chromium sẽ triển khai hạn chế này cho các phần tử lớp trên cùng.

Cụ thể, điều này có nghĩa là trong cấu trúc sau, nếu người dùng di chuột qua <button>, thì lớp giả :hover sẽ khớp với <button> và cửa sổ bật lên, nhưng sẽ không khớp với phần tử <main>.

<main>
  <div popover>
    <button></button>
  </div>
</main>
<script>document.querySelector('[popover]').showPopover();</script>

Lý do cho sự thay đổi này là vì thông thường, các phần tử lớp trên cùng được kết xuất "ở nơi khác", tại một vị trí không kết nối với phần tử gốc một cách trực quan. Vì vậy, thường không có ý nghĩa gì khi thay đổi kiểu của phần tử mẹ khi phần tử lớp trên cùng được di chuột hoặc kích hoạt, chẳng hạn.

Chế độ triển khai có thể tuỳ chỉnh được vận chuyển trong Chromium có logic này được mã hoá cứng cho trường hợp cụ thể của cửa sổ bật lên chọn ::picker(). Logic trường hợp đặc biệt đó sẽ bị xoá để thay thế bằng hành vi chung hơn của tính năng này.

Hỗ trợ path-length dưới dạng một thuộc tính CSS

Thay đổi này giới thiệu một thuộc tính CSS mới, path-length, ánh xạ đến thuộc tính trình bày pathLength SVG hiện có. Thuộc tính này áp dụng cho các phần tử hình học SVG hỗ trợ pathLength (bao gồm <path>, <circle>, <rect>, <line>, <polyline>, <polygon><ellipse>).

Việc hiển thị pathLength dưới dạng một thuộc tính CSS cho phép tác giả chỉ định thuộc tính này trong biểu định kiểu, kiểu nội tuyến và ảnh động, cho phép thuộc tính này tham gia vào việc xếp tầng, độ đặc hiệu, hiệu ứng chuyển đổi và ảnh động CSS thông thường. Thuộc tính này ảnh hưởng đến tất cả các phép tính phụ thuộc vào tổng độ dài đường dẫn, bao gồm cả việc kết xuất nét đứt và định vị văn bản dọc theo <textPath>.

Các khai báo CSS sẽ ghi đè thuộc tính trình bày theo các quy tắc ưu tiên CSS tiêu chuẩn. Giá trị ban đầu của path-lengthnone, biểu thị việc không có độ dài lộ trình do tác giả cung cấp và khác với giá trị số rõ ràng như 0.

Hành vi chỉ có thuộc tính hiện tại sẽ được giữ nguyên khi tính năng này bị tắt.

Web API

Intl.Locale.prototype.variants

Thêm Intl.Locale.prototype.variants như nêu trong đề xuất TC39 và cũng chấp nhận "các biến thể" trong gói tuỳ chọn trong hàm khởi tạo Intl.Locale như trong bản cập nhật mã ngôn ngữ TC39. Các thay đổi đối với ECMA402 được hợp nhất trong yêu cầu kéo 960 và mã kiểm thử trong test262 được hợp nhất trong yêu cầu kéo 4474

Lời hứa cuộn có lập trình

Hiện tại, các nhà phát triển web không có cách nào để biết thời điểm một thao tác cuộn mượt có lập trình đã hoàn tất. Tính năng này cung cấp một giải pháp cho vấn đề: làm cho các phương thức cuộn theo chương trình trả về các đối tượng Promise được phân giải khi hoàn tất thao tác cuộn với trạng thái gián đoạn.

Yêu cầu thanh toán: cho phép trình xử lý thanh toán báo cáo lại các lỗi nội bộ

Cho phép các trình xử lý thanh toán được truy cập bằng Payment Request API trả về các lỗi riêng biệt cho "người dùng huỷ" so với "lỗi ứng dụng thanh toán nội bộ". Điều này cho phép nhà phát triển web xây dựng các flow tốt hơn cho người dùng, chẳng hạn như bằng cách thử lại hoặc quay lại một flow khác khi xảy ra lỗi ứng dụng nội bộ, đồng thời dừng đúng flow nếu người dùng muốn huỷ.

API Trình xử lý thanh toán dựa trên web có thể cho biết sự khác biệt này dựa trên lỗi mà họ dùng để từ chối lời hứa được truyền đến PaymentRequestEvent.respondWith. Nếu lời hứa bị từ chối bằng một OperationError, thì "lỗi ứng dụng nội bộ" (OperationError) sẽ được trả về cho người bán bằng phương thức PaymentRequest.show(), nếu không, "người dùng huỷ" (AbortError) sẽ được trả về.

Cơ sở hạ tầng trình xử lý thanh toán của ứng dụng gốc cũng được cập nhật tương tự, nhưng nằm ngoài phạm vi của các API web.

Tuân thủ autocorrect="off" cho bàn phím cảm ứng Windows trong TSF

Thuộc tính autocorrect của HTML cho phép tác giả web kiểm soát việc có nên áp dụng tính năng tự động sửa lỗi cho hoạt động đầu vào của người dùng trong các phần tử có thể chỉnh sửa hay không, bao gồm cả <input>, <textarea> và các máy chủ có thể chỉnh sửa nội dung. Trên Windows, bàn phím cảm ứng sẽ bỏ qua thuộc tính này và luôn tự động sửa lỗi chính tả cho các từ. Ví dụ: việc nhập "truf" rồi nhấn phím cách trong một phần tử có autocorrect="off" sẽ tạo ra "true " thay vì giữ lại "truf ". Tính năng này giúp chế độ tích hợp TSF của Chrome phát hiện và hoàn nguyên các lỗi tự động sửa của bàn phím cảm ứng khi phần tử có thể chỉnh sửa được lấy tiêu điểm có autocorrect="off" được đặt.

Ngắt kết nối WebSocket khi vào bfcache

Các kết nối WebSocket đang hoạt động sẽ không còn ngăn trang chuyển sang Bộ nhớ đệm cho thao tác tiến/lùi (bfcache). Bằng cách đóng các kết nối khi nhập bfcache thay vì đánh dấu tài liệu là không đủ điều kiện, trình duyệt cho phép lưu trữ và khôi phục các trang có websocket đang hoạt động.

Thuộc tính Request.isReloadNavigation

Thêm thuộc tính boolean chỉ đọc isReloadNavigation vào giao diện Request của Fetch API. Thuộc tính này cho biết liệu yêu cầu điều hướng hiện tại có được bắt đầu dưới dạng một lệnh tải lại do người dùng kích hoạt hay không (ví dụ: sử dụng nút làm mới, location.reload() hoặc history.go(0)). Tín hiệu này chủ yếu được hiển thị trên đối tượng Yêu cầu trong FetchEvent của Service Worker.

Tắt bộ lọc SVG trên các trình bổ trợ, iframe có nguồn gốc khác và iframe bị hạn chế

Việc ra mắt này ngăn các bộ lọc SVG được áp dụng cho các iframe bị hạn chế hoặc trên nhiều nguồn gốc (ví dụ: iframe được hộp cát) và các trình bổ trợ được nhúng (ví dụ: pdf). Khi một khung hình hoặc trình bổ trợ được vẽ bằng hiệu ứng bộ lọc SVG, cây hiệu ứng sẽ được duyệt qua để tìm tổ tiên cao nhất mà không có bộ lọc SVG, sau đó hiệu ứng đó sẽ được áp dụng.

Bản dùng thử theo nguyên gốc mới

Trong Chrome 149, bạn có thể chọn tham gia các thử nghiệm nguồn gốc mới sau đây.

Chính sách về quyền: focus-without-user-activation

Cho phép bên nhúng kiểm soát tiêu điểm có lập trình từ nội dung được nhúng bằng chính sách về quyền focus-without-user-activation. Khi chính sách bị từ chối đối với một khung hình, các lệnh gọi tiêu điểm có lập trình (element.focus(), autofocus, window.focus(), dialog.showModal() và tiêu điểm cửa sổ bật lên) sẽ bị chặn trừ phi do người dùng kích hoạt. Tiêu điểm do người dùng khởi tạo (chẳng hạn như nhấp hoặc nhấn phím tab) sẽ không bao giờ bị ảnh hưởng.

Bạn có thể đặt chính sách này bằng cách sử dụng tiêu đề phản hồi HTTP Permissions-Policy hoặc thuộc tính allow của iframe. Tính năng uỷ quyền tiêu điểm được hỗ trợ: một khung mẹ có tiêu điểm có thể truyền tiêu điểm theo phương thức lập trình đến một iframe con, ngay cả khi khung con bị từ chối chính sách. Sau khi có tiêu điểm, khung có thể di chuyển tiêu điểm trong cây con của chính nó.

API đầu vào dựa trên sự kiện của tay cầm chơi game

Đề xuất này mở rộng Gamepad API bằng một mô hình mới dựa trên sự kiện, cho phép các ứng dụng nhận dữ liệu đầu vào từ tay cầm chơi game với độ trễ thấp hơn. Thay vì dựa vào việc thăm dò thường xuyên bằng navigator.getGamepads(), giờ đây, nhà phát triển có thể theo dõi sự kiện rawgamepadinputchange. Sự kiện này sẽ kích hoạt bất cứ khi nào có dữ liệu đầu vào mới từ thiết bị. Điều này cho phép xử lý dữ liệu đầu vào linh hoạt hơn, đặc biệt là trong các ứng dụng nhạy cảm với độ trễ.

Các đối tượng mô tả tuỳ chỉnh WebAssembly

Cho phép WebAssembly lưu trữ dữ liệu được liên kết với các loại cấp nguồn hiệu quả hơn trong các đối tượng trình mô tả tuỳ chỉnh mới. Bạn có thể định cấu hình các bộ mô tả tuỳ chỉnh này bằng các nguyên mẫu cho các đối tượng WebAssembly thuộc loại cấp nguồn đó. Điều này cho phép các phương thức được cài đặt trên chuỗi nguyên mẫu của đối tượng WebAssembly và được gọi trực tiếp từ JavaScript bằng cách sử dụng cú pháp lệnh gọi phương thức thông thường. Bạn có thể định cấu hình các nguyên mẫu và phương thức một cách khai báo bằng cách sử dụng một hàm tích hợp được nhập.