diff --git a/src/core/config/drive.js b/src/core/config/drive.js index e5710d589..25492f927 100644 --- a/src/core/config/drive.js +++ b/src/core/config/drive.js @@ -1,6 +1,7 @@ export const drive = { enabled: true, progressBarDelay: 500, + prefetchDelay: 100, unvisitableExtensions: new Set( [ ".7z", ".aac", ".apk", ".avi", ".bmp", ".bz2", ".css", ".csv", ".deb", ".dmg", ".doc", diff --git a/src/core/drive/prefetch_cache.js b/src/core/drive/prefetch_cache.js index cb29aa238..b3e4aff75 100644 --- a/src/core/drive/prefetch_cache.js +++ b/src/core/drive/prefetch_cache.js @@ -1,15 +1,17 @@ import { LRUCache } from "../lru_cache" import { toCacheKey } from "../url" - -const PREFETCH_DELAY = 100 +import { config } from "../config" class PrefetchCache extends LRUCache { #prefetchTimeout = null #maxAges = {} - constructor(size = 1, prefetchDelay = PREFETCH_DELAY) { + constructor(size = 1) { super(size, toCacheKey) - this.prefetchDelay = prefetchDelay + } + + get prefetchDelay() { + return config.drive.prefetchDelay } putLater(url, request, ttl) { diff --git a/src/tests/unit/export_tests.js b/src/tests/unit/export_tests.js index cb5fcb2ac..88e1f5539 100644 --- a/src/tests/unit/export_tests.js +++ b/src/tests/unit/export_tests.js @@ -44,6 +44,19 @@ test("Session interface", () => { assert.equal("off", config.forms.mode) }) +test("config.drive.prefetchDelay is configurable", () => { + const { config } = Turbo + + assert.equal(100, config.drive.prefetchDelay) + + config.drive.prefetchDelay = 200 + + assert.equal(200, config.drive.prefetchDelay) + + // Reset to default + config.drive.prefetchDelay = 100 +}) + test("StreamActions interface", () => { assert.equal(typeof StreamActions, "object") })