async convert (task) {
    const browser = await this._connect()
    const page = await newPage(browser)
    try {
      await page.setViewport({ height: 800, width: 600 })
      await this._goto(page)
      const evalResult = await this._eval(page, task)
      if (task.isPng) {
        return await toPNG(page, evalResult)
      }
      return evalResult
    } finally {
      try {
        await page.close()
      } catch (err) {
        logger.warn({ err }, 'Unable to close the page')
      }
      try {
        await browser.disconnect()
      } catch (err) {
        logger.warn({ err }, 'Unable to disconnect from the browser')
      }
    }
  }
@param task
@returns {Promise<string|Buffer>}