diff options
author | Shubhangi Pawar <svpawar@google.com> | 2022-03-21 19:23:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-03-21 19:23:17 +0000 |
commit | 7045632d21c025aceaba5b3d6c508f31a68de302 (patch) | |
tree | 804a116d441047f0464d21fc6e8a693a3c7a3d45 | |
parent | a6f4d5c15e988dd9c673d4e5d506b1679b0a590c (diff) | |
parent | 3acca10ca0f87fba7fa840dc7cac43875f12fef7 (diff) | |
download | cts-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.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(); |