diff options
author | bptato <nincsnevem662@gmail.com> | 2024-12-26 17:52:10 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-12-26 17:52:10 +0100 |
commit | 4a98e7940971dc7d8ff36907ee37f0aad6d7cb38 (patch) | |
tree | 7426e21e297c0d3e10d6a5917a5c5848f412ffab /src | |
parent | faf3ab0b3079a56d8d929a769673f5f2263c8867 (diff) | |
download | chawan-4a98e7940971dc7d8ff36907ee37f0aad6d7cb38.tar.gz |
env: reflect user agent header in userAgent
Diffstat (limited to 'src')
-rw-r--r-- | src/html/dom.nim | 1 | ||||
-rw-r--r-- | src/html/env.nim | 10 | ||||
-rw-r--r-- | src/local/pager.nim | 1 | ||||
-rw-r--r-- | src/server/buffer.nim | 4 |
4 files changed, 10 insertions, 6 deletions
diff --git a/src/html/dom.nim b/src/html/dom.nim index 016da8c3..3f04c4be 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -108,6 +108,7 @@ type pendingCanvasCtls*: seq[CanvasRenderingContext2D] urandom*: PosixStream imageTypes*: Table[string, string] + userAgent*: string # Navigator stuff Navigator* = object diff --git a/src/html/env.nim b/src/html/env.nim index 311496af..f017c23f 100644 --- a/src/html/env.nim +++ b/src/html/env.nim @@ -37,9 +37,8 @@ proc appVersion(navigator: var Navigator): string {.jsfget.} = "5.0 (Windows)" proc platform(navigator: var Navigator): string {.jsfget.} = "Win32" proc product(navigator: var Navigator): string {.jsfget.} = "Gecko" proc productSub(navigator: var Navigator): string {.jsfget.} = "20100101" -proc userAgent(navigator: var Navigator): string {.jsfget.} = - #TODO TODO TODO this should be configurable - "chawan" +proc userAgent(ctx: JSContext; navigator: var Navigator): string {.jsfget.} = + return ctx.getWindow().userAgent proc vendor(navigator: var Navigator): string {.jsfget.} = "" proc vendorSub(navigator: var Navigator): string {.jsfget.} = "" proc taintEnabled(navigator: var Navigator): bool {.jsfget.} = false @@ -334,7 +333,7 @@ proc runJSJobs*(window: Window) = proc newWindow*(scripting, images, styling: bool; attrs: WindowAttributes; factory: CAtomFactory; loader: FileLoader; url: URL; urandom: PosixStream; - imageTypes: Table[string, string]): Window = + imageTypes: Table[string, string]; userAgent: string): Window = let err = newDynFileStream(stderr) let window = Window( attrs: attrs, @@ -349,7 +348,8 @@ proc newWindow*(scripting, images, styling: bool; attrs: WindowAttributes; ), factory: factory, urandom: urandom, - imageTypes: imageTypes + imageTypes: imageTypes, + userAgent: userAgent ) window.location = window.newLocation() if scripting: diff --git a/src/local/pager.nim b/src/local/pager.nim index 06534bc5..b563ccfc 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -1880,6 +1880,7 @@ proc applySiteconf(pager: Pager; url: URL; charsetOverride: Charset; .add(pager.config.external.urimethodmap.imageProtos) if res.images: res.imageTypes = pager.config.external.mime_types.image + res.userAgent = loaderConfig.defaultHeaders.getOrDefault("User-Agent") return res # Load request in a new buffer. diff --git a/src/server/buffer.nim b/src/server/buffer.nim index 474c1bd3..804f5d5c 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -136,6 +136,7 @@ type charsets*: seq[Charset] protocol*: Table[string, ProtocolConfig] imageTypes*: Table[string, string] + userAgent*: string GetValueProc = proc(iface: BufferInterface; promise: EmptyPromise) {.nimcall.} @@ -1942,7 +1943,8 @@ proc launchBuffer*(config: BufferConfig; url: URL; attrs: WindowAttributes; loader, url, urandom, - config.imageTypes + config.imageTypes, + config.userAgent ) ) if buffer.config.scripting: |