From d3d5628b76485fc9f4e7a142ff38ee64fb362bc1 Mon Sep 17 00:00:00 2001 From: Sarah Chin Date: Fri, 30 Jun 2023 14:11:28 -0700 Subject: [PATCH] Fix cookie logic for webviews Clear cookies before webview is started and load the webview in the async response after cookie clearing is complete. Remove unnecessary webview and cookie cleanup code. Set the default webview client to prevent system browser redirects Test: manual verify hyperlink does not open in system browser Test: manual verify through IODT testing Bug: 282129516 Change-Id: Ifee0d702440e89aa07196fefa810d85a64899493 Merged-In: Ifee0d702440e89aa07196fefa810d85a64899493 (cherry picked from commit 7875aa7faff3f0a67adb960e67a2f2d69ed51163) --- .../assets/slice_purchase_test.html | 2 ++ .../carrierdefaultapp/SlicePurchaseActivity.java | 14 ++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/CarrierDefaultApp/assets/slice_purchase_test.html b/packages/CarrierDefaultApp/assets/slice_purchase_test.html index 917276b9ce65a..ad18a9d64074a 100644 --- a/packages/CarrierDefaultApp/assets/slice_purchase_test.html +++ b/packages/CarrierDefaultApp/assets/slice_purchase_test.html @@ -81,5 +81,7 @@ Dismiss flow

+ +

Test hyperlink

diff --git a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java index 2530257d629a4..b1009808ccccb 100644 --- a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java +++ b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java @@ -29,6 +29,7 @@ import android.util.Log; import android.view.KeyEvent; import android.webkit.CookieManager; import android.webkit.WebView; +import android.webkit.WebViewClient; import com.android.phone.slice.SlicePurchaseController; @@ -113,8 +114,10 @@ public class SlicePurchaseActivity extends Activity { return; } - // Create and configure WebView - setupWebView(); + // Clear any cookies that might be persisted from previous sessions before loading WebView + CookieManager.getInstance().removeAllCookies(value -> { + setupWebView(); + }); } protected void onPurchaseSuccessful() { @@ -176,12 +179,7 @@ public class SlicePurchaseActivity extends Activity { private void setupWebView() { // Create WebView mWebView = new WebView(this); - - // Clear any cookies and state that might be saved from previous sessions - CookieManager.getInstance().removeAllCookies(null); - CookieManager.getInstance().flush(); - mWebView.clearCache(true); - mWebView.clearHistory(); + mWebView.setWebViewClient(new WebViewClient()); // Enable JavaScript for the carrier purchase website to send results back to // the slice purchase application.