Chrome 121 (thử nghiệm)

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

CSS

Bản phát hành này bổ sung 6 tính năng mới của Dịch vụ so sánh giá (CSS).

Tính kế thừa của tính năng CSS nổi bật

Với tính năng kế thừa tính năng làm nổi bật CSS, các lớp giả lập của CSS, chẳng hạn như ::selection::highlight, kế thừa các thuộc tính của chúng thông qua chuỗi làm nổi bật giả, thay vì chuỗi phần tử. Kết quả là một mô hình trực quan hơn cho việc kế thừa các thuộc tính trong vùng nổi bật.

Việc này sẽ triển khai yêu cầu từ thông số kỹ thuật của Dịch vụ giả mạo CSS cấp 4:

"Khi một thuộc tính được hỗ trợ không được cấp giá trị theo tầng ... giá trị đã chỉ định của thuộc tính đó được xác định bằng cách kế thừa từ phần tử giả làm nổi bật tương ứng trong phần tử mẹ của phần tử gốc."

Thanh cuộn CSS: scrollbar-colorscrollbar-width

Thông số kỹ thuật của thanh cuộn CSS cho phép nhà phát triển tạo kiểu cho thanh cuộn bằng cách chỉ định màu sắc và độ dày của thanh cuộn. Thông số kỹ thuật này bổ sung 2 thuộc tính sau. Thuộc tính scrollbar-color cho phép thay đổi bảng phối màu của thanh cuộn để thanh cuộn phù hợp hơn với kiểu trang web cụ thể. Thuộc tính scrollbar-width cho phép sử dụng thanh cuộn hẹp hơn có thể phù hợp hơn cho một số trường hợp sử dụng, hoặc thậm chí là ẩn hoàn toàn thanh cuộn mà không ảnh hưởng đến khả năng cuộn.

Ảnh động CSS font-palette cho phông chữ màu

Thuộc tính font-palette của CSS cho phép lựa chọn một bảng màu cụ thể dùng để hiển thị phông chữ màu. Với tính năng hỗ trợ mới được thêm để tạo ảnh động cho thuộc tính này, việc chuyển đổi giữa các bảng màu không còn là một bước riêng biệt nữa, mà sẽ trở thành quá trình chuyển đổi mượt mà giữa hai bảng màu đã chọn. Tính năng này hoạt động ở mọi nơi trong ảnh động và chuyển đổi CSS.

Tính năng chính tả và ngữ pháp CSS

CSS làm nổi bật các phần tử giả để định kiểu cho văn bản mà tác nhân người dùng đã gắn cờ là sai chính tả hoặc sai ngữ pháp, đồng thời, phần trang trí dòng để lộ trang trí mặc định của tác nhân người dùng vì các lỗi chính tả và ngữ pháp. Các tính năng này cho phép nhà phát triển chọn màu dễ đọc hơn đối với các lỗi chính tả và ngữ pháp mặc định, làm nổi bật các từ sai chính tả bằng màu nền hoặc các thành phần trang trí khác và triển khai tính năng kiểm tra lỗi chính tả tuỳ chỉnh phù hợp với trải nghiệm trên thiết bị.

Cải thiện tính năng che giấu CSS cho SVG

Đây là phần tiếp theo về tính năng hỗ trợ mặt nạ CSS đã cải tiến trong Chrome 120, thêm tính năng hỗ trợ mặt nạ mới vào SVG (nhiều mặt nạ, cũng như mask-mode, mask-composite, mask-positionmask-repeat). Ngoài ra, mặt nạ SVG từ xa (ví dụ: mask: url(masks.svg#star)) hiện cũng được hỗ trợ.

Giá trị hiển thị dành riêng cho Ruby

Thêm các giá trị mới của thuộc tính hiển thị CSS, rubyruby-text. Giá trị hiển thị mặc định của <ruby><rt> được thay đổi thành rubyruby-text tương ứng, đồng thời bố cục hồng ngọc tuân theo các giá trị hiển thị này. Tác giả web có thể sử dụng bất kỳ phần tử nào như <div> để kết xuất hồng ngọc bằng cách thiết lập các giá trị hiển thị mới.

API web

Gói tính năng Báo cáo phân bổ: Giảm độ trễ tổng hợp, Trường Epsilon báo cáo cấp sự kiện, Khoá đặt trước

Chrome có những thay đổi đối với Attribution Reporting API tập trung vào:

  • Giảm tổn thất về đường truyền bằng cách giảm độ trễ báo cáo tổng hợp.
  • Khả năng định cấu hình API bổ sung bằng cách hỗ trợ trường epsilon báo cáo ở cấp sự kiện.
  • Cải thiện khả năng mở rộng của API bằng cách không đăng ký được khi gặp các khoá dành riêng.

API bộ nhớ đệm cho thao tác tiến/lùi không được khôi phục

notrecoveryReason API sẽ báo cáo danh sách lý do tại sao một trang không được phân phát từ bfcache bằng API PerformanceNavigationTiming.

Yêu cầu cử chỉ của người dùng để đổi kích thước API ở chế độ hình trong hình của tài liệu

Việc này sẽ bật các phương thức resizeBy()resizeTo() trên cửa sổ hình trong hình của tài liệu, nhưng kèm theo hạn chế bổ sung về yêu cầu cử chỉ của người dùng để giảm thiểu nguy cơ sử dụng sai mục đích.

API EditContext

API EditContext giúp đơn giản hoá quá trình tích hợp ứng dụng web với các phương thức nhập văn bản nâng cao như viết hình dạng VK, bảng điều khiển viết tay, nhận dạng lời nói và Thành phần IME. Phiên bản này cải thiện khả năng tiếp cận và hiệu suất, đồng thời mở ra các chức năng mới cho trình chỉnh sửa dựa trên nền tảng web.

Phát hiện tính năng cho các định dạng bảng nhớ tạm được hỗ trợ

Giờ đây, bạn có thể kiểm tra xem API Bảng nhớ tạm không đồng bộ có hỗ trợ một loại MIME nhất định hay không bằng cách gọi hàm supports() mới, chuyển loại MIME dưới dạng đối số, chẳng hạn như ClipboardItem.supports('image/png').

HTMLSelectElement showPicker()

Phương thức showPicker() của HTMLSelectElement cung cấp cho nhà phát triển một cách lập trình để mở bộ chọn tuỳ chọn của một phần tử <select>, theo mẫu input.showPicker().

MediaCapabilities: Truy vấn tính năng hỗ trợ HDR bằng decodingInfo()

Mở rộng Media Capabilities API để cho phép phát hiện tính năng hỗ trợ kết xuất HDR thông qua ba trường từ điển VideoConfiguration mới: hdrMetadataType, colorGamut, transferFunction.

Chromium triển khai các thuật toán ánh xạ tông màu của riêng nó để luôn trả về true cho siêu dữ liệu tĩnh HDR10 (smpteSt2086). smpteSt2094-40 (HDR10+) và siêu dữ liệu động smpteSt2094-10 hiện không được hỗ trợ, vì vậy sẽ trả về false.

API tổng hợp riêng tư: lựa chọn điều phối viên tổng hợp

Việc sửa đổi API tổng hợp riêng tư này cung cấp cơ chế lựa chọn công cụ điều phối cần sử dụng cho việc mã hoá tải trọng (từ danh sách cho phép do nhà cung cấp chỉ định). Bạn có thể lựa chọn dịch vụ với một tuỳ chọn bổ sung trong các lệnh gọi run()selectURL() của Bộ nhớ dùng chung, cũng như trong các lệnh gọi runAdAuction()joinAdInterestGroup() của Protected Audience. Cách tiếp cận rộng này phần lớn phù hợp với phương pháp của Attribution Reporting API.

API Phát từ xa trên máy tính

API này mở rộng HTMLMediaElement cho phép kiểm soát việc phát nội dung nghe nhìn từ xa từ một trang web. Điều này được vận chuyển trên Android trong Chrome 56 và có trên máy tính từ Chrome 121.

API quy tắc suy đoán

Có các tính năng mới cho Speculation Rules API.

Hỗ trợ quy tắc tài liệu: Đây là phần mở rộng cho cú pháp quy tắc suy đoán cho phép trình duyệt nhận danh sách URL để tải suy đoán từ các phần tử <a> trong trang. Chúng có thể bao gồm các tiêu chí để sử dụng đường liên kết trong số này. Việc này cùng với trường "eagerness" mới cho các quy tắc suy đoán sẽ cho phép các nhà phát triển tự động tìm nạp trước hoặc kết xuất trước các đường liên kết trên trang ngay lập tức khi di chuột hoặc di chuột xuống.

Một thay đổi riêng sẽ cho phép chỉ định các quy tắc suy đoán bằng cách sử dụng tiêu đề phản hồi HTTP Speculation-Rules làm phương án thay thế cho việc sử dụng các phần tử <script> cùng dòng. Giá trị của tiêu đề này phải là một URL trỏ đến tài nguyên văn bản có loại MIME "application/speculationrules+json". Các quy tắc của tài nguyên sẽ được thêm vào bộ quy tắc của tài liệu.

Cuối cùng, Gợi ý No-Vary-Search cho phép tìm nạp trước suy đoán so khớp ngay cả khi tham số truy vấn URL thay đổi. Tiêu đề phản hồi No-Vary-Search khai báo rằng một số hoặc tất cả các phần của truy vấn của URL có thể bị bỏ qua để so khớp. Loại thẻ này có thể khai báo rằng thứ tự của các khoá tham số truy vấn không được ngăn chặn việc so khớp, những tham số truy vấn cụ thể đó sẽ không được ngăn việc so khớp hoặc chỉ một số tham số truy vấn đã biết mới gây ra lỗi không khớp.

Đối tượng giao diện SpeechSynthesis và SpeechSynthesisVoice

Thêm các đối tượng giao diện cho SpeechSynthesisSpeechSynthesisVoice vào các tính năng đã được hỗ trợ. Nhờ đó, bạn có thể phát hiện tính năng bằng SpeechSynthesisVoice.prototype.

Storage Buckets API (API Bộ chứa bộ nhớ)

Bộ chứa lưu trữ cung cấp cho các trang web khả năng sắp xếp dữ liệu trên thiết bị thành các "bộ chứa" riêng biệt, cho phép tác nhân người dùng loại bỏ dữ liệu đã được nhóm một cách độc lập với dữ liệu đã có trong các bộ chứa khác, đồng thời cho phép các trang web quản lý dữ liệu có liên quan về mặt ngữ nghĩa một cách hợp lý. Mỗi bộ chứa lưu trữ có thể chứa dữ liệu liên kết với các API lưu trữ đã thiết lập, chẳng hạn như IndexedDB và CacheStorage.

URLPattern: Kế thừa trái, ký tự đại diện bên phải

Hành vi thay đổi đối với các mẫu được tạo bằng URL cơ sở, cú pháp chuỗi hàm khởi tạo hoặc cả hai — nhưng không phải bất kỳ mẫu nào chỉ định rõ ràng các thành phần một cách riêng biệt mà không có URL cơ sở.

Các thành phần không được kế thừa từ URL cơ sở nếu một thành phần "cũ" được chỉ định rõ ràng. Ở định dạng chuỗi, các thành phần "sau" không được xác định sẽ được hoàn toàn ký tự đại diện, thay vì bắt buộc được để trống (ngoại trừ cổng luôn được dùng để chỉ định khi có tên máy chủ). Tên người dùng và mật khẩu không bao giờ được chỉ định hoặc kế thừa ngầm.

Điều này giúp các mẫu mở rộng hơn trước đây, trong trường hợp cần sử dụng ký tự đại diện.

Mẫu URL: cờ RegExp v thay vì u

API mẫu URL cho phép nhà phát triển chỉ định chuỗi mẫu. Các biểu thức chính quy đó sẽ được chuyển đổi thành biểu thức chính quy trong nội bộ.

Trong lần đầu triển khai API, các biểu thức chính quy này được biên dịch bằng cờ u. Chrome 121 sẽ cập nhật giá trị này thành cờ v, cho phép bật các tập hợp Unicode.

Bổ sung vào WebGPU

WebGPU hiện cho phép các nhà phát triển bỏ qua điểm truy cập vào các mô-đun chương trình đổ bóng khi tạo quy trình, giúp cải thiện tính hiệu quả. Nếu không tìm thấy điểm truy cập mặc định nào, GPUValidationError sẽ được kích hoạt như bình thường.

Truy vấn dấu thời gian WebGPU cho phép các ứng dụng WebGPU đo chính xác (đến nano giây) thời gian cần thiết để thực thi các lệnh GPU, đặc biệt là ở đầu và cuối quá trình truyền. Các truy vấn dấu thời gian được dùng rất nhiều để thu thập thông tin chi tiết về hiệu suất và hành vi của khối lượng công việc GPU.

Mặc dù thông số kỹ thuật của WebGPU khiến truy vấn dấu thời gian trở thành một tính năng không bắt buộc do lo ngại về tấn công thời gian, chúng tôi tin rằng việc lượng tử hoá truy vấn dấu thời gian là cơ sở tốt bằng cách giảm độ chính xác của bộ tính giờ với độ phân giải 100 micrô giây.

X25519Kyber768 đóng gói phím cho TLS

Bảo vệ lưu lượng truy cập TLS hiện tại của Chrome khỏi phương pháp phân tích mật mã lượng tử trong tương lai bằng cách triển khai thuật toán thoả thuận khoá kháng lượng tử Kyber768. Đây là một thoả thuận khoá kết hợp X25519 + Kyber768 dựa trên tiêu chuẩn IETF. Thông số kỹ thuật và bản phát hành này nằm ngoài phạm vi của W3C. Thoả thuận về khoá này sẽ được phát hành dưới dạng thuật toán mật mã TLS và phải minh bạch trước người dùng.

Đang chạy bản dùng thử theo nguyên gốc

Trong Chrome 121, bạn có thể chọn sử dụng các bản dùng thử theo nguyên gốc mới sau đây.

Element Capture API (API Thu thập phần tử)

API Thu thập phần tử cung cấp các phương thức để thu thập cây con của DOM.

Với một video MediaStreamTrack thu thập được thông qua các phương thức có sẵn để bắt đầu chụp thẻ, phần tử Capture cho phép thay đổi bản nhạc để chỉ chụp cây con của DOM bắt đầu từ một Phần tử nhất định.

API này có một số điểm tương đồng với Region Capture API (API Thu thập dữ liệu vùng), nhưng cung cấp tính linh hoạt hơn cho các ứng dụng, vì cả nội dung bị che khuất và bị che khuất đều không được chụp.

Đăng ký bản dùng thử theo nguyên gốc ElementCapture

Các thay đổi đối với hành vi hiện tại

Chrome 121 bao gồm thay đổi sau đây đối với hành vi hiện có, được đưa vào đây để nhà phát triển biết về thay đổi đó .

Loại bỏ sự kiện đầu vào đối với các iframe nguồn gốc đã di chuyển gần đây

Nếu gần đây, một iframe trên nhiều nguồn gốc đã di chuyển trong trang nhúng thì Chrome sẽ tự động loại bỏ các sự kiện nhắm đến iframe đó. Lý do là nếu iframe mới di chuyển gần đây, thì có khả năng người dùng không có ý định nhấp hoặc nhấn vào iframe đó.

Thay đổi này được vận chuyển ở dạng giới hạn vào năm 2019: nó chỉ ảnh hưởng đến các iframe chứa tập lệnh sử dụng các tính năng phiên bản 2 của IntersectionObserver (nghĩa là phát hiện sự che khuất hoặc hiệu ứng). Bản phát hành này mở rộng hành vi này sang tất cả các iframe nhiều nguồn gốc và sẽ bắt đầu dưới dạng một thử nghiệm có giới hạn trong Chrome 121 sau đó được mở rộng.