Tham gia chương trình dùng thử theo nguyên gốc để truy cập bộ nhớ không phải cookie thông qua Storage Access API

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 đã giới thiệu một số thay đổi đối với API lưu trữ, trình chạy dịch vụ và API giao tiếp bằng cách phân vùng trong ngữ cảnh của bên thứ ba. Ngoài việc bị tách biệt bởi chính sách cùng nguồn gốc, các API bị ảnh hưởng được sử dụng trong bối cảnh của bên thứ ba còn được tách biệt theo trang web của bối cảnh cấp cao nhất.

Các trang web chưa có thời gian triển khai tính năng hỗ trợ phân vùng bộ nhớ của bên thứ ba có thể tham gia thử nghiệm ngừng sử dụng để tạm thời huỷ phân vùng (tiếp tục cách ly theo chính sách cùng nguồn gốc nhưng loại bỏ cách ly theo trang web cấp cao nhất) và khôi phục hành vi trước đó của bộ nhớ, trình chạy dịch vụ và API giao tiếp trong nội dung được nhúng trên trang web. Thời gian dùng thử việc ngừng sử dụng này sẽ hết hạn khi Chrome 127 ra mắt vào ngày 3 tháng 9 năm 2024. Lưu ý rằng quy trình này tách biệt với thử nghiệm ngừng sử dụng quyền truy cập vào cookie của bên thứ ba: quy trình này chỉ dành cho quyền truy cập vào bộ nhớ.

Là một giải pháp lâu dài để giải quyết một số trường hợp sử dụng nhất định bị gián đoạn do việc phân vùng bộ nhớ không phải cookie của bên thứ ba, Chrome sẽ đề xuất cho phép các bên thứ ba yêu cầu quyền truy cập vào bộ nhớ/giao tiếp (cả cookie và không có cookie) thông qua Storage Access API (thông tin vận chuyển kể từ Chrome 117), cho phép các bên thứ ba yêu cầu quyền truy cập vào cookie.

Kể từ Chrome 120, bạn có thể thử nghiệm đề xuất này thông qua bản dùng thử theo nguyên gốc. Nhà phát triển nên tham gia bản dùng thử theo nguyên gốc này để đánh giá cách giải pháp đề xuất này giải quyết các trường hợp sử dụng của họ nhằm đảm bảo có thể sẵn sàng trước khi thời gian dùng thử ngừng sử dụng kết thúc.

Thông tin về nguồn gốc của bản dùng thử

Kể từ Chrome 120, Chrome sẽ hỗ trợ bản dùng thử theo nguyên gốc StorageAccessAPIBeyondCookies, để cho phép tiện ích được đề xuất của Storage Access API (tương thích ngược) với việc truy cập vào bộ nhớ không phân vùng (có cookie và không có cookie) trong ngữ cảnh bên thứ ba.

Cơ học

Bạn có thể sử dụng API như sau (JavaScript chạy trong iframe được nhúng):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

Nếu chỉ muốn quyền truy cập API cụ thể thay vì quyền truy cập vào all, bạn có thể chỉ chuyển tên của các API bạn cần. Ví dụ: bạn có thể chuyển {sessionStorage: true} để chỉ có quyền truy cập vào Bộ nhớ phiên hoặc {indexedDB: true, locks:true} để có quyền truy cập vào IndexedDB và Web Lock.

Ngoài việc gọi tiện ích bổ sung này, quyền truy cập bộ nhớ không phải cookie sẽ đáp ứng các yêu cầu hiện tại về việc truy cập cookie thông qua Storage Access API. Ví dụ: trong Chrome, lời nhắc sẽ không xuất hiện khi các nguồn gốc nằm trong cùng một Bộ trang web có liên quan (RWS, tên mới của Nhóm bên thứ nhất). Các nguồn gốc không thuộc cùng một RWS sẽ phải tuân theo các yêu cầu nhắc của Storage Access API trong Chrome.

Thời lượng

Bản dùng thử theo nguyên gốc sẽ được cung cấp trong phiên bản Chrome 120 cho đến Chrome 125 (hoặc sau ngày 6 tháng 8 năm 2024 tại một cột mốc bất kỳ).

