From a6e5eb38df6ce7c00fd35594653e42f4f634de6b Mon Sep 17 00:00:00 2001
From: Andrew Williams
Date: Wed, 2 Feb 2022 13:30:56 -0500
Subject: [PATCH 1/3] Replace origin with storage key for BroadcastChannel
partitioning
This PR updates the BroadcastChannel portion of the HTML standard
to have storage keys be used instead of origins when determining
which browsing contexts should be able to have BroadcastChannel
messages sent and received from them. Today, a storage key only
consists of an origin, but it will likely soon include the
top-level origin as well. Only using origin enables certain forms
of cross-site tracking. For more details, see:
https://privacycg.github.io/storage-partitioning/
---
source | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/source b/source
index a2fb0bdf235..16c1f62e015 100644
--- a/source
+++ b/source
@@ -4126,6 +4126,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
- obtain a local storage bottle map
- obtain a session storage bottle map
+ - obtain a storage key
- storage proxy map
- legacy-clone a browsing session storage shed
@@ -102375,6 +102376,11 @@ interface BroadcastChannel : EventTarget {
Let sourceOrigin be this's relevant settings object's
origin.
+ Let sourceStorageKey be the result of running obtain a storage key
+ with this's relevant settings object.
+
+ If sourceStorageKey is failure, then return.
+
Let destinations be a list of BroadcastChannel
objects that
match the following criteria:
@@ -102382,9 +102388,8 @@ interface BroadcastChannel : EventTarget {
They are eligible for messaging.
- Their relevant settings object's origin is same origin with
- sourceOrigin.
+ The result of running obtain a storage key with their relevant
+ settings object is not failure and is equal to sourceStorageKey.
Their channel name is this's channel
name.
From 08efb49c8dd68a60dfee4b7cfb9e9868e818c30b Mon Sep 17 00:00:00 2001
From: Andrew Williams
Date: Fri, 11 Feb 2022 13:30:14 -0500
Subject: [PATCH 2/3] Use new storage key algorithms + address review feedback
---
source | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/source b/source
index 16c1f62e015..93365734524 100644
--- a/source
+++ b/source
@@ -4126,7 +4126,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
- obtain a local storage bottle map
- obtain a session storage bottle map
- - obtain a storage key
+ - obtain a storage key for non-storage purposes
+ - storage key equal
- storage proxy map
- legacy-clone a browsing session storage shed
@@ -102376,8 +102377,9 @@ interface BroadcastChannel : EventTarget {
Let sourceOrigin be this's relevant settings object's
origin.
- Let sourceStorageKey be the result of running obtain a storage key
- with this's relevant settings object.
+ Let sourceStorageKey be the result of running obtain a storage key for
+ non-storage purposes with this's relevant settings
+ object.
If sourceStorageKey is failure, then return.
-
@@ -102388,8 +102390,9 @@ interface BroadcastChannel : EventTarget {
They are eligible for messaging.
- The result of running obtain a storage key with their relevant
- settings object is not failure and is equal to sourceStorageKey.
+ The result of running obtain a storage key for non-storage purposes with
+ their relevant settings object equals
+ sourceStorageKey.
Their channel name is this's channel
name.
From 411793c14fce5b3ddf6869b1945b0a44df6e168a Mon Sep 17 00:00:00 2001
From: Andrew Williams
Date: Tue, 15 Feb 2022 13:47:43 -0500
Subject: [PATCH 3/3] Address review feedback - sourceStorageKey can no longer
be failure
---
source | 2 --
1 file changed, 2 deletions(-)
diff --git a/source b/source
index 93365734524..ca1a29f4782 100644
--- a/source
+++ b/source
@@ -102381,8 +102381,6 @@ interface BroadcastChannel : EventTarget {
non-storage purposes with this's relevant settings
object.
- If sourceStorageKey is failure, then return.
-
Let destinations be a list of BroadcastChannel
objects that
match the following criteria: