Skip to content

Commit 732f916

Browse files
committed
feat: support hasCrossSiteAncestor
1 parent 4476dc0 commit 732f916

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/bidiMapper/modules/network/NetworkUtils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,9 @@ export function bidiToCdpCookie(
225225
httpOnly: params.cookie.httpOnly ?? false,
226226
...(partitionKey.sourceOrigin !== undefined && {
227227
partitionKey: {
228-
hasCrossSiteAncestor: false,
228+
hasCrossSiteAncestor: Boolean(
229+
partitionKey['goog:hasCrossSiteAncestor'],
230+
),
229231
// CDP's `partitionKey.topLevelSite` is the BiDi's `partition.sourceOrigin`.
230232
topLevelSite: partitionKey.sourceOrigin,
231233
},

src/bidiMapper/modules/storage/StorageProcessor.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ export class StorageProcessor {
7777
// are returned.
7878
(c) =>
7979
partitionKey.sourceOrigin === undefined ||
80-
c.partitionKey?.topLevelSite === partitionKey.sourceOrigin,
80+
(c.partitionKey?.topLevelSite === partitionKey.sourceOrigin &&
81+
c.partitionKey?.hasCrossSiteAncestor ===
82+
partitionKey['goog:hasCrossSiteAncestor']),
8183
)
8284
.filter((cdpCookie) => {
8385
const bidiCookie = cdpToBiDiCookie(cdpCookie);
@@ -212,7 +214,12 @@ export class StorageProcessor {
212214
if (
213215
key !== undefined &&
214216
value !== undefined &&
215-
!['type', 'sourceOrigin', 'userContext'].includes(key)
217+
![
218+
'type',
219+
'sourceOrigin',
220+
'userContext',
221+
'goog:hasCrossSiteAncestor',
222+
].includes(key)
216223
) {
217224
unsupportedPartitionKeys.set(key, value);
218225
}
@@ -229,10 +236,15 @@ export class StorageProcessor {
229236

230237
// Set `userContext` to `default` if not provided, as it's required in Chromium.
231238
const userContext = descriptor.userContext ?? 'default';
239+
const hasCrossSiteAncestor =
240+
descriptor['goog:hasCrossSiteAncestor'] ?? false;
232241

233242
return {
234243
userContext,
235244
...(sourceOrigin === undefined ? {} : {sourceOrigin}),
245+
...(sourceOrigin === undefined
246+
? {}
247+
: {'goog:hasCrossSiteAncestor': hasCrossSiteAncestor}),
236248
};
237249
}
238250

0 commit comments

Comments
 (0)