From e669dc3144bd66e313f0a1ae6903ce6ca27077e9 Mon Sep 17 00:00:00 2001 From: Alessandro Basso Date: Wed, 16 Jun 2021 10:34:00 -0400 Subject: [PATCH] Android - Fix for webView window not being destroyed correctly causing memory leak (https://github.com/apache/cordova-plugin-inappbrowser/issues/290) --- src/android/InAppBrowser.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java index 479e04cd7..6e44803a7 100644 --- a/src/android/InAppBrowser.java +++ b/src/android/InAppBrowser.java @@ -534,6 +534,16 @@ public void onPageFinished(WebView view, String url) { dialog.dismiss(); dialog = null; } + + // Fix for webView window not being destroyed correctly causing memory leak + // (https://github.com/apache/cordova-plugin-inappbrowser/issues/290) + if (url.equals(new String("about:blank"))) { + inAppWebView.onPause(); + inAppWebView.removeAllViews(); + inAppWebView.destroyDrawingCache(); + inAppWebView.destroy(); + inAppWebView = null; + } } }); // NB: From SDK 19: "If you call methods on WebView from any thread