about summary refs log tree commit diff stats
path: root/src/server
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-06-29 12:32:17 +0200
committerbptato <nincsnevem662@gmail.com>2024-06-29 12:50:16 +0200
commit2e50aa23237da76802d2a61cb7426bf51c122d14 (patch)
tree9ed3f42f9ef3f6a6f97c4118bc5fbc90248f00ce /src/server
parente7786e39e38ddf5ec75b95cc19e1bee108cd37d2 (diff)
downloadchawan-2e50aa23237da76802d2a61cb7426bf51c122d14.tar.gz
dom, pager: cache images from network
With many limitations:

* slightly randomized expiry, so it's harder to fingerprint
* only images. so e.g. CSS is still left uncached
* it's per-buffer and non-persistent, so images are still redownloaded
  for every new page load

so it's more of an image sharing between placements than true caching.
Diffstat (limited to 'src/server')
-rw-r--r--src/server/buffer.nim3
-rw-r--r--src/server/forkserver.nim3
2 files changed, 2 insertions, 4 deletions
diff --git a/src/server/buffer.nim b/src/server/buffer.nim
index d84bc29c..af14634a 100644
--- a/src/server/buffer.nim
+++ b/src/server/buffer.nim
@@ -27,7 +27,6 @@ import html/enums
 import html/env
 import html/event
 import html/formdata as formdata_impl
-import img/bitmap
 import io/bufreader
 import io/bufstream
 import io/bufwriter
@@ -1699,7 +1698,7 @@ proc getLines*(buffer: Buffer; w: Slice[int]): GetLinesResult {.proxy.} =
   result.bgcolor = buffer.bgcolor
   if buffer.config.images:
     for image in buffer.images:
-      if image.y <= w.b and image.y + int(image.bmp.height) >= w.a:
+      if image.y <= w.b and image.y + image.height >= w.a:
         result.images.add(image)
 
 proc markURL*(buffer: Buffer; schemes: seq[string]) {.proxy.} =
diff --git a/src/server/forkserver.nim b/src/server/forkserver.nim
index de81bace..dfe3febb 100644
--- a/src/server/forkserver.nim
+++ b/src/server/forkserver.nim
@@ -4,6 +4,7 @@ import std/posix
 import std/selectors
 import std/tables
 
+import chagashi/charset
 import config/config
 import html/formdata
 import io/bufreader
@@ -22,8 +23,6 @@ import utils/proctitle
 import utils/sandbox
 import utils/strwidth
 
-import chagashi/charset
-
 type
   ForkCommand = enum
     fcForkBuffer, fcForkLoader, fcRemoveChild, fcLoadConfig