From eb700762a4eee3a802bd81f0fb62e76243027c42 Mon Sep 17 00:00:00 2001 From: Mark Dietzer Date: Sat, 12 Dec 2020 21:40:57 -0800 Subject: [PATCH] fix(adblock): proxy another function to produce less errors (#1379) --- src/store/lookup.ts | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/store/lookup.ts b/src/store/lookup.ts index 356ae3ea7c..3ef27c5ca5 100644 --- a/src/store/lookup.ts +++ b/src/store/lookup.ts @@ -1,4 +1,11 @@ -import {Browser, Page, PageEventObj, Request, Response} from 'puppeteer'; +import { + Browser, + Page, + PageEventObj, + Request, + RespondOptions, + Response +} from 'puppeteer'; import {Link, Store, getStores} from './model'; import {Print, logger} from '../logger'; import {Selector, getPrice, pageIncludesLabels} from './includes-labels'; @@ -95,6 +102,14 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) { resolve(true); }; + const respondFunc = async (response: RespondOptions) => { + try { + await request.respond(response); + } catch {} + + resolve(true); + }; + const requestProxy = new Proxy(request, { get(target, prop, receiver) { if (prop === 'continue') { @@ -105,9 +120,14 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) { return abortFunc; } + if (prop === 'respond') { + return respondFunc; + } + return Reflect.get(target, prop, receiver); } }); + adBlockRequestHandler(requestProxy); }); } @@ -220,7 +240,6 @@ async function lookup(browser: Browser, store: Store) { ); const client = await page.target().createCDPSession(); await client.send('Network.clearBrowserCookies'); - // Await client.send('Network.clearBrowserCache'); } if (pageProxy) {