From 98f1cac817af402491d935769b046e3e4bb4f4f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Mar 2026 07:50:02 +0000 Subject: [PATCH 1/3] Initial plan From f8c07cad4e55446b3dd473c371d8c8b49c547ce9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Mar 2026 07:55:26 +0000 Subject: [PATCH 2/3] Fix compilation error: replace nativeWebView with cookieManager.getCookies API Co-authored-by: Tlaster <8370277+Tlaster@users.noreply.github.com> --- .../flare/ui/screen/serviceselect/WebViewLoginScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt b/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt index b53c71104..465c0a0b3 100644 --- a/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt +++ b/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt @@ -27,7 +27,7 @@ internal fun WebViewLoginScreen( .plus("/") while (true) { delay(2.seconds) - val cookies = state.nativeWebView.getCookiesForUrl(actualUrl) + val cookies = state.cookieManager.getCookies(actualUrl) if (callback.invoke(cookies.joinToString("; ") { "${it.name}=${it.value}" })) { onBack.invoke() break From b029aecdc1bb9cd57f0b91c71f2035f6cff4302e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Mar 2026 08:15:00 +0000 Subject: [PATCH 3/3] Fix Windows cookie exception: use WryWebViewPanel directly instead of suspend cookie manager Co-authored-by: Tlaster <8370277+Tlaster@users.noreply.github.com> --- .../flare/ui/screen/serviceselect/WebViewLoginScreen.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt b/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt index 465c0a0b3..ecde54715 100644 --- a/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt +++ b/desktopApp/src/main/kotlin/dev/dimension/flare/ui/screen/serviceselect/WebViewLoginScreen.kt @@ -6,6 +6,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import io.github.kdroidfilter.webview.web.WebView import io.github.kdroidfilter.webview.web.rememberWebViewState +import io.github.kdroidfilter.webview.wry.WryWebViewPanel import io.ktor.http.Url import kotlinx.coroutines.delay import kotlin.time.Duration.Companion.seconds @@ -18,7 +19,7 @@ internal fun WebViewLoginScreen( ) { val state = rememberWebViewState(url) LaunchedEffect(Unit) { - state.cookieManager.removeAllCookies() + (state.webView?.nativeWebView as? WryWebViewPanel)?.clearAllCookies() val urlData = Url(url) val actualUrl = urlData.protocol.name @@ -27,7 +28,10 @@ internal fun WebViewLoginScreen( .plus("/") while (true) { delay(2.seconds) - val cookies = state.cookieManager.getCookies(actualUrl) + val cookies = + (state.webView?.nativeWebView as? WryWebViewPanel) + ?.getCookiesForUrl(actualUrl) + .orEmpty() if (callback.invoke(cookies.joinToString("; ") { "${it.name}=${it.value}" })) { onBack.invoke() break