Chrome 132 beta

Xuất bản: Ngày 13 tháng 11 năm 2024

Trừ phi có ghi chú khác, các thay đổi sau đây áp dụng cho bản phát hành mới nhất của kênh Chrome beta 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 trong danh sách trên ChromeStatus.com. Chrome 132 là phiên bản thử nghiệm kể từ ngày 13 tháng 11 năm 2024. Bạn có thể tải phiên bản mới nhất xuống trên 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 2 tính năng CSS mới.

CSS Anchor Positioning: cho phép anchor-size() trong các thuộc tính insetmargin

Ban đầu, bạn chỉ được phép sử dụng anchor-size() trong các thuộc tính kích thước. Quy cách đã được thay đổi để cho phép anchor-size() trong phần lồng ghép và lề.

Chế độ viết CSS theo chiều ngang

Hỗ trợ các từ khoá sideways-rlsideways-lr cho thuộc tính writing-mode CSS. sideways-rlsideways-lr rất hữu ích khi viết văn bản không phải là tiếng Nhật, tiếng Hàn và tiếng Trung theo chiều dọc. Chúng không có hành vi thuận lợi cho các ngôn ngữ CJK, không giống như vertical-rlvertical-lr.

Web API

Chụp ảnh màn hình của tất cả các màn hình

Chụp tất cả màn hình hiện đang kết nối với thiết bị bằng getAllScreensMedia().

Việc gọi getDisplayMedia() nhiều lần đòi hỏi nhiều cử chỉ của người dùng, gây phiền toái cho người dùng khi mỗi lần đều phải chọn màn hình tiếp theo và không đảm bảo cho ứng dụng rằng tất cả các màn hình đã được chọn. Phương thức getAllScreensMedia() cải thiện tất cả những khía cạnh này.

Tính năng này chỉ có trên máy tính.

Sự kiện bật/tắt hộp thoại

Bạn nên biết thời điểm các phần tử <dialog> mở và đóng, đồng thời popover đã có ToggleEvent được gửi khi một cửa sổ bật lên mở hoặc đóng. Trước đây, để phát hiện thời điểm <dialog> mở, bạn phải đăng ký một trình theo dõi thay đổi để kiểm tra xem có mở hay không. Tuy nhiên, đây là một việc khá tốn công trong khi một sự kiện sẽ dễ dàng hơn.

Thay đổi này kết hợp cùng ToggleEvent mà các cửa sổ bật lên gửi đi, nhưng đối với các phần tử <dialog>: khi showModal hoặc show được gọi, <dialog> sẽ gửi đi một ToggleEventnewState=open. Khi <dialog> bị đóng (bằng biểu mẫu, nút hoặc closewatcher), nó sẽ gửi một ToggleEventnewState=closed.

Chụp phần tử

Với video MediaStreamTrack thu được thông qua các phương tiện có sẵn để bắt đầu ghi lại thẻ, tính năng Ghi lại phần tử cho phép thay đổi bản ghi để chỉ ghi lại một 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, nhưng mang lại tính linh hoạt cao hơn cho các ứng dụng, vì cả nội dung bị che khuất và nội dung che khuất đều bị loại trừ khỏi quá trình ghi hình.

Các tính năng uỷ quyền của FedCM

Thư viện này kết hợp một số tính năng mà Nhà cung cấp danh tính (IdP) có thể sử dụng để triển khai các luồng uỷ quyền, chẳng hạn như cho phép người dùng cấp quyền truy cập vào lịch của họ cho Bên tin cậy (RP). Cụ thể:

  • IdP cần có khả năng hiển thị lời nhắc tuỳ chỉnh cho quyền (API tiếp tục).
  • RP cần một cách thức có thể mở rộng để truyền đạt cho IdP biết những gì mà RP muốn truy cập (API tham số).
  • RP cần có khả năng tuỳ chỉnh hoặc ẩn văn bản đề cập đến việc IdP chia sẻ "tên, địa chỉ email và ảnh hồ sơ" vì trong trường hợp này, họ đang yêu cầu thông tin khác (API trường).
  • IdP có thể muốn sử dụng một điểm cuối khác để triển khai quy trình uỷ quyền (nhiều configURL).
  • Một số tài khoản có thể chỉ đủ điều kiện cho một trong các quy trình xác thực và uỷ quyền, vì vậy, cần có cách để hiển thị các tài khoản khác nhau trong hai quy trình (API nhãn tài khoản).

FedCM Mode API và Use Other Account API

Hai tiện ích mới cho FedCM:

  • Chế độ: Chế độ active cho phép các trang web gọi FedCM trong một lần nhấp vào nút (ví dụ: nhấp vào nút Đăng nhập vào IdP). Chế độ này yêu cầu FedCM đảm bảo rằng chế độ này sẽ luôn phản hồi bằng một giao diện người dùng có thể nhìn thấy. Khi gọi API FedCM ở chế độ đang hoạt động, người dùng sẽ được chuyển đến trang đăng nhập vào Nhà cung cấp danh tính (IdP) khi người dùng đăng xuất. Ngoài ra, vì chế độ đang hoạt động được gọi trong một cử chỉ rõ ràng của người dùng, nên giao diện người dùng cũng nổi bật hơn (ví dụ: ở giữa và theo phương thức) so với giao diện người dùng ở chế độ thụ động (không yêu cầu cử chỉ của người dùng và có thể được gọi khi tải trang).
  • Sử dụng tài khoản khác: Với tiện ích này, một IdP có thể cho phép người dùng đăng nhập vào các tài khoản khác.

Tìm nạp: Request.bytes()Response.bytes()

Thêm phương thức bytes() vào các giao diện RequestResponse. Phương thức này sẽ trả về một lời hứa phân giải bằng Uint8Array. Mặc dù RequestResponse có phương thức arrayBuffer(), nhưng bạn không thể đọc trực tiếp từ vùng đệm. Bạn phải tạo một khung hiển thị, chẳng hạn như Uint8Array để đọc khung hiển thị đó. Phương thức bytes() cải thiện khả năng truy cập vào nội dung của Yêu cầu và Phản hồi.

Quyền truy cập hệ thống tệp cho Android và WebView

API này cho phép nhà phát triển tạo các ứng dụng mạnh mẽ tương tác với các ứng dụng khác (không phải ứng dụng Web) trên thiết bị của người dùng bằng hệ thống tệp của thiết bị. Sau khi người dùng cấp quyền truy cập cho một ứng dụng web, API này cho phép ứng dụng đọc hoặc lưu các thay đổi trực tiếp vào các tệp và thư mục do người dùng chọn. Ngoài việc đọc và ghi tệp, API này còn cung cấp khả năng mở một thư mục và liệt kê nội dung của thư mục đó, cũng như lưu trữ các tệp và thư mục trong IndexedDB để sau này lấy lại quyền truy cập vào cùng một nội dung.

Quyền truy cập vào hệ thống tệp được cung cấp trên máy tính trong Chrome 86, còn trong Chrome 132, quyền này có trên Android và WebView.

Bỏ qua Strict-Transport-Security cho localhost

Tiêu đề phản hồi Strict-Transport-Security (STS) có thể gây ra vấn đề cho máy chủ web cục bộ vì STS áp dụng trên toàn bộ máy chủ lưu trữ, trên tất cả các cổng. Điều này gây ra các vấn đề về khả năng tương thích cho nhà phát triển web khi kiểm thử cục bộ. Điều này cũng ảnh hưởng đến người dùng cuối sử dụng các gói phần mềm thường khởi động máy chủ web cục bộ vì những lý do tạm thời. Ví dụ: việc truyền mã xác thực từ một lần đăng nhập trên web đến một gói phần mềm cục bộ. Nếu một trình nghe cục bộ đặt Strict-Transport-Security trên một phản hồi máy chủ cục bộ, thì phản hồi đó sẽ được áp dụng cho tất cả các yêu cầu máy chủ cục bộ tiếp theo, bất kể cổng nào.

Chrome 132 giải quyết vấn đề này bằng cách bỏ qua tiêu đề Strict-Transport-Security trên các phản hồi từ URL localhost.

Vùng chứa có thể cuộn có thể lấy tiêu điểm bằng bàn phím

Việc triển khai tính năng này (từ Chrome 130) đã bị dừng do một lỗi hồi quy về khả năng tiếp cận. Vấn đề này đã được khắc phục và tính năng này sẽ tiếp tục được triển khai cùng với Chrome 132.

Ký tự đại diện trong danh sách cho phép mặc định của Chính sách về quyền Private State Token API

Quyền truy cập vào Private State Token API được kiểm soát bằng các tính năng của Permissions Policy. Chrome 132 cập nhật danh sách cho phép mặc định cho cả tính năng private-state-token-issuanceprivate-state-token-redemption từ self thành * (ký tự đại diện).

PushMessageData::bytes()

Giao diện PushMessageData mô phỏng giao diện Body. Giao diện này đã được sửa đổi vào đầu năm nay bằng phương thức bytes() mới, theo nguyên tắc rằng các API thường phải cung cấp bộ đệm byte dưới dạng Uint8Arrays. Chrome 132 điều chỉnh lại theo giao diện Body bằng cách cung cấp trình truy cập bytes() trên giao diện PushMessageData.

Truy vấn đã lưu trong sharedStorage.selectURL

sharedStorage.selectURL() hiện cho phép lưu và sử dụng lại các truy vấn trên cơ sở mỗi trang, trong đó hai ngân sách cho mỗi lần tải trang sẽ được tính phí vào lần đầu tiên chạy một truy vấn đã lưu nhưng không tính phí cho các lần chạy tiếp theo của truy vấn đã lưu trong cùng một lần tải trang. Việc này được thực hiện bằng tham số savedQuery trong các lựa chọn cho selectURL() đặt tên cho truy vấn.

Gây ra ngoại lệ cho các cửa sổ bật lên và hộp thoại trong các tài liệu không hoạt động

Trước đây, việc gọi showPopover() hoặc showModal() trên một cửa sổ bật lên hoặc hộp thoại nằm trong một tài liệu không hoạt động sẽ âm thầm không thành công. Không có trường hợp ngoại lệ nào được đưa ra, nhưng vì tài liệu không hoạt động nên sẽ không có cửa sổ bật lên hoặc hộp thoại nào xuất hiện. Kể từ Chrome 132, những trường hợp này hiện sẽ gửi InvalidStateError.

WebAuthn Signal API

Cho phép các bên phụ thuộc WebAuthn chuyển thông tin về thông tin xác thực hiện có cho các nhà cung cấp bộ nhớ thông tin xác thực, để thông tin xác thực không chính xác hoặc bị thu hồi có thể được cập nhật hoặc xoá khỏi nhà cung cấp và giao diện người dùng hệ thống.

Tìm hiểu thêm về Signal API cho khoá truy cập trên Chrome dành cho máy tính.

WebGPU: Kết hợp các hoạ tiết dấu phẩy động 32 bit

Tính năng GPU float32-blendable giúp kết hợp các kết cấu GPU có định dạng r32float, rg32floatrgba32float.

WebGPU: Hiển thị GPUAdapterInfo từ GPUDevice

Thuộc tính GPUDevice adapterInfo hiển thị cùng một GPUAdapterInfo như đối tượng GPUAdapter.

WebGPU: Mức sử dụng khung hiển thị kết cấu

Thêm một trường không bắt buộc vào quá trình tạo khung hiển thị kết cấu WebGPU để yêu cầu một tập hợp con của cờ sử dụng từ kết cấu nguồn.

Theo mặc định, việc sử dụng khung hiển thị kết cấu sẽ kế thừa từ kết cấu nguồn, nhưng có những định dạng khung hiển thị có thể không tương thích với toàn bộ các mục đích sử dụng được kế thừa. Việc thêm một trường sử dụng vào quá trình tạo chế độ xem kết cấu cho phép người dùng yêu cầu một tập hợp con các mục đích sử dụng kết cấu nguồn hợp lệ với định dạng chế độ xem và dành riêng cho mục đích sử dụng dự kiến của họ đối với chế độ xem kết cấu.

Các quy trình triển khai WebGPU cũng có thể tối ưu hoá việc tạo tài nguyên cấp thấp và cải thiện hiệu suất khi sử dụng các khung hiển thị có cờ sử dụng chuyên biệt hơn.

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

Trong Chrome 132, bạn có thể chọn tham gia các thử nghiệm theo nguyên gốc mới sau đây.

Document-Isolation-Policy

Document-Isolation-Policy cho phép một tài liệu bật crossOriginIsolation cho chính nó mà không cần triển khai COOP hoặc COEP, bất kể trạng thái crossOriginIsolation của trang. Chính sách này được hỗ trợ bằng tính năng cách ly quy trình. Ngoài ra, các tài nguyên phụ nhiều nguồn gốc không phải CORS của tài liệu sẽ được tải mà không cần thông tin đăng nhập hoặc cần có tiêu đề CORP.

Gợi ý biên dịch tường minh bằng chú thích đặc biệt

Tính năng này cho phép bạn đính kèm thông tin về những hàm cần được phân tích cú pháp và biên dịch ngay trong các tệp JavaScript. Thông tin này sẽ được mã hoá dưới dạng chú thích đặc biệt.

Bản không dùng nữa và xoá

Phiên bản Chrome này giới thiệu những thay đổi sau đây về việc ngừng sử dụng và xoá. Truy cập vào ChromeStatus.com để xem danh sách các tính năng dự kiến sẽ không dùng nữa, các tính năng hiện không dùng nữa và các tính năng đã bị xoá trước đây.

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

navigator.storage được tạo thành một EventTarget cho Sự kiện áp lực lưu trữ, nhưng chưa bao giờ vượt qua giai đoạn nguyên mẫu. Đoạn mã không dùng đến này sẽ bị xoá và do đó, navigator.storage sẽ không còn mở rộng EventTarget nữa.

Xoá các API toàn màn hình có tiền tố HTMLVideoElement

Các API chế độ toàn màn hình HTMLVideoElement có tiền tố đã bị Chrome ngừng sử dụng

Chúng được thay thế bằng API Element.requestFullscreen(). API này lần đầu tiên được phát hành mà không có tiền tố trong Chrome 71 vào năm 2018. Kể từ năm 2024, hầu hết các trình duyệt đều đã hỗ trợ các API không có tiền tố trong vài năm.

Chrome 132 sẽ xoá những mục sau đây khỏi HTMLVideoElement:

  • Thuộc tính webkitSupportsFullscreen.
  • Thuộc tính webkitDisplayingFullscreen.
  • Phương thức webkitEnterFullscreen().
  • Phương thức webkitExitFullscreen(). Lưu ý cách viết hoa khác nhau của chữ "S" trong FullScreen.
  • Phương thức webkitEnterFullScreen().
  • Phương thức webkitExitFullScreen().

Giờ đây, các phương thức này chỉ là các bí danh cho API hiện đại. Mức độ sử dụng của các công cụ này đã giảm dần theo thời gian.