From fa3292dcb58f4c82122110cc6267ebcf36885890 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sat, 1 Mar 2025 16:49:27 +0100 Subject: [PATCH] add CookieManager and WebStorage, but disable them in NewPipe for now These classes are needed for WhatsApp, but having them available makes NewPipe try to generate PoTokens in the WebView, which does not work yet, so we just throw an Exception in NewPipe based on the package name. --- .../android/webkit/CookieManager.java | 22 +++++++++++++++++++ src/api-impl/android/webkit/WebStorage.java | 10 +++++++++ src/api-impl/meson.build | 2 ++ 3 files changed, 34 insertions(+) create mode 100644 src/api-impl/android/webkit/CookieManager.java create mode 100644 src/api-impl/android/webkit/WebStorage.java diff --git a/src/api-impl/android/webkit/CookieManager.java b/src/api-impl/android/webkit/CookieManager.java new file mode 100644 index 00000000..d415190e --- /dev/null +++ b/src/api-impl/android/webkit/CookieManager.java @@ -0,0 +1,22 @@ +package android.webkit; + +import android.content.Context; + +class ValueCallback {} + +public class CookieManager { + + public static CookieManager getInstance() { + // HACK: disable NewPipe's WebView based PoToken generator for now + if (Context.this_application.getPackageName().equals("org.schabi.newpipe")) { + throw new RuntimeException("CookieManager not yet fully implemented"); + } + return new CookieManager(); + } + + public void removeAllCookies(ValueCallback callback) {} + + public void removeSessionCookies(ValueCallback callback) {} + + public void flush() {} +} diff --git a/src/api-impl/android/webkit/WebStorage.java b/src/api-impl/android/webkit/WebStorage.java new file mode 100644 index 00000000..1a2c412f --- /dev/null +++ b/src/api-impl/android/webkit/WebStorage.java @@ -0,0 +1,10 @@ +package android.webkit; + +public class WebStorage { + + public static WebStorage getInstance() { + return new WebStorage(); + } + + public void deleteAllData() {} +} diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index 8080063d..2f8a76f7 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -529,6 +529,7 @@ srcs = [ 'android/view/inputmethod/InputConnection.java', 'android/view/inputmethod/InputMethodManager.java', 'android/view/textservice/TextServicesManager.java', + 'android/webkit/CookieManager.java', 'android/webkit/DownloadListener.java', 'android/webkit/MimeTypeMap.java', 'android/webkit/URLUtil.java', @@ -536,6 +537,7 @@ srcs = [ 'android/webkit/WebChromeClient.java', 'android/webkit/WebResourceResponse.java', 'android/webkit/WebSettings.java', + 'android/webkit/WebStorage.java', 'android/webkit/WebView.java', 'android/webkit/WebViewClient.java', 'android/widget/AbsListView.java',