@@ -114,14 +114,29 @@ export class ChromeRenderer extends Renderer {
114114 }
115115
116116 async renderPage ( page , options = { } ) {
117- let { path : filepath , type } = options ;
117+ let { path : filepath , type, waitForNavigation } = options ;
118118 let buffer ;
119119
120120 if ( ! isString ( type ) ) {
121121 type = isString ( filepath ) ? path . extname ( filepath ) . slice ( 1 ) : 'html' ;
122122 type = type . length > 0 ? type : 'html' ;
123123 }
124124
125+ if ( waitForNavigation !== null && waitForNavigation !== undefined ) {
126+ if ( waitForNavigation === false ) {
127+ return ;
128+ } else if ( waitForNavigation === Object ( waitForNavigation ) ) {
129+ await page . _chromePage . waitForNavigation ( waitForNavigation ) ;
130+ } else {
131+ await page . _chromePage . waitForNavigation ( {
132+ waitUntil : 'networkidle' ,
133+ networkIdleInflight : 0 ,
134+ timeout : 0
135+ } ) ;
136+ }
137+ delete options . waitForNavigation ;
138+ }
139+
125140 switch ( type ) {
126141 case 'html' :
127142 buffer = await page . _chromePage . content ( ) ;
@@ -134,12 +149,6 @@ export class ChromeRenderer extends Renderer {
134149 delete options . emulateMedia ;
135150 }
136151
137- await page . _chromePage . waitForNavigation ( {
138- waitUntil : 'networkidle' ,
139- networkIdleInflight : 0 ,
140- timeout : 0
141- } ) ;
142-
143152 buffer = await page . _chromePage . pdf ( options ) ;
144153 break ;
145154 default :
0 commit comments