* Switch to JCEF
This is a full implementation, but it does not yet include downloading
CEF as KCEF did
* Download CEF automatically
* Handle and propagate CEF init errors
* Lint
* Simplify jcef version extract
* CEF: Download async
* Copy StartupAsync to support handling errors
Startup failures are simply swallowed, since they are recorded in the
future, but there is no way to get that exception
* CEF: Search for release file recursively
On Mac, the file is buried a bit deeper than first level, like on Win
and Linux
* KcefWebViewProvider: Suppress deprecation
We need to send those events, even if they are deprecated
* Update readme
* Optimize imports
* Suggestion
Co-authored-by: Mitchell Syer <syer10@users.noreply.github.com>
* Refactor: stick to `Path` instead of `File`
Also extracts the downloading of CEF to a separate method
* Lint
* Support disabling CEF
Co-authored-by: Kolby Moroz Liebl <31669092+kolbyml@users.noreply.github.com>
* Move JBR version to build constants
Allows embedding into Manifest so docker can later extract the proper version
* Create test to verify JCEF dependency matches downloaded JBR
* Update server/src/main/kotlin/suwayomi/tachidesk/server/util/CEFManager.kt
Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
* Fix compile, apply Path suggestions
* Download progress
* Lint
* Fix exception on non-posix
* Delete recursively
Others can be non-empty
* Support disabling CEF at will
Not really functional, but nice
* Fix test
* Exclude masstest unless explicitly requested
* PR-CI: Run tests
* Add Changelog entry
---------
Co-authored-by: Mitchell Syer <syer10@users.noreply.github.com>
Co-authored-by: Kolby Moroz Liebl <31669092+kolbyml@users.noreply.github.com>
Makes it so that the client section is less likely to get outdated and therefore requires less maintenance
Provides only information about how the clients can be run.
The client repo itself is responsible for providing any other information.
Remove clients that have not had any commits in years
* 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>
* Move JUI and Sorayomi to inactive clients
* Update client descriptions
* Remove outdated mihon sync info
* Update feature list
* Move Docker installation info to top of list
* Move feature list higher in readme
* Rename feature list section to "Features"
* Separate inactive/abonded clients