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 đã áp dụng các thay đổi đối với bộ nhớ, 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 theo chính sách cùng nguồn gốc, các API bị ảnh hưởng được sử dụng trong ngữ cảnh bên thứ ba cũng được tách riêng theo trang web của ngữ 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 hoạt động để tạm thời huỷ phân vùng (tiếp tục tách biệt theo chính sách cùng nguồn gốc nhưng loại bỏ sự tách biệt với 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 của họ. Thời gian thử nghiệm ngừng sử dụng này sẽ kết thúc khi Chrome 127 phát hành vào ngày 3 tháng 9 năm 2024. Xin lưu ý rằng tiến trình này tách biệt với thử nghiệm ngừng sử dụng đối với quyền truy cập vào cookie của bên thứ ba: thử nghiệm 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 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 đang đề xuất các bên thứ ba có thể yêu cầu quyền truy cập vào bộ nhớ/giao tiếp (cả cookie và không phải cookie) thông qua API Truy cập bộ nhớ (thông tin vận chuyển kể từ phiên bản Chrome 117), vốn đã 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 mà chúng tôi đề xuất xử lý các trường hợp sử dụng của họ nhằm đảm bảo họ được chuẩn bị trước khi hết thời gian dùng thử.

Thông tin chi tiết về bản dùng thử theo nguyên gốc

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

Cơ học

Bạn có thể sử dụng API này 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 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 tên người dùng API mà 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 Locks.

Ngoài việc gọi tiện ích bổ sung này, quyền truy cập vào bộ nhớ không chứa cookie sẽ đáp ứng các yêu cầu hiện tại đối với việc truy cập vào cookie thông qua Storage Access API. Ví dụ: trong Chrome, sẽ không có lời nhắc nào xuất hiện khi các nguồn gốc nằm trong cùng một Nhóm 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 phải tuân theo các yêu cầu nhắc của API Truy cập bộ nhớ trong Chrome.

Thời lượng

Bản dùng thử theo nguyên gốc sẽ có trên Chrome 120 cho đến Chrome 125 (hoặc sau ngày 6 tháng 8 năm 2024 đối với bất kỳ mốc quan trọng nào).

Phạm vi

Chrome 120 chỉ có Bộ nhớ DOM (bộ nhớ phiên và bộ nhớ cục bộ), Cơ sở dữ liệu đã lập chỉ mục và Khoá web.

Bộ nhớ đệm, Hệ thống tệp riêng tư gốc, Hạn mức, Bộ nhớ Blob và Kênh truyền phát đã được thêm vào Chrome 121.

Thêm Worker chung và quyền kiểm soát đưa cookie vào Chrome 123.

Dedicated Workers sẽ kế thừa quyền truy cập vào cookie không được phân vùng nếu requestStorageAccess được gọi trước khi tạo Worker kể từ Chrome 120 (không yêu cầu sử dụng xử lý Storage Access API).

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 bối cảnh bên thứ ba. Ví dụ về trường hợp sử dụng có thể giúp bạn hiểu liệu đề 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ạn đã 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 mã thông báo dùng thử theo nguyên gốc trước, thì bạn có thể bật #enable-experimental-web-platform-features trong trình duyệt.
    1. Sau khi kiểm thử xong cục bộ, bạn có thể đăng ký 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 sử 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 Chrome cung cấp 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 mà bạn cần sử dụng xử lý Storage Access API (API Truy cập bộ nhớ) trong đó, bằng 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 bởi bất kỳ khung nào muốn sử dụng API này. Việc nhúng mã thông báo vào khung mẹ sẽ không bật API trong các khung con.
  4. Gọi document.requestStorageAccess(...) để lấy tên người dùng Storage Access API (API Truy cập bộ nhớ) trong iframe trên nhiều trang web. Hãy xem tài liệu về API Truy cập bộ nhớ để nắm được các yêu cầu để thực hiện lệnh gọi này thành công.
  5. Di chuyển bộ nhớ liên quan trong iframe để sử dụng tên người dùng Storage Access API (API Truy cập bộ nhớ) (nếu có). Ví dụ: các lệnh gọi đến window.sessionStorage.setItem(...) sẽ trở thành handle.sessionStorage.setItem(...).
  6. Mở trang web của bạn và kiểm tra để đảm bảo rằng tên người dùng xử lý quyền truy cập vào bộ nhớ đang hoạt động như dự kiến.
  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 vấn đề mà bạn gặp phải đến Kho lưu trữ GitHub về API Truy cập bộ nhớ không chứa 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 trình bày cách truy cập vào các Kênh truyền phát không được phân vùng từ mộ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ạ yêu cầu phiên bản Chrome 121 trở lên và có bật cờ test-third-party-cookie-phaseout.

Tài nguyên khác