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

Lưới con lưới CSS, hỗ trợ ảnh động vào và thoát cho CSS, nhóm mảng, trình trợ giúp biến lặp, v.v.

Trừ phi có ghi chú khác, những thay đổi được mô tả sẽ áp dụng cho bản phát hành kênh thử nghiệm beta mới nhất của Chrome dành cho Android, ChromeOS, Linux, macOS và Windows. Tìm hiểu thêm về các tính năng có trong danh sách 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 117 đang trong giai đoạn thử nghiệm kể từ ngày 16 tháng 8 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 trên Android.

CSS

Bản phát hành này bổ sung 6 tính năng mới của CSS. Ba thuộc tính đầu tiên là một phần của công việc cho phép chuyển đổi trên các thuộc tính riêng biệt, cho phép ảnh động nhập và thoát.

Quy tắc @start-style

Quy tắc theo quy tắc này cho phép tác giả bắt đầu chuyển đổi CSS trong lần cập nhật kiểu đầu tiên.

Quá trình chuyển đổi CSS không kích hoạt hiệu ứng chuyển đổi từ kiểu ban đầu trong lần cập nhật kiểu đầu tiên của một phần tử hoặc khi kiểu hiển thị thay đổi từ none thành một kiểu khác. Điều này nhằm tránh chuyển đổi không mong muốn từ các kiểu ban đầu. Để bắt đầu chuyển đổi từ lần cập nhật kiểu đầu tiên, bạn hiện có thể áp dụng kiểu trong quy tắc @starting-style. Ví dụ: CSS sau đây bắt đầu chuyển đổi màu nền từ màu xanh lục sang màu vàng chanh trong lần cập nhật kiểu đầu tiên cho div:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

Thuộc tính lớp phủ

Thuộc tính overlay cho phép nhà phát triển giữ các phần tử ở lớp trên cùng để chuyển đổi thoát. Thuộc tính lớp phủ được thêm để cho biết liệu một phần tử có nằm trong lớp trên cùng hay không và có thể nhận hai giá trị: none hoặc auto.

Thuộc tính hành vi chuyển đổi của CSS

Thuộc tính CSS transition-behavior là thành phần dài của thuộc tính transition, cho phép sử dụng các thuộc tính riêng biệt trong quá trình chuyển đổi. Bằng cách chỉ định giá trị allow-discrete cho hành vi chuyển đổi, các thuộc tính rời rạc giờ đây sẽ bắt đầu ảnh động và chuyển từ giá trị ban đầu sang giá trị cuối cùng ở mức 50%. Đối với quá trình chuyển đổi có display: nonecontent-visibility: hidden là một trong các giá trị ban đầu hoặc cuối cùng, giá trị hiển thị sẽ được dùng trong toàn bộ thời gian chuyển đổi.

Giá trị lưới con của lưới CSS

Giá trị subgrid cho grid-template-columnsgrid-template-rows hiện đã được triển khai trong Chrome. Giá trị này cho phép một lưới lồng nhau sử dụng những tuyến đường được xác định trên nguồn gốc, thay vì tạo định nghĩa theo dõi mới cho các hàng, cột hoặc cả hai.

Bọc văn bản CSS: đẹp

Giá trị pretty của thuộc tính CSS text-wrap sẽ tối ưu hoá để có bố cục tốt nhất thay vì tốc độ. Mã này được dành cho văn bản nội dung, do đó yêu cầu sẽ có nhiều dòng. Bằng cách sử dụng pretty, nhà phát triển thể hiện rõ việc chọn sử dụng phương thức bố cục có thể chậm hơn wrap – phương thức này giúp tối ưu hoá hiệu suất. Quy trình triển khai hiện tại trong Chrome tối ưu hoá cho đứa trẻ để ngăn một từ xuất hiện ở cuối đoạn văn bản.

Trong Chrome 117, hãy thử bản minh hoạ tính năng gói văn bản: quy trình đẹp này và xem giá trị đó thay đổi cách trình bày văn bản như thế nào.

chứa-nội tại-kích thước: tự động không hỗ trợ

Tính năng này mở rộng cú pháp contain-intrinsic-size hiện có để bao gồm cả auto && none.

API web

Nhóm mảng

Nhóm mảng là một phép toán cực kỳ phổ biến, được minh hoạ tốt nhất bằng mệnh đề GROUP BY và lập trình Map giảm của SQL (được hiểu rõ hơn về việc giảm nhóm bản đồ). Khả năng kết hợp dữ liệu thành các nhóm cho phép các nhà phát triển tính toán các tập dữ liệu thứ tự cao hơn, như tuổi trung bình của một nhóm thuần tập hoặc giá trị LCP hằng ngày cho một trang web. Để làm việc này, bạn có thể thêm các phương thức tĩnh Object.groupByMap.groupBy. Phương thức Đối tượng trả về một đối tượng thuần tuý, trong đó các nhóm là khoá thuộc tính. Phương thức ánh xạ sẽ trả về một tệp ánh xạ, trong đó các khoá có thể là giá trị tuỳ ý.

Xoá Gợi ý về ứng dụng qua tiêu đề Xoá dữ liệu trang web

Giờ đây, các trang web có thể xoá bộ nhớ đệm gợi ý của ứng dụng bằng Clear-Site-Data: "clientHints". Giờ đây, các gợi ý của ứng dụng cũng sẽ bị xoá khi "cookie", "bộ nhớ đệm" hoặc "*" được nhắm mục tiêu bởi cùng một tiêu đề. Điều này là do nếu người dùng xoá cookie trong gợi ý của ứng dụng trên giao diện người dùng cũng đã bị xoá, thì bộ nhớ đệm gợi ý của ứng dụng khách sẽ là một bộ nhớ đệm và để nhất quán với các mục tiêu ký tự đại diện tương ứng.

Cú pháp ký tự đại diện cho tiêu đề Xoá-Site-Data

Giờ đây, các trang web có thể xoá tất cả mục tiêu bộ nhớ ("cookie", "bộ nhớ đệm" và "bộ nhớ") bằng cách gửi Clear-Site-Data: "*". Xin lưu ý rằng Chrome hiện không hỗ trợ xoá "executionContexts", nhưng nếu chúng tôi thêm tính năng này trong tương lai, thì hệ thống cũng sẽ xoá những tiêu đề đó.

customElements.getName

Phương thức customElements.getName() trả về tên thẻ của định nghĩa phần tử tuỳ chỉnh đã cho.

Trình trợ giúp biến lặp

Trình trợ giúp biến lặp là các phương thức mới trên nguyên mẫu lặp để cho phép sử dụng và tiêu thụ chung đối với trình lặp.

Lấy CaptureController lấy từ giao diện EventTarget

Giao diện CaptureController cho phép thao tác thêm đối với phiên chụp ảnh màn hình. Trong tương lai, các sự kiện liên quan đến phiên chụp sẽ được gửi đi trên bộ điều khiển đó. Để có thể quản lý trình nghe cho các sự kiện như vậy, các phương thức EventTarget đã được cung cấp trên CaptureController.

Loại phân phối PerformanceResourceTiming

Thuộc tính deliveryType của PerformanceResourceTiming trả về thông tin về cách phân phối tài nguyên. Ví dụ: tài nguyên được phân phối từ bộ nhớ đệm (hiện được hiển thị qua transferSize) và các hoạt động điều hướng đã được trang trước tìm nạp trước.

Kiểm tra tràn cổng trong phương thức setter URL

Giá trị cổng sẽ được kiểm tra khi thiết lập url.port. Tất cả các giá trị vượt quá giới hạn số 16 bit sẽ không còn hợp lệ. Ví dụ: tập lệnh sau sẽ hoạt động theo cách khác sau khi thay đổi:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Trước khi thay đổi, kết quả là 65536. Sau khi thay đổi kết quả sẽ là 80.

API Mã thông báo trạng thái riêng tư

