Skip to content

Conversation

@dpogue
Copy link
Member

@dpogue dpogue commented Nov 5, 2025

Platforms affected

iOS

Motivation and Context

Provide a preference to control whether the WKWebView will refresh or reload completely after a crash.

Closes GH-1232.
Closes GH-1235.
Closes GH-1355.
Closes GH-1393.
Closes GH-1533.
Closes GH-1552.

Description

This adds a CrashRecoveryBehavior preference with options "refresh" (default - try to refresh the WKWebView URL) and "reload" (load the starting page again in the WKWebView).

This doesn't solve the root issue where sometimes refreshing the WKWebView after a crash results in a blank screen, but gives people the option to force a full reload (which seems to be what people are using as a workaround for the blank screen bug).

Testing

Added API tests to confirm the intended behaviour.

Checklist

  • I've run the tests to see all new and existing tests pass
  • If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
  • I've updated the documentation if necessary

This adds a `CrashRecoveryBehavior` preference with options `"refresh"`
(default - try to refresh the WebView URL) and `"reload"` (load the
starting page again in the WebView).

This doesn't solve the root issue where sometimes refreshing the WebView
still results in a blank screen, but gives people the option to force a
full reload (which seems to be what people are using as a workaround for
the blank screen bug).

Closes apacheGH-1232.
Closes apacheGH-1235.
Closes apacheGH-1355.
Closes apacheGH-1393.
Closes apacheGH-1533.
Closes apacheGH-1552.
@dpogue dpogue added this to the 8.0.0 milestone Nov 5, 2025
@codecov-commenter
Copy link

codecov-commenter commented Nov 5, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.74%. Comparing base (6b39d0e) to head (bdb7ddc).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1582   +/-   ##
=======================================
  Coverage   78.74%   78.74%           
=======================================
  Files          17       17           
  Lines        4911     4911           
=======================================
  Hits         3867     3867           
  Misses       1044     1044           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@erisu erisu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Built a Cordova test app and tested the following cases:

  • No settings: After crashing the WebContent, the app's WebView reloaded and the previously set hash value remained in the href.
  • CrashRecoveryBehavior set to refresh: After crashing the WebContent, the app's WebView reloaded and the previously set hash value remained in the href.
  • CrashRecoveryBehavior set to reload: After crashing the WebContent, the app's WebView reloaded and the href resets to the original starting URL.

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

Labels

None yet

Projects

None yet

3 participants