Enable URL rewriting for Github license requests.
* Also enables the new headless mode in Puppeteer.
* Adding a `.puppeteerrc.cjs` to make sure App Engine Standard correctly downloads the correct version of Puppeteer.
Test: curl -d '{"url": "https://github.com/google/desugar_jdk_libs/blob/master/LICENSE"}' -H 'Content-Type: application/json' -X POST 'http://localhost:8080/convert/licenses'
Fixes: b/285652313
Change-Id: I8fdc0ea21008dd4cabd5d81b28bf7bfa3ddc8079
diff --git a/development/fetchLicenses/license.ts b/development/fetchLicenses/license.ts
index 8c3579b..b51cc82 100644
--- a/development/fetchLicenses/license.ts
+++ b/development/fetchLicenses/license.ts
@@ -19,6 +19,7 @@
import { log } from './logger';
import { ContentNode } from './types';
import { PlainTextFormatter } from './plain_text_formatter';
+import { transformUrl } from './url-transforms';
const CHROME_LAUNCH_ARGS = ['--enable-dom-distiller'];
@@ -73,14 +74,23 @@
}
async function handleLicenseRequest(url: string, enableLocalDebugging: boolean = false): Promise<ContentNode[]> {
- const browser = await puppeteer.launch({ args: CHROME_LAUNCH_ARGS, devtools: enableLocalDebugging });
+ const transformed = transformUrl(url);
+ if (url !== transformed) {
+ log(`Transformed request url to ${transformed}`);
+ }
+ const browser = await puppeteer.launch({
+ args: CHROME_LAUNCH_ARGS,
+ devtools: enableLocalDebugging,
+ // https://developer.chrome.com/articles/new-headless/
+ headless: 'new'
+ });
const page = await browser.newPage();
if (enableLocalDebugging) {
page.on('console', (message) => {
log(`Puppeteer: ${message.text()}`);
});
}
- await page.goto(url, { waitUntil: 'domcontentloaded' });
+ await page.goto(transformed, { waitUntil: 'domcontentloaded' });
const content = await page.evaluate(() => {
// A map of banned nodes
const BANNED_LOCAL_NAMES: BannedNames = {