mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2026-05-16 04:52:39 +02:00
Added error handling to onConsoleMessage.
This commit is contained in:
@@ -183,6 +183,7 @@ class PackageBrowser: V8Package {
|
|||||||
}
|
}
|
||||||
_browser?.webChromeClient = object : WebChromeClient() {
|
_browser?.webChromeClient = object : WebChromeClient() {
|
||||||
override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {
|
override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {
|
||||||
|
try {
|
||||||
val raw = consoleMessage?.message().orEmpty()
|
val raw = consoleMessage?.message().orEmpty()
|
||||||
|
|
||||||
val normalized = raw.trim().let { s ->
|
val normalized = raw.trim().let { s ->
|
||||||
@@ -197,18 +198,26 @@ class PackageBrowser: V8Package {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (consoleMessage?.messageLevel() == ConsoleMessage.MessageLevel.ERROR) {
|
if (consoleMessage?.messageLevel() == ConsoleMessage.MessageLevel.ERROR) {
|
||||||
val emsg = "Browser Error:${consoleMessage.message()} [${consoleMessage.lineNumber()}]"
|
val emsg =
|
||||||
|
"Browser Error:${consoleMessage.message()} [${consoleMessage.lineNumber()}]"
|
||||||
Logger.e("PackageBrowser", emsg)
|
Logger.e("PackageBrowser", emsg)
|
||||||
if (_plugin.config is SourcePluginConfig && _plugin.config.id == StateDeveloper.DEV_ID)
|
if (_plugin.config is SourcePluginConfig && _plugin.config.id == StateDeveloper.DEV_ID)
|
||||||
StateDeveloper.instance.logDevException(StateDeveloper.instance.currentDevID ?: "", emsg)
|
StateDeveloper.instance.logDevException(
|
||||||
|
StateDeveloper.instance.currentDevID ?: "", emsg
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
val imsg = "Browser Log:${consoleMessage?.message()}"
|
val imsg = "Browser Log:${consoleMessage?.message()}"
|
||||||
Logger.i("PackageBrowser", imsg)
|
Logger.i("PackageBrowser", imsg)
|
||||||
if (_plugin.config is SourcePluginConfig && _plugin.config.id == StateDeveloper.DEV_ID)
|
if (_plugin.config is SourcePluginConfig && _plugin.config.id == StateDeveloper.DEV_ID)
|
||||||
StateDeveloper.instance.logDevInfo(StateDeveloper.instance.currentDevID ?: "", imsg)
|
StateDeveloper.instance.logDevInfo(
|
||||||
|
StateDeveloper.instance.currentDevID ?: "", imsg
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onConsoleMessage(consoleMessage)
|
return super.onConsoleMessage(consoleMessage)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
Logger.e(TAG, "Failed to handle onConsoleMessage", e)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -507,7 +516,13 @@ class PackageBrowser: V8Package {
|
|||||||
val res = parsed.result
|
val res = parsed.result
|
||||||
|
|
||||||
val cb = synchronized(_callbacks) { _callbacks.remove(id) } ?: return true
|
val cb = synchronized(_callbacks) { _callbacks.remove(id) } ?: return true
|
||||||
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { cb.invoke(res) }
|
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
|
||||||
|
try {
|
||||||
|
cb.invoke(res)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
Logger.e(TAG, "Failed to invoke callback asynchronously", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
"log" -> {
|
"log" -> {
|
||||||
@@ -524,6 +539,7 @@ class PackageBrowser: V8Package {
|
|||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
private const val CONSOLE_BRIDGE_PREFIX = "__GJ__:"
|
private const val CONSOLE_BRIDGE_PREFIX = "__GJ__:"
|
||||||
|
private const val TAG = "PackageBrowser"
|
||||||
|
|
||||||
private fun String.quoteForJs(): String {
|
private fun String.quoteForJs(): String {
|
||||||
val s = this
|
val s = this
|
||||||
|
|||||||
Reference in New Issue
Block a user