Chromeless: Consider merging with NightmareJS

Created on 15 Aug 2017  路  10Comments  路  Source: prisma-archive/chromeless

I know it might seem silly, but since I've done some research in the last few days to choose a front-end testing solution, and tried both chromeless and Nightmare, one question came to mind.

Why don't you join forces with NightmareJS instead of trying to do something new?

You've borrowed a lot from the (admittedly awesome) Nightmare syntax, and, at least from my understanding, the main difference is that under the hood you're sending instructions to either Chrome directly through CDP (chromeless) or to Electron (Nightmare).

From what I've understood, this would be the main selling point of chromeless, making it very quick and easy to run on AWS Lamba, which is awesome.

What spurred this question, though, is a very interesting PR on the Nightmare project that is getting quite some interest: https://github.com/segmentio/nightmare/pull/1211.
This would make Nightmare use CDP and make it much more similar to chromeless.

All I'm saying is that seeing this two projects merging would be a GitHub dream and possibly make the two even more powerful 馃槃

question

Most helpful comment

Thanks a lot for your comments @stassinari @johnferro. I'll try to give a bit of context:

We actually used NightmareJS a lot before we eventually created Chromeless. We did this for a couple of reasons:

  • There is still a "! Massive security hole in nightmare #1060"
  • We're using Typescript at Graphcool and wanted to have first class support for types (this just provides a way better developer experience)
  • As our integration tests took more than 20min, we needed a way to run them in parallel, that's why AWS Lambda support is directly baked into Chromeless

Regarding Puppeteer: We're really excited about this project and it's awesome that it also sees a lot of traction. @paulirish actually reached out to us a couple of weeks ago to see how we could collaborate. We're planning to use Puppeteer under the hood as a better foundation for Chromeless to focus more on a higher-level abstraction and double down on the AWS Lambda (and similar) execution layer.

I hope this gives you a better view on our perspective and motivations. 馃檪

All 10 comments

It would be great to have a discussion about collaboration among all of these projects instead of splitting efforts. I know recently it sounds like Navalia and Chromeless are going to join forces which is awesome. But there is also clearly still a lot of fracture, including the above Nightmare PR and very recently the first release of Puppeteer. Its sounds like they reached out to a number of other similar projects (of which I'm sure this was one) to talk about collaboration. I think many developers are closely following the release and state of these Chrome automation libraries and it would benefit all of us to have some of those discussions in the open.

Thanks a lot for your comments @stassinari @johnferro. I'll try to give a bit of context:

We actually used NightmareJS a lot before we eventually created Chromeless. We did this for a couple of reasons:

  • There is still a "! Massive security hole in nightmare #1060"
  • We're using Typescript at Graphcool and wanted to have first class support for types (this just provides a way better developer experience)
  • As our integration tests took more than 20min, we needed a way to run them in parallel, that's why AWS Lambda support is directly baked into Chromeless

Regarding Puppeteer: We're really excited about this project and it's awesome that it also sees a lot of traction. @paulirish actually reached out to us a couple of weeks ago to see how we could collaborate. We're planning to use Puppeteer under the hood as a better foundation for Chromeless to focus more on a higher-level abstraction and double down on the AWS Lambda (and similar) execution layer.

I hope this gives you a better view on our perspective and motivations. 馃檪

@schickling Thank you for your insights into this, it definitely gives more context for where Chromeless stands and what the project is hoping to accomplish going forward. I agree that it definitely made sense to move away from Nightmare given those issues and your use cases, and it will be interesting to see if Nightmare now starts to move on from Electron through either the PR linked above or other efforts.

With regard to Chromeless using Puppeteer, is that dependent on Puppeteer supporting Node 6 (https://github.com/GoogleChrome/puppeteer/issues/316)?

There are multiple projects similar at chromeless : https://medium.com/@kensoh/chromeless-chrominator-chromy-navalia-lambdium-ghostjs-autogcd-ef34bcd26907

@schickling @johnferro Thank you very much for the replies, now everything is much clearer and I'm really looking forward to seeing where you guys will take Chrome automation in the future!

We're planning to use Puppeteer under the hood

Does that mean you are going to change the api to match puppeteer as well ?

Does that mean you are going to change the api to match puppeteer as well ?

I am hoping this means that Puppeteer will essentially be the API.

Hello guys. I'm currently using chromeless since it the most mature in terms of Lambda deployment, and it seems to work well. Indeed though, Puppeteer becomes something I'd probably want to use in the nearest future.

What is the timeline for the Chromeless to start using Puppeteer under the hood? This sounds so awesome I'm really looking forward to seeing.
Thanks for the great job anyway.

Any update on puppeteer? :)
Can't wait!

indeed any update for us please. Puppeteer will make this the leading platform.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Corefinder89 picture Corefinder89  路  4Comments

schickling picture schickling  路  5Comments

bitflip2 picture bitflip2  路  6Comments

adieuadieu picture adieuadieu  路  3Comments

abotkugyu picture abotkugyu  路  3Comments