Ngày xuất bản: 3 tháng 4 năm 2025
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 136 là phiên bản beta 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 trên Google.com cho máy tính hoặc trên Cửa hàng Google Play cho 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ề CSS và giao diện người dùng.
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ữ trong chữ viết thảo
Tính năng này thêm logic để bỏ qua chế độ cài đặt khoảng cách giữa các chữ cái cho các tập lệnh viết tay, ngay cả khi nhà phát triển chỉ định theo quy cách, để đảm bảo rằng khoảng cách giữa các chữ cái không làm ngắt từ.
Phân vùng nhật ký :visited đường liên kết
Để loại bỏ các rò rỉ nhật ký duyệt web của người dùng, các phần tử liên kết chỉ được tạo kiểu là :visited nếu chúng đã được nhấp vào từ trang web cấp cao nhất này và nguồn gốc khung trước đó.
Bằng cách chỉ tạo kiểu cho những đường liên kết đã được nhấp vào trên trang web và khung này trước đây, nhiều cuộc tấn công qua kênh phụ được phát triển để lấy thông tin tạo kiểu cho đường liên kết :visited hiện đã lỗi thời. Các cookie này không còn cung cấp thông tin mới về người dùng cho các trang web 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 :visitedđường liên kết.
Đổi tên loại string attr() thành raw-string
Nhóm công tác CSS quyết định thay thế loại string attr() bằng raw-string.
Do đó, Chrome đã thay đổi cú pháp attr(), sao cho attr(data-foo string) hiện sẽ là attr(data-foo raw-string).
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.
Không có tiền tố print-color-adjust
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. Thư viện này giống với -webkit-print-color-adjust mà 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á.
Web API
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
Là phần tiếp theo của 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á lưu trữ (trang web cấp cao nhất, nguồn gốc khung và giá trị boolean has-cross-site-ancestor), ngoại trừ các yêu cầu đ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 hiện được cả Firefox và Safari triển khai, đồng thời điều chỉnh việc sử dụng URL Blob theo lược đồ phân vùng mà các API lưu trữ khác sử dụng trong Phân vùng bộ nhớ.
Ngoài ra, giờ đây, noopener được thực thi trên các yêu cầu đ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 là từ nhiều trang web so với trang web cấp cao nhất thực hiện yêu cầu điều hướng. Điều này giúp Chrome có hành vi tương tự như Safari và các thông số kỹ thuật có liên quan đã được cập nhật để phản ánh những thay đổi này.
Ngăn xếp lệnh trong báo cáo sự cố của 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 khác rất dài. Đ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.
Captured Surface Control API
Captured Surface Control API (API Kiểm soát bề mặt được chụp) cho phép các ứng dụng web chuyển tiếp các sự kiện về bánh xe đến một thẻ được chụp, đồng thời đọc và thay đổi mức thu phóng của một thẻ được chụp.
CapturedSurfaceResolution
Hiển thị tỷ lệ pixel của bề mặt đượ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 sự đánh đổi giữa chất lượng và băng thông theo độ phân giải vật lý và độ phân giải logic của bề mặt được chụp.
Gửi sự kiện nhấp chuột đến con trỏ đã ghi lại
Nếu một con trỏ được ghi lại trong khi sự kiện pointerup đang được gửi đi, thì sự kiện click sẽ được gửi đến mục tiêu được ghi lại thay vì tổ tiên chung gần nhất của các sự kiện pointerdown và pointerup theo quy cách Sự kiện trên giao diện người dùng. Đối với các con trỏ chưa được ghi lại, mục tiêu click vẫn không thay đổi.
Gợi ý biên dịch rõ ràng bằng chú thích đặc biệ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 ngay trong các tệp JavaScript. Thông tin này sẽ được mã hoá dưới dạng chú thích đặc biệ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.
Việc này giúp nhà phát triển có một cách thuận tiện để giới thiệu tất 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à có tất cả các nhà cung cấp 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 FedCM. Tính năng này cho phép hiển thị nút "sử dụng một tài khoản khác" cùng với các tài khoản IdP khác trong bộ chọn. Hiện tại, tính năng này không được 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 quy trình phức tạp hơn mà không mang lại nhiều lợi ích. Tính năng này vẫn sẽ hoạt động ở chế độ đang hoạt động FedCM.
Thanh cuộn mượt mà.
Tính năng này hiện đại hoá các thanh cuộn của Chrome (cả thanh cuộn lớp phủ và không 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, các thanh cuộn Fluent không lớp 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 từ trước đến nay vẫn được điều chỉnh cho phù hợp với những gì có trên Windows.
Hỗ trợ bộ mã hoá và giải mã H265 (HEVC) trong WebRTC
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 thông tin hỗ trợ bằng MediaCapabilities API.
Bộ mã hoá và giải mã mới này có hiệu quả nén cao hơ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 có khả năng 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 phải các 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, bộ mã hoá này thường 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 dựa trên phần cứng.
Nội dung cập nhật về khả năng hỗ trợ Bộ mã hoá và giải mã H26x cho MediaRecorder
API MediaRecorder hiện hỗ trợ mã hoá HEVC, giới thiệu chuỗi bộ mã hoá và giải mã hvc1.*, đồng thời thêm các bộ mã hoá và giải mã mới (hev1.* và avc3.*) hỗ trợ video có độ phân giải thay đổi ở định dạng MP4. Tính năng hỗ trợ mã hoá nền tảng HEVC đã được thêm vào WebCodecs trong Chrome 130. Tiếp theo, chúng tôi đã thêm tính năng hỗ trợ cho MediaRecorder API trong Chromium. API này hiện hỗ trợ cả loại bộ trộn MP4 và Matroska với các quy cách loại MIME HEVC và H.264 khác nhau. Chỉ hỗ trợ mã hoá HEVC nếu thiết bị và hệ điều hành của người dùng có 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 nâng cao khả năng giám sát an ninh và ứng phó 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 cho 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 của Chrome Enterprise. Tính năng này sẽ được cung cấp cho khách hàng Chrome Enterprise Core.
Kết hợp trình khởi tạo điều hướng vào khoá phân vùng bộ nhớ đệm HTTP
Sơ đồ khoá bộ nhớ đệm HTTP của Chrome được cập nhật để bao gồm một giá trị 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ể, điều 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 một thao tác điều hướng cấp cao nhất đến một trang nhất định, rồi điều hướng đến một tài nguyên được biết là do trang tải để suy ra 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 các 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.
Ngôn ngữ được hỗ trợ cho CanvasTextDrawingStyles
Phần tử DOM <canvas>, giống như tất cả các phần tử DOM, chấp nhận một thuộc tính lang được 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 glyph cụ thể theo ngôn ngữ). Các trình duyệt đều tuân thủ thuộc tính này. Tuy nhiên, khi một OffscreenCanvas được tạo, không có cách nào để đặt thông tin về ngôn ngữ, có thể dẫn đến trạng thái mà canvas ngoài màn hình tạo ra kết quả được kết xuất khác với canvas mà đầu ra của nó được dùng. Tính năng này thêm thuộc tính lang IDL vào CanvasTextDrawingStyles để kiểm soát trực tiếp ngôn ngữ cho việc vẽ văn bản và 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ó khả năng vi phạm Chính sách về quyền". Loại lỗi này sẽ chỉ xem xét Chính sách về quyền (bao gồm cả chính sách chỉ báo cáo) và bộ thuộc tính allow được đặt trong iframe để phát hiện xung đột giữa Chính sách về 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 từ Estimate API của StorageManager cho những trang web không có quyền lưu trữ 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ì không gian lưu trữ có sẵn 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ó nhiều đ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 chặn mọi hoạt động đóng góp biểu đồ tiếp theo. Tính năng này cho phép nhà phát triển đăng ký các giá trị đóng góp cho biểu đồ chỉ được gửi nếu một loại lỗi cụ thể xảy ra. 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à chia các phép đo này theo những phương diện có liên quan do nhà phát triển chỉ định (ví dụ: phiên bản của mã đã triển khai). Vì bản thân các lỗi có thể là thông tin trên nhiều trang web, nên chúng tôi không thể chỉ đơn giản là hiển thị các lỗi đó cho người dùng trên trang mà không có cookie của bên thứ ba. Thay vào đó, tính năng này sẽ sử dụng lại các quy trình báo cáo tổng hợp hiện có, có thêm nhiễu 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ể dùng làm mẫu trong 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 các quy tắc suy đoán. Bạn có thể 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ý chúng theo cách khác tại một máy chủ trung gian. Mọi thẻ liên kết với một suy đoán sẽ được gửi kèm theo 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 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 đối với nguồn gốc (không phải trang web) của iframe. Xin lưu ý rằng chính sách CookiesAllowedForUrls hoặc Tiêu đề truy cập vào 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 loaded và total
ProgressEvent có các thuộc tính loaded và total 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 cho hai thuộc tính này sẽ được thay đổi thành double thay vì, giúp nhà phát triển kiểm soát giá trị nhiều hơn. 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 quy cách mới nhất của W3C cho SVGGeometryElement và SVGPathElement về việc sử dụng DOMPointInit trên SVGPoint cho getCharNumAtPosition, isPointInFill, isPointInStroke.
Tạo có điều kiện quy trình Xác thực web (Nâng cấp khoá truy cập)
Các 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 mật khẩu hiện có thành 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ó những hạn chế đáng kể về hiệu suất để đổ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 hay không. Xin lưu ý rằng không phải hệ thống nào cũng có bộ chuyển đổi dự phò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.
Audio Output Devices API: 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 phụ của khung đó sử dụng.
Cho phép các ứng dụng web hiểu được thời gian hiệu suất hai chế độ
Các ứng dụng web có thể gặp phải tình trạng phân phối hai phương thức 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 tiên (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 tạo tốn kém, cạnh tranh tài nguyên trên hệ thống.
- Tiện ích trên trình duyệt có thể ảnh hưởng đến hiệu suất của một 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áy đang bận thực hiện các tác vụ chuyên sâu, điều 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 hoạt động khác đang diễn ra trên hệ thống. Điều này khiến bạn khó phát hiện xem các vấn đề về hiệu suất có tồn tại trong chính các ứng dụng web hay không, hoặc do các yếu tố bên ngoài.
Trường confidence mới trên đối tượng PerformanceNavigationTiming sẽ giú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ị duy nhất một cách an toàn.
Tính năng này cho phép các 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ẽ gia hạn phiên định kỳ theo yêu cầu của máy chủ, kèm theo bằng chứng về quyền 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
Các thành phần bên trong của measureText(), fillText() và strokeText() của CanvasRenderingContext2D và OffscreenCanvasRenderingContext2D đã được thay thế bằng một cách triển khai mới hỗ trợ tốt hơn văn bản RTL và tính năng 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 hai chiều, vì vậy, bản dùng thử theo nguyên gốc này cho phép các ứng dụng canvas có nhiều văn bản dùng thử cách triển khai mới và báo cáo mọi vấn đề mà họ có thể gặp phải.
Ngừng sử dụng và xoá
Phiên bản Chrome này giới thiệu những thay đổi sau đây về việc ngừng sử dụng và xoá. Truy cập ChromeStatus.com để xem danh sách các tính năng dự kiến sẽ không dùng nữa, các tính năng hiện không dùng nữa 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 hai tính năng.
Không dùng các phương thức truy xuất của Thông tin về ngôn ngữ và khu vực theo chuẩn quốc tế
Intl Locale Info API là một đề xuất ECMAScript TC39 Giai đoạn 3 nhằm 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 về 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, số ngày tối thiểu trong tuần đầu tiên) và chu kỳ giờ theo hướng văn bản được dùng trong ngôn ngữ. Thay đổi này sẽ xoá một số phương thức truy xuất không dùng nữa trong một thay đổi về quy cách kể từ khi chúng được phát hành.
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 ngừng sử dụng trên bảng điều khiển kể từ đó, hướng các nhà phát triển đến API mới. Không có ý nghĩa gì khi đính kèm hàm vào HTMLFencedFrameElement và thay vào đó, hàm này phải được đính kèm vào đối tượng navigator (chứa các khung bảo vệ và phương thức đấu giá quảng cáo khác).