Chrome 125

Ngày phát hành ổn định: 14/5/2024

Trừ phi có ghi chú khác, những thay đổi sau đây sẽ áp dụng cho bản phát hành kênh chính thức của Chrome 125 dành cho Android, ChromeOS, Linux, macOS và Windows.

HTML và DOM

Khai báo chuyển đổi tuần tự DOM bóng

Một tính năng cho phép nhà phát triển chuyển đổi tuần tự cây DOM có chứa gốc bóng, gần đây đã được chuẩn hoá theo tiêu chuẩn HTML.

Theo dõi lỗi #41490936 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

CSS

Vị trí neo CSS

Vị trí neo CSS cho phép nhà phát triển chia sẻ một phần tử có vị trí tuyệt đối với một hoặc nhiều phần tử khác trên trang (liên kết), theo cách rõ ràng mà không cần sử dụng JavaScript. Tính năng định vị điểm neo hoạt động hiệu quả khi các neo có thể cuộn. Một trường hợp sử dụng phổ biến là đặt cửa sổ bật lên, chẳng hạn như chú giải công cụ bên cạnh phần tử đã gọi phần tử đó, hoặc một trình đơn chọn và danh sách tuỳ chọn cửa sổ bật lên. Trước khi có tính năng định vị vị trí neo, những trường hợp sử dụng này yêu cầu JavaScript linh động định vị cửa sổ bật lên và giữ cho cửa sổ đó cố định khi người dùng cuộn phần tử gọi. Đây là một khẩu súng nhanh có tính hiệu suất và rất khó để xác định đúng. Với vị trí neo, các trường hợp sử dụng này có thể được triển khai một cách hiệu quả và mang tính khai báo.

Tính năng định vị cố định bao gồm một số lượng lớn các thuộc tính CSS. Sau đây là một số thuộc tính chính:

  • anchor-name: thiết lập một phần tử làm điểm liên kết cho các phần tử khác.
  • position-anchor: mô tả neo "mặc định" mà một phần tử liên kết phải sử dụng để định vị neo.
  • Hàm anchor(): dùng để tham chiếu đến vị trí của phần tử neo, trong việc định vị phần tử neo.
  • inset-area: cách viết tắt của vị trí, cho các vị trí tương đối phổ biến.

Giới thiệu API định vị neo CSS | Lỗi theo dõi #40059176 | Mục ChromeStatus.com | Thông số kỹ thuật

Các hàm giá trị theo bậc của CSS: round(), mod()rem()

Các hàm giá trị bước (round(), mod()rem()) đều biến đổi một giá trị nhất định theo một "giá trị bước" khác.

Hàm round() CSS trả về số làm tròn dựa trên chiến lược làm tròn đã chọn.

Hàm mod() CSS trả về một mô-đun còn lại khi tham số đầu tiên chia cho tham số thứ hai, tương tự như toán tử phần dư của JavaScript (%). Mô-đun là giá trị còn lại khi một toán hạng (số chia) bị chia cho một toán hạng thứ hai (số chia). Hàm này luôn chứa dấu của số chia.

Hàm rem() CSS sẽ trả về một số dư còn lại khi tham số đầu tiên được chia cho tham số thứ hai, tương tự như toán tử phần dư của JavaScript (%). Phần còn lại là giá trị còn lại khi một toán hạng (số bị chia) được chia cho một toán hạng thứ hai (số chia). Hàm này luôn có dấu bị chia.

Theo dõi lỗi #40253179 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Cú pháp mới cho :state() tuỳ chỉnh CSS

Trạng thái tuỳ chỉnh CSS cho phép các phần tử tuỳ chỉnh hiển thị các lớp giả của riêng chúng. Cú pháp này hiện đã được quy định trong CSSWG và Chrome 125 hiện hỗ trợ cú pháp :state(foo) mới. Thay đổi này sẽ có một cửa sổ tại đó Chrome sẽ hỗ trợ cả cú pháp cũ (:--foo) và cú pháp mới để các trang web có thể chuyển sang cú pháp mới.

Mục ChromeStatus.com | Thông số kỹ thuật

Loại bỏ sự gián đoạn đối với màu Oklab và Oklch với độ sáng gần 100% hoặc bằng 0

Trước thay đổi này, tất cả các màu Lab, LCH, Oklab và Oklch có giá trị độ sáng là 100% đều được hiển thị dưới dạng màu trắng, bất kể 2 tham số còn lại là gì. Tất cả các màu trong những không gian này có giá trị độ sáng là 0 đều được kết xuất dưới dạng màu đen. Hai mối liên kết này đã gây ra sự gián đoạn trong độ chuyển màu và ngoài dự kiến đối với các nhà phát triển web.

