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({
|
||||
origin: tString,
|
||||
localStorage: tArray(tType('NameValue')),
|
||||
indexedDB: tArray(tType('IndexedDBDatabase')),
|
||||
indexedDB: tOptional(tArray(tType('IndexedDBDatabase'))),
|
||||
});
|
||||
scheme.SerializedError = tObject({
|
||||
error: tOptional(tObject({
|
||||
|
|
|
@ -527,7 +527,7 @@ export abstract class BrowserContext extends SdkObject {
|
|||
continue;
|
||||
try {
|
||||
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 });
|
||||
originsToSave.delete(origin);
|
||||
} catch {
|
||||
|
@ -547,7 +547,7 @@ export abstract class BrowserContext extends SdkObject {
|
|||
const frame = page.mainFrame();
|
||||
await frame.goto(internalMetadata, origin);
|
||||
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 });
|
||||
}
|
||||
await page.close(internalMetadata);
|
||||
|
|
|
@ -73,7 +73,7 @@ export async function collect(serializers: ReturnType<typeof source>, isFirefox:
|
|||
|
||||
const keys = await idbRequestToPromise(objectStore.getAllKeys());
|
||||
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) {
|
||||
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)! })),
|
||||
indexedDB: recordIndexedDB ? await Promise.all((await indexedDB.databases()).map(collectDB)).catch(e => {
|
||||
throw new Error('Unable to serialize IndexedDB: ' + e.message);
|
||||
}) : [],
|
||||
}) : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -304,7 +304,7 @@ export type SetOriginStorage = {
|
|||
export type OriginStorage = {
|
||||
origin: string,
|
||||
localStorage: NameValue[],
|
||||
indexedDB: IndexedDBDatabase[],
|
||||
indexedDB?: IndexedDBDatabase[],
|
||||
};
|
||||
|
||||
export type SerializedError = {
|
||||
|
|
|
@ -279,7 +279,7 @@ OriginStorage:
|
|||
type: array
|
||||
items: NameValue
|
||||
indexedDB:
|
||||
type: array
|
||||
type: array?
|
||||
items: IndexedDBDatabase
|
||||
|
||||
SerializedError:
|
||||
|
|
|
@ -40,14 +40,12 @@ it('should capture local storage', async ({ contextFactory }) => {
|
|||
name: 'name2',
|
||||
value: 'value2'
|
||||
}],
|
||||
indexedDB: [],
|
||||
}, {
|
||||
origin: 'https://www.example.com',
|
||||
localStorage: [{
|
||||
name: 'name1',
|
||||
value: 'value1'
|
||||
}],
|
||||
indexedDB: [],
|
||||
}]);
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue