Skip to content

Commit 42ce0f3

Browse files
authored
Clear cookies before opening web views (#2836)
1 parent b889793 commit 42ce0f3

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ package org.microg.gms.accountsettings.ui
88
import android.content.Intent
99
import android.content.Intent.URI_INTENT_SCHEME
1010
import android.net.Uri
11+
import android.os.Build.VERSION.SDK_INT
1112
import android.util.Log
1213
import android.view.View
14+
import android.webkit.CookieManager
1315
import android.webkit.WebResourceRequest
1416
import android.webkit.WebSettings
1517
import android.webkit.WebView
@@ -110,7 +112,14 @@ class WebViewHelper(private val activity: AppCompatActivity, private val webView
110112
}
111113
Log.d(TAG, "Opening $authUrl")
112114
webView.post {
113-
loadWebViewUrl(authUrl)
115+
if (SDK_INT >= 21) {
116+
CookieManager.getInstance().removeAllCookies {
117+
loadWebViewUrl(authUrl)
118+
}
119+
} else {
120+
CookieManager.getInstance().removeAllCookie()
121+
loadWebViewUrl(authUrl)
122+
}
114123
}
115124
} catch (e: Exception) {
116125
Log.w(TAG, "Failed to get weblogin auth.", e)

play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package org.microg.gms.auth.consent
88
import android.annotation.SuppressLint
99
import android.app.Activity
1010
import android.graphics.Bitmap
11-
import android.os.Build
11+
import android.os.Build.VERSION.SDK_INT
1212
import android.os.Bundle
1313
import android.os.Message
1414
import android.os.Messenger
@@ -92,7 +92,7 @@ class ConsentSignInActivity : Activity() {
9292

9393
private fun initCookieManager() {
9494
val cookieManager = CookieManager.getInstance()
95-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
95+
if (SDK_INT >= 21) {
9696
cookieManager.removeAllCookies { _ ->
9797
setCookiesAndLoadUrl(consentUrl!!, cookieManager)
9898
}
@@ -163,4 +163,13 @@ class ConsentSignInActivity : Activity() {
163163
Log.d(TAG, "consent showView: ")
164164
}
165165
}
166+
167+
override fun onStop() {
168+
super.onStop()
169+
if (SDK_INT >= 21) {
170+
CookieManager.getInstance().removeAllCookies(null)
171+
} else {
172+
CookieManager.getInstance().removeAllCookie()
173+
}
174+
}
166175
}

vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ package org.microg.vending.billing.ui
77

88
import android.accounts.Account
99
import android.accounts.AccountManager
10-
import android.content.Intent
1110
import android.net.Uri
11+
import android.os.Build.VERSION.SDK_INT
1212
import android.util.Log
1313
import android.view.View
14+
import android.webkit.CookieManager
1415
import android.webkit.WebResourceRequest
1516
import android.webkit.WebSettings
1617
import android.webkit.WebView
@@ -95,7 +96,16 @@ class WebViewHelper(
9596
}
9697
if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Opening $authUrl")
9798
webView.post {
98-
loadWebViewUrl(authUrl)
99+
if (SDK_INT >= 21) {
100+
CookieManager.getInstance().removeAllCookies {
101+
if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Cookies removed")
102+
loadWebViewUrl(authUrl)
103+
}
104+
} else {
105+
CookieManager.getInstance().removeAllCookie()
106+
loadWebViewUrl(authUrl)
107+
}
108+
99109
}
100110
} catch (e: Exception) {
101111
if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Failed to get weblogin auth.", e)

0 commit comments

Comments
 (0)