Chrome 148 beta

Ngày xuất bản: 8 tháng 4 năm 2026

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 này bằng cách sử dụng các đường liên kết được cung cấp hoặc truy cập vào ChromeStatus.com. Chrome đang ở giai đoạn thử nghiệm beta kể từ bản phát hành này. Bạn có thể tải phiên bản thử nghiệm 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

Truy vấn vùng chứa chỉ có tên trong CSS

Giờ đây, bạn có thể chỉ truy vấn một vùng chứa CSS dựa trên container-name mà không cần đặt container-type trên phần tử.

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

Cắt văn bản bị tràn khi có lượt tương tác của người dùng

Khi người dùng tương tác (ví dụ: bằng cách chỉnh sửa hoặc sử dụng chế độ điều hướng bằng con nháy) với văn bản có text-overflow: ellipsis được đặt, văn bản sẽ tạm thời chuyển từ dấu ba chấm sang cắt. Điều này cho phép người dùng xem và tương tác với nội dung tràn bị ẩn. Tính năng này áp dụng cho tất cả các phần tử có thể chỉnh sửa và không thể chỉnh sửa. Đối với các thành phần điều khiển biểu mẫu, chẳng hạn như <textarea><input>, hành vi này đã được hỗ trợ.

Đặt dropEffect một cách chính xác cho các sự kiện dragEnter, dragLeavedragOver

Quy cách kéo và thả yêu cầu thuộc tính dropEffect của đối tượng dataTransfer phải có một số giá trị được xác định trước trên dragEnter, dragOverdragLeave. dragEnterdragOver phải có dropEffect dựa trên effectAllowed hiện tại. dragLeave phải luôn có none dropEffect. Hiện tại, Chrome không tuân thủ những quy tắc này. Kể từ Chrome 148, Chrome sẽ tuân thủ quy cách và chỉ định các giá trị chính xác cho thuộc tính này.

Tải từng phần các phần tử video và âm thanh

Tính năng này thêm thuộc tính loading vào các phần tử <video><audio>. Điều này cho phép nhà phát triển hoãn tải tài nguyên nghe nhìn cho đến khi phần tử ở gần khung nhìn bằng cách sử dụng loading="lazy". Điều này phù hợp với hành vi tải từng phần hiện có cho các phần tử <img><iframe>, giúp cải thiện hiệu suất tải trang và giảm mức sử dụng dữ liệu.

Hàm at-rule() CSS để phát hiện tính năng

Tính năng này thêm một hàm at-rule() vào @supports CSS, cho phép tác giả phát hiện tính năng hỗ trợ cho các quy tắc @ CSS.

Thêm từ khoá revert-rule

Từ khoá revert-rule sẽ khôi phục tầng theo tầng về quy tắc trước đó, tương tự như cách revert-layer khôi phục tầng theo tầng về lớp trước đó. Ví dụ:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

Điều này đặc biệt hữu ích với các điều kiện vì cho phép bạn loại bỏ quy tắc hiện tại nếu không đáp ứng một điều kiện:

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

Ủng hộ text-decoration-skip-ink: all

Tính năng này bổ sung khả năng hỗ trợ giá trị all cho thuộc tính CSS text-decoration-skip-ink. Thuộc tính text-decoration-skip-ink đã hỗ trợ autonone. Giá trị all mở rộng giá trị này bằng cách áp dụng tính năng bỏ qua mực vô điều kiện cho tất cả các glyph, bao gồm cả các ký tự CJK. Ngược lại, auto sẽ không bỏ qua các ký tự CJK vì việc bỏ qua mực có xu hướng tạo ra kết quả hình ảnh không mong muốn cho các chữ viết tượng hình ở các vị trí gạch chân thông thường. Với text-decoration-skip-ink: all, những tác giả đã điều chỉnh text-underline-position hoặc text-underline-offset để tránh xung đột với các glyph CJK có thể chọn sử dụng tính năng bỏ qua nét vẽ cho những ký tự đó.

Web API

Bản địa hoá các thành phần trong tệp kê khai

Tính năng này hỗ trợ bản địa hoá các thành phần trong tệp kê khai, cho phép các ứng dụng điều chỉnh tên, nội dung mô tả, biểu tượng và lối tắt cho phù hợp với ngôn ngữ và khu vực của người dùng. Nhà phát triển cung cấp các giá trị đã bản địa hoá trong tệp kê khai ứng dụng web. Trình duyệt sẽ tự động chọn các tài nguyên phù hợp dựa trên chế độ cài đặt ngôn ngữ của người dùng, nhờ đó hỗ trợ ngôn ngữ ở nhiều thị trường.

Hỗ trợ Định dạng phông chữ mở avar2 để tạo hình văn bản và kết xuất glyph

Phiên bản 2 của bảng avar (Axis Variations) cho phép nhà thiết kế phông chữ tạo phông chữ biến đổi với khả năng kiểm soát tốt hơn đối với nội suy. Mặc dù thông số kỹ thuật ban đầu về phông chữ có thể thay đổi xử lý các trục một cách độc lập, nhưng avar2 cho phép các trục ảnh hưởng lẫn nhau. Điều này giúp các tác giả nội dung dễ dàng sử dụng phông chữ và cho phép lưu trữ nhỏ gọn.

Avar2 hoạt động bằng cách sử dụng các khái niệm quen thuộc về biến thể phông chữ, nhưng cho phép bạn áp dụng các giá trị delta biến đổi cho chính các trục thiết kế. Bạn có thể thực hiện việc này trên nhiều trục.

Ví dụ: bạn có thể tạo các thanh trượt meta để kiểm soát nhiều trục biến thể cùng một lúc. Điều này giúp người dùng không phải tinh chỉnh và tìm một góc hữu ích trong không gian thiết kế của phông chữ.

Avar2 giúp nhà thiết kế phông chữ kiểm soát tốt hơn không gian biến thể có thể sử dụng của phông chữ và cho phép họ điều phối việc điều chỉnh các trục thiết kế trên nhiều trục. Bằng cách xác định mối quan hệ giữa các trục theo cách toán học trong bảng avar phiên bản 2, các phông chữ có thể đạt được những thiết kế phức tạp với ít mẫu hơn. Điều này dẫn đến kích thước tệp nhỏ hơn vì quá trình nội suy được lưu trữ hiệu quả hơn.

Chế độ giao diện người dùng Xác thực web ngay lập tức

Chế độ mới này cho navigator.credentials.get() khiến giao diện người dùng đăng nhập trình duyệt hiển thị cho người dùng nếu trình duyệt biết ngay khoá truy cập hoặc mật khẩu cho trang web. Nếu không, phương thức này sẽ từ chối lời hứa bằng NotAllowedError nếu không có thông tin đăng nhập nào như vậy. Điều này cho phép trang web tránh hiển thị trang đăng nhập nếu trình duyệt có thể cung cấp lựa chọn thông tin đăng nhập có khả năng thành công. Quy trình này vẫn cho phép một quy trình đăng nhập trang trong trường hợp không có thông tin đăng nhập như vậy.

Hỗ trợ Web Serial API trên Android

Web Serial API cung cấp một giao diện để kết nối với các thiết bị nối tiếp. Các thiết bị này có thể kết nối thông qua cổng nối tiếp trên hệ thống của người dùng hoặc thông qua các thiết bị USB và Bluetooth có thể tháo rời mô phỏng cổng nối tiếp. API này hiện được hỗ trợ trên Android.

