browserless 10.7.5 → 10.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +6 -6
  2. package/src/index.js +29 -12
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "browserless",
3
3
  "description": "The headless Chrome/Chromium performance driver for Node.js",
4
4
  "homepage": "https://browserless.js.org",
5
- "version": "10.7.5",
5
+ "version": "10.7.7",
6
6
  "main": "src/index.js",
7
7
  "author": {
8
8
  "email": "hello@microlink.io",
@@ -32,9 +32,9 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@browserless/errors": "^10.7.1",
35
- "@browserless/goto": "^10.7.3",
36
- "@browserless/pdf": "^10.7.3",
37
- "@browserless/screenshot": "^10.7.5",
35
+ "@browserless/goto": "^10.7.6",
36
+ "@browserless/pdf": "^10.7.6",
37
+ "@browserless/screenshot": "^10.7.7",
38
38
  "debug-logfmt": "~1.2.3",
39
39
  "kill-process-group": "~1.0.11",
40
40
  "p-reflect": "~2.1.0",
@@ -44,7 +44,7 @@
44
44
  "superlock": "~1.2.2"
45
45
  },
46
46
  "devDependencies": {
47
- "@browserless/test": "^10.7.3",
47
+ "@browserless/test": "^10.7.6",
48
48
  "ava": "5",
49
49
  "ps-list": "7",
50
50
  "tinyspawn": "latest"
@@ -64,5 +64,5 @@
64
64
  "timeout": "2m",
65
65
  "workerThreads": false
66
66
  },
67
- "gitHead": "c0da0b0dc2db10cf8b9b92c73dfd92581d8803ff"
67
+ "gitHead": "94347ab5501efdcac49da85f5a670821c37b5173"
68
68
  }
package/src/index.js CHANGED
@@ -78,24 +78,34 @@ 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
- debug('createPage', { pid: driver.pid(browserProcess), id: browserContext.id })
87
+ debug('createPage', {
88
+ name,
89
+ id: page._client().id(),
90
+ contextId: browserContext.id,
91
+ browserPid: driver.pid(browserProcess)
92
+ })
88
93
  return page
89
94
  }
90
95
 
91
- const closePage = async page => {
96
+ const closePage = async (page, name) => {
92
97
  if (page && !page.isClosed()) {
93
98
  const [browserProcess, browserContext] = await Promise.all([
94
99
  getBrowser(),
95
100
  getBrowserContext(),
96
101
  pReflect(page.close())
97
102
  ])
98
- debug('closePage', { pid: driver.pid(browserProcess), id: browserContext.id })
103
+ debug('closePage', {
104
+ name,
105
+ id: page._client().id(),
106
+ contextId: browserContext.id,
107
+ browserPid: driver.pid(browserProcess)
108
+ })
99
109
  }
100
110
  }
101
111
 
@@ -108,13 +118,13 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
108
118
  let page
109
119
 
110
120
  try {
111
- page = await createPage(args)
112
- setTimeout(() => closePage(page), timeout).unref()
121
+ page = await createPage(fn.name)
122
+ setTimeout(() => closePage(page, fn.name), timeout).unref()
113
123
  const value = await fn(page, goto)(...args)
114
- await closePage(page)
124
+ await closePage(page, fn.name)
115
125
  return value
116
126
  } catch (error) {
117
- await closePage(page)
127
+ await closePage(page, fn.name)
118
128
  if (!isRejected) throw ensureError(error)
119
129
  }
120
130
  }
@@ -144,10 +154,17 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
144
154
 
145
155
  const evaluate = (fn, gotoOpts) =>
146
156
  withPage(
147
- (page, goto) => async (url, opts) => {
148
- const { response, error } = await goto(page, { url, ...gotoOpts, ...opts })
149
- return fn(page, response, error)
150
- },
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
+ ),
151
168
  gotoOpts
152
169
  )
153
170