From 262d10df0bbb2f95071830b318d6e53e7e457fe4 Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Fri, 20 Jun 2025 15:38:48 +0000 Subject: [PATCH 01/10] Add top-level site and cross site ancestry to storage key --- storage.bs | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/storage.bs b/storage.bs index 9996a34..436a1c3 100644 --- a/storage.bs +++ b/storage.bs @@ -16,6 +16,7 @@ urlPrefix: https://tc39.github.io/ecma262/; spec: ECMASCRIPT @@ -207,10 +208,10 @@ anticipated that some APIs will be applicable to both storage types going

Storage keys

A storage key is a tuple consisting of an -origin (an origin). [[!HTML]] - -

This is expected to change; see -Client-Side Storage Partitioning. +origin (an origin), a +top-level site (a site), and a +cross site ancestry +(a cross site ancestry). [[!HTML]]

To obtain a storage key, given an environment @@ -239,7 +240,18 @@ anticipated that some APIs will be applicable to both storage types going environment settings object; otherwise environment's creation URL's origin. -

  • Return a tuple consisting of origin. +

  • Let topLevelOrigin be environment's + top-level origin. + +

  • If topLevelOrigin is null, then set it to origin. + +

  • Let topLevelSite be the result of of running obtain a site + given topLevelOrigin. + +

  • Let crossSiteAncestry be environment's + cross site ancestry. + +

  • Return (origin, topLevelSite, crossSiteAncestry).

  • @@ -251,6 +263,12 @@ anticipated that some APIs will be applicable to both storage types going
  • If A's origin is not same origin with B's origin, then return false. +

  • If A's top-level site is not same site + with B's top-level site, then return false. + +

  • If A's cross site ancestry is not equal to + B's cross site ancestry, then return false. +

  • Return true. From 72237a2ad634eee472605b2ecd2c0c803aa093f4 Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Fri, 20 Jun 2025 16:12:07 +0000 Subject: [PATCH 02/10] Adding old language involving tuple back in --- storage.bs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage.bs b/storage.bs index 436a1c3..d138d6d 100644 --- a/storage.bs +++ b/storage.bs @@ -251,7 +251,8 @@ anticipated that some APIs will be applicable to both storage types going

  • Let crossSiteAncestry be environment's cross site ancestry. -

  • Return (origin, topLevelSite, crossSiteAncestry). +

  • Return a tuple consisting of (origin, topLevelSite, + crossSiteAncestry). From fc339da17c81c66cd0344b4a89b82b22530819a5 Mon Sep 17 00:00:00 2001 From: Kyra Seevers <36134412+kyraseevers@users.noreply.github.com> Date: Fri, 27 Jun 2025 10:26:29 -0400 Subject: [PATCH 03/10] Simplify the "obtain a site" language Co-authored-by: Anne van Kesteren --- storage.bs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/storage.bs b/storage.bs index d138d6d..17b4e43 100644 --- a/storage.bs +++ b/storage.bs @@ -245,8 +245,8 @@ anticipated that some APIs will be applicable to both storage types going

  • If topLevelOrigin is null, then set it to origin. -

  • Let topLevelSite be the result of of running obtain a site - given topLevelOrigin. +

  • Let topLevelSite be the result of obtaining a site given + topLevelOrigin.

  • Let crossSiteAncestry be environment's cross site ancestry. From a4db459d4ce0cc33608c839efd8e3f72be4d978b Mon Sep 17 00:00:00 2001 From: Kyra Seevers <36134412+kyraseevers@users.noreply.github.com> Date: Fri, 27 Jun 2025 11:03:14 -0400 Subject: [PATCH 04/10] Simplify return tuple language Co-authored-by: Anne van Kesteren --- storage.bs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storage.bs b/storage.bs index 17b4e43..eb32078 100644 --- a/storage.bs +++ b/storage.bs @@ -251,8 +251,7 @@ anticipated that some APIs will be applicable to both storage types going

  • Let crossSiteAncestry be environment's cross site ancestry. -

  • Return a tuple consisting of (origin, topLevelSite, - crossSiteAncestry). +

  • Return (origin, topLevelSite, crossSiteAncestry). From 8bdb82819b8ff7330d691f213df96f89c6818e3c Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Fri, 27 Jun 2025 16:00:09 +0000 Subject: [PATCH 05/10] Removing trailing whitespace and adding for=url to origin --- storage.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage.bs b/storage.bs index eb32078..c59c701 100644 --- a/storage.bs +++ b/storage.bs @@ -208,7 +208,7 @@ anticipated that some APIs will be applicable to both storage types going

    Storage keys

    A storage key is a tuple consisting of an -origin (an origin), a +origin (an origin), a top-level site (a site), and a cross site ancestry (a cross site ancestry). [[!HTML]] From 18f3bb458269da7c205da055af7ee64a22152bca Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Fri, 27 Jun 2025 19:48:45 +0000 Subject: [PATCH 06/10] Remove url namespace for origin --- storage.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage.bs b/storage.bs index c59c701..6160b27 100644 --- a/storage.bs +++ b/storage.bs @@ -208,7 +208,7 @@ anticipated that some APIs will be applicable to both storage types going

    Storage keys

    A storage key is a tuple consisting of an -origin (an origin), a +origin (an origin), a top-level site (a site), and a cross site ancestry (a cross site ancestry). [[!HTML]] From a5134b4f2ffb457da91292f026a304e3eea72485 Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Mon, 30 Jun 2025 14:54:38 +0000 Subject: [PATCH 07/10] Fixing cross-site ancestry references --- storage.bs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/storage.bs b/storage.bs index 6160b27..c18722d 100644 --- a/storage.bs +++ b/storage.bs @@ -210,8 +210,7 @@ anticipated that some APIs will be applicable to both storage types going

    A storage key is a tuple consisting of an origin (an origin), a top-level site (a site), and a -cross site ancestry -(a cross site ancestry). [[!HTML]] +cross-site ancestry (a boolean). [[!HTML]]

    To obtain a storage key, given an environment @@ -249,7 +248,7 @@ anticipated that some APIs will be applicable to both storage types going topLevelOrigin.

  • Let crossSiteAncestry be environment's - cross site ancestry. + cross-site ancestry.

  • Return (origin, topLevelSite, crossSiteAncestry). @@ -266,8 +265,8 @@ anticipated that some APIs will be applicable to both storage types going

  • If A's top-level site is not same site with B's top-level site, then return false. -

  • If A's cross site ancestry is not equal to - B's cross site ancestry, then return false. +

  • If A's cross-site ancestry is not equal to + B's cross-site ancestry, then return false.

  • Return true. From ceeca13daade7cde53a4b54c55cca1151ed185ea Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Wed, 2 Jul 2025 14:27:07 +0000 Subject: [PATCH 08/10] Updating same-site namespace and cross-site ancestry comparator --- storage.bs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/storage.bs b/storage.bs index c18722d..f92d6e9 100644 --- a/storage.bs +++ b/storage.bs @@ -16,7 +16,6 @@ urlPrefix: https://tc39.github.io/ecma262/; spec: ECMASCRIPT

    @@ -262,10 +261,11 @@ anticipated that some APIs will be applicable to both storage types going
  • If A's origin is not same origin with B's origin, then return false. -

  • If A's top-level site is not same site - with B's top-level site, then return false. +

  • If A's top-level site is not + same site with B's top-level site, + then return false. -

  • If A's cross-site ancestry is not equal to +

  • If A's cross-site ancestry is not B's cross-site ancestry, then return false.

  • Return true. From 5904cd845e445551e9e71acf4278f837ac6df7cc Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Mon, 28 Jul 2025 19:19:39 +0000 Subject: [PATCH 09/10] Updating language since acb is no longer on the environment --- storage.bs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/storage.bs b/storage.bs index f92d6e9..c4d93c6 100644 --- a/storage.bs +++ b/storage.bs @@ -209,7 +209,7 @@ anticipated that some APIs will be applicable to both storage types going

    A storage key is a tuple consisting of an origin (an origin), a top-level site (a site), and a -cross-site ancestry (a boolean). [[!HTML]] +has cross-site ancestor (a boolean). [[!HTML]]

    To obtain a storage key, given an environment @@ -246,10 +246,10 @@ anticipated that some APIs will be applicable to both storage types going

  • Let topLevelSite be the result of obtaining a site given topLevelOrigin. -

  • Let crossSiteAncestry be environment's +

  • Let hasCrossSiteAncestor be environment's cross-site ancestry. -

  • Return (origin, topLevelSite, crossSiteAncestry). +

  • Return (origin, topLevelSite, hasCrossSiteAncestor). @@ -265,8 +265,8 @@ anticipated that some APIs will be applicable to both storage types going same site with B's top-level site, then return false. -

  • If A's cross-site ancestry is not - B's cross-site ancestry, then return false. +

  • If A's has cross-site ancestor is not + B's has cross-site ancestor, then return false.

  • Return true. From dfc0a6c3c45e6aa4139ec527e655712418272825 Mon Sep 17 00:00:00 2001 From: Kyra Seevers Date: Wed, 30 Jul 2025 18:06:30 +0000 Subject: [PATCH 10/10] Reflecting changes to environment's naming --- storage.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage.bs b/storage.bs index c4d93c6..14cc990 100644 --- a/storage.bs +++ b/storage.bs @@ -247,7 +247,7 @@ anticipated that some APIs will be applicable to both storage types going topLevelOrigin.

  • Let hasCrossSiteAncestor be environment's - cross-site ancestry. + has cross-site ancestor.

  • Return (origin, topLevelSite, hasCrossSiteAncestor).