Fix unfurler navigation race condition
This commit is contained in:
parent
c289f821e4
commit
313d8d6a53
@ -97,15 +97,20 @@ class Server {
|
|||||||
throw new Error('failed to access open graph service');
|
throw new Error('failed to access open graph service');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// wait for navigation to complete
|
||||||
|
await page.waitForFunction(
|
||||||
|
(path) => window.location.pathname.includes(path),
|
||||||
|
{},
|
||||||
|
path
|
||||||
|
);
|
||||||
|
// wait for preview component to initialize
|
||||||
|
await page.waitForSelector('meta[property="og:preview:loading"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 })
|
||||||
|
|
||||||
const waitForReady = await page.$('meta[property="og:preview:loading"]');
|
|
||||||
let success = true;
|
let success = true;
|
||||||
if (waitForReady != null) {
|
success = await Promise.race([
|
||||||
success = await Promise.race([
|
page.waitForSelector('meta[property="og:preview:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => true),
|
||||||
page.waitForSelector('meta[property="og:preview:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => true),
|
page.waitForSelector('meta[property="og:preview:fail"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => false)
|
||||||
page.waitForSelector('meta[property="og:preview:fail"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => false)
|
])
|
||||||
])
|
|
||||||
}
|
|
||||||
if (success) {
|
if (success) {
|
||||||
const screenshot = await page.screenshot();
|
const screenshot = await page.screenshot();
|
||||||
return screenshot;
|
return screenshot;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user