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-item
và display: 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-all
và space-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ệ.
NavigationActivation
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:
- 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.
- 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ỏ.