Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0 Breaking Changes #2079

Closed
5 of 13 tasks
aslushnikov opened this issue Feb 22, 2018 · 23 comments
Closed
5 of 13 tasks

v2.0 Breaking Changes #2079

aslushnikov opened this issue Feb 22, 2018 · 23 comments
Labels
chromium Issues with Puppeteer-Chromium

Comments

@aslushnikov
Copy link
Contributor

aslushnikov commented Feb 22, 2018

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

@yanivefraim
Copy link
Contributor

yanivefraim commented Feb 23, 2018

Can I please take:

make page.evaluate return puppeteer.UNSERIALIZABLE_VALUE for the non-serializable values (e.g. objects with circular references)

and

set initial viewport size to 1280 x 1024

?

@aslushnikov
Copy link
Contributor Author

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.

@JoelEinbinder
Copy link
Contributor

I think we should switch to pipes by default over websocket in 2.0

@benjamingr
Copy link

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.

@transitive-bullshit
Copy link

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

Thanks!!

@paambaati
Copy link

@JoelEinbinder @aslushnikov Is there a reason why pipe mode will be the new default? I'd asked a similar question before (see #2032 (comment)), but I'm wondering if things have changed since then.

@Niceplace
Copy link

Niceplace commented Jan 31, 2019

Yay for Global timeout settings !

I'm not sure if this is the right place to discuss this but was wondering, are there any plans to add:

  1. Implicit waits for common actions (click, fill) that check if an element meets the right conditions (present, visible, enabled or any combination of this) before interactinf with it.

  2. The equivalent of page.waitForFunction() but instead of acting on javascript injected in the page, it acts as a polling function that one can use with any puppeteer objects (page, frame, etc.).

  3. A polling function that expects something to be truthy / true for a fixed amount of time (e.g. a button has to be enabled for at least 5 seconds).

aslushnikov pushed a commit that referenced this issue Feb 1, 2019
It looks like this was a breaking change for people using DefinitelyTyped's definitions. Let's revert, and revisit it for 2.0

References #3878, #2079
@Jamesernator
Copy link

I agree with @benjamingr , is there a reason for not using structured clone-like serialization rather than JSON serialization?

@jadell
Copy link

jadell commented Jun 4, 2019

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

@benjamingr
Copy link

@Jamesernator I ended up doing this on my own fork on top of puppeteer - this required non trivial changes in the inspector code in V8 and I am not confident in my ability to actually land those changes given how hard the process is. It did end up making for an interesting conference talk in DevDays.

I ended up creating an HTTP server and fetching from it from the page which is fast, alternatively passing strings is pretty fast. It's just a shame puppeteer doesn't do the right thing by default.

At least - it should warn.

@JoelEinbinder
Copy link
Contributor

We are actually working on a binary devtools protocol in chromium that might help. Waiting for it to stabilizing before moving puppeteer on it though.

Can you file a separate issue instead of cluttering this one? Still interested in the exact use cases.

@benjamingr
Copy link

benjamingr commented Jun 4, 2019

@JoelEinbinder sure, what would be the best way to collaborate with you or provide feedback on the binary devtools protocol? I am a pretty heavy devtools protocol (both using puppeteer, in Node on the inspector, using the cdp package and at my job Testim.io ).

I would love to participate in this. How do I get involved?

(Also, feel free to email me or suggest a communication channel more convenient to you, I am found at benji@testim.io - if you prefer my personal email that's available on https://github.com/nodejs/node)

@catalinberta
Copy link

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.

@webfolderio
Copy link

consider switching to pipes instead of websocket connection by default (not doing this - doesn't worth a hassle)

I know that WebSocket works as fast pipe but i don't understand why do you change your mind?

@jesse996
Copy link

one year ago..

@david-littlefield
Copy link

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

@Krinkle
Copy link

Krinkle commented Oct 12, 2019

Apologies if this was considered already, but might I propose for 2.0 to (wherever possible) only remove deprecated options and aliases, and (where possible) for newer abilities and renames to actually be introduced in a late 1.x release.

I've seen this practice adopted elsewhere and tends to result in smoother adoption and upgrade experience, I think.

@mathiasbynens
Copy link
Member

v2.0.0 is out, with a subset of the breaking changes in the top post. We've decided the other breaking changes are probably not worth the hassle right now.

@Janpot
Copy link
Contributor

Janpot commented Oct 24, 2019

@mathiasbynens

We've decided the other breaking changes are probably not worth the hassle right now.

Maybe the ticket can be kept open and renamed to "v3.0 Breaking Changes"? I mean, I think I'm still interested in some of these issues.

@mathiasbynens
Copy link
Member

@Janpot We can track this in separate tickets. Please file issues for any changes that seem worth it to you!

@Janpot
Copy link
Contributor

Janpot commented Oct 25, 2019

@mathiasbynens FYI, I filed #5086

@benjamingr
Copy link

@mathiasbynens can this issue now be unpinned?

@mathiasbynens mathiasbynens unpinned this issue Oct 26, 2019
@mathiasbynens
Copy link
Member

mathiasbynens commented Oct 26, 2019

@Janpot Thanks!

@benjamingr Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chromium Issues with Puppeteer-Chromium
Projects
None yet
Development

No branches or pull requests

17 participants