@@ -47,18 +47,38 @@ import { parseProxyUrl } from './utils.js';
47
47
const consoleLogs : string [ ] = [ ] ;
48
48
49
49
interface GlobalConfig {
50
+ /**
51
+ * Browser launch options
52
+ */
50
53
launchOptions ?: LaunchOptions ;
54
+ /**
55
+ * Remote browser options
56
+ */
51
57
remoteOptions ?: RemoteBrowserOptions ;
58
+ /**
59
+ * Custom logger
60
+ */
52
61
logger ?: Partial < Logger > ;
62
+ /**
63
+ * Using a external browser instance.
64
+ * @defaultValue true
65
+ */
53
66
externalBrowser ?: LocalBrowser ;
67
+ /**
68
+ * Whether to enable ad blocker
69
+ * @defaultValue true
70
+ */
71
+ enableAdBlocker ?: boolean ;
54
72
}
55
73
56
74
// Global state
57
75
let globalConfig : GlobalConfig = {
58
76
launchOptions : {
59
77
headless : os . platform ( ) === 'linux' && ! process . env . DISPLAY ,
60
78
} ,
79
+ enableAdBlocker : true ,
61
80
} ;
81
+
62
82
let globalBrowser : LocalBrowser [ 'browser' ] | undefined ;
63
83
let globalPage : Page | undefined ;
64
84
let selectorMap : Map < number , DOMElementNode > | undefined ;
@@ -165,17 +185,19 @@ async function setInitialBrowser(
165
185
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36' ,
166
186
) ;
167
187
168
- try {
169
- await Promise . race ( [
170
- PuppeteerBlocker . fromPrebuiltAdsAndTracking ( fetch ) . then ( ( blocker ) =>
171
- blocker . enableBlockingInPage ( globalPage as any ) ,
172
- ) ,
173
- new Promise ( ( _ , reject ) =>
174
- setTimeout ( ( ) => reject ( new Error ( 'Blocking In Page timeout' ) ) , 1000 ) ,
175
- ) ,
176
- ] ) ;
177
- } catch ( e ) {
178
- logger . error ( 'Error enabling adblocker:' , e ) ;
188
+ if ( globalConfig . enableAdBlocker ) {
189
+ try {
190
+ await Promise . race ( [
191
+ PuppeteerBlocker . fromPrebuiltAdsAndTracking ( fetch ) . then ( ( blocker ) =>
192
+ blocker . enableBlockingInPage ( globalPage as any ) ,
193
+ ) ,
194
+ new Promise ( ( _ , reject ) =>
195
+ setTimeout ( ( ) => reject ( new Error ( 'Blocking In Page timeout' ) ) , 1000 ) ,
196
+ ) ,
197
+ ] ) ;
198
+ } catch ( e ) {
199
+ logger . error ( 'Error enabling adblocker:' , e ) ;
200
+ }
179
201
}
180
202
181
203
// set proxy authentication
0 commit comments