Open david-allison opened 6 months ago
Original work for OnRenderProcessGone:
It appears from repo search that we create WebViewClients in a handful of places, but the PageWebViewClient is the one that all the pages exposed from desktop extend from
Assumption: Much of the OnRenderProcessGone logic is reusable (and as a criteria for a fix here: should be reused) from the original work
@david-allison - now that we are in Kotlin and have extension functions, does it seem like a better path to do a deeper inheritance hierarchy and have e.g. a "RenderProcessGoneHandlingWebView" parent that AbstractFlashcardViewer and PageViewClient both use, or to use Kotlin extension functions (somehow, unclear due to my inexperience) to slice the OnRenderProcessGone handling in?
Probably inheritance so it's harder to forget, no strong opinion
Okay - I prefer that myself, I find the extensions to be a little "aspect-oriented-programming-like" where things slice in sometimes in non-obvious ways from non-location-coherent spots and for me that is non-obvious. Inheritance is obvious to the point it cannot be ignored.
So, implementation path here is to make a new superclass for the WebView objects we create, I propose RednerProcessGoneHandlingWebView
which is a long name but also totally obvious as to what it is for
Then inside that object implement OnRenderProcessGone
using extraction as much as possible from the current WebView class inside AbstractFlashcardViewer
Then use that new super-class for AbstractFlashcardViewer and PageWebViewClient, and hopefully we handle this problem well (not doing anything in the background, doing a reload once in foreground as an attempt to workaround, going back to deckpicker (I think that's what happens?) with a toast (I think that's what happens?) if multiple crashes happen
Out of time for the day so marking this as "needs help" but hopefully the analysis is useful to anyone that has time, or to a future version of me that may have time
Hello 👋, this issue has been opened for more than 3 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically
[FATAL:crashpad_client_linux.cc(745)] Render process (6903)'s crash wasn't handled by all associated webviews, triggering application crash.