@@ -33,34 +33,21 @@ if (!json.html || !json.html.trim()) exit('Did not receive any html')
3333var options = json . options
3434var page = webpage . create ( )
3535
36- if ( options . httpHeaders ) page . customHeaders = options . httpHeaders
37- if ( options . viewportSize ) page . viewportSize = options . viewportSize
38- if ( options . zoomFactor ) page . zoomFactor = options . zoomFactor
39- if ( options . base ) page . setContent ( json . html , options . base )
40- else page . setContent ( json . html , null )
41-
42- page . onError = function ( msg , trace ) {
43- exit ( buildStack ( 'Evaluation - ' + msg , trace ) )
44- }
45-
46- // Force cleanup after 2 minutes
47- // Add 2 seconds to make sure master process triggers kill
48- // before to the phantom process
49- var timeout = ( options . timeout || 120000 ) + 2000
50- setTimeout ( function ( ) {
51- exit ( 'Force timeout' )
52- } , timeout )
53-
5436// Completely load page & end process
5537// ----------------------------------
5638var rendered = false
5739var renderTimeout
5840
5941// If renderDelay is manual, then listen for an event and don't automatically render
60- if ( options . renderDelay === 'manual' ) page . onCallback = renderNow
42+ if ( options . renderDelay === 'manual' ) {
43+ page . onCallback = function ( message ) {
44+ setTimeout ( renderNow , 0 )
45+ return message
46+ }
47+ }
6148
6249page . onLoadFinished = function ( ) {
63- if ( typeof options . renderDelay === 'manual' ) return
50+ if ( options . renderDelay === 'manual' ) return
6451 renderTimeout = setTimeout ( renderNow , Math . floor ( options . renderDelay ) || 0 )
6552}
6653
@@ -76,14 +63,33 @@ function renderNow () {
7663 }
7764
7865 var filename = options . filename || ( options . directory || '/tmp' ) + '/html-pdf-' + system . pid + '.' + fileOptions . type
79-
8066 page . render ( filename , fileOptions )
8167
8268 // Output to parent process
8369 system . stdout . write ( JSON . stringify ( { filename : filename } ) )
8470 exit ( null )
8571}
8672
73+ // Set Content and begin loading
74+ // -----------------------------
75+ if ( options . httpHeaders ) page . customHeaders = options . httpHeaders
76+ if ( options . viewportSize ) page . viewportSize = options . viewportSize
77+ if ( options . zoomFactor ) page . zoomFactor = options . zoomFactor
78+ if ( options . base ) page . setContent ( json . html , options . base )
79+ else page . setContent ( json . html , null )
80+
81+ page . onError = function ( msg , trace ) {
82+ exit ( buildStack ( 'Evaluation - ' + msg , trace ) )
83+ }
84+
85+ // Force cleanup after 2 minutes
86+ // Add 2 seconds to make sure master process triggers kill
87+ // before to the phantom process
88+ var timeout = ( options . timeout || 120000 ) + 2000
89+ setTimeout ( function ( ) {
90+ exit ( 'Force timeout' )
91+ } , timeout )
92+
8793// Returns a hash of HTML content
8894// ------------------------------
8995function getContent ( page ) {
0 commit comments