diff options
author | Shubhangi Pawar <svpawar@google.com> | 2022-03-21 19:43:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-21 19:43:32 +0000 |
commit | e779f3c7ab892b0b7f26ee1a4076ce0944bb7798 (patch) | |
tree | c068a28e4d6cca6ac8a9d72115a18161859947c2 | |
parent | 29617ded5bb33da035962044827d07709eeba9e0 (diff) | |
parent | 7045632d21c025aceaba5b3d6c508f31a68de302 (diff) | |
download | cts-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.java | 21 |
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(); |