summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShubhangi Pawar <svpawar@google.com>2022-03-21 19:43:32 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-21 19:43:32 +0000
commite779f3c7ab892b0b7f26ee1a4076ce0944bb7798 (patch)
treec068a28e4d6cca6ac8a9d72115a18161859947c2
parent29617ded5bb33da035962044827d07709eeba9e0 (diff)
parent7045632d21c025aceaba5b3d6c508f31a68de302 (diff)
downloadcts-e779f3c7ab892b0b7f26ee1a4076ce0944bb7798.tar.gz
Merge "[wv] Destroy a child window's WebView in MockWebChromeClient" into oreo-mr1-cts-dev am: 7045632d21
Original change: https://android-review.googlesource.com/c/platform/cts/+/1999531 Change-Id: I47611aabc3fb375439f9046bf63dcaa4693feecc
-rw-r--r--tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
index fb6626111b1..529ea645ffa 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
@@ -22,6 +22,7 @@ import android.os.SystemClock;
import android.test.ActivityInstrumentationTestCase2;
import android.view.MotionEvent;
import android.view.ViewGroup;
+import android.view.ViewParent;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebIconDatabase;
@@ -390,6 +391,7 @@ public class WebChromeClientTest extends ActivityInstrumentationTestCase2<WebVie
private boolean mHadOnCreateWindow;
private boolean mHadOnRequestFocus;
private boolean mHadOnReceivedIcon;
+ private WebView mChildWebView;
public MockWebChromeClient() {
super(mOnUiThread);
@@ -501,6 +503,15 @@ public class WebChromeClientTest extends ActivityInstrumentationTestCase2<WebVie
public void onCloseWindow(WebView window) {
super.onCloseWindow(window);
mHadOnCloseWindow = true;
+
+ if (mChildWebView != null) {
+ ViewParent parent = mChildWebView.getParent();
+ if (parent instanceof ViewGroup) {
+ ((ViewGroup) parent).removeView(mChildWebView);
+ }
+ mChildWebView.destroy();
+ }
+
}
@Override
@@ -514,12 +525,12 @@ public class WebChromeClientTest extends ActivityInstrumentationTestCase2<WebVie
if (mBlockWindowCreationAsync) {
transport.setWebView(null);
} else {
- WebView childView = new WebView(getActivity());
- final WebSettings settings = childView.getSettings();
+ mChildWebView = new WebView(getActivity());
+ final WebSettings settings = mChildWebView.getSettings();
settings.setJavaScriptEnabled(true);
- childView.setWebChromeClient(this);
- transport.setWebView(childView);
- getActivity().addContentView(childView, new ViewGroup.LayoutParams(
+ mChildWebView.setWebChromeClient(this);
+ transport.setWebView(mChildWebView);
+ getActivity().addContentView(mChildWebView, new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
resultMsg.sendToTarget();