Chrome 136 beta

Ngày phát hành: 3 tháng 4 năm 2025

Trừ khi có ghi chú khác, các thay đổi sau đây sẽ áp dụng cho bản phát hành mới nhất của kênh beta Chrome dành 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 136 là phiên bản thử nghiệm kể từ ngày 3 tháng 4 năm 2025. Bạn có thể tải phiên bản mới nhất xuống từ Google.com dành cho máy tính hoặc từ Cửa hàng Google Play trên Android.

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

Bản phát hành này bổ sung 6 tính năng mới về giao diện người dùng và CSS.

Thuộc tính dynamic-range-limit của CSS

Cho phép một trang giới hạn độ sáng tối đa của nội dung HDR.

Bỏ qua khoảng cách giữa các chữ cái trong chữ viết tay xoáy

Tính năng này thêm logic để bỏ qua chế độ cài đặt khoảng cách chữ cái cho phông chữ viết tay, ngay cả khi nhà phát triển chỉ định theo thông số kỹ thuật, để đảm bảo khoảng cách chữ cái không ngắt từ.

Để loại bỏ việc rò rỉ nhật ký duyệt web của người dùng, các phần tử neo chỉ được tạo kiểu là :visited nếu trước đó người dùng đã nhấp vào các phần tử đó từ trang web cấp cao nhất và nguồn khung này.

Bằng cách chỉ định kiểu cho các đường liên kết đã được nhấp vào trên trang web và khung này trước đó, nhiều cuộc tấn công kênh bên đã được phát triển để lấy thông tin định kiểu đường liên kết :visited hiện đã lỗi thời. Các cookie này không còn cung cấp cho trang web thông tin mới về người dùng nữa.

Tìm hiểu thêm về những điểm cải tiến này đối với quyền riêng tư của đường liên kết :visited.

Đổi tên loại string attr() thành raw-string

Nhóm làm việc về CSS đã quyết định thay thế loại string attr() bằng raw-string.

Do đó, Chrome đã thay đổi cú pháp attr() để attr(data-foo string) hiện là attr(data-foo raw-string).

Phương thức dự phòng var() không phụ thuộc vào loại

Phần dự phòng của hàm var() không xác thực theo loại thuộc tính tuỳ chỉnh đang được tham chiếu.

print-color-adjust chưa có tiền tố

Thuộc tính print-color-adjust cho phép bạn điều chỉnh màu sắc trong các trang web được in. Tên này giống với -webkit-print-color-adjust đã được Chrome hỗ trợ, nhưng có tên được chuẩn hoá. Phiên bản có tiền tố -webkit sẽ không bị xoá.

API web

Trạng thái bị gián đoạn của AudioContext

Thêm trạng thái "interrupted" vào AudioContextState. Trạng thái mới này cho phép UA tạm dừng phát trong các trường hợp này và cho phép các ứng dụng web phản hồi một cách thích hợp.

Phân vùng URL blob: Tìm nạp/Điều hướng

Tiếp nối tính năng Phân vùng bộ nhớ, tính năng này triển khai việc phân vùng quyền truy cập URL Blob theo Khoá bộ nhớ (trang web cấp cao nhất, nguồn gốc khung và boolean có-đầu-tiên-trên-nhiều-trang-web), ngoại trừ các thao tác điều hướng cấp cao nhất sẽ chỉ được phân vùng theo nguồn gốc khung. Hành vi này tương tự như hành vi mà cả Firefox và Safari hiện đang triển khai, đồng thời điều chỉnh việc sử dụng URL Blob với lược đồ phân vùng mà các API bộ nhớ khác sử dụng trong quá trình Phân vùng bộ nhớ.

Ngoài ra, noopener hiện được thực thi trên các thao tác điều hướng cấp cao nhất do trình kết xuất khởi tạo đến URL Blob, trong đó trang web tương ứng nằm trên trang web khác với trang web cấp cao nhất thực hiện thao tác điều hướng. Điều này giúp Chrome phù hợp với hành vi tương tự trong Safari và các thông số kỹ thuật liên quan đã được cập nhật để phản ánh những thay đổi này.

Ngăn xếp lệnh gọi trong báo cáo sự cố từ các trang web không phản hồi

Tính năng này ghi lại ngăn xếp lệnh gọi JavaScript khi một trang web không phản hồi do mã JavaScript chạy một vòng lặp vô hạn hoặc một phép tính rất dài khác. Điều này giúp nhà phát triển xác định nguyên nhân khiến ứng dụng không phản hồi. Ngăn xếp lệnh gọi JavaScript được đưa vào API báo cáo sự cố khi lý do là không phản hồi.

API Kiểm soát giao diện đã chụp

Captured Surface Control API (API Kiểm soát bề mặt đã chụp) cho phép các ứng dụng Web chuyển tiếp các sự kiện xoay bánh xe đến một thẻ đã chụp, đồng thời đọc và thay đổi mức thu phóng của thẻ đã chụp.

CapturedSurfaceResolution

Hiển thị tỷ lệ pixel của nền tảng được chụp trong khi chia sẻ màn hình. Tính năng này sẽ giúp các ứng dụng tiết kiệm tài nguyên hệ thống hoặc điều chỉnh chất lượng và băng thông theo độ phân giải thực và logic của nền tảng được chụp.

Điều phối sự kiện nhấp chuột đến con trỏ đã chụp

Nếu một con trỏ được chụp trong khi sự kiện pointerup đang được gửi, thì sự kiện click sẽ được gửi đến mục tiêu đã chụp thay vì mục tiêu gốc chung gần nhất của sự kiện pointerdownpointerup theo thông số kỹ thuật của Sự kiện trên giao diện người dùng. Đối với các con trỏ chưa được chụp, mục tiêu click sẽ không thay đổi.

Gợi ý biên dịch rõ ràng bằng nhận xét ma thuật

Cho phép đính kèm thông tin về những hàm cần được phân tích cú pháp và biên dịch trong các tệp JavaScript. Thông tin này sẽ được mã hoá dưới dạng chú thích ma thuật.

Nội dung cập nhật về FedCM: Hỗ trợ nhiều IdP, xoá tính năng "thêm tài khoản khác" ở chế độ thụ động

Với bản cập nhật này, FedCM có thể hiển thị nhiều nhà cung cấp danh tính trong cùng một hộp thoại. Điều này giúp nhà phát triển có một cách thuận tiện để trình bày tất cả các nhà cung cấp dịch vụ danh tính được hỗ trợ cho người dùng. Trước tiên, chúng tôi dự định giải quyết trường hợp đơn giản là tất cả nhà cung cấp đều nằm trong cùng một lệnh gọi get(). Chúng tôi cũng sẽ ngừng hỗ trợ tính năng "thêm tài khoản khác" ở chế độ thụ động của FedCM. Tính năng này cho phép hiển thị nút "sử dụng tài khoản khác" cùng với các tài khoản IdP khác trong bộ chọn. Tính năng này hiện không được sử dụng và các cuộc trò chuyện về trải nghiệm người dùng đã khiến chúng tôi tin rằng việc hỗ trợ tính năng này sẽ dẫn đến một luồng phức tạp hơn mà không mang lại nhiều lợi ích. Tính năng này sẽ vẫn hoạt động ở chế độ FedCM đang hoạt động.

Thanh cuộn Fluent.

Tính năng này hiện đại hoá thanh cuộn của Chrome (cả lớp phủ và không phải lớp phủ) trên Windows và Linux để phù hợp với ngôn ngữ thiết kế Fluent của Windows 11. Theo mặc định, thanh cuộn Fluent không phủ sẽ được bật trong Linux và Windows. Thay đổi này cũng áp dụng cho Linux vì thiết kế thanh cuộn Linux của Chrome trước đây đã được điều chỉnh cho phù hợp với thiết kế trên Windows.

Hỗ trợ bộ mã hoá và giải mã H265 (HEVC) trong WebRTC

Kể từ Chrome 136, HEVC sẽ cùng với VP8, H.264, VP9 và AV1 trở thành các bộ mã hoá và giải mã được hỗ trợ trong WebRTC. Bạn có thể truy vấn tính năng hỗ trợ bằng API MediaCapabilities.

Bộ mã hoá và giải mã mới này đã tăng hiệu suất nén (chất lượng cao hơn trên mỗi tốc độ bit) so với các bộ mã hoá và giải mã thế hệ cũ như VP8 và H264, đồng thời hỗ trợ phần cứng rất mạnh mẽ trong hơn một thập kỷ qua. Điều này giúp tăng thời lượng pin và giảm nguy cơ gặp vấn đề về hiệu suất. Ngoài ra, tuỳ thuộc vào hiệu suất của bộ mã hoá phần cứng cơ bản, việc này thường sẽ cải thiện trải nghiệm hình ảnh trong trường hợp không có bộ mã hoá VP9 hoặc AV1 phần cứng.

Nội dung cập nhật về tính năng hỗ trợ bộ mã hoá và giải mã H26x cho MediaRecorder

MediaRecorder API hiện hỗ trợ mã hoá HEVC, giới thiệu chuỗi bộ mã hoá và giải mã hvc1.* và thêm các bộ mã hoá và giải mã mới (hev1.*avc3.*) hỗ trợ video có độ phân giải biến thiên trong MP4. Thêm tính năng hỗ trợ mã hoá nền tảng HEVC trong WebCodecs trong Chrome 130. Tiếp theo, chúng tôi đã thêm tính năng hỗ trợ vào MediaRecorder API trong Chromium. API hiện hỗ trợ cả loại trình kết hợp MP4 và Matroska với nhiều thông số kỹ thuật về loại MIME HEVC và H.264. Tính năng mã hoá HEVC chỉ được hỗ trợ nếu thiết bị và hệ điều hành của người dùng cung cấp các chức năng cần thiết.

Ghi nhật ký và báo cáo địa chỉ IP trong Chrome Enterprise

Chrome Enterprise đang tăng cường khả năng giám sát bảo mật và phản hồi sự cố bằng cách thu thập và báo cáo địa chỉ IP cục bộ và từ xa, đồng thời gửi các địa chỉ IP đó đến Nhật ký điều tra bảo mật (SIT). Ngoài ra, Chrome Enterprise sẽ cho phép quản trị viên tuỳ ý gửi địa chỉ IP đến các nhà cung cấp SIEM bên thứ nhất và bên thứ ba bằng trình kết nối Báo cáo Chrome Enterprise. Tính năng này sẽ được cung cấp cho khách hàng Chrome Enterprise Core.

Tích hợp trình khởi tạo điều hướng vào khoá phân vùng bộ nhớ đệm HTTP

Lược đồ khoá bộ nhớ đệm HTTP của Chrome được cập nhật để bao gồm một boolean is-cross-site-main-frame-navigation nhằm giảm thiểu các cuộc tấn công rò rỉ trên nhiều trang web liên quan đến hoạt động điều hướng cấp cao nhất. Cụ thể, việc này sẽ ngăn chặn các cuộc tấn công trên nhiều trang web, trong đó kẻ tấn công có thể bắt đầu thao tác điều hướng cấp cao nhất đến một trang nhất định, sau đó điều hướng đến một tài nguyên được biết là được trang tải để suy luận thông tin nhạy cảm từ thời gian tải. Thay đổi này cũng cải thiện quyền riêng tư bằng cách ngăn một trang web độc hại sử dụng thao tác điều hướng để suy luận xem người dùng đã từng truy cập vào một trang web nhất định hay chưa.

Hỗ trợ ngôn ngữ cho CanvasTextDrawingStyles

Phần tử DOM <canvas>, giống như tất cả các phần tử DOM, chấp nhận thuộc tính lang dùng để xác định cách xử lý cụ thể theo ngôn ngữ cho lựa chọn phông chữ (khi phông chữ có các ký tự riêng theo ngôn ngữ). Các trình duyệt tuân thủ thuộc tính này. Tuy nhiên, khi tạo một OffscreenCanvas, bạn không thể đặt thông tin ngôn ngữ, điều này có thể dẫn đến trạng thái trong đó canvas ngoài màn hình tạo ra kết quả kết xuất khác với canvas mà kết quả của canvas đó được sử dụng. Tính năng này thêm thuộc tính IDL lang vào CanvasTextDrawingStyles để kiểm soát trực tiếp ngôn ngữ cho việc vẽ văn bản và các chỉ số.

Báo cáo Chính sách về quyền cho iframe

Giới thiệu một loại lỗi vi phạm mới có tên là "Có thể vi phạm Chính sách quyền". Loại lỗi này sẽ chỉ xem xét Chính sách quyền (bao gồm cả chính sách chỉ báo cáo) và thuộc tính allow được đặt trong iframe để phát hiện xung đột giữa Chính sách quyền được thực thi so với các quyền được truyền đến iframe.

Hạn mức bộ nhớ được báo cáo có thể dự đoán

Báo cáo hạn mức bộ nhớ có thể dự đoán được từ API ước tính của StorageManager cho các trang web không có quyền bộ nhớ không giới hạn. Bạn có thể phát hiện chế độ duyệt web của người dùng bằng cách sử dụng hạn mức bộ nhớ được báo cáo vì dung lượng bộ nhớ được cung cấp nhỏ hơn đáng kể ở chế độ ẩn danh so với chế độ thông thường.

Private Aggregation API: Báo cáo lỗi tổng hợp

Có một loạt các điều kiện lỗi có thể xảy ra khi sử dụng Private Aggregation API. Ví dụ: ngân sách quyền riêng tư có thể hết, ngăn mọi đóng góp biểu đồ khác. Tính năng này cho phép nhà phát triển đăng ký các nội dung đóng góp biểu đồ chỉ được gửi nếu xảy ra một loại lỗi cụ thể. Tính năng này hỗ trợ đo lường tần suất của các điều kiện lỗi và phân tách các phép đo này theo các phương diện liên quan do nhà phát triển chỉ định (ví dụ: phiên bản của mã được triển khai). Vì bản thân lỗi có thể là thông tin trên nhiều trang web, nên chúng ta không thể chỉ hiển thị lỗi đó trên trang cho người dùng không có cookie của bên thứ ba. Thay vào đó, tính năng này sử dụng lại quy trình báo cáo tổng hợp, nhiễu hiện có thông qua Dịch vụ tổng hợp.

RegExp.escape

RegExp.escape là một phương thức tĩnh nhận một chuỗi và trả về một phiên bản thoát có thể được dùng làm mẫu bên trong một biểu thức chính quy. Ví dụ:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

Quy tắc suy đoán: trường thẻ

Cho phép nhà phát triển thêm thẻ field vào quy tắc suy đoán. Bạn có thể sử dụng trường không bắt buộc này để theo dõi nguồn của các quy tắc suy đoán. Ví dụ: để xử lý các yêu cầu này theo cách khác nhau tại một máy chủ trung gian. Mọi thẻ liên kết với một thông tin suy đoán sẽ được gửi cùng với tiêu đề Sec-Speculation-Tags.

Chính sách nghiêm ngặt về cùng nguồn gốc cho Storage Access API

Điều chỉnh ngữ nghĩa của Storage Access API để tuân thủ nghiêm ngặt Chính sách về cùng nguồn gốc. Tức là theo mặc định, việc sử dụng document.requestStorageAccess() trong một khung chỉ đính kèm cookie vào các yêu cầu đến nguồn gốc của iframe (không phải trang web). Xin lưu ý rằng chính sách CookiesAllowedForUrls hoặc Tiêu đề truy cập bộ nhớ vẫn có thể được dùng để bỏ chặn cookie trên nhiều trang web.

Cập nhật ProgressEvent để sử dụng kiểu kép cho loadedtotal

ProgressEvent có các thuộc tính loadedtotal cho biết tiến trình và loại của các thuộc tính này hiện là unsigned long long. Với tính năng này, loại của hai thuộc tính này sẽ được thay đổi thành double, giúp nhà phát triển có nhiều quyền kiểm soát hơn đối với giá trị. Ví dụ: giờ đây, nhà phát triển có thể tạo ProgressEvent với total là 1 và loaded tăng dần từ 0 đến 1. Điều này phù hợp với hành vi mặc định của phần tử HTML <progress> nếu bạn bỏ qua thuộc tính max.

Sử dụng DOMPointInit cho getCharNumAtPosition, isPointInFill, isPointInStroke

Thay đổi này giúp mã Chromium phù hợp với thông số kỹ thuật W3C mới nhất cho SVGGeometryElementSVGPathElement về việc sử dụng DOMPointInit thay vì SVGPoint cho getCharNumAtPosition, isPointInFill, isPointInStroke.

Tạo có điều kiện trong quy trình Xác thực web (Nâng cấp khoá truy cập)

Yêu cầu tạo có điều kiện WebAuthn cho phép các trang web nâng cấp thông tin xác thực bằng mật khẩu hiện có lên khoá truy cập.

WebGPU: Thuộc tính GPUAdapterInfo isFallbackAdapter

Thuộc tính boolean GPUAdapterInfo isFallbackAdapter cho biết liệu một bộ chuyển đổi có giới hạn hiệu suất đáng kể hay không để đổi lấy khả năng tương thích rộng hơn, hành vi dễ dự đoán hơn hoặc quyền riêng tư được cải thiện. Xin lưu ý rằng có thể không có bộ chuyển đổi dự phòng trên một số hệ thống.

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

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

API Thiết bị đầu ra âm thanh: setDefaultSinkId()

Tính năng này thêm setDefaultSinkId() vào MediaDevices, cho phép khung cấp cao nhất thay đổi thiết bị đầu ra âm thanh mặc định mà các khung con sử dụng.

Cho phép các ứng dụng web hiểu được thời gian hiệu suất hai pha

Các ứng dụng web có thể bị phân phối hai đỉnh về hiệu suất tải trang, do các yếu tố nằm ngoài tầm kiểm soát của ứng dụng web. Ví dụ:

  • Khi khởi chạy lần đầu (trường hợp "khởi động nguội"), tác nhân người dùng phải thực hiện nhiều tác vụ khởi chạy tốn kém để cạnh tranh tài nguyên trên hệ thống.
  • Tiện ích trình duyệt có thể ảnh hưởng đến hiệu suất của trang web. Ví dụ: một số tiện ích chạy mã bổ sung trên mọi trang bạn truy cập, điều này có thể làm tăng mức sử dụng CPU và dẫn đến thời gian phản hồi chậm hơn.
  • Khi một máy đang bận thực hiện các tác vụ chuyên sâu, việc này có thể dẫn đến việc tải trang web chậm hơn.

Trong những trường hợp này, nội dung mà ứng dụng web cố gắng tải sẽ cạnh tranh với các công việc khác đang diễn ra trên hệ thống. Điều này khiến bạn khó phát hiện liệu vấn đề về hiệu suất có tồn tại trong chính ứng dụng web hay là do các yếu tố bên ngoài.

Trường confidence mới trên đối tượng PerformanceNavigationTiming sẽ cho phép nhà phát triển phân biệt xem thời gian điều hướng có đại diện cho ứng dụng web của họ hay không.

Thông tin xác thực phiên được liên kết với thiết bị

Một cách để các trang web liên kết một phiên với một thiết bị một cách an toàn.

API này cho phép máy chủ có một phiên được liên kết an toàn với một thiết bị. Trình duyệt sẽ định kỳ gia hạn phiên theo yêu cầu của máy chủ, kèm theo bằng chứng về việc sở hữu khoá riêng tư.

Cập nhật việc triển khai kết xuất văn bản trên canvas

Nội bộ của CanvasRenderingContext2D và measureText(), fillText()strokeText() của OffscreenCanvasRenderingContext2D đã được thay thế bằng một phương thức triển khai mới hỗ trợ tốt hơn văn bản RTL và lưu vào bộ nhớ đệm. Điều này có thể ảnh hưởng đến hiệu suất và đầu ra văn bản BIDI, vì vậy, thử nghiệm gốc này cho phép các ứng dụng canvas có nhiều văn bản thử nghiệm cách triển khai mới và báo cáo mọi vấn đề mà chúng có thể gặp phải.

Ngừng sử dụng và xoá

Phiên bản Chrome này ngừng sử dụng và xoá các tính năng sau. Hãy truy cập vào ChromeStatus.com để xem danh sách các tính năng dự kiến ngừng hoạt động, các tính năng hiện đã ngừng hoạt động và các tính năng đã bị xoá trước đây.

Bản phát hành Chrome này không dùng nữa hai tính năng.

Ngừng sử dụng phương thức getter của Thông tin ngôn ngữ quốc tế

Intl Locale Info API là đề xuất ECMAScript TC39 Giai đoạn 3 để nâng cao đối tượng Intl.Locale bằng cách hiển thị thông tin về Ngôn ngữ, chẳng hạn như dữ liệu tuần (ngày đầu tiên trong tuần, ngày bắt đầu cuối tuần, ngày kết thúc cuối tuần, ngày tối thiểu trong tuần đầu tiên) và chu kỳ giờ theo hướng văn bản được sử dụng trong ngôn ngữ. Thay đổi này sẽ xoá một số phương thức getter không dùng nữa trong một thay đổi về quy cách kể từ khi các phương thức này được vận chuyển.

Xoá HTMLFencedFrameElement.canLoadOpaqueURL().

canLoadOpaqueURL() đã được thay thế bằng navigator.canLoadAdAuctionFencedFrame() vào năm 2023 và việc gọi API này đã dẫn đến cảnh báo của bảng điều khiển về việc ngừng sử dụng kể từ khi trỏ nhà phát triển đến API mới. Bạn không nên đính kèm hàm vào HTMLFencedFrameElement mà nên đính kèm vào đối tượng navigator (chứa các phương thức đấu giá quảng cáo và khung được bảo vệ khác).