Đây là một API mới để truyền tín hiệu riêng tư có giới hạn trên các trang web mà không cần sử dụng giá trị nhận dạng cố định trên nhiều trang web như cookie của bên thứ ba. Các phương pháp chống gian lận dựa vào cookie của bên thứ ba sẽ không hoạt động khi cookie của bên thứ ba không được dùng nữa. API Mã thông báo trạng thái riêng tư không tạo hay xác định tín hiệu chống gian lận: tín hiệu này tuỳ thuộc vào bên thứ nhất tương ứng và nhà phát hành mã thông báo. Thay vào đó, API duy trì quyền riêng tư bằng cách áp dụng các giới hạn đối với thông tin được chuyển trong những tín hiệu này. API này dựa trên một biến thể của giao thức Privacy Pass (Gói quyền riêng tư) đang trong quá trình chuẩn hoá theo IETF. Đây có thể được coi là một dạng hiển thị trên web của các giao thức Privacy Pass. Chúng tôi cần cập nhật thông số kỹ thuật API cho các phiên bản và loại mã thông báo mới, đồng thời sẽ liên tục cập nhật thông số kỹ thuật của nhóm làm việc về Privacy Pass. Thay đổi dự kiến sẽ nằm trong giao thức mã hoá cơ bản và mã phát hành mã thông báo: chúng tôi dự kiến sẽ không có thay đổi nào đối với API Tìm nạp mà nhà phát triển có thể thực hiện và đổi tên. API Mã thông báo trạng thái riêng tư trước đây được gọi là API Mã thông báo tin cậy. Chúng tôi đổi tên phiên bản này để ghi lại chính xác hơn về ngữ nghĩa cơ bản và để nêu bật các lợi ích về quyền riêng tư cho người dùng.

Trình phân tích cú pháp máy chủ IPv6 được nhúng tương thích với URL chuẩn

Hành vi phân tích cú pháp trình phân tích cú pháp máy chủ IPv4 được nhúng trong IPv4 sẽ được cập nhật để tuân thủ nghiêm ngặt tiêu chuẩn URL web. Các hạn chế được đưa ra đối với địa chỉ IPv6 là:

  • Địa chỉ IPv4 được nhúng phải luôn bao gồm 4 phần.
  • Những địa chỉ có ít hơn 4 phần như http://[::1.2] sẽ không còn hợp lệ. Tính năng này là một phần của URL tương tác năm 2023.

URL: Cho phép "%00" làm đường dẫn URL hợp lệ

Hiện tại, Chrome coi một URL là không hợp lệ nếu phần đường dẫn của URL chứa "%00" (hoặc rỗng). URL này không tuân thủ Tiêu chuẩn URL. Ví dụ: kiểm thử sau đây không thành công trong Chrome, vì new URL(...) trả về một ngoại lệ URL không hợp lệ.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Theo Tiêu chuẩn URL, mọi ký tự hoặc chuỗi byte trong đường dẫn URL không được làm cho URL không hợp lệ, và thay đổi này sẽ cập nhật Chrome để tuân theo tiêu chuẩn đó.

Kiểm soát tiện ích tiêu đề WebRTC RTP

Mở rộng API RTCRtpTransceiver WebRTC để cung cấp quyền kiểm soát những tiện ích tiêu đề RTP nào được thương lượng.

Bộ định lượng trên mỗi khung hình trong VideoEncoder

Thêm VideoEncoderBitrateMode "quantizer" cho VideoEncoder. Điều này cung cấp khả năng chỉ định tham số bộ định lượng cho mỗi khung hình cho các bộ mã hoá và giải mã video AV1, VP9 và AVC.

Tuỳ chọn WebUSB exclusionFilters trong requestDevice()

Tuỳ chọn exclusionFilters trong navigator.usb.requestDevice() cho phép nhà phát triển web loại trừ một số thiết bị khỏi bộ chọn trình duyệt. Bạn có thể dùng tiêu chí này để loại trừ các thiết bị khớp với một bộ lọc rộng hơn nhưng không được hỗ trợ.

Đang trong quá trình dùng thử theo nguyên gốc

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

Truyền tải từ điển nén bằng Shared Brotli

Tính năng này bổ sung hỗ trợ việc sử dụng các phản hồi được chỉ định trước đó làm từ điển bên ngoài cho các phản hồi HTTP nén bằng Brotli.

Đăng ký dùng thử bản dùng thử theo nguyên gốc Com tạpInheritTransport.

Dùng thử việc ngừng sử dụng WebSQL

WebSQL sẽ bị xoá khỏi Chrome. Các trang web sử dụng nền tảng này nên chuyển sang SQLite qua Wasm.

Bản dùng thử ngừng sử dụng này cho phép các nhà phát triển cần thêm thời gian để di chuyển có thể tiếp tục sử dụng WebSQL cho đến Chrome 123 (tháng 3 năm 2024). Đăng ký bản dùng thử việc ngừng sử dụng WebSQL.

Ứng dụng web được gắn thẻ

Cho phép các cửa sổ ứng dụng web có dải thẻ, chẳng hạn như để chỉnh sửa nhiều tài liệu trong cùng một ứng dụng. Thao tác này sẽ thêm chế độ hiển thị mới "thẻ" và một trường tệp kê khai mới để cho phép tuỳ chỉnh thanh thẻ.

Đăng ký dùng thử theo nguyên gốc Ứng dụng web dạng thẻ.

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

Phiên bản Chrome này giới thiệu việc ngừng sử dụng và xoá bỏ như liệt kê dưới đây. Hãy truy cập vào ChromeStatus.com để xem danh sách các trường hợp ngừng sử dụng theo kế hoạch, ngừng sử dụng hiện tại và các lượt xoá bỏ trước đó.

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

Ngừng sử dụng sự kiện huỷ tải

Chrome 117 sẽ bắt đầu quá trình ngừng sử dụng trình xử lý sự kiện unload. Nếu trang web của bạn sử dụng các tính năng này, bạn nên đọc bài đăng riêng về việc ngừng sử dụng unload để biết thêm chi tiết.

Ngừng sử dụng chữ ký máy chủ TLS SHA-1

Chrome sẽ ngừng hỗ trợ thuật toán chữ ký sử dụng SHA-1 cho chữ ký máy chủ trong quá trình bắt tay TLS. Điều này không ảnh hưởng đến tính năng hỗ trợ SHA-1 trong các chứng chỉ máy chủ đã bị xoá hoặc trong các chứng chỉ ứng dụng tiếp tục được hỗ trợ.

Bản phát hành Chrome này sẽ loại bỏ 4 tính năng.

[WebRTC] Huỷ gửi phương thức getStats() cũ dựa trên lệnh gọi lại

RTCPeerConnection có hai phiên bản getStats(), một phiên bản tuân thủ quy cách trả về báo cáo thông qua việc giải quyết một lời hứa và một phiên bản không theo chuẩn trả về một báo cáo rất khác thông qua lệnh gọi lại làm đối số đầu tiên. Phương thức dựa trên lệnh gọi lại hiện đã bị xoá.

Để biết thêm thông tin về việc di chuyển và những việc cần làm nếu bạn cần thêm thời gian, hãy xem Hướng dẫn di chuyển getStats() cũ.

Xoá giá trị -1 cho getStats datachannelIdentifier

API getStats WebRTC hiển thị thuộc tính dataChannelIdentifier. Thuộc tính này sẽ không còn cung cấp giá trị "-1" trong trường hợp số liệu thống kê được truy vấn trước khi thiết lập kết nối kênh dữ liệu. Thay vào đó, thành phần từ điển sẽ bị bỏ qua.

Xoá phương thức triển khai bộ mã hoá getStats và giải mã triển khai "không xác định" của WebRTC

API getStats WebRTC hiển thị tên triển khai bộ mã hoá và bộ giải mã cho video đi và video vào. Thuộc tính này sẽ không cung cấp giá trị "không xác định" nữa trong trường hợp số liệu thống kê được truy vấn trước khi khung video được mã hoá hoặc giải mã. Thay vào đó, thành phần từ điển sẽ bị bỏ qua.

Thuộc tính CSS -webkit-highlight

Xoá thuộc tính CSS -webkit-highlight nhằm làm nổi bật văn bản, nhưng chưa được chuẩn hoá. Nó không có hiệu ứng rõ ràng trong chromium (được phân tích cú pháp nhưng không bao giờ được sử dụng trong hiển thị nội dung). Thuộc tính này đã bị xoá khỏi WebKit vào năm 2014, được đánh dấu là không dùng nữa trên MDN và gần đây đã được thay thế bằng thông số kỹ thuật Giả mạo nổi bật của CSS.