- Dependency updates.
- New
/scrapeAPI!
- Dependency updates.
- Fixes chrome-stable's binary chromedriver.
- Move over to Node 12.
- Bugfix on width/height in the screencast API.
- Support for puppeteer@2.0.0.
- Fixed issues with the devtools JS files missing.
- Adds support for blacklisting routes in Docker.
- Consolidates hooks into a hooks module.
- Allows Selenium to specify download-paths and pausing via preferences.
- Fixes an issue in certain JSON-based CDP libraries.
- Function API's can now run incognito mode with a new Docker param.
- Dependency updates
- Better
IS_DOCKERcheck for kubernetes. - Updates to README.md, spelling fixes and Slack link.
- Fixes to debugger and larger code bodies.
- Removal of analytics in debugger.
- Screencast improvements and adding ability to set new options.
- New
waitForproperty in our APIs (content, pdf and screenshot). - Don't allow file requests on the debugger for security reasons.
- Better metrics monitoring.
singleRunmode in docker.- New prometheus support!
- Fixing issues with keeping chrome alive (only closing once TTL is met).
- Dependency updates
- Splitting docker images into two repositories for faster builds and pulls
- Adding in external routing capabilities
- New error hook
- More/better types
- Updating
deviceScaleFactorin API's for more granular control. - Better chromedriver failure messages.
- Adding
ffmpegto the docker dependency list. - Add
timecutas a dependency for recording. - Better logs on chrome PID's and closing forcefully.
- Fixed
DEFAULT_CHROME=>DEFAULT_HEADLESS. - Fixed a bug where
xvfbdoesn't start in time. - Use
SIGKILLfor killing chromedriver. /json/versionnow returns awebSocketDebuggerUrl.
- New
pageandbrowserhooks for docker images thatFROMbrowserless. bluebirdadded as a module forfunctionand other endpoints.- More dependency updates.
- Bugfix when running multiple "headfull" sessions.
- Dependency updates.
- New
WORKSPACE_DELETE_EXPIREDandWORKSPACE_EXPIRE_DAYSto auto-cleanup workspace dirs. - README.md cleanup now that HTTPS is no longer required.
- Support for
~in docker env parameters. - More alignment with how chromedriver and puppeteer sessions get cleaned up.
/sessionAPI now returnsbrowserWSEndpointandbrowserIdproperties for having multiple debuggers connected.- Support for reconnecting(!!). When a
?keepalive=KEEP-ALIVE-IN-MSis seen in thepuppeteer.connectcall we keep the browser active for that many ms after the debugger disconnects. - New
/kill/allroute which closes all actively running sessions. - New internal scheduler module, making future things like cron-based jobs a possibility.
- Better internal types.
- A minor refactor to consolidate calls to
url.parsefor performance gains. - Introduces a per-session based timeout that overrides the global timeout.
- Consolidates authorization checks to remove duplication.
- Moves more types into their backing modules in order to better consolidate files.
- Set's a non-conflicting
WORKSPACE_DIRandDEFAULT_USER_DATA_DIRin docker by default. - Drops support for puppeteer
1.15.0and adds1.19.0. - Web-based debugger now sends cookies for docker deployments that are secure.
- Live debugger is now self-hosted, no more enforced https though it's still recommended.
- Consolidated build steps.
- Using the same chromedriver binary that matches the puppeteer's bundled chromium.
- Introducing
trackingIdworkflows. - Fixing unused export's, removing extraneous internal methods.
/workspaceAPI now returns sub-files and scopes sessions bytrackingIdwhen present.- Support for
/json/newprotocol. - Dependency updates.
- Dropped support for puppeteer
1.9.0 => 1.14.0. - Added support for puppeteer
1.16.0 => 1.18.0. - A version of chromedriver is now installed to perfectly match the version of puppeteer's chromium.
- In dev, chromedriver now uses the puppeteer version of chromium.
- Defaulted most ENV-variables in docker to sensible defaults.
- New
rotatefeature for PDF endpoint:{ rotate: 90 }=> rotate left 90 degrees. - Support for
browserless.tokenin the docker image. - puppeteer integration now returns semantic HTTP codes for certain errors (
400,403and429). - Support for chromedriver's move to the W3C spec 'goog:chromeOptions'.
- The debugger now filters out
about:blankpages, and includes sessions by Selenium. - Workspace support for selenium-based integrations.
- Better handling of browser/socket closing in puppeteer integrations.
- Numerous screencast fixes.
- Moved all GH links to new repo location.
- Dep updates.
- Better windows dev experience.
- Indian font support.
- Video capture now supports audio and browser width/height.
- Dependency updates.
- DEFAULT env variables for launching pre-booted Chrome.
- Dep updates
- New
?blockAdsquery-parameter for disabling 3rd-party ad calls.
- New
authenticateandsetExtraHTTPHeadersparams for thecontent,pdf, andscreenshotAPIs. Useful for using proxies in our REST APIs. - Fixed a bunch of bugs inside of the webdriver integration, making it more REST-ful.
- Updated dependencies inside of Chromedriver.
- New
DISABLE_AUTO_SET_DOWNLOAD_BEHAVIORfor mitigating errors in puppeteer < 1.15.0. - Bumped Puppeteer to 1.15.0.
- New
/sessionAPI (and accompanying routes) for display/viewing active sesions in a remote debugger(!). - New
?pausequery-param for pausing sessions prior to running them (useful for the live debug viewer). - The browserless debugger now exposes links to these debug pages via the sidebar.
- New Debugger page can be disabled via the
ENABLE_DEBUG_VIEWER=falseenvironment variable flag. - Move to use
node@10. - No more
no-implicit-any's inside the codebase.
- During connection, we now set the download dir of REST and puppeteer sessions. Cloud users and docker users no longer have to manually set this field, and the
/workspaceAPI references it as well!
- New deploy.js file to do deployments "on-prem"
- Updated new builds for puppeteer 1.12.2 and 1.13.0
- Fixes an issues in CORS handling
- The
screenshot,function,pdf, andcontentAPI's now accept new content-types for easier POSTing of small payloads (see docsite). - The
screencastAPI can now start/stop recording programmatically via astartScreencastandstopScreencastparams (see docsite). - New
externaldir for injecting custombeforeandafterhooks in external docker builds. - A new
timeoutquery-option for session-based timeouts vs using the global one. - New
requestInterceptorsfor injection custom request behavior.
- Numerous default fixes in the APIs.
- Stray consoles removed :)
- Consolidated download behavior in
screencastanddownloadAPIs
- New
requestInterceptorsfor the /screenshot API, allowing you to mock data in response to a request. - Code debugger now transmits code over-the-wire via cookies to avoid URL max-length issues.
- Now supports cookie-based authentication via a
browserless_token=TOKEN;cookie.
- Comments in the debugger won't break it.
- Requests that are rejected due to auth reasons aren't logged in stats.
With 1.1.0 we offer a refined way of dealing with both downloads and uploads. Both use-cases are tightly coupled to the file-system, and can leave you scratching your head as to what's going one. For more information and detailed documentation, please refer to our doc-site at https://docs.browserless.io/
- New
WORKSPACE_DIRvariable for controlling where browserless stores files and uploads. - New
/workspaceAPI for doing RESTful operations on the downloads/uploads file-system. - New
/downloadAPI for running a puppeteer-script, and responding with the resulting downloaded file.
- Moved routes out of the browserless module and into their own file/module.
- Renamed the
browserless-web-servicemodule to justbrowserlessfor simplicity. - Moved the
DOWNLOAD_DIRtoWORKSPACE_DIRsince it handles both uploads and downloads.
🥁 -- Stable version 1.0 is here! While this doesn't include major functionality changes, it does change how the docker builds are generated going forward. The versioning will now contain two pieces of crucial information: the version of the browserless service + the version of Chrome under-the-hood. For instance 1.2.3-puppeteer-1.10.0 is browserless at 1.2.3, exposing puppeteer at 1.10.0.
Similar to how NodeJS itself does docker releases, we'll now provide releases in 3 distinct ways:
- An immutable, pinned version release:
1.0.0-puppeteer-1.11.0 - A mutable minor version release:
1.1-puppeteer-1.12.0 - A mutable major version release:
1-puppeteer-1.9.0
For production deployments, we recommend using pinned version releases as they won't change once released. The mutable minor/major releases will receive on-going updates whenever we do changes that are bug-fixes or feature release. Even with the best intentions it's possible that instability can be introduced with these mutable images, hence why recommend the pinned version releases.
Finally, we'll continue to ship support for the last 5 minor versions of Puppeteer + the Google Chrome (stable). Old images will remain, but newer versions of browserless won't be included.
We'll continue to keep this changelog up-to-date anytime we do docker releases.