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

Roll Chromium 94 after 2021-08-26 #7458

Closed
sadym-chromium opened this issue Aug 3, 2021 · 23 comments
Closed

Roll Chromium 94 after 2021-08-26 #7458

sadym-chromium opened this issue Aug 3, 2021 · 23 comments
Assignees
Labels
chromium Issues with Puppeteer-Chromium

Comments

@sadym-chromium
Copy link
Collaborator

Chrome 94 is in beta, so it's time to roll Puppeteer update.
https://chromiumdash.appspot.com/schedule

@mathiasbynens mathiasbynens added the chromium Issues with Puppeteer-Chromium label Aug 3, 2021
@mathiasbynens
Copy link
Member

Jan, could you PTAL?

@mathiasbynens
Copy link
Member

Jan, what's the status here?

@bradisbell
Copy link

FYI, the next one is coming up in three days: #7459

@jschfflr
Copy link
Contributor

Unfortunately, the roll is blocked on some breaking changes that happened in Chromium.
We are currently figuring out a solution.

NoelLH added a commit to thebiggive/donate-frontend that referenced this issue Sep 28, 2021
…evision

and ChromeDriver versions for webdriver-manager and Puppeteer.

Chromium version override is temporarily needed until Puppeteer sort out
Chrome/Chromium v94 issues. See puppeteer/puppeteer#7458

For revision lookup info see https://www.chromium.org/getting-involved/download-chromium
and tables linked from there.

Based on https://omahaproxy.appspot.com/ + Puppeteer source I used rev 901912.
@jschfflr
Copy link
Contributor

jschfflr commented Oct 4, 2021

Quick update - Unfortunately, the roll is still blocked because of the following situation:

A while ago, a change in the network domain caused some headers and status codes to move from the requestWillBeSent/responseReceived to the according requestWillBeSentExtraInfo/responseReceivedExtraInfo. Right now, Puppeteer does not use these events at all because before this change, the information provided in the requestWillBeSent/responseReceived was enough to fulfill the needs of the provided API surface. But now that some of the information moved there, we have to implement support for them.
Unfortunately though, there is no guarantee that these events will be emitted for all requests and if they are, there is no guarantee on the order. That's why we are not able to just listen to them too. Instead we have to find a way within Chromium to tell Puppeteer if there will be ...ExtraInfo events that it should be aware of.

@josepharhar
Copy link
Collaborator

Hey everyone!

I am working on a new CDP feature to enable puppeteer to leverage responseReceivedExtraInfo and therefore get the raw headers back: https://chromium-review.googlesource.com/c/chromium/src/+/2898747
Here is a doc for those interested in more details: https://docs.google.com/document/d/1NM30Wg_aM3-RFZaD_lQuWQj8my8XoR9YpMi60QH1lHU/edit

I am also working on a puppeteer patch which uses the new feature, I'll open a PR for it soon.

@jschfflr
Copy link
Contributor

jschfflr commented Oct 6, 2021

Thanks for the update @josepharhar!

@josepharhar
Copy link
Collaborator

The PR is ready: #7640
It still depends on the new flag in chromium, but the code can still otherwise be reviewed!

@akornatskyy
Copy link

There is observed significant performance degradation when switching from 93.0.4577.82 to 94.0.4606.81. Specifically up to 2x time for the same requests. Also the binary is +40MB.

@mathiasbynens
Copy link
Member

@josepharhar
Copy link
Collaborator

@josepharhar What's blocking https://chromium-review.googlesource.com/c/chromium/src/+/2898747 from landing?

I'm waiting for more lgtms, I'll ping the reviewers

@josepharhar
Copy link
Collaborator

The patch is going through CQ+2, it should be merged shortly.

@jschfflr
Copy link
Contributor

Awesome, thanks @josepharhar for seeing this through!

@jschfflr
Copy link
Contributor

Will this change be backmerged to older versions or should we wait for the next branch cut?

@josepharhar
Copy link
Collaborator

I’m not planning on trying to merge it to any release branches, I feel like it would be kind of hard to get approved

@jschfflr
Copy link
Contributor

Ok, cool! I'll start rolling Chromium as soon as this change lands in dev :)

OrKoN added a commit that referenced this issue Nov 25, 2021
OrKoN added a commit that referenced this issue Nov 25, 2021
OrKoN added a commit that referenced this issue Nov 25, 2021
@kblok
Copy link
Contributor

kblok commented Nov 27, 2021

@OrKoN @mathiasbynens why is this a breaking change?

@josepharhar
Copy link
Collaborator

I’ve made more fixes in chromium and puppeteer, so hopefully there will be no breaking changes

@OrKoN
Copy link
Collaborator

OrKoN commented Nov 28, 2021

@kblok there were some breaking Chrome DevTools Protocol changes that required changes in Puppeteer. That makes the version 12.0.0 only compatible with Chromium 97.0.4692.0 or later and not compatible with the previous Chromium versions.

@kblok
Copy link
Contributor

kblok commented Nov 28, 2021

How about the other way around @OrKoN?
Will I need pptr 12 to use chrome 97?
Now I'm running puppeteer core 7.1 with Chrome 96

@OrKoN
Copy link
Collaborator

OrKoN commented Nov 29, 2021

@kblok yes, I believe so. Chrome 97 has breaking CDP changes that pptr prior v12 won't handle properly. Some use cases might work but the entire test suite we have would fail.

@josepharhar
Copy link
Collaborator

If you use old puppeteer with new chromium, then you won't necessarily get the correct headers and response codes. It shouldn't totally blow up though. In some cases the response code may be 200 instead of 304. You will also get fewer headers, especially privacy sensitive ones like cookies - although page.cookies should still have everything.

@kblok
Copy link
Contributor

kblok commented Nov 29, 2021

Thank you @josepharhar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment