Closed fffx closed 6 months ago
Thanks for this report. It looks like the WebView
render process was killed by the OS while the app was in the background.
I'll try to replicate this and see how the app state can be restored properly when the render process is gone. Note, I probably won't be able to get to this for a little awhile, and this behavior should be a rare occurrence.
I sometimes get this same error when navigating to a login modal after a 401. Dismissing the modal (and triggering another login modal caused by a 401) often fixes it.
Hi! Faced the same problem. When I navigate between tabs in webview, which are loaded using js, and after navigate to another fragment using the navigate method, then I receive the same error appears in the console. After that, the page is not loaded. Also, if you go back, the web view is blocked and cannot be scrolled.
delegate.navigate(
location = BuildConfig.BASE_URL + path,
options = TurboVisitOptions(action = TurboVisitAction.REPLACE)
)
......
D/TurboLog: navigate .......................... [session: main, location: /events, options: TurboVisitOptions(action=REPLACE, snapshotHTML=null, response=null), currentContext: DEFAULT, newContext: DEFAULT, presentation: REPLACE, fragment: CoursesFragment]
navigateWithinContext ............. [session: main, location: /events, presentation: REPLACE, fragment: CoursesFragment]
W/ContentCatcher: Failed to notify a WebView
D/TurboLog: navigateToLocation ................ [session: main, location: /events, uri: turbo://fragment/web/events, fragment: CoursesFragment]
D/TurboLog: fragment.onStop ................... [session: main, location: /courses, fragment: CoursesFragment]
D/TurboLog: fragment.onViewCreated ............ [session: main, location: /events, fragment: EventsFragment]
D/TurboLog: fragment.onStart .................. [session: main, location: /events, fragment: EventsFragment]
W/ContentCatcher: Failed to notify a WebView
D/TurboLog: visitLocation ..................... [session: main, location: /events, options: TurboVisitOptions(action=ADVANCE, snapshotHTML=null, response=null), restorationIdentifier: ]
I/chromium: [INFO:CONSOLE(1)] “Uncaught ReferenceError: turboNative is not defined”, source: /lessons (1)
D/ViewRootImpl[MainActivity]: changeCanvasOpacity: opaque=false
D/ViewRootImpl[MainActivity]: changeCanvasOpacity: opaque=true
D/TurboLog: fragment.onStop ................... [session: main, location: /events, fragment: EventsFragment]
I/chromium: [INFO:CONSOLE(2)] “WebSocket connection to ‘wss://app.impactplus.com/cable’ failed: WebSocket is closed before the connection is established.“, source: .../js/application-0ccec25edd3a996ab.js (2)
........
Got same error with Devise logging : if i send a wrong login, i got the error with my second attemp. I fix it by force the Devise::FailureApp to call redirect instead of recall in my devise.rb : class TurboFailureApp < Devise::FailureApp
class TurboFailureApp < Devise::FailureApp
def respond
if http_auth?
http_auth
elsif warden_options[:recall]
redirect
else
redirect
end
end
end```
I let the `elsif warden_options[:recall]` to easly compare my new function with the super function, but of course we can juste do a ` else redirect`
Open Turbo demo, click on Open a slow-loading webpage, put it in background by switch to another app, play around for a few minutes, when you see a message
then go back to Turbo demo, got the error
My device info: Redmi k30 Pro Android 11 MIUI 12.2.2 stable version