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

Lưới phụ 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, các 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 liệt kê tại đây thông qua các đường liên kết được cung cấp hoặc từ danh sách trên ChromeStatus.com. Chrome 117 là phiên bản thử nghiệm kể từ ngày 16 tháng 8 năm 2023. Bạn có thể tải xuống những bản phát hành mới nhất trên Google.com dành 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 về CSS. Ba thuộc tính đầu tiên là một phần trong công việc để bật hiệu ứng 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 @begin-style

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

Hiệu ứng chuyển đổi CSS không kích hoạt quá trình chuyển đổi từ kiểu ban đầu trong lần cập nhật kiểu đầu tiên cho một phần tử hoặc khi kiểu hiển thị thay đổi từ none sang một số kiểu khác. Điều này nhằm tránh những 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, giờ đây, bạn có thể áp dụng kiểu từ 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 một 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 vào để 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 CSS

Thuộc tính CSS transition-behavior là một thuộc tính dài hạn 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, giờ đây, các thuộc tính rời rạc sẽ bắt đầu ảnh động và lật từ giá trị ban đầu đến giá trị cuối cùng khi đã đạt 50%. Đối với quá trình chuyển đổi mà display: nonecontent-visibility: hidden là một trong các giá trị ban đầu hoặc giá trị cuối cùng, giá trị hiển thị sẽ được sử dụng trong toàn bộ thời gian chuyển đổi.

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

Giá trị subgrid của 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 các kênh được xác định trên thành phần mẹ, thay vì tạo định nghĩa mới cho kênh, cột hoặc cả hai.

Xuống dòng tự động CSS::

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

Trong Chrome 117, hãy thử xem bản minh hoạ về tính năng xuống dòng tự động: hình ảnh đẹp và xem cách giá trị thay đổi bản trình bày văn bản.

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 thao tác cực kỳ phổ biến, được minh hoạ tốt nhất bằng mệnh đề GROUP BY của SQL và lập trình MapReduce (đây là cách hay nên dùng để giảm nhóm bản đồ). Khả năng kết hợp dữ liệu vào các nhóm cho phép nhà phát triển tính toán các tập dữ liệu có đơn đặt hàng cao hơn, chẳng hạn như tuổi trung bình của nhóm thuần tập hoặc giá trị LCP hằng ngày cho một trang web. Để bật tính năng này, hãy thêm các phương thức tĩnh Object.groupByMap.groupBy. Phương thức Object (Đố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 Map trả về một Bản đồ, trong đó các khoá có thể là các giá trị tuỳ ý.

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

Giờ đây, các trang web có thể xoá bộ nhớ đệm gợi ý ứng dụng bằng Clear-Site-Data: "clientHints". Giờ đây, gợi ý ứ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 đề. Lý do là nếu người dùng xoá cookie trong gợi ý của ứng dụng giao diện người dùng cũng đã bị xoá, thì bộ nhớ đệm gợi ý ứng dụng sẽ là 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 tiêu đề Xoá dữ liệu trang web

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: "*". Lưu ý rằng Chrome không hỗ trợ xoá "executionContexts" hiện tại, nhưng nếu chúng tôi thêm vào trong tương lai, bất kỳ tiêu đề nào nhắm mục tiêu "*" thì cũng sẽ xoá chúng.

customElements.getName

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

Trình trợ giúp Iterator

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

Làm cho CaptureController được 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, dự kiến các sự kiện liên quan đến một phiên chụp sẽ được gửi đi trên bộ điều khiển đó. Để có thể quản lý trình nghe các sự kiện như vậy, các phương thức EventTarget đã được cung cấp trên CaptureController.

Kiểu 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ụ: các tài nguyên được phân phối từ bộ nhớ đệm (hiện được hiển thị thông 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 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ả đầu ra 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ải các tín hiệu riêng tư có giới hạn trên nhiều trang web mà không cần sử dụng các 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 lừa đảo dựa vào cookie của bên thứ ba sẽ không hoạt động sau khi cookie của bên thứ ba không được dùng nữa. Private State Token API không tạo hoặc xác định các tín hiệu chống lừa đảo: điều này tuỳ thuộc vào bên thứ nhất và nhà phát hành mã thông báo tương ứng. Thay vào đó, API này 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 (Thẻ quyền riêng tư) đang được IETF chuẩn hoá. Đây có thể được coi là một hình thức hiển thị trên web của giao thức Privacy Pass. Thông số kỹ thuật của API sẽ được cập nhật cho các phiên bản và loại mã thông báo mới, đồng thời cũng được cập nhật liên quan đến thông số của nhóm làm việc Privacy Pass. Những thay đổi dự kiến sẽ nằm trong các 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 việc phát hành và sử dụng API Tìm nạp dành cho nhà phát triển sẽ không có gì thay đổi. Private State Token API trước đây có tên là Trust Token API. API này được đổi tên để nắm bắt chính xác hơn ngữ nghĩa cơ bản và để làm nổi 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 nhúng tương thích với URL

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

  • Địa chỉ IPv4 được nhúng sẽ 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ệ nữa. Tính năng này là một phần của tính năng tương tác URL năm 2023.

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

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

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

Theo Tiêu chuẩn URL, mọi chuỗi ký tự hoặc 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 đề RTP WebRTC

Mở rộng API WebRTC RTCRtpTransceiver để 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 "bộ định lượng" VideoEncoderBitrateMode cho VideoEncoder. Khả năng này cung cấp khả năng chỉ định tham số lượng tử hoá cho mỗi khung hình đối với 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ể sử dụng phương pháp 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ợ.

Bản dùng thử theo nguyên gốc đang diễn ra

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 hỗ trợ thêm việc sử dụng các phản hồi đã chỉ định trước đó, làm từ điển bên ngoài để nén các phản hồi HTTP.

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

Thử nghiệm ngừng sử dụng WebSQL

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

Bản thử nghiệm 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 hết Chrome 123 (tháng 3 năm 2024). Đăng ký tham gia thử nghiệm ngừng sử dụng WebSQL.

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

Ví dụ: cho phép cửa sổ ứng dụng web có một dải thẻ để 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 dải thẻ.

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

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

Phiên bản Chrome này đã ngừng sử dụng và loại bỏ được liệt kê bên dưới. Truy cập vào ChromeStatus.com để biết danh sách các miền ngừng sử dụng theo kế hoạch, các lượt ngừng sử dụng hiện tại và các lượt xoá trước đây.

Bản phát hành Chrome này sẽ ngừng sử dụng hai tính năng.

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, thì bạn nên đọc bài đăng chuyên biệt 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ủ SHA-1 của TLS

Chrome sẽ ngừng hỗ trợ các 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 khả 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ỉ máy khách vẫn được hỗ trợ.

Bản phát hành Chrome này sẽ xoá 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 phân giải 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. Hàm 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 của WebRTC

API getStats của WebRTC hiển thị thuộc tính dataChannelIdentifier. Nó sẽ không còn cung cấp giá trị "-1" nữa 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 trong từ điển sẽ bị bỏ qua.

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

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

Thuộc tính CSS -webkit-highlight

Xoá thuộc tính CSS -webkit-highlight nhằm mục đích làm nổi bật văn bản, nhưng không bao giờ được chuẩn hoá. Tham số này 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 dùng để 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á trị giả của CSS Điểm nổi bật.