mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-03 10:54:38 -05:00
* Implement Android's Looper Looper handles thread messaging. This is used by extensions when they want to enqueue actions e.g. for sleeping while WebView does someting * Stub WebView * Continue stubbing ViewGroup for WebView * Implement WebView via Playwright * Lint * Implement request interception Supports Yidan * Support WebChromeClient For Bokugen * Fix onPageStarted * Make Playwright configurable * Subscribe to config changes * Fix exposing of functions * Support data urls * Looper: Fix infinite sleep * Looper: Avoid killing the loop on exception Just log it and continue * Pump playwright's message queue periodically https://playwright.dev/java/docs/multithreading#pagewaitfortimeout-vs-threadsleep * Update server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SettingsType.kt Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com> * Stub a KCef WebViewProvider * Initial Kcef Webview implementation Still buggy, on the second call it just seems to fall over * Format, restructure to create browser on load This is much more consistent, before we would sometimes see errors from about:blank, which block the actual page * Implement some small useful properties * Move inline objects to class * Handle requests in Kcef * Move Playwright implementation * Document Playwright settings, fix deprecated warnings * Inject default user agent from NetworkHelper * Move playwright to libs.versions.toml * Lint * Fix missing imports after lint * Update server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com> * Fix default user agent set/get Use System.getProperty instead of SystemProperties.get * Configurable WebView provider implementation * Simplify Playwright settings init * Minor cleanup and improvements * Remove playwright WebView impl * Document WebView for Linux --------- Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
31 lines
1.1 KiB
Kotlin
31 lines
1.1 KiB
Kotlin
package xyz.nulldev.androidcompat
|
|
|
|
import android.webkit.WebView
|
|
import xyz.nulldev.androidcompat.config.ApplicationInfoConfigModule
|
|
import xyz.nulldev.androidcompat.config.FilesConfigModule
|
|
import xyz.nulldev.androidcompat.config.SystemConfigModule
|
|
import xyz.nulldev.androidcompat.webkit.KcefWebViewProvider
|
|
import xyz.nulldev.ts.config.GlobalConfigManager
|
|
|
|
/**
|
|
* Initializes the Android compatibility module
|
|
*/
|
|
class AndroidCompatInitializer {
|
|
fun init() {
|
|
// Register config modules
|
|
GlobalConfigManager.registerModules(
|
|
FilesConfigModule.register(GlobalConfigManager.config),
|
|
ApplicationInfoConfigModule.register(GlobalConfigManager.config),
|
|
SystemConfigModule.register(GlobalConfigManager.config),
|
|
)
|
|
|
|
WebView.setProviderFactory({ view: WebView -> KcefWebViewProvider(view) })
|
|
|
|
// Set some properties extensions use
|
|
System.setProperty(
|
|
"http.agent",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
|
)
|
|
}
|
|
}
|