Người dùng, đặc biệt là trong các lĩnh vực giáo dục, người có sở thích và công nghiệp, kết nối các thiết bị ngoại vi với máy tính của họ. Các thiết bị này yêu cầu phần mềm tuỳ chỉnh để kiểm soát. Ví dụ: robot thường được dùng để dạy lập trình máy tính và điện tử ở trường học. Việc này đòi hỏi phần mềm có thể tải mã lên một robot hoặc điều khiển robot từ xa. Trong môi trường công nghiệp hoặc môi trường dành cho người có sở thích, một thiết bị (chẳng hạn như máy phay, máy cắt laser hoặc máy in 3D) được điều khiển bằng một chương trình chạy trên máy tính được kết nối. Các thiết bị này thường được điều khiển bằng các vi điều khiển nhỏ thông qua kết nối nối tiếp.

Tính năng linear_indexing WebGPU

Chức năng này bổ sung 2 giá trị tích hợp mới của chương trình đổ bóng điện toán để cải thiện trải nghiệm người dùng. Các giá trị này được triển khai cho tất cả các phần phụ trợ (dưới dạng polyfill của các giá trị tích hợp hiện có).

Hỗ trợ SharedWorker trên Android

Trong một thời gian dài, SharedWorker đã bị vô hiệu hoá trên Android do lo ngại về vòng đời của quy trình không thể đoán trước. Các nhà phát triển Chrome cho rằng các phiên bản SharedWorker có thể chấm dứt đột ngột mà không thông báo cho người dùng hoặc nhà phát triển web. Điều này được coi là không thể chấp nhận.

Tuy nhiên, một cuộc thảo luận gần đây trên GitHub cho thấy tính chất khó đoán của vòng đời quy trình SharedWorker có thể không phải là một vấn đề lớn như trước đây. Dựa trên thông tin này, Chrome sẽ bật lại SharedWorker trên Android, đồng thời điều tra hành vi này để đảm bảo mang đến trải nghiệm ổn định và đáng tin cậy.

Thời gian hoạt động lâu hơn cho các worker dùng chung

Bản cập nhật này thêm một lựa chọn mới, extendedLifetime: true, vào hàm khởi tạo SharedWorker. Thao tác này yêu cầu worker dùng chung vẫn hoạt động ngay cả sau khi tất cả các ứng dụng hiện tại đã được gỡ tải. Trường hợp sử dụng chính là cho phép các trang thực hiện công việc không đồng bộ yêu cầu JavaScript sau khi một trang huỷ tải, mà không cần phải dựa vào một trình chạy dịch vụ.

Prompt API

Prompt API cho phép nhà phát triển web truy cập trực tiếp vào mô hình ngôn ngữ AI trên thiết bị do trình duyệt cung cấp. Thiết kế API cung cấp khả năng kiểm soát chi tiết, phù hợp với các hình dạng API trên đám mây. Điều này cho phép bạn tăng cường dần các trang web bằng các hoạt động tương tác của mô hình phù hợp với từng trường hợp sử dụng riêng lẻ. Điều này bổ sung cho các API mô hình ngôn ngữ dựa trên tác vụ (ví dụ: Summarizer API) và nhiều API cũng như khung khác nhau để suy luận chung trên thiết bị bằng các mô hình học máy do nhà phát triển cung cấp. Việc triển khai ban đầu hỗ trợ văn bản, hình ảnh và âm thanh đầu vào, cũng như các ràng buộc về phản hồi để đảm bảo văn bản được tạo tuân thủ biểu thức chính quy và định dạng giản đồ JSON được xác định trước.

Điều này hỗ trợ nhiều trường hợp sử dụng. Ví dụ: mô hình này có thể tạo chú thích cho hình ảnh, thực hiện tìm kiếm bằng hình ảnh, chép lời âm thanh, phân loại sự kiện âm thanh, tạo văn bản theo hướng dẫn cụ thể và trích xuất thông tin hoặc thông tin chi tiết từ tài liệu nguồn đa phương thức.

API này đã được cung cấp trong Tiện ích của Chrome. Ý định này theo dõi thông tin vận chuyển trên web. Một chính sách của doanh nghiệp, GenAILocalFoundationalModelSettings, có thể vô hiệu hoá việc tải mô hình cơ bản xuống, khiến API này không dùng được. Quản trị viên doanh nghiệp cũng có thể đặt chính sách BuiltInAIAPIsEnabled để chặn việc sử dụng Built-In AI API trong khi vẫn cho phép các tính năng khác của AI tạo sinh trên thiết bị.

Nhật ký hỗ trợ ngôn ngữ:

  • Chrome 139 trở về trước chỉ hỗ trợ tiếng Anh ('en')
  • Chrome 140 đã thêm chế độ hỗ trợ cho tiếng Tây Ban Nha và tiếng Nhật ('es''ja')

Nhận các chức năng Xác nhận thanh toán an toàn

Tính năng này thêm một phương thức tĩnh mới vào Payment Request API (API Yêu cầu thanh toán) để cho phép nhà phát triển web nhận được các chức năng của việc triển khai Xác nhận thanh toán an toàn của trình duyệt. Điều này giúp nhà phát triển web biết những chức năng có sẵn cho tính năng Xác nhận thanh toán an toàn. Sau đó, họ có thể quyết định có sử dụng tính năng Xác nhận thanh toán an toàn với những chức năng đó hay không.

Quy tắc ContextJ của IDNA

IDNA là cơ chế cho các ký tự không phải ASCII trong tên miền. Thao tác này mã hoá một URL như http://네이버.한국/ thành http://xn--950bt9s8xi.xn--3e0b707e/ (một lệnh chuyển hướng đến naver.com).

Quy cách URL đặt cờ CheckJoiners, cho phép các quy tắc ContextJ trong IDNA2008. Điều này không cho phép ZWNJ (U+200C ZERO WIDTH NON-JOINER) và ZWJ (U+200D ZERO WIDTH JOINER) ở hầu hết các vị trí trong URL. Việc triển khai sẽ truyền lựa chọn UIDNA_CHECK_CONTEXTJ đến ICU, nơi quy tắc này được triển khai.

Sử dụng lại hình ảnh không có cửa hàng khi chỉ định lại cùng nguồn

Tính năng này cho phép việc sử dụng lại hình ảnh có sẵn trong cùng một tài liệu bỏ qua quá trình tải lại Cache-Control: no-store khi cùng một giá trị src được chỉ định lại cho một phần tử <img>. Trước đây, Blink sẽ tìm nạp lại hình ảnh ngay cả khi hình ảnh đó đã được giải mã và có sẵn trong tài liệu. Điều này phù hợp với hành vi hiện tại của Gecko và WebKit.

Thêm trường contentType vào Thời gian tải tài nguyên

Tính năng này thêm trường contentType vào PerformanceResourceTiming để lưu trữ một chuỗi tương ứng với loại nội dung của tài nguyên được tìm nạp, do máy chủ trả về.

Ngăn chặn các sự kiện con trỏ khi bắt đầu kéo

Theo quy cách HTML, khi bắt đầu thao tác kéo, tác nhân người dùng sẽ gửi các sự kiện thích hợp đến nguồn kéo để cho biết luồng sự kiện con trỏ đã kết thúc và không nên mong đợi thêm bất kỳ sự kiện nào từ con trỏ này. Mã này được triển khai một phần cho các sự kiện liên quan đến chuột và được triển khai đầy đủ cho các thao tác kéo bằng cách chạm trên Android. Với tính năng này, Chrome hướng đến việc đáp ứng đầy đủ yêu cầu về quy cách này trên tất cả các nền tảng khác. Trên thực tế, điều này có nghĩa là sau khi bắt đầu thao tác kéo, nguồn kéo sẽ nhận được các sự kiện pointercancel, pointeroutpointerleave để cho biết luồng sự kiện hiện tại đã hoàn tất.

WebRTC Datachannel: Luôn thương lượng các kênh dữ liệu

Tính năng này triển khai một tiện ích WebRTC, alwaysNegotiateDataChannels, xác định cách để một ứng dụng thương lượng các kênh dữ liệu trong đề nghị SDP trước khi tạo một kênh dữ liệu. Thao tác này cũng thương lượng phần dữ liệu m= trước mọi phần âm thanh hoặc video m và sử dụng phần dữ liệu đó làm "phần m= được gắn thẻ của bên cung cấp" cho [BUNDLE].

Điều này có nghĩa là nếu bạn tạo một RTCPeerConnection bằng alwaysNegotiateDataChannels: true rồi gọi createOffer(), thì thao tác này sẽ tạo một đề nghị có dòng m của ứng dụng trong SDP. Ví dụ:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  const offer = await pc.createOffer();

Nếu bạn cũng thêm một bộ thu phát âm thanh và một kênh dữ liệu, thì đề nghị sẽ thương lượng một dòng m ứng dụng, theo sau là một dòng m âm thanh trong SDP:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  pc.addTransceiver('audio');
  pc.createDataChannel('somechannel');
  const offer = await pc.createOffer();

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

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

Đăng nhập liên kết do tác nhân thực hiện

Một nhóm các tiện ích FedCM giúp các trình duyệt có tác nhân đăng nhập an toàn cho người dùng vào các trang web bằng tài khoản liên kết của họ.

Danh sách kết nối được cho phép

Danh sách cho phép kết nối là một tính năng được thiết kế để cung cấp quyền kiểm soát rõ ràng đối với các điểm cuối bên ngoài bằng cách hạn chế các kết nối được bắt đầu thông qua Fetch API hoặc các API nền tảng web khác từ một tài liệu hoặc worker. Việc triển khai được đề xuất sẽ phân phối danh sách điểm cuối được uỷ quyền từ máy chủ thông qua tiêu đề phản hồi HTTP. Trước khi tác nhân người dùng thiết lập bất kỳ kết nối nào thay cho một trang, tác nhân sẽ đánh giá đích đến dựa trên danh sách cho phép này. Bạn được phép kết nối với các điểm cuối đã xác minh, trong khi những điểm cuối không khớp với các mục trong danh sách sẽ bị chặn.

Thời gian hiển thị vùng chứa

Container Timing API cho phép bạn theo dõi thời điểm các phần được chú thích của DOM xuất hiện trên màn hình và đã hoàn tất quá trình hiển thị ban đầu. Bạn có thể đánh dấu các tiểu mục của DOM bằng thuộc tính containertiming (tương tự như elementtiming đối với Element Timing API) và nhận các mục nhập hiệu suất khi phần đó được tạo điểm ảnh lần đầu tiên. API này cho phép bạn đo lường thời gian của nhiều thành phần trong các trang.

Tập lệnh mô-đun CSS khai báo

Declarative CSS Module Scripts là một phần mở rộng của CSS Module Scripts dựa trên tập lệnh hiện có. Chúng cho phép nhà phát triển chia sẻ biểu định kiểu khai báo với các gốc bóng, bao gồm cả gốc bóng khai báo. Nhà phát triển có thể xác định các mô-đun kiểu nội tuyến bằng <style type="module" specifier="foo"> và áp dụng một mô-đun khai báo cho một DOM bóng khai báo bằng cách tham chiếu specifier hoặc một URL, chẳng hạn như <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

HTML trong canvas

HTML-in-canvas là một API mới cho phép bạn tuỳ chỉnh các phần tử DOM kết xuất trực tiếp vào một canvas hoặc hoạ tiết WebGL / WebGPU trong khi vẫn duy trì tính tương tác và khả năng hỗ trợ tiếp cận của nội dung. Thành phần này có 3 phần: một thuộc tính để chọn sử dụng các phần tử canvas (layoutsubtree), các phương thức để vẽ các phần tử con (2d: drawElementImage, webgl:texElementImage2D, webgpu: copyElementImageToTexture) và một cách để cập nhật chính xác phép biến đổi của phần tử trên màn hình để tương tác.

Thời lượng kiểu Khung hình hoạt hoạ cần nhiều thời gian

