Ngày xuất bản: 28 tháng 5 năm 2025
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 138 là phiên bản beta kể từ ngày 28 tháng 5 năm 2025. 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 từ Cửa hàng Google Play trên Android.
CSS và giao diện người dùng
Bản phát hành này bổ sung 6 tính năng mới về CSS và giao diện người dùng.
Từ khoá định cỡ stretch CSS
Một từ khoá cho các thuộc tính kích thước CSS (ví dụ: width và height) cho phép các phần tử tăng kích thước để lấp đầy chính xác khoảng trống có sẵn của khối chứa. Thuộc tính này tương tự như 100%, ngoại trừ kích thước kết quả được áp dụng cho hộp lề của phần tử thay vì hộp do box-sizing chỉ định. Việc sử dụng từ khoá này cho phép phần tử giữ lại lề trong khi vẫn có kích thước lớn nhất có thể.
Các hàm liên quan đến dấu CSS: abs(), sign()
Các hàm liên quan đến dấu abs() và sign() tính toán nhiều hàm liên quan đến dấu của đối số.
Biến env CSS cho tỷ lệ phông chữ ở cấp hệ điều hành
Hiển thị tỷ lệ phông chữ mà người dùng mong muốn cho CSS. Hiện tại, không thực tế khi một trang phát hiện xem người dùng đã thay đổi cỡ chữ mà họ muốn bằng các lựa chọn ưu tiên của Hệ điều hành hay chưa. Biến môi trường CSS này sẽ phản ánh tỷ lệ mà người dùng chọn.
sibling-index() và sibling-count() của CSS
Bạn có thể dùng các hàm sibling-index() và sibling-count() làm số nguyên trong các giá trị thuộc tính CSS để tạo kiểu cho một phần tử dựa trên vị trí của phần tử đó trong số các phần tử cùng cấp hoặc tổng số phần tử cùng cấp tương ứng. Bạn có thể dùng trực tiếp các hàm này dưới dạng giá trị nguyên, nhưng thú vị hơn là dùng trong các biểu thức calc().
li {
animation-delay: calc(0.1s * sibling-index());
}
Ký hiệu hàm tiến trình nội suy: Hàm progress() của CSS
Ký hiệu hàm progress() là một hàm toán học trả về giá trị <number> biểu thị vị trí của một phép tính (giá trị tiến trình) giữa hai phép tính khác (giá trị bắt đầu tiến trình và giá trị kết thúc tiến trình).
Viewport Segments Enumeration API
Viewport Segments API cho phép nhà phát triển điều chỉnh bố cục web cho phù hợp với các thiết bị có thể gập lại. Các phân đoạn khung hiển thị xác định vị trí và kích thước của một vùng riêng biệt về mặt logic trong khung hiển thị. Các đoạn khung hiển thị được tạo khi khung hiển thị bị chia tách bởi một hoặc nhiều tính năng phần cứng (chẳng hạn như nếp gấp hoặc bản lề giữa các màn hình riêng biệt) đóng vai trò là đường phân chia; các đoạn là những vùng của khung hiển thị mà nhà phát triển có thể coi là riêng biệt về mặt logic.
Web API
Thêm tính năng hỗ trợ siêu dữ liệu về hướng khung hình video vào WebCodecs
Giới thiệu các giá trị rotation: int và flip: bool cho nhiều giao diện liên quan đến video trong WebCodecs để nhà phát triển có thể làm việc với các nguồn khung hình có hướng (ví dụ: camera Android và một số nội dung nghe nhìn). Giao diện VideoFrame giúp tăng khả năng tạo VideoFrame với chế độ xoay và lật tuỳ ý, cũng như các đối tượng truy cập cho thông tin này trên đối tượng VideoFrame. Đối tượng VideoDecoderConfig sẽ nhận được các trường rotation và flip được phát tự động trên các đối tượng VideoFrame đã giải mã. Lớp VideoEncoder có các cơ chế để truyền thông tin xoay và lật từ encode() đến VideoDecoderConfig được phát ra trong EncodedVideoChunkMetadata. Nếu encode() được gọi bằng các khung hình có hướng khác nhau, thì ngoại lệ không nghiêm trọng sẽ được gửi. Bạn có thể dùng phương thức configure() để đặt lại hướng được phép.
Crash Reporting API: is_top_level và visibility_state
Tính năng này sẽ thêm các trường chuỗi is_top_level và visibility_state vào phần nội dung API báo cáo sự cố được gửi đến điểm cuối báo cáo mặc định cho báo cáo sự cố.
Thoát < và > trong các thuộc tính khi chuyển đổi tuần tự
Thoát < và > trong các giá trị của thuộc tính khi chuyển đổi tuần tự. Điều này giúp giảm thiểu nguy cơ tấn công XSS đột biến. Tấn công này xảy ra khi giá trị của một thuộc tính được diễn giải là mã thông báo thẻ bắt đầu sau khi được chuyển đổi tuần tự và phân tích cú pháp lại.
Chính sách về tính toàn vẹn đối với tập lệnh
Tính năng Tính toàn vẹn của tài nguyên phụ (SRI) giúp nhà phát triển đảm bảo rằng những tài sản mà họ dự định tải thực sự là những tài sản mà họ đang tải. Tuy nhiên, hiện tại, nhà phát triển không có cách nào để đảm bảo rằng tất cả tập lệnh của họ đều được xác thực bằng SRI.
Tiêu đề Integrity-Policy cho phép nhà phát triển khẳng định rằng mọi tài nguyên thuộc một loại nhất định đều cần được kiểm tra tính toàn vẹn. Nếu bạn cố gắng tải một tài nguyên thuộc loại đó mà không có siêu dữ liệu về tính toàn vẹn, thì thao tác đó sẽ không thành công và kích hoạt một báo cáo vi phạm.
Hạn mức bộ nhớ được báo cáo có thể dự đoán
Báo cáo hạn mức bộ nhớ có thể dự đoán từ Estimate API của StorageManager cho những trang web không có quyền lưu trữ không giới hạn. Bạn có thể phát hiện chế độ duyệt web của người dùng bằng cách sử dụng hạn mức bộ nhớ được báo cáo vì không gian lưu trữ có sẵn nhỏ hơn đáng kể ở chế độ ẩn danh so với chế độ thông thường.
Đây là một biện pháp giảm nhẹ giúp ngăn chặn việc phát hiện chế độ duyệt web của người dùng bằng cách sử dụng API lưu trữ bằng cách báo cáo một hạn mức nhân tạo, bằng với mức sử dụng cộng thêm mức tối thiểu(10 GiB, dung lượng ổ đĩa được làm tròn đến 1 GiB gần nhất), trong tất cả các chế độ duyệt web cho những trang web có quyền lưu trữ hạn chế. Những trang web có quyền truy cập bộ nhớ không giới hạn sẽ không bị ảnh hưởng. Hạn mức được thực thi cũng sẽ không bị ảnh hưởng.
Sự kiện pushsubscriptionchange khi người dùng đăng ký lại
Kích hoạt sự kiện pushsubscriptionchange trong trình chạy dịch vụ khi một nguồn gốc mà trước đây có một gói thuê bao thông báo đẩy, nhưng đã bị thu hồi do thay đổi quyền (từ được cấp sang từ chối/mặc định), được cấp lại quyền gửi thông báo. Sự kiện sẽ được kích hoạt với oldSubscription và newSubscription trống.
Quy tắc suy đoán: Thêm prefetchCache và prerenderCache vào tiêu đề Clear-Site-Data
Hai giá trị mới cho tiêu đề Clear-Site-Data để giúp nhà phát triển nhắm đến việc xoá bộ nhớ đệm kết xuất trước và tìm nạp trước: prefetchCache và prerenderCache.
Các thông số này có thể được gửi trên mọi yêu cầu và không cần được thực hiện trên yêu cầu tài liệu (ví dụ: các thông số này có thể được trả về trên các phản hồi của lệnh gọi API thêm vào giỏ hàng hoặc đăng nhập và đăng xuất để xoá các suy đoán về thay đổi trạng thái).
Quy tắc suy đoán: trường target_hint
Thao tác này mở rộng cú pháp quy tắc suy đoán để cho phép nhà phát triển chỉ định trường target_hint. Trường này cung cấp một gợi ý để cho biết đích đến có thể điều hướng, nơi trang được kết xuất trước sẽ được kích hoạt. Khi _blank được chỉ định làm gợi ý, một trang được kết xuất trước có thể được kích hoạt cho một trang có thể điều hướng do window.open() mở. Trường này không được hỗ trợ cho việc tìm nạp trước.
Chính sách nghiêm ngặt về cùng nguồn gốc cho Storage Access API
Điều chỉnh ngữ nghĩa của Storage Access API để tuân thủ nghiêm ngặt Chính sách cùng nguồn gốc về bảo mật. Tức là theo mặc định, việc sử dụng document.requestStorageAccess() trong một khung chỉ đính kèm cookie vào các yêu cầu đối với nguồn gốc của iframe (không phải trang web).
Summarizer API
Một API JavaScript để tạo bản tóm tắt cho văn bản đầu vào, được hỗ trợ bởi một mô hình ngôn ngữ AI. Các trình duyệt và hệ điều hành ngày càng được kỳ vọng sẽ có quyền truy cập vào một mô hình ngôn ngữ. Bằng cách hiển thị mô hình tích hợp này, chúng tôi tránh trường hợp mọi trang web đều cần tải mô hình ngôn ngữ đa gigabyte của riêng mình xuống hoặc gửi văn bản đầu vào đến các API của bên thứ ba. Cụ thể, API tóm tắt cung cấp một API cấp cao để tương tác với mô hình ngôn ngữ nhằm tóm tắt thông tin đầu vào cho nhiều trường hợp sử dụng theo cách không phụ thuộc vào mô hình ngôn ngữ cụ thể được đề cập. Bạn có thể sử dụng chính sách doanh nghiệp (GenAILocalFoundationalModelSettings) để tắt tính năng tải mô hình cơ bản xuống. Việc này sẽ khiến API này không dùng được.
Tìm hiểu thêm trong bài viết Tạo bản tóm tắt ngắn gọn bằng AI tích hợp.
Language Detector API
Một API JavaScript để phát hiện ngôn ngữ được dùng trong một số văn bản nhất định, với các mức độ tin cậy. Đây là một phần bổ sung quan trọng cho bản dịch là tính năng phát hiện ngôn ngữ và có thể được dùng kết hợp với Translator API. Ví dụ: lấy hoạt động đầu vào của người dùng bằng một ngôn ngữ không xác định, xác định ngôn ngữ đó, sau đó dịch sang một ngôn ngữ đích cụ thể. Mặc dù các trình duyệt thường đã có khả năng phát hiện ngôn ngữ, nhưng API này mang đến sức mạnh tương tự cho các nhà phát triển web bằng một API JavaScript, bổ sung cho API dịch.
Bạn có thể sử dụng chính sách doanh nghiệp (GenAILocalFoundationalModelSettings) để tắt tính năng tải mô hình cơ bản xuống. Việc này sẽ khiến API này không dùng được.
Tìm hiểu thêm trong bài viết Phát hiện ngôn ngữ được sử dụng bằng AI tích hợp.
Translator API
Một JavaScript API để cung cấp khả năng dịch ngôn ngữ cho các trang web.
Mặc dù các trình duyệt ngày càng cung cấp tính năng dịch ngôn ngữ cho người dùng, nhưng các khả năng dịch như vậy cũng có thể hữu ích cho nhà phát triển web. Điều này đặc biệt đúng khi khả năng dịch tích hợp của trình duyệt không thể giúp ích, chẳng hạn như với các dịch vụ trực tiếp và tương tác. Bạn có thể dùng chính sách của doanh nghiệp (GenAILocalFoundationalModelSettings) để tắt tính năng tải mô hình cơ bản xuống, việc này sẽ khiến API này không dùng được.
Tìm hiểu thêm trong phần Dịch bằng AI tích hợp.
Tiện ích phạm vi ứng dụng web
Thêm một trường tệp kê khai ứng dụng web "scope_extensions" cho phép các ứng dụng web mở rộng phạm vi của chúng sang các nguồn khác. Điều này cho phép các trang web kiểm soát nhiều miền con và miền cấp cao nhất được trình bày dưới dạng một ứng dụng web duy nhất. Yêu cầu các nguồn gốc được liệt kê xác nhận mối liên kết với ứng dụng web bằng tệp cấu hình .well-known/web-app-origin-association.
Web Serial qua Bluetooth trên Android
Tính năng này cho phép các trang web và ứng dụng web kết nối với cổng nối tiếp qua Bluetooth trên các thiết bị Android. Chrome trên Android hiện hỗ trợ Web Serial API qua Bluetooth RFCOMM. Các chính sách hiện có dành cho doanh nghiệp (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls và SerialBlockedForUrls) trên các nền tảng khác sẽ được bật ở trạng thái future_on cho Android. Tất cả chính sách, ngoại trừ SerialAllowUsbDevicesForUrls, sẽ được bật sau khi tính năng này được bật. SerialAllowUsbDevicesForUrls sẽ được bật trong một lần ra mắt trong tương lai sau khi Android cung cấp chế độ hỗ trợ cổng nối tiếp có dây ở cấp hệ thống.
Ngừng sử dụng 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 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 không dùng hai tính năng.
Ngừng sử dụng tính năng xoá khoảng không đồng bộ cho Tiện ích nguồn nội dung nghe nhìn
Tiêu chuẩn Nguồn nội dung nghe nhìn từ lâu đã thay đổi để không cho phép hành vi được xác định một cách mơ hồ liên quan đến việc xoá khoảng không đồng bộ:
SourceBuffer.abort()không còn huỷ các thao tácSourceBuffer.remove()nữa.- Chế độ cài đặt
MediaSource.durationkhông còn có thể cắt ngắn nội dung nghe nhìn đang được lưu vào bộ nhớ đệm nữa.
Giờ đây, các trường hợp ngoại lệ sẽ được đưa ra trong cả hai trường hợp này.
Xoá phương án dự phòng SwiftShader
Việc cho phép tự động dự phòng cho WebGL do trình kết xuất phần mềm SwiftShader hỗ trợ không được dùng nữa và quá trình tạo ngữ cảnh WebGL sẽ không thành công thay vì dự phòng cho SwiftShader. Việc này được thực hiện vì 2 lý do chính:
- SwiftShader có nguy cơ bảo mật cao do mã JIT chạy trong quy trình GPU của Chromium.
- Người dùng sẽ có trải nghiệm kém khi chuyển từ WebGL được GPU hỗ trợ hiệu suất cao sang một quy trình triển khai được CPU hỗ trợ. Người dùng không kiểm soát được hành vi này và khó mô tả trong báo cáo lỗi.
Trong thời gian ngừng cung cấp, một cảnh báo sẽ xuất hiện trong bảng điều khiển Chrome DevTools khi một ngữ cảnh WebGL được tạo và hỗ trợ bằng SwiftShader. Nhấp vào --enable-unsafe-swiftshader sẽ xoá thông báo cảnh báo này.