Phạm vi

Chỉ có Bộ nhớ DOM (phiên bản và bộ nhớ cục bộ), Cơ sở dữ liệu được lập chỉ mục và Khóa web mới có trong Chrome 120.

Chúng tôi đã thêm bộ nhớ đệm, hệ thống tệp riêng tư gốc, hạn mức, Blob Storage và kênh truyền phát vào Chrome 121.

Thêm trong Chrome 123 trình chạy chung và quyền kiểm soát việc thêm cookie.

Worker chuyên dụng kế thừa quyền truy cập vào cookie chưa được phân vùng nếu requestStorageAccess được gọi trước khi worker được tạo kể từ phiên bản Chrome 120 (việc này không yêu cầu sử dụng Storage Access API tương ứng).

Tham gia

  1. Đánh giá cách bạn sử dụng cookie và phương pháp lưu trữ không phải cookie trong ngữ cảnh bên thứ ba. Ví dụ về trường hợp sử dụng có thể giúp bạn tìm hiểu xem đề xuất này có phù hợp với nhu cầu của bạn hay không.
  2. Chạy Chrome phiên bản 120 trở lên và đảm bảo bật cờ test-third-party-cookie-phaseout.
  3. Nếu muốn thử nghiệm tính năng này trên thiết bị mà không cần thiết lập trước mã thông báo dùng thử theo nguyên gốc, bạn có thể bật #enable-experimental-web-platform-features trong trình duyệt.
    1. Sau khi kiểm thử cục bộ, bạn có thể register bản dùng thử theo nguyên gốc StorageAccessAPIBeyondCookies và nhận mã thông báo cho miền của mình. Để biết hướng dẫn chi tiết hơn, hãy xem bài viết Bắt đầu dùng bản dùng thử theo nguyên gốc. Hướng dẫn khắc phục sự cố về bản dùng thử theo nguyên gốc của Chrome cung cấp một danh sách kiểm tra đầy đủ để đảm bảo mã thông báo của bạn được định cấu hình chính xác.
    2. Nhúng mã thông báo dùng thử theo nguyên gốc đó vào iframe, bạn cần sử dụng trình xử lý Storage Access API trong đó, thông qua tiêu đề HTTP, thẻ meta HTML hoặc theo phương thức lập trình. Lưu ý rằng mã thông báo phải được nhúng vào khung bất kỳ muốn sử dụng API này. Việc nhúng mã này vào khung chính sẽ không bật API trong khung con.
  4. Gọi document.requestStorageAccess(...) để nhận tên người dùng Storage Access API trong iframe trên nhiều trang web. Hãy xem tài liệu về Storage Access API để biết các yêu cầu để thực hiện thành công lệnh gọi này.
  5. Di chuyển bộ nhớ liên quan trong iframe của bạn để sử dụng trình xử lý Storage Access API (API Truy cập bộ nhớ) nếu có. Ví dụ: các lệnh gọi đến window.sessionStorage.setItem(...) trở thành handle.sessionStorage.setItem(...).
  6. Mở trang web của bạn rồi kiểm tra để đảm bảo rằng tên người dùng truy cập vào bộ nhớ đang hoạt động bình thường.
  7. Để ngừng tham gia bản dùng thử theo nguyên gốc, hãy xoá mã thông báo mà bạn đã thêm ở bước 3.
  8. Gửi ý kiến phản hồi hoặc nêu mọi vấn đề bạn gặp phải đối với Storage Access API (API Truy cập bộ nhớ) – kho lưu trữ GitHub về bộ nhớ không cookie.

Bản minh hoạ: sử dụng Storage Access API để truy cập vào Bộ nhớ cục bộ không được phân vùng

Bản minh hoạ sau đây cho biết cách truy cập vào các Kênh truyền phát không phân vùng từ iframe của bên thứ ba bằng cách sử dụng Storage Access API:

https://saa-beyond-cookies.glitch.me/

Bản minh hoạ cần phiên bản Chrome 121 trở lên và bật cờ test-third-party-cookie-phaseout.

Tài nguyên bổ sung