From 23963353eaf26977e02762bd37caa37d4c61348f Mon Sep 17 00:00:00 2001 From: NathanFallet Date: Fri, 30 Jan 2026 19:15:07 +0100 Subject: [PATCH] feat: configurable debug string limit --- README.md | 2 +- build.gradle.kts | 2 +- .../commonMain/kotlin/dev/kdriver/core/browser/Config.kt | 2 ++ .../kotlin/dev/kdriver/core/browser/ConfigBuilder.kt | 2 ++ .../kotlin/dev/kdriver/core/connection/DefaultConnection.kt | 6 +++--- docs/home/quickstart.md | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b7641d8d5..6b735bf75 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ To use kdriver, add the following to your `build.gradle.kts`: ```kotlin dependencies { - implementation("dev.kdriver:core:0.5.4") + implementation("dev.kdriver:core:0.5.5") } ``` diff --git a/build.gradle.kts b/build.gradle.kts index 24943f469..eab6e9aae 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ plugins { allprojects { group = "dev.kdriver" - version = "0.5.4" + version = "0.5.5" project.ext.set("url", "https://github.com/cdpdriver/kdriver") project.ext.set("license.name", "Apache 2.0") project.ext.set("license.url", "https://www.apache.org/licenses/LICENSE-2.0.txt") diff --git a/core/src/commonMain/kotlin/dev/kdriver/core/browser/Config.kt b/core/src/commonMain/kotlin/dev/kdriver/core/browser/Config.kt index c994d59dd..bf607e29e 100644 --- a/core/src/commonMain/kotlin/dev/kdriver/core/browser/Config.kt +++ b/core/src/commonMain/kotlin/dev/kdriver/core/browser/Config.kt @@ -18,6 +18,7 @@ class Config( val browserConnectionTimeout: Long = Defaults.BROWSER_CONNECTION_TIMEOUT, val browserConnectionMaxTries: Int = Defaults.BROWSER_CONNECTION_MAX_TRIES, val autoDiscoverTargets: Boolean = Defaults.AUTO_DISCOVER_TARGETS, + val debugStringLimit: Int = Defaults.DEBUG_STRING_LIMIT, ) { private val logger = KtorSimpleLogger("Config") @@ -118,6 +119,7 @@ class Config( const val BROWSER_CONNECTION_TIMEOUT: Long = 500 const val BROWSER_CONNECTION_MAX_TRIES: Int = 60 const val AUTO_DISCOVER_TARGETS: Boolean = true + const val DEBUG_STRING_LIMIT: Int = 128 } } diff --git a/core/src/commonMain/kotlin/dev/kdriver/core/browser/ConfigBuilder.kt b/core/src/commonMain/kotlin/dev/kdriver/core/browser/ConfigBuilder.kt index 7ff3c5d72..0d66bc5b3 100644 --- a/core/src/commonMain/kotlin/dev/kdriver/core/browser/ConfigBuilder.kt +++ b/core/src/commonMain/kotlin/dev/kdriver/core/browser/ConfigBuilder.kt @@ -30,6 +30,7 @@ class ConfigBuilder { var browserConnectionTimeout: Long = Defaults.BROWSER_CONNECTION_TIMEOUT var browserConnectionMaxTries: Int = Defaults.BROWSER_CONNECTION_MAX_TRIES var autoDiscoverTargets: Boolean = Defaults.AUTO_DISCOVER_TARGETS + var debugStringLimit: Int = Defaults.DEBUG_STRING_LIMIT /** * Builds the Config instance with the configured parameters. @@ -49,6 +50,7 @@ class ConfigBuilder { browserConnectionTimeout = browserConnectionTimeout, browserConnectionMaxTries = browserConnectionMaxTries, autoDiscoverTargets = autoDiscoverTargets, + debugStringLimit = debugStringLimit ) } } diff --git a/core/src/commonMain/kotlin/dev/kdriver/core/connection/DefaultConnection.kt b/core/src/commonMain/kotlin/dev/kdriver/core/connection/DefaultConnection.kt index 18e152be1..70f88ee5d 100644 --- a/core/src/commonMain/kotlin/dev/kdriver/core/connection/DefaultConnection.kt +++ b/core/src/commonMain/kotlin/dev/kdriver/core/connection/DefaultConnection.kt @@ -3,6 +3,7 @@ package dev.kdriver.core.connection import dev.kdriver.cdp.* import dev.kdriver.cdp.domain.* import dev.kdriver.core.browser.Browser +import dev.kdriver.core.browser.Config.Defaults import dev.kdriver.core.browser.WebSocketInfo import io.ktor.client.* import io.ktor.client.plugins.websocket.* @@ -33,7 +34,6 @@ open class DefaultConnection( ) : OwnedConnection { private val logger = KtorSimpleLogger("Connection") - private val debugStringLimit = 64 private val client = HttpClient(getWebSocketClientEngine()) { install(WebSockets) @@ -82,7 +82,7 @@ open class DefaultConnection( try { frame as? Frame.Text ?: continue val text = frame.readText() - logger.debug("WS < CDP: ${text.take(debugStringLimit)}") + logger.debug("WS < CDP: ${text.take(owner?.config?.debugStringLimit ?: Defaults.DEBUG_STRING_LIMIT)}") val received = Serialization.json.decodeFromString(text) allMessages.emit(received) } catch (e: Exception) { @@ -108,7 +108,7 @@ open class DefaultConnection( val requestId = currentIdMutex.withLock { currentId++ } val jsonString = Serialization.json.encodeToString(Request(requestId, method, parameter)) wsSession?.send(jsonString) - logger.debug("WS > CDP: ${jsonString.take(debugStringLimit)}") + logger.debug("WS > CDP: ${jsonString.take(owner?.config?.debugStringLimit ?: Defaults.DEBUG_STRING_LIMIT)}") val result = responses.first { it.id == requestId } result.error?.throwAsException(method) diff --git a/docs/home/quickstart.md b/docs/home/quickstart.md index 0d0048dc6..fe26eea6d 100644 --- a/docs/home/quickstart.md +++ b/docs/home/quickstart.md @@ -12,7 +12,7 @@ To install, add the dependency to your `build.gradle.kts`: ```kotlin dependencies { - implementation("dev.kdriver:core:0.5.4") + implementation("dev.kdriver:core:0.5.5") } ```