GoogleChromeLabs / carlo

Web rendering surface for Node applications
Apache License 2.0
9.31k stars 309 forks source link

Question: auto-update #92

Open ab35 opened 5 years ago

ab35 commented 5 years ago

Chromium has a disk and bandwidth cost: (~170MB Mac, ~282MB Linux, ~280MB Win) and apparently one can only update the whole chromium package because updates do not come by little patches on top of the existing installation.

It would be cool if the current installation was able to update just the least amount of bytes by fetching only the required diff instead of having to download the whole package each time.

Can chromium auto-update feature using "filesystem updates with file-level binary diffs" be made programmatically available in carlo / puppeteer-core ?

pavelfeldman commented 5 years ago

The idea behind Carlo is that Chrome will auto-update and Carlo user would not need to care. I'm still figuring out the Node-side autoupdate story though.

tracker1 commented 5 years ago

npm i -g -f packageName ?

ab35 commented 5 years ago

If the app targets developpers, one can expect them to have Chrome and even to have node already installed onto their machine and thus to be able to just use npm...

But if one builds an app that targets a more general public, who is used to a different browser than Chrome and who may have a bad internet connection, then the app would need to have chromium embedded or to download chromium (at least once) and also to be packaged with node...

Then the auto-update story is different: one needs to download again the packaged app for updating node and the app (if application files are also packaged in the binary) and also to download again chromium for updating it...

ab35 commented 5 years ago

Another option would be that node ships directly within chrome, and the same way as Trusted Web Activity for Android, there would be a Trusted Desktop Activity, which would allow a PWA to directly use the node API within the webpage...