puppeteer: v2.0 Breaking Changes

These are the breaking changes we’d like to have for v2.0:

  • ~~set initial viewport size to 1280 x 1024 - https://github.com/GoogleChrome/puppeteer/issues/1910~~ (not doing this for 2.0 - doesn’t seem worth the hassle)
  • make browser.disconnect async: sockets don’t close instantly.
  • make page.evaluate to throw for the non-serializable values (e.g. objects with circular references) #2864
  • refactor response.securityDetails() into response.certificate() and actually include certificate data (DEPRECATE OLD ONE)
  • consider switching to pipes instead of websocket connection by default (not doing this - not worth the hassle)
  • consider dropping node6 support (https://github.com/GoogleChrome/puppeteer/pull/5045)
  • consider renaming waitForSelector’s “visible” option into “interactable” since we also have a real visibility with IntersectionObserver. https://github.com/GoogleChrome/puppeteer/pull/2673
  • consider passing calling frame as the first argument to the function exposed via page.exposeFunction. #2126 (BETTER DO A frame.exposeFunction to expose per-frame)
  • use single “defaultTimeout” option to setup default timeout for all methods. The option should support 0 to help with debugging. #3158
  • move to flatten protocol. https://github.com/GoogleChrome/puppeteer/pull/3524
  • move page.tracing to browser.tracing; pass a page to capture screenshots of as a method argument. https://github.com/GoogleChrome/puppeteer/issues/3639 (DEPRECATE THE OLD API)
  • make page.screenshot clip elements to the viewport per upstream Chromium changes. This matches the clipping behavior of elements in inner scrollers, i.e. document and overflow scroll clipping now work the same.
  • rename page.emulateMedia to page.emulateMediaType (DEPRECATE THE OLD API). This is technically not a breaking chance since we’ll keep an alias for now. #5012

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 89
  • Comments: 23 (7 by maintainers)

Commits related to this issue

Most upvoted comments

Where can I find more info on the Puppeteer’s timeline for this and general product roadmap?

Thanks!!

Can I please take:

@yanivefraim we’re not quite ready yet for the 2.0; we’ll wait for more things to pile up and then start implementing the breaking changes.

You guys are awesome! Thank you, for sharing such an incredible tool! =]

Any plans to add touchstart/touchmove/touchend support in v2? But most importantly, touchmove to simulate swipes, not just clicks. I think this would be a good opportunity to rethink how we can simulate touchmove. A lot of code relies on this event, mouse events just won’t do, we need mobile support to test various mobile only pages.

Will we ever see caching remain enabled even with request interception enabled?

I really think faster serialisation of non-trivial values would make puppeteer more appealing to more users. That is, passing data quickly between puppeteer and Node.js would enable people to use puppeteer for whole new things.