chore: hide indexedDB in BrowserContext.storageState() by default (#35045)
This commit is contained in:
parent
6fe490469a
commit
bb0bdff815
|
@ -173,7 +173,7 @@ scheme.SetOriginStorage = tObject({
|
||||||
scheme.OriginStorage = tObject({
|
scheme.OriginStorage = tObject({
|
||||||
origin: tString,
|
origin: tString,
|
||||||
localStorage: tArray(tType('NameValue')),
|
localStorage: tArray(tType('NameValue')),
|
||||||
indexedDB: tArray(tType('IndexedDBDatabase')),
|
indexedDB: tOptional(tArray(tType('IndexedDBDatabase'))),
|
||||||
});
|
});
|
||||||
scheme.SerializedError = tObject({
|
scheme.SerializedError = tObject({
|
||||||
error: tOptional(tObject({
|
error: tOptional(tObject({
|
||||||
|
|
|
@ -527,7 +527,7 @@ export abstract class BrowserContext extends SdkObject {
|
||||||
continue;
|
continue;
|
||||||
try {
|
try {
|
||||||
const storage: storageScript.Storage = await page.mainFrame().nonStallingEvaluateInExistingContext(collectScript, 'utility');
|
const storage: storageScript.Storage = await page.mainFrame().nonStallingEvaluateInExistingContext(collectScript, 'utility');
|
||||||
if (storage.localStorage.length || storage.indexedDB.length)
|
if (storage.localStorage.length || storage.indexedDB?.length)
|
||||||
result.origins.push({ origin, localStorage: storage.localStorage, indexedDB: storage.indexedDB });
|
result.origins.push({ origin, localStorage: storage.localStorage, indexedDB: storage.indexedDB });
|
||||||
originsToSave.delete(origin);
|
originsToSave.delete(origin);
|
||||||
} catch {
|
} catch {
|
||||||
|
@ -547,7 +547,7 @@ export abstract class BrowserContext extends SdkObject {
|
||||||
const frame = page.mainFrame();
|
const frame = page.mainFrame();
|
||||||
await frame.goto(internalMetadata, origin);
|
await frame.goto(internalMetadata, origin);
|
||||||
const storage: storageScript.Storage = await frame.evaluateExpression(collectScript, { world: 'utility' });
|
const storage: storageScript.Storage = await frame.evaluateExpression(collectScript, { world: 'utility' });
|
||||||
if (storage.localStorage.length || storage.indexedDB.length)
|
if (storage.localStorage.length || storage.indexedDB?.length)
|
||||||
result.origins.push({ origin, localStorage: storage.localStorage, indexedDB: storage.indexedDB });
|
result.origins.push({ origin, localStorage: storage.localStorage, indexedDB: storage.indexedDB });
|
||||||
}
|
}
|
||||||
await page.close(internalMetadata);
|
await page.close(internalMetadata);
|
||||||
|
|
|
@ -73,7 +73,7 @@ export async function collect(serializers: ReturnType<typeof source>, isFirefox:
|
||||||
|
|
||||||
const keys = await idbRequestToPromise(objectStore.getAllKeys());
|
const keys = await idbRequestToPromise(objectStore.getAllKeys());
|
||||||
const records = await Promise.all(keys.map(async key => {
|
const records = await Promise.all(keys.map(async key => {
|
||||||
const record: channels.OriginStorage['indexedDB'][0]['stores'][0]['records'][0] = {};
|
const record: channels.IndexedDBDatabase['stores'][0]['records'][0] = {};
|
||||||
|
|
||||||
if (objectStore.keyPath === null) {
|
if (objectStore.keyPath === null) {
|
||||||
const { encoded, trivial } = trySerialize(key);
|
const { encoded, trivial } = trySerialize(key);
|
||||||
|
@ -125,7 +125,7 @@ export async function collect(serializers: ReturnType<typeof source>, isFirefox:
|
||||||
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name)! })),
|
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name)! })),
|
||||||
indexedDB: recordIndexedDB ? await Promise.all((await indexedDB.databases()).map(collectDB)).catch(e => {
|
indexedDB: recordIndexedDB ? await Promise.all((await indexedDB.databases()).map(collectDB)).catch(e => {
|
||||||
throw new Error('Unable to serialize IndexedDB: ' + e.message);
|
throw new Error('Unable to serialize IndexedDB: ' + e.message);
|
||||||
}) : [],
|
}) : undefined,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ export type SetOriginStorage = {
|
||||||
export type OriginStorage = {
|
export type OriginStorage = {
|
||||||
origin: string,
|
origin: string,
|
||||||
localStorage: NameValue[],
|
localStorage: NameValue[],
|
||||||
indexedDB: IndexedDBDatabase[],
|
indexedDB?: IndexedDBDatabase[],
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SerializedError = {
|
export type SerializedError = {
|
||||||
|
|
|
@ -279,7 +279,7 @@ OriginStorage:
|
||||||
type: array
|
type: array
|
||||||
items: NameValue
|
items: NameValue
|
||||||
indexedDB:
|
indexedDB:
|
||||||
type: array
|
type: array?
|
||||||
items: IndexedDBDatabase
|
items: IndexedDBDatabase
|
||||||
|
|
||||||
SerializedError:
|
SerializedError:
|
||||||
|
|
|
@ -40,14 +40,12 @@ it('should capture local storage', async ({ contextFactory }) => {
|
||||||
name: 'name2',
|
name: 'name2',
|
||||||
value: 'value2'
|
value: 'value2'
|
||||||
}],
|
}],
|
||||||
indexedDB: [],
|
|
||||||
}, {
|
}, {
|
||||||
origin: 'https://www.example.com',
|
origin: 'https://www.example.com',
|
||||||
localStorage: [{
|
localStorage: [{
|
||||||
name: 'name1',
|
name: 'name1',
|
||||||
value: 'value1'
|
value: 'value1'
|
||||||
}],
|
}],
|
||||||
indexedDB: [],
|
|
||||||
}]);
|
}]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue