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

chore: disable certain Fission features for Firefox #7610

Merged
merged 3 commits into from Oct 7, 2021

Conversation

whimboo
Copy link
Collaborator

@whimboo whimboo commented Sep 28, 2021

Enable basic Fission support for Firefox' CDP implementation. Some other Fission specific features have to be kept disabled for now.

@google-cla google-cla bot added the cla: yes label Sep 28, 2021
@whimboo whimboo marked this pull request as draft September 28, 2021 15:41
@whimboo
Copy link
Collaborator Author

whimboo commented Sep 29, 2021

With all the checks passing, I'm close to request review for this change. But there is one question remaining.

@jschfflr does the order of emitted events actually matter in Puppeteer or CDP? It doesn't look like. Background here is that with enabling Fission in Firefox we have a lot more async code, and as such event order is mixed up compared to what we emit without Fission or what Chrome emits. As example, when navigating away from a frameset page, the contained frame is destroyed after the execution context of the new page has been created.

Can we assume that the order doesn't matter? If that is the case I would remove strict event order assertions in our own internal tests for CDP. With that done we could enable Fission with some features still disabled, which is a great step forward.

Related bug here is https://bugzilla.mozilla.org/show_bug.cgi?id=1601245.

@mathiasbynens
Copy link
Member

cc @OrKoN as well

@whimboo
Copy link
Collaborator Author

whimboo commented Sep 29, 2021

From our side the landing of this PR actually blocks any work for issue #6894.

@jschfflr
Copy link
Contributor

@whimboo For the OOP iframe support that I'm currently working on, there is the implicit assumption of a frame being attached to its parent frame again before the target is destroyed if the frame is moving from OOP to in process again. But I don't think we have them documented anywhere. But I'm pretty sure there will be a bunch of them.
But as long as the tests are passing in a non flaky way, I'd say we should just give it a try. And either it just works or we discover a bunch of hidden assumptions that we could write tests for...

@whimboo
Copy link
Collaborator Author

whimboo commented Sep 29, 2021

Thanks @jschfflr! Do you know if this OOP support in Puppeteer is something that will ship in Q4 this year? If yes is there something that I have to be aware of? Happy to chat about that via the #webdriver Element/Matrix channel. Thanks in advance.

@whimboo
Copy link
Collaborator Author

whimboo commented Sep 29, 2021

FYI I'll keep this PR as draft for now until we have merged these changes in our own repository first. This might take a couple days.

@jschfflr
Copy link
Contributor

@whimboo I'm currently working on this: #7556
That change would already integrate OOP iframes into the frame manager. But there are probably a bunch of other things that have to be changed too.

@whimboo
Copy link
Collaborator Author

whimboo commented Sep 30, 2021

Thanks! So given that current Puppeteer tests are passing, does Puppeteer also pass with Chrome having OOP enabled? Or do you force it off for the time being? If you do, we may want to retain the fission.autostart=false preference as long as possible?

@whimboo
Copy link
Collaborator Author

whimboo commented Oct 1, 2021

@jschfflr we are kinda interested to get this change into the next Puppeteer release. Is there already a time scheduled for it, or do we have some more days to get our CI polished up. Nevertheless we might be ok in shipping these changes. Thanks.

@whimboo
Copy link
Collaborator Author

whimboo commented Oct 6, 2021

As heads-up, my patches on https://bugzilla.mozilla.org/show_bug.cgi?id=1601245 have been landed. If all goes well these will reach the Firefox Nightly release today. Our internal CI hasn't shown any failures for Puppeteer whether if Fission is enabled or disabled (as per default right now). @jschfflr if you notice failures today please let me know. If it works well I will ask for uplifting the patch to Firefox 94 beta. Once it reaches release we can continue to work on issue #6894.

Having no failures we could consider merging this PR tomorrow or on Friday.

@whimboo whimboo marked this pull request as ready for review October 7, 2021 08:55
@whimboo
Copy link
Collaborator Author

whimboo commented Oct 7, 2021

Internal tests are working great with this change. So I do not see a reason why we would have to delay the merge of this PR anytime longer. @jschfflr could you please merge? Thanks!

@jschfflr
Copy link
Contributor

jschfflr commented Oct 7, 2021

@whimboo Awesome, thanks! Happy to get this landed :)

@jschfflr jschfflr merged commit e7f8262 into puppeteer:main Oct 7, 2021
@whimboo
Copy link
Collaborator Author

whimboo commented Oct 7, 2021

@jschfflr thanks for merging. Do you already know when the next Puppeteer release is due? In about a months time work will be started to disallow turning off Fission in Firefox. As such this will negatively affect Puppeteer users. So getting a release shipped until then would be great. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants