refactor
This commit is contained in:
parent
cd7f3b6e65
commit
e3cc3a7f62
|
|
@ -513,15 +513,19 @@ export abstract class BrowserContext extends SdkObject {
|
||||||
};
|
};
|
||||||
const originsToSave = new Set(this._origins);
|
const originsToSave = new Set(this._origins);
|
||||||
|
|
||||||
|
function _collectStorageScript() {
|
||||||
|
return {
|
||||||
|
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name) })),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// First try collecting storage stage from existing pages.
|
// First try collecting storage stage from existing pages.
|
||||||
for (const page of this.pages()) {
|
for (const page of this.pages()) {
|
||||||
const origin = page.mainFrame().origin();
|
const origin = page.mainFrame().origin();
|
||||||
if (!origin || !originsToSave.has(origin))
|
if (!origin || !originsToSave.has(origin))
|
||||||
continue;
|
continue;
|
||||||
try {
|
try {
|
||||||
const storage = await page.mainFrame().nonStallingEvaluateInExistingContext(`({
|
const storage = await page.mainFrame().nonStallingEvaluateInExistingContext(`(${_collectStorageScript.toString()})()`, 'utility');
|
||||||
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name) })),
|
|
||||||
})`, 'utility');
|
|
||||||
if (storage.localStorage.length)
|
if (storage.localStorage.length)
|
||||||
result.origins.push({ origin, localStorage: storage.localStorage } as channels.OriginStorage);
|
result.origins.push({ origin, localStorage: storage.localStorage } as channels.OriginStorage);
|
||||||
originsToSave.delete(origin);
|
originsToSave.delete(origin);
|
||||||
|
|
@ -539,15 +543,11 @@ export abstract class BrowserContext extends SdkObject {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
for (const origin of originsToSave) {
|
for (const origin of originsToSave) {
|
||||||
const originStorage: channels.OriginStorage = { origin, localStorage: [] };
|
|
||||||
const frame = page.mainFrame();
|
const frame = page.mainFrame();
|
||||||
await frame.goto(internalMetadata, origin);
|
await frame.goto(internalMetadata, origin);
|
||||||
const storage = await frame.evaluateExpression(`({
|
const storage = await frame.evaluateExpression(`(${_collectStorageScript.toString()})()`, { world: 'utility' });
|
||||||
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name) })),
|
|
||||||
})`, { world: 'utility' });
|
|
||||||
originStorage.localStorage = storage.localStorage;
|
|
||||||
if (storage.localStorage.length)
|
if (storage.localStorage.length)
|
||||||
result.origins.push(originStorage);
|
result.origins.push({ origin, localStorage: storage.localStorage } as channels.OriginStorage);
|
||||||
}
|
}
|
||||||
await page.close(internalMetadata);
|
await page.close(internalMetadata);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue