Chrome 123 phiên bản thử nghiệm

Trừ phi có ghi chú khác, những thay đổi sau đây sẽ áp dụng cho bản phát hành mới nhất của kênh thử nghiệm 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ê ở đâ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 123 là phiên bản beta kể từ ngày 21 tháng 2 năm 2024. 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 trên Android.

CSS

Bản phát hành này bổ sung 5 tính năng mới của CSS.

Hàm màu CSS light-dark()

Hàm light-dark() trong CSS cho phép các nhà phát triển dễ dàng điều chỉnh bảng phối màu cho phù hợp với lựa chọn ưu tiên của người dùng về chế độ sáng hoặc tối.

Sử dụng light-dark() để chỉ định hai giá trị màu khác nhau trong một thuộc tính CSS. Trình duyệt (hoặc thiết bị) sẽ tự động chọn màu phù hợp dựa trên giá trị color-scheme đã tính toán của phần tử. Ví dụ: với CSS sau:

  • Nếu người dùng đã chọn giao diện sáng, thì phần tử .target sẽ có nền màu vàng chanh.
  • Nếu người dùng đã chọn giao diện tối, thì phần tử .target sẽ có nền màu xanh lục.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

Chế độ hiển thị hình trong hình của CSS

Bổ sung tính năng hỗ trợ cho tính năng nội dung đa phương tiện display-mode của CSS cho giá trị picture-in-picture. Điều này cho phép nhà phát triển web viết các quy tắc CSS cụ thể chỉ được áp dụng khi (một phần của) ứng dụng web hiển thị ở chế độ hình trong hình.

Tìm hiểu thêm về tính năng nội dung đa phương tiện này trong tài liệu về hình trong hình.

thuộc tính CSS align-content cho khối

Thuộc tính CSS align-content hiện được hỗ trợ trên các vùng chứa khối và ô trong bảng. Trước đây, thuộc tính này chỉ được hỗ trợ trên các mục lưới và linh hoạt. Ví dụ: giờ đây, bạn có thể căn chỉnh display: block, display: list-itemdisplay: table-cell bằng align-content.

Tìm hiểu thêm trong phần Hỗ trợ align-content trong bố cục khối và bảng.

Thuộc tính CSS field-sizing

Bằng cách sử dụng thuộc tính field-sizing, nhà phát triển có thể tắt kích thước mặc định cố định của các thành phần điều khiển biểu mẫu và làm cho kích thước phụ thuộc vào nội dung. Đây là cách để tạo các trường văn bản tự động mở rộng.

Thuộc tính CSS text-spacing-trim

Thuộc tính này áp dụng cách phân biệt các ký tự dấu chấm câu trong tiếng Trung, tiếng Nhật và tiếng Hàn (CJK) để tạo kiểu chữ đẹp mắt theo quy định của JLREQ (Yêu cầu đối với bố cục văn bản tiếng Nhật) và CLREQ (Yêu cầu đối với bố cục văn bản tiếng Trung).

Nhiều ký tự dấu câu CJK bao gồm cả dấu cách nội bộ (glyph-internal). Ví dụ: dấu dừng đầy đủ CJK và dấu ngoặc đơn đóng CJK thường có khoảng cách nội bộ với ký tự ở nửa bên phải của dấu cách, để giúp chúng liên tục như các ký tự tượng hình khác. Tuy nhiên, khi chúng xuất hiện trong một hàng, khoảng cách nội bộ (glyph) sẽ trở nên quá mức. Tính năng này điều chỉnh khoảng cách quá mức như vậy.

Thuộc tính text-spacing-trim chấp nhận một trong 4 giá trị sau: normal, trim-start, space-allspace-first. Tìm hiểu thêm trong bài viết Giới thiệu 4 tính năng quốc tế mới trong CSS.

API web

Cho phép tạo thông tin xác thực WebAuthn trong iframe trên nhiều nguồn gốc

Tính năng này cho phép các nhà phát triển web tạo thông tin xác thực WebAuthn (tức là thông tin xác thực "khoá công khai" hay còn gọi là khoá truy cập) trong các iframe nhiều nguồn gốc. Cần có 2 điều kiện để sử dụng tính năng mới này:

  • iframe này có chính sách về quyền publickey-credentials-create-feature.
  • Iframe có kích hoạt người dùng tạm thời.

Điều này cho phép nhà phát triển tạo khoá truy cập trong các trường hợp được nhúng, chẳng hạn như sau một quy trình nâng cao danh tính, trong đó Bên xác thực đang cung cấp trải nghiệm nhận dạng được liên kết.

Gói tính năng báo cáo phân bổ

Chrome 123 thêm các bộ lọc giá trị tổng hợp và tuỳ chỉnh dữ liệu điều kiện kích hoạt vào Attribution Reporting API tập trung vào:

  • Khả năng định cấu hình API bổ sung cho báo cáo cấp sự kiện bằng cách hỗ trợ tuỳ chỉnh cho số lượng giá trị và lượng dữ liệu kích hoạt.
  • Khả năng định cấu hình API bổ sung cho báo cáo tóm tắt bằng cách hỗ trợ các bộ lọc trong các giá trị tổng hợp.

Đo lường mô hình phân bổ trên web và ứng dụng

Mở rộng Attribution Reporting API để cho phép phân bổ lượt chuyển đổi xảy ra trên web cho các sự kiện xảy ra bên ngoài trình duyệt, trong các ứng dụng khác.

Đề xuất ở đây tận dụng tính năng hỗ trợ cấp hệ điều hành cho hoạt động phân bổ. Cụ thể, nó cung cấp cho nhà phát triển tuỳ chọn cho phép các sự kiện trên web dành cho thiết bị di động có thể tham gia với các sự kiện trong Hộp cát về quyền riêng tư của Android, mặc dù cũng có thể triển khai chức năng hỗ trợ cho các nền tảng khác.

blocking=render trên tập lệnh mô-đun cùng dòng

Đây là một thay đổi nhỏ giúp loại bỏ giới hạn giả tạo khỏi <script blocking="render">. Trước khi có sự thay đổi này, <script blocking="render"type="module"> yêu cầu phải có thuộc tính src, ngay cả khi src này là một URI dữ liệu. Đây là một quy tắc ràng buộc không cần thiết, vì các tập lệnh mô-đun cùng dòng nhập các tập lệnh khác vẫn sẽ có thể hiển thị khối.

Động lực của việc này là việc chuyển đổi khung hiển thị nhiều tài liệu thường dựa vào các tập lệnh chặn hiển thị để tuỳ chỉnh. Vì vậy, việc tạo các tập lệnh chặn hiển thị dễ tạo hơn sẽ hỗ trợ tính năng này.

Tài liệu ở chế độ hình trong hình: cho phép API focus() lấy tiêu điểm là trình mở

Giờ đây, bạn có thể sử dụng opener.focus() từ cửa sổ hình trong hình của tài liệu để chuyển tiêu điểm ở cấp hệ thống sang thẻ sở hữu cửa sổ hình trong hình của tài liệu.

Điều này cho phép nhà phát triển đưa thẻ ban đầu trở lại nền trước khi cần. Ví dụ: khi người dùng cần truy cập vào một trải nghiệm giao diện người dùng không vừa với cửa sổ hình trong hình nhỏ hơn.

Nhập cú pháp with thuộc tính

Thuộc tính nhập là một tính năng của JavaScript cho phép chú thích các nội dung khai báo nhập, ví dụ: import xxx from "mod" with { type: "json" }. Ban đầu, Chrome đã gửi phiên bản trước đó của đề xuất (trong Chrome 91) bằng cách sử dụng assert làm từ khoá. Sau đó, phiên bản này đã được cập nhật để sử dụng with do một số thay đổi cần thiết khi tích hợp với HTML cho các mô-đun JSON và CSS.

jitterBufferTarget

Thuộc tính jitterBufferTarget cho phép các ứng dụng chỉ định thời lượng mục tiêu tính bằng mili giây nội dung nghe nhìn để bộ đệm dao động RTCRtpReceiver lưu giữ. Điều này ảnh hưởng đến lượng lưu vào bộ đệm do tác nhân người dùng thực hiện, từ đó ảnh hưởng đến quá trình truyền lại và khôi phục khi mất gói dữ liệu. Việc thay đổi giá trị mục tiêu cho phép các ứng dụng kiểm soát sự đánh đổi giữa độ trễ phát và rủi ro hết khung hình âm thanh hoặc video do dao động mạng.

Thời gian khung hình động dài

API Khung ảnh động dài là một tiện ích của API Tác vụ dài. Lớp này đo lường tác vụ cùng với quá trình cập nhật kết xuất tiếp theo, thêm các thông tin như các tập lệnh chạy trong thời gian dài, thời gian kết xuất và thời gian dành cho bố cục và kiểu bắt buộc, còn gọi là đàn hồi bố cục.

Các nhà phát triển có thể sử dụng báo cáo này để chẩn đoán về "độ chậm" (được đo bằng INP) bằng cách tìm nguyên nhân gây ra tình trạng nghẽn luồng chính (thường là nguyên nhân dẫn đến INP) không hợp lệ.

Giao diện NavigationKích hoạt thêm navigation.activation. Thao tác này lưu trữ trạng thái về thời điểm Tài liệu hiện tại được kích hoạt (ví dụ: thời điểm Tài liệu được khởi động hoặc được khôi phục từ bộ nhớ đệm cho thao tác tiến/lùi).

Điều này có nghĩa là nhà phát triển có thể cung cấp các trang tuỳ chỉnh dựa trên nơi người dùng truy cập. Ví dụ: chạy một ảnh động khác nếu các ảnh động đó đến từ trang chủ.

sự kiện hiển thị

Sự kiện pagereveal được kích hoạt trên đối tượng cửa sổ của Tài liệu trong cơ hội kết xuất đầu tiên sau khi Tài liệu: được tải lần đầu, được khôi phục từ bộ nhớ đệm cho thao tác tiến/lùi hoặc được kích hoạt từ một quá trình kết xuất trước.

Tác giả trang có thể sử dụng phương thức này để thiết lập trải nghiệm truy cập trang, chẳng hạn như chuyển đổi khung hiển thị từ trạng thái trước đó.

PointerEvent.deviceId cho Viết bằng nhiều bút

Khi các thiết bị có tính năng nhập liệu nâng cao bằng bút ngày càng trở nên phổ biến, điều quan trọng là nền tảng web phải tiếp tục phát triển để hỗ trợ đầy đủ các tính năng nâng cao này nhằm mang lại trải nghiệm phong phú cho cả người dùng cuối và nhà phát triển. Một trong những cải tiến như vậy là khả năng số hoá của thiết bị nhận ra nhiều thiết bị bút tương tác đồng thời với thiết bị đó. Tính năng này là phần mở rộng cho giao diện PointerEvent để bao gồm một thuộc tính mới là deviceId. Thuộc tính này đại diện cho giá trị nhận dạng duy nhất, được tách biệt với tài liệu và tồn tại cố định trong phiên mà nhà phát triển có thể sử dụng để xác định từng bút tương tác với trang.

Kiểm tra quyền truy cập mạng riêng để tìm các yêu cầu chỉ đường: chế độ chỉ cảnh báo

Trước khi trang web A chuyển đến một trang web B khác trong mạng riêng của người dùng, tính năng này sẽ thực hiện như sau:

  1. Kiểm tra xem yêu cầu có được khởi tạo từ ngữ cảnh bảo mật hay không.
  2. Gửi yêu cầu kiểm tra và kiểm tra xem B có phản hồi bằng một tiêu đề cho phép truy cập vào mạng riêng hay không.

Đã có các tính năng cho tài nguyên phụ và worker, nhưng việc bổ sung này dành riêng cho các yêu cầu điều hướng.

Việc kiểm tra này được thực hiện để bảo vệ mạng riêng của người dùng. Vì tính năng này là chế độ "chỉ cảnh báo", nên tính năng này sẽ không từ chối yêu cầu nếu bất kỳ bước kiểm tra nào không thành công. Thay vào đó, một cảnh báo sẽ xuất hiện trong Công cụ cho nhà phát triển để giúp nhà phát triển chuẩn bị cho hành động thực thi sắp tới.

Gợi ý về ứng dụng Sec-CH-UA-Form-Factor

Gợi ý này cho biết "hệ số hình dạng" của tác nhân người dùng hoặc thiết bị để trang web có thể điều chỉnh phản hồi.

API định tuyến tĩnh của Service Worker

API này cho phép nhà phát triển định cấu hình việc định tuyến và cho phép họ giảm tải những việc đơn giản mà worker dịch vụ thực hiện. Nếu điều kiện khớp, quá trình điều hướng sẽ diễn ra mà không cần khởi động trình chạy dịch vụ hoặc thực thi JavaScript, giúp các trang web tránh được các hình phạt về hiệu suất do có hành vi chặn trình thực thi dịch vụ. Để biết thêm thông tin, hãy xem bài đăng trên blog trước đó về API này.

Thông tin cập nhật về Bộ nhớ dùng chung

Bản cập nhật này hỗ trợ chạy worklet trên nhiều nguồn gốc mà không cần phải tạo iframe.

Mã hoá nội dung zstd

Zstandard, hay zstd, là một cơ chế nén dữ liệu được mô tả trong RFC8878. Đây là một thuật toán nén nhanh không tổn hao, nhắm đến các tình huống nén theo thời gian thực ở cấp zlib và tỷ lệ nén tốt hơn. Mã thông báo zstd đã được thêm dưới dạng mã thông báo Mã hoá nội dung đã đăng ký IANA.

Việc thêm tính năng hỗ trợ cho zstd dưới dạng Mã hoá nội dung sẽ giúp tải trang nhanh hơn và sử dụng ít băng thông hơn, đồng thời tốn ít thời gian, CPU và khả năng nén hơn trên các máy chủ của chúng tôi, nhờ đó giảm chi phí máy chủ.

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

Trong Chrome 123, 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.

Tích hợp lời hứa JavaScript WebAssembly

Để hỗ trợ các ứng dụng thích ứng được viết bằng WebAssembly, bạn cần cung cấp các tính năng cho phép tạm ngưng và tiếp tục các chương trình WebAssembly.

Trường hợp sử dụng ban đầu chính của tính năng tích hợp lời hứa là cho phép các chương trình WebAssembly có nguồn dựa trên API đồng bộ sử dụng các API không đồng bộ ngày càng phổ biến trên nền tảng Web.

Đăng ký dùng thử theo nguyên gốc tích hợp hứa hẹn.

Xoá

Chrome 123 sẽ xoá tính năng sau đây.

Email đại diện của window-placement cho chính sách quyền và quyền window-management

Trong Chrome 111, window-management đã được thêm dưới dạng bí danh cho các chuỗi chính sách quyền và quyền của window-placement. Đây là một phần trong nỗ lực lớn hơn nhằm đổi tên các chuỗi bằng cách ngừng sử dụng và xoá window-placement. Việc thay đổi thuật ngữ sẽ giúp cải thiện tuổi thọ của chỉ số mô tả vì API Quản lý cửa sổ phát triển theo thời gian.

Cảnh báo về việc không dùng nữa cho bí danh window-placement đã bắt đầu trong Chrome 113 và hiện sẽ bị loại bỏ.