Browse Source

added support of "browserLoadMaxTime" option (cf #292)

Former-commit-id: f12f5ca065107d0f702d6a0273c13a00d1cfc284
Gildas 6 năm trước cách đây
mục cha
commit
c2e1fbcbcb
1 tập tin đã thay đổi với 15 bổ sung8 xóa
  1. 15 8
      cli/back-ends/puppeteer.js

+ 15 - 8
cli/back-ends/puppeteer.js

@@ -86,10 +86,7 @@ async function getPageData(browser, page, options) {
 	if (options.browserDebug) {
 		await page.waitFor(3000);
 	}
-	await page.goto(options.url, {
-		timeout: 0,
-		waitUntil: options.browserWaitUntil || NETWORK_IDLE_STATE
-	});
+	await pageGoto(page, options);
 	try {
 		return await page.evaluate(async options => {
 			const pageData = await singlefile.lib.getPageData(options);
@@ -115,14 +112,24 @@ async function getPageData(browser, page, options) {
 async function handleJSRedirect(browser, options) {
 	const pages = await browser.pages();
 	const page = pages[1] || pages[0];
-	await page.waitForNavigation(options.url, {
-		timeout: 0,
-		waitUntil: options.browserWaitUntil || NETWORK_IDLE_STATE
-	});
+	await pageGoto(page, options);
 	const url = page.url();
 	if (url != options.url) {
 		options.url = url;
 		await browser.close();
 		return exports.getPageData(options);
 	}
+}
+
+async function pageGoto(page, options) {
+	try {
+		await page.goto(options.url, {
+			timeout: options.browserLoadMaxTime || 0,
+			waitUntil: options.browserWaitUntil || NETWORK_IDLE_STATE
+		});
+	} catch (error) {
+		if (error.name != "TimeoutError") {
+			throw error;
+		}
+	}
 }