summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShubhangi Pawar <svpawar@google.com>2022-03-21 19:23:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-03-21 19:23:17 +0000
commit7045632d21c025aceaba5b3d6c508f31a68de302 (patch)
tree804a116d441047f0464d21fc6e8a693a3c7a3d45
parenta6f4d5c15e988dd9c673d4e5d506b1679b0a590c (diff)
parent3acca10ca0f87fba7fa840dc7cac43875f12fef7 (diff)
downloadcts-7045632d21c025aceaba5b3d6c508f31a68de302.tar.gz
Merge "[wv] Destroy a child window's WebView in MockWebChromeClient" into oreo-mr1-cts-dev
-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();