@@ -78,28 +78,30 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
78
78
79
79
const getBrowserContext = ( ) => _contextPromise
80
80
81
- const createPage = async ( ) => {
81
+ const createPage = async name => {
82
82
const [ browserProcess , browserContext ] = await Promise . all ( [
83
83
getBrowser ( ) ,
84
84
getBrowserContext ( )
85
85
] )
86
86
const page = await browserContext . newPage ( )
87
87
debug ( 'createPage' , {
88
+ name,
88
89
id : page . _client ( ) . id ( ) ,
89
90
contextId : browserContext . id ,
90
91
browserPid : driver . pid ( browserProcess )
91
92
} )
92
93
return page
93
94
}
94
95
95
- const closePage = async page => {
96
+ const closePage = async ( page , name ) => {
96
97
if ( page && ! page . isClosed ( ) ) {
97
98
const [ browserProcess , browserContext ] = await Promise . all ( [
98
99
getBrowser ( ) ,
99
100
getBrowserContext ( ) ,
100
101
pReflect ( page . close ( ) )
101
102
] )
102
103
debug ( 'closePage' , {
104
+ name,
103
105
id : page . _client ( ) . id ( ) ,
104
106
contextId : browserContext . id ,
105
107
browserPid : driver . pid ( browserProcess )
@@ -116,13 +118,13 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
116
118
let page
117
119
118
120
try {
119
- page = await createPage ( args )
120
- setTimeout ( ( ) => closePage ( page ) , timeout ) . unref ( )
121
+ page = await createPage ( fn . name )
122
+ setTimeout ( ( ) => closePage ( page , fn . name ) , timeout ) . unref ( )
121
123
const value = await fn ( page , goto ) ( ...args )
122
- await closePage ( page )
124
+ await closePage ( page , fn . name )
123
125
return value
124
126
} catch ( error ) {
125
- await closePage ( page )
127
+ await closePage ( page , fn . name )
126
128
if ( ! isRejected ) throw ensureError ( error )
127
129
}
128
130
}
@@ -152,10 +154,17 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
152
154
153
155
const evaluate = ( fn , gotoOpts ) =>
154
156
withPage (
155
- ( page , goto ) => async ( url , opts ) => {
156
- const { response, error } = await goto ( page , { url, ...gotoOpts , ...opts } )
157
- return fn ( page , response , error )
158
- } ,
157
+ Object . defineProperty (
158
+ ( page , goto ) => async ( url , opts ) => {
159
+ const { response, error } = await goto ( page , { url, ...gotoOpts , ...opts } )
160
+ return fn ( page , response , error )
161
+ } ,
162
+ 'name' ,
163
+ {
164
+ value : fn . name || 'evaluate' ,
165
+ writable : false
166
+ }
167
+ ) ,
159
168
gotoOpts
160
169
)
161
170
0 commit comments