-
Notifications
You must be signed in to change notification settings - Fork 218
Prevent GeckoSession creation until tab is viewed #2238
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After opening a few tabs and playing with switching I got a broken session. Video attached:
19faa07
to
411a748
Compare
@MortimerGoro I think I've fixed the issue. |
@bluemarvin I manage to get a reproducible crash: STRs:
The app crashes with the following stacktrace.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another crash while testing: https://crash-stats.mozilla.com/report/index/55c55bd6-ddb6-4029-b9cb-f4a250191113
6314107
to
ad54870
Compare
I think both issues have been addressed but I'm sure there are more. |
Couldn't trigger the crash anymore but I got this a transparent window after switching to a private session, same STRs as before: I couldn't see anything weird in the logs: |
The transparent window has to do with how we manage first paint. It's annoying but I don't think it is a blocker. |
ad54870
to
1ca05b9
Compare
1ca05b9
to
7dfa775
Compare
Actually that transparent window is a problem. I thought it was only while the page was loading. I'll look into it quickly. But the fact that it is transparent means the compositor cleared it but then didn't render anything else. |
Fixes #2227 To prevent memory exhaustion, this patch watches for memory trim system callbacks and suspends inactive tabs by deleting the GeckoSession. Additionally, when the application is started or resumed, inactive tabs will not have a GeckoSession created until they are viewed. Any new background tab will also not have a GeckoSession created until the tab is viewed.
7dfa775
to
845047c
Compare
Fixes #2227
To prevent memory exhaustion, this patch watches for memory trim system
callbacks and suspends inactive tabs by deleting the GeckoSession.
Additionally, when the application is started or resumed, inactive tabs will
not have a GeckoSession created until they are viewed. Any new background tab
will also not have a GeckoSession created until the tab is viewed.