Tính năng này thêm thông tin styleDurationforcedStyleDuration vào API Khung hoạt hoạ cần nhiều thời gian. Nhờ đó, nhà phát triển có thể phân biệt thời gian tạo kiểu và bố cục.

OpaqueRange

OpaqueRange biểu thị một khoảng văn bản trực tiếp trong giá trị của một thành phần điều khiển biểu mẫu (ví dụ: <textarea> hoặc văn bản <input>), vì vậy, nhà phát triển có thể làm việc với văn bản giá trị bằng các API tương tự như phạm vi.

Thao tác này cho phép các hoạt động như getBoundingClientRect(), getClientRects() và sử dụng với CSS Highlights API cho giao diện người dùng như đề xuất nội tuyến, điểm nổi bật và cửa sổ bật lên được neo. Thao tác này duy trì quá trình đóng gói bằng cách chỉ hiển thị các độ lệch giá trị (và trả về giá trị rỗng cho startContainerendContainer), do đó, các điểm cuối DOM và cấu trúc nội bộ sẽ không được hiển thị.

Phân tích cú pháp chỉ thị xử lý trong HTML

Lệnh xử lý (cú pháp: <?target data>) là một cấu trúc DOM hiện có, được hiển thị trong XML. Cấu trúc này cho phép các đối tượng nút không phải là phần tử có ý nghĩa ngữ nghĩa để xử lý một tài liệu. Ví dụ: bạn có thể dùng các phần tử này để biểu thị các dải cần phát trực tuyến hoặc làm nổi bật mà không cần đến các phần tử DOM mới và thay đổi cấu trúc DOM trong phạm vi CSS. Bạn cũng có thể dùng chúng làm chỉ thị cho trình phân tích cú pháp HTML về cách lưu vào bộ nhớ đệm và truyền trực tuyến.

Chính sách về quyền: focus-without-user-activation

Chính sách này cho phép các đơn vị nhúng kiểm soát tiêu điểm theo chương trình từ nội dung được nhúng thông qua chính sách quyền focus-without-user-activation. Khi chính sách bị từ chối đối với một khung, các lệnh gọi tiêu điểm theo chương trình (element.focus(), autofocus, window.focus(), dialog.showModal() và tiêu điểm cửa sổ bật lên) sẽ bị chặn trừ phi được kích hoạt bằng hoạt động của người dùng. Tiêu điểm do người dùng khởi tạo (chẳng hạn như nhấp hoặc nhấn phím tab) sẽ không bao giờ bị ảnh hưởng. Bạn có thể đặt chính sách thông qua tiêu đề phản hồi HTTP Permissions-Policy hoặc thuộc tính iframe allow. Hỗ trợ uỷ quyền tiêu điểm. Khung mẹ có tiêu điểm có thể truyền tiêu điểm theo cách lập trình đến một iframe con, ngay cả khi trẻ có chính sách bị từ chối. Sau khi một khung hình được lấy tiêu điểm, khung hình đó có thể di chuyển tiêu điểm trong cây con của chính nó.

Các tham số lấy mẫu của Prompt API

Tính năng này thêm các tham số lấy mẫu vào Prompt API. Các tham số này kiểm soát cách lấy mẫu mã thông báo từ mô hình, giúp nhà phát triển kiểm soát tính sáng tạo hoặc tính ngẫu nhiên của đầu ra. Ngoài ra, nó còn thêm các thuộc tính vào thực thể LanguageModel để đọc các giá trị được đặt. Thao tác này cũng thêm một hàm LanguageModel tĩnh để lấy giá trị mặc định và giá trị tối đa của các tham số này. Lần triển khai đầu tiên sẽ thêm các tham số temperaturetopK.

Phần tử HTML cài đặt ứng dụng web

Tính năng này cho phép một trang web nhắc người dùng cài đặt ứng dụng web một cách khai báo. Phần tử này có thể chấp nhận 2 thuộc tính (không bắt buộc), cho phép bạn cài đặt nội dung từ một nguồn gốc khác.