@@ -15,7 +15,7 @@ import {
1515} from 'puppeteer' ;
1616import del from 'del' ;
1717import * as Rx from 'rxjs' ;
18- import { ignoreElements , mergeMap , tap } from 'rxjs/operators' ;
18+ import { ignoreElements , map , mergeMap , tap } from 'rxjs/operators' ;
1919import { InnerSubscriber } from 'rxjs/internal/InnerSubscriber' ;
2020
2121import { BrowserConfig , NetworkPolicy } from '../../../../types' ;
@@ -144,7 +144,7 @@ export class HeadlessChromiumDriverFactory {
144144 terminate$
145145 . pipe (
146146 tap ( signal => {
147- this . logger . debug ( `Observer got signal: ${ signal } ` ) ;
147+ this . logger . debug ( `Termination signal received : ${ signal } ` ) ;
148148 } ) ,
149149 ignoreElements ( )
150150 )
@@ -156,7 +156,6 @@ export class HeadlessChromiumDriverFactory {
156156 this . getProcessLogger ( browser ) . subscribe ( ) ;
157157
158158 const driver$ = Rx . of ( new HeadlessChromiumDriver ( page , { inspect : this . browserConfig . inspect , networkPolicy : this . networkPolicy } ) ) ; // prettier-ignore
159-
160159 const exit$ = this . getPageExit ( browser , page ) ;
161160
162161 observer . next ( { driver$, exit$ } ) ;
@@ -173,16 +172,29 @@ export class HeadlessChromiumDriverFactory {
173172 } ) ;
174173 }
175174
176- getBrowserLogger ( page : Page ) : Rx . Observable < ConsoleMessage > {
177- return Rx . fromEvent < ConsoleMessage > ( page , 'console' ) . pipe (
178- tap ( line => {
175+ getBrowserLogger ( page : Page ) : Rx . Observable < void > {
176+ const consoleMessages$ = Rx . fromEvent < ConsoleMessage > ( page , 'console' ) . pipe (
177+ map ( line => {
179178 if ( line . type ( ) === 'error' ) {
180179 this . logger . error ( line . text ( ) , [ 'headless-browser-console' ] ) ;
181180 } else {
182181 this . logger . debug ( line . text ( ) , [ `headless-browser-console:${ line . type ( ) } ` ] ) ;
183182 }
184183 } )
185184 ) ;
185+
186+ const pageRequestFailed$ = Rx . fromEvent < PuppeteerRequest > ( page , 'requestfailed' ) . pipe (
187+ map ( req => {
188+ const failure = req . failure && req . failure ( ) ;
189+ if ( failure ) {
190+ this . logger . warning (
191+ `Request to [${ req . url ( ) } ] failed! [${ failure . errorText } ]. This error will be ignored.`
192+ ) ;
193+ }
194+ } )
195+ ) ;
196+
197+ return Rx . merge ( consoleMessages$ , pageRequestFailed$ ) ;
186198 }
187199
188200 getProcessLogger ( browser : Browser ) {
@@ -208,18 +220,6 @@ export class HeadlessChromiumDriverFactory {
208220 mergeMap ( err => Rx . throwError ( err ) )
209221 ) ;
210222
211- const pageRequestFailed$ = Rx . fromEvent < PuppeteerRequest > ( page , 'requestfailed' ) . pipe (
212- mergeMap ( req => {
213- const failure = req . failure && req . failure ( ) ;
214- if ( failure ) {
215- return Rx . throwError (
216- new Error ( `Request to [${ req . url ( ) } ] failed! [${ failure . errorText } ]` )
217- ) ;
218- }
219- return Rx . throwError ( new Error ( `Unknown failure!` ) ) ;
220- } )
221- ) ;
222-
223223 const browserDisconnect$ = Rx . fromEvent ( browser , 'disconnected' ) . pipe (
224224 mergeMap ( ( ) =>
225225 Rx . throwError (
@@ -230,11 +230,6 @@ export class HeadlessChromiumDriverFactory {
230230 )
231231 ) ;
232232
233- return Rx . merge (
234- pageError$ ,
235- uncaughtExceptionPageError$ ,
236- pageRequestFailed$ ,
237- browserDisconnect$
238- ) ;
233+ return Rx . merge ( pageError$ , uncaughtExceptionPageError$ , browserDisconnect$ ) ;
239234 }
240235}
0 commit comments