Khi khôi phục này, những màu này không còn được liên kết giả tạo nữa và màu hiển thị thu được sẽ liên tục với các màu lân cận và phụ thuộc vào bản đồ gam màu của màn hình.

Mục ChromeStatus.com | Thông số kỹ thuật

Đã sử dụng thanh cuộn gốc của bảng phối màu

Làm cho trình duyệt sử dụng bảng phối màu ưu tiên của người dùng để hiển thị thanh cuộn của khung nhìn nếu giá trị "bảng phối màu được hỗ trợ của trang" là "bình thường" hoặc không được chỉ định và giá trị được tính toán của color-scheme cho phần tử gốc là normal. Thanh cuộn của khung nhìn có thể được coi là bên ngoài nội dung web. Do đó, tác nhân người dùng nên tuân theo bảng phối màu ưu tiên của người dùng khi hiển thị thanh cuộn của khung nhìn nếu nhà phát triển chưa chỉ định rõ ràng việc hỗ trợ cho bảng phối màu.

Thay đổi này không ngăn nhà phát triển kiểm soát bảng phối màu cho thanh cuộn. Hành vi mới này khiến trình duyệt sử dụng bảng phối màu ưu tiên của người dùng để hiển thị thanh cuộn không phải lớp phủ của khung nhìn nếu nhà phát triển chưa chỉ định bảng phối màu cho phần tử gốc.

tiêu đề | Lỗi theo dõi #40259909 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

view-transitions lớp

Có thuộc tính CSS mới view-transition-class cho phép bạn chỉ định một hoặc nhiều lớp chuyển đổi thành phần hiển thị. Sau đó, bạn có thể chọn phần tử giả ViewTransition bằng cách sử dụng các lớp này, ví dụ: ::view-transition-group(*.class).

Đây là một tiện ích cho ViewTransition API nhằm đơn giản hoá kiểu của các phần tử giả chuyển đổi khung hiển thị theo cách tương tự như các lớp CSS đơn giản hoá kiểu của các phần tử DOM thông thường.

Lỗi theo dõi #41492972 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Đang tải

Chấp nhận URL HTTP và HTTPS khi xây dựng WebSocket

Bản cập nhật này bật các giao thức HTTP và HTTPS trong hàm khởi tạo WebSocket, do đó, cũng cho phép các nhà phát triển sử dụng các URL tương đối. Các URL này được chuẩn hoá theo giao thức nội bộ ws:wss:.

Lỗi theo dõi #325979102 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

API web

Các bổ sung vào Attribution Reporting API

Chúng tôi đã thêm các tính năng vào Attribution Reporting API để tăng thêm khả năng gỡ lỗi bằng cách hỗ trợ phân tích cú pháp báo cáo gỡ lỗi, cải thiện hiệu quả sử dụng API bằng cách hỗ trợ một trường để chỉ định nền tảng đăng ký ưu tiên, đồng thời cải thiện quyền riêng tư.

Mục ChromeStatus.com

API Áp suất tính toán

Compute pressure API cung cấp các trạng thái cấp cao đại diện cho tải CPU trên hệ thống. Nhờ đó, quá trình triển khai có thể sử dụng các chỉ số phần cứng cơ bản phù hợp nhằm đảm bảo người dùng có thể tận dụng tất cả sức mạnh xử lý có sẵn, miễn là hệ thống không gặp tình trạng quá tải.

Intel đã dẫn đầu công việc thiết kế và triển khai cho API này, API này sẽ cho phép các ứng dụng hội nghị truyền hình cân bằng linh động giữa các tính năng và hiệu suất.

API Tính toán áp suất | Lỗi theo dõi #40683064 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Việc này sẽ khởi chạy tiện ích được đề xuất của Storage Access API (tương thích ngược và đang trong giai đoạn dùng thử theo nguyên gốc) để cho phép truy cập vào cookie không được phân vùng và bộ nhớ không có cookie trong ngữ cảnh bên thứ ba. API hiện tại chỉ cung cấp quyền truy cập vào cookie (có các trường hợp sử dụng khác với phương pháp lưu trữ không phải cookie).

Lỗi theo dõi #40282415 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Yêu cầu về CORS của FedCM đối với điểm cuối xác nhận mã nhận dạng

Rất khó để giải thích các tìm nạp trong API FedCM vì các thuộc tính bắt buộc của chúng. Mặc dù vẫn còn nhiều cuộc thảo luận về điểm cuối của tài khoản, nhưng hầu hết mọi người cũng đều đồng thuận rằng điểm cuối xác nhận mã nhận dạng sẽ sử dụng CORS. Bản cập nhật này điều chỉnh các thuộc tính bảo mật của phương thức tìm nạp này chặt chẽ hơn với các lần tìm nạp khác trong nền tảng web.

Thông tin cập nhật về FedCM: Bản dùng thử theo nguyên gốc API Button Mode, CORS và SameSite | Lỗi theo dõi #40284123 | Mục ChromeStatus.com

FedCM hiện gửi yêu cầu xác nhận mã nhận dạng bằng CORS. Thay đổi đó có nghĩa là Chrome không còn gửi cookie SameSite=Strict đến điểm cuối xác nhận mã nhận dạng nữa, mặc dù Chrome vẫn gửi SameSite=None. Vì không nên gửi một bộ cookie khác đến điểm cuối của tài khoản và điểm cuối xác nhận mã nhận dạng, nên thay đổi này sẽ giúp chúng nhất quán.

Việc không gửi cookie SameSite=Strict cũng phù hợp với hành vi requestStorageAccess và các yêu cầu trên nhiều trang web nói chung.

Theo dõi lỗi #329145816 | Mục ChromeStatus.com | Thông số kỹ thuật

Thao tác mặc định có khả năng tương tác khi di chuyển bằng chuột

Chrome cho phép huỷ các sự kiện di chuyển bằng chuột để ngăn các API khác như lựa chọn văn bản (và thậm chí là kéo và thả trong quá khứ). Thao tác này không khớp với các trình duyệt chính khác; cũng không tuân thủ thông số kỹ thuật của Sự kiện giao diện người dùng. Giờ đây, lựa chọn văn bản sẽ không còn là hành động mặc định khi di chuyển bằng chuột. Bạn vẫn có thể ngăn việc lựa chọn văn bản cũng như kéo và thả bằng cách huỷ các sự kiện selectstartdragstart tương ứng.

Tính năng này sẽ được triển khai dần kể từ Chrome 125 và dự kiến sẽ được cung cấp cho tất cả người dùng trước Chrome 126.

Bản minh hoạ | Lỗi theo dõi #40078978 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Đối tượng sửa đổi biểu thức chính quy

Đối tượng sửa đổi biểu thức chính quy bổ sung khả năng sửa đổi cục bộ các cờ i, ms" bên trong một mẫu.

Để bật cờ cho một biểu thức phụ, hãy sử dụng (?X:subexpr), trong đó X là một trong i, m hoặc s. Để tắt cờ cho một biểu thức phụ, hãy sử dụng (-X:subexpr).

Ví dụ: đối với cờ i không phân biệt chữ hoa chữ thường:

const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false

const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false

Mục ChromeStatus.com | Thông số kỹ thuật

Nhóm thu thập có tên bị trùng lặp theo biểu thức chính quy

Nhóm thu thập có tên trùng lặp cho phép bạn sử dụng cùng một tên nhóm thu thập trên nhiều phương án thay thế. Ví dụ

const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;

Trong trường hợp này, year hợp lệ cho phương án thay thế thứ nhất ((?<year>[0-9]{4})-[0-9]{2}) hoặc phương án thay thế thứ hai ([0-9]{2}-(?<year>[0-9]{4})).

Mục ChromeStatus.com | Thông số kỹ thuật

Ứng dụng Chrome

API Direct Sockets trong Ứng dụng Chrome

Bản cập nhật này giúp dễ dàng chuyển đổi các ứng dụng chuyên biệt từ Ứng dụng Chrome sang Ứng dụng web tách biệt bằng cách bật Ổ cắm trực tiếp trong Ứng dụng Chrome, cho phép các ứng dụng web thiết lập hoạt động giao tiếp giao thức kiểm soát truyền trực tiếp (TCP) và giao thức giao thức gói tin người dùng (UDP) với hệ thống và thiết bị mạng.

Mục ChromeStatus.com | Thông số kỹ thuật

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

API Chế độ nút FedCM và Sử dụng API tài khoản khác

Bản dùng thử theo nguyên gốc này bao gồm 2 API FedCM sau đây.

API Chế độ nút cho phép các trang web gọi FedCM bên trong một lượt nhấp vào nút, chẳng hạn như nhấp vào nút Đăng nhập vào IdP. Điều này đòi hỏi FedCM phải đảm bảo rằng FedCM luôn phản hồi bằng một giao diện người dùng hiển thị, khác với chế độ tiện ích, chế độ này không hiển thị giao diện người dùng khi người dùng đăng xuất. Việc gọi API FedCM ở chế độ nút sẽ đưa người dùng đăng nhập vào IdP (trong cửa sổ hộp thoại), khi người dùng bị đăng xuất.

Ngoài ra, vì chế độ nút đượ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 có thể nổi bật hơn (ví dụ: căn giữa và phương thức) so với giao diện người dùng ở chế độ tiện ích (không có ý định rõ ràng như vậy). Tìm hiểu thêm về cách hoạt động của API Chế độ nút trong bản cập nhật FedCM: Bản dùng thử theo nguyên gốc API Chế độ nút, CORS và SameSite

API Sử dụng tài khoản khác cho phép Nhà cung cấp danh tính cho phép người dùng đăng nhập vào các tài khoản khác.

Bản dùng thử theo nguyên gốc | Bản minh hoạ | Lỗi theo dõi #40284792 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

API có thể gập lại

Bản dùng thử theo nguyên gốc này bao gồm API tư thế thiết bị và API liệt kê khung hiển thị. Các API này được thiết kế để giúp nhà phát triển nhắm đến các thiết bị có thể gập lại.

Bản dùng thử theo nguyên gốc | Bản dùng thử theo nguyên gốc dành cho API có thể gập lại | Mục nhập của ChromeStatus.com | Thông số kỹ thuật

Ngừng sử dụng bản dùng thử cho các thuộc tính và phương thức HTMLVideoElement Fullscreen có tiền tố

Bản dùng thử ngừng sử dụng này cho phép bạn chọn sử dụng lại tính năng hỗ trợ cho các thuộc tính và phương thức HTMLVideoElement có tiền tố nếu cần thêm thời gian để điều chỉnh mã của mình.

Bản dùng thử theo nguyên gốc | Mục nhập ChromeStatus.com

Bỏ qua việc tải trước tính năng quét

Bỏ qua trình quét tải trước để khám phá sự đánh đổi hiệu suất cho các trang không có tìm nạp tài nguyên phụ.

Bước tải trước trình quét giúp tăng hiệu suất của các trang có tìm nạp tài nguyên phụ, thông qua việc triển khai quá trình tìm nạp trước theo suy đoán. Tuy nhiên, đối với những trang không được hưởng lợi từ bước này, tức là đối với những trang không có tài nguyên phụ, đây sẽ là chi phí xử lý bổ sung nhưng không mang lại nhiều lợi ích.

Đối với người dùng web nâng cao muốn hưởng lợi bằng cách giảm chi phí này, thử nghiệm này cung cấp chế độ kiểm soát ở cấp trang để tắt trình quét tải trước. Dữ liệu thu thập từ thử nghiệm này có thể đánh giá xem API đã sửa đổi hoặc một cách triển khai khác của trình quét tải trước HTML có hữu ích hay không.

Bản dùng thử theo nguyên gốc | Lỗi theo dõi #330802493 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

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

Xoá bí danh "window-placement" cho chính sách quyền và quyền "window-management"

Xoá bí danh "window-placement" cho chính sách quyền và chính sách quyền "window-management". Đâ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.

tiêu đề | Lỗi theo dõi #40842072 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Xoá chính sách Doanh nghiệp: NewBaseUrlInheritanceBehaviorAllowed

Thay đổi cơ bản về mã (cho phép hành vi kế thừa mới của URL cơ sở) mà chính sách ghi đè này cho doanh nghiệp đã được bật trong các bản phát hành ổn định kể từ tháng 8 năm 2023 (Chrome 118). Vì chúng tôi đã xử lý các vấn đề đã biết nên chính sách doanh nghiệp này đã bị loại bỏ trong Chrome 125.

Mục ChromeStatus.com

Xoá các thuộc tính và phương thức HTMLVideoElement toàn màn hình có tiền tố

Kể từ Chrome 38, các API toàn màn hình HTMLVideoElement có tiền tố đã ngừng hoạt động. Chúng đã được thay thế bằng Element.requestFullscreen(), phiên bản đầu tiên được phát hành không có tiền tố vào năm 2018 trong Chrome 71.

Các thuộc tính và phương thức sau sẽ bị xoá khỏi HTMLVideoElement:

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen() (lưu ý cách viết hoa khác của chữ "S" trong toàn màn hình)
  • webkitExitFullScreen()

Hãy đăng ký bản dùng thử ngừng sử dụng được nêu trong bài đăng này, nếu trang web của bạn vẫn đang dựa vào những dữ liệu này và bạn cần thêm thời gian để cập nhật mã.

Mục ChromeStatus.com

Tài liệu đọc thêm

Bạn muốn tìm hiểu thêm? Hãy tham khảo các tài nguyên bổ sung sau.

Tải Google Chrome xuống

Tải Chrome dành cho Android, Máy tính hoặc iOS.