Detach WebViews before destroying them in Clean and Exit. https://redmine.stoutner...
authorSoren Stoutner <soren@stoutner.com>
Mon, 25 Jan 2021 21:26:27 +0000 (14:26 -0700)
committerSoren Stoutner <soren@stoutner.com>
Mon, 25 Jan 2021 21:26:27 +0000 (14:26 -0700)
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java

index 4180e28c31f5c2c574f8dfa7b529194b41fcb9c9..c5b8b09fc765fcb6a210b811deeb03000eccf8d1 100644 (file)
@@ -5055,13 +5055,13 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
             // Get the WebView tab fragment.
             WebViewTabFragment webViewTabFragment = webViewPagerAdapter.getPageFragment(i);
 
-            // Get the fragment view.
-            View fragmentView = webViewTabFragment.getView();
+            // Get the WebView frame layout.
+            FrameLayout webViewFrameLayout = (FrameLayout) webViewTabFragment.getView();
 
             // Only wipe out the WebView if it exists.
-            if (fragmentView != null) {
+            if (webViewFrameLayout != null) {
                 // Get the nested scroll WebView from the tab fragment.
-                NestedScrollWebView nestedScrollWebView = fragmentView.findViewById(R.id.nestedscroll_webview);
+                NestedScrollWebView nestedScrollWebView = webViewFrameLayout.findViewById(R.id.nestedscroll_webview);
 
                 // Clear SSL certificate preferences for this WebView.
                 nestedScrollWebView.clearSslPreferences();
@@ -5069,6 +5069,9 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                 // Clear the back/forward history for this WebView.
                 nestedScrollWebView.clearHistory();
 
+                // Remove all the views from the frame layout.
+                webViewFrameLayout.removeAllViews();
+
                 // Destroy the internal state of the WebView.
                 nestedScrollWebView.destroy();
             }