From 8561fc5b937692fb27502a604312b3b6c5420b45 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Wed, 20 May 2020 13:51:47 +0200 Subject: [PATCH] add cloning here instead --- storage.bs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/storage.bs b/storage.bs index d1d15cf..9d418d5 100644 --- a/storage.bs +++ b/storage.bs @@ -228,6 +228,28 @@ It is initially empty. browsing session. It is roughly analogous to top-level browsing context except that it cannot be replaced due to Cross-Origin-Opener-Policy or navigation. +

To legacy-clone a browsing session storage shed, given a browsing session +A and a browsing session B, run these steps: + +

    +
  1. +

    For each keyshelf of A's + storage shed: + +

      +
    1. Let newShelf be the result of running create a storage shelf with + "session". + +

    2. Set newShelf's bucket map["default"]'s + bottle map["sessionStorage"]'s map to a + clone of shelf's bucket map["default"]'s + bottle map["sessionStorage"]'s map. + +

    3. Set B's storage shed[key] to + newShelf. +

    +
+

Storage shelves

@@ -261,8 +283,8 @@ given a value when a storage shelf is environment, return the result of running obtain a storage shelf with the user agent's storage shed, environment, and "local". -

To create a storage shelf, given a storage type type, run -these steps: +

To create a storage shelf, given a storage type type, run these +steps:

  1. Let shelf be a new storage shelf.