diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-25 09:08:49 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-25 09:08:49 -0400 |
| commit | 714c7e6303b5f958f60e1353bf5233d279656e2e (patch) | |
| tree | df00ac5ebca67ebfed79ce17b9ab637e36385ae0 | |
| parent | 0e5d3aa8e1b4104b4504c84463329e4fb06ea28b (diff) | |
| download | dotemacs-714c7e6303b5f958f60e1353bf5233d279656e2e.tar.gz dotemacs-714c7e6303b5f958f60e1353bf5233d279656e2e.zip | |
fix(eww): inject the User-Agent reliably under byte-compilation
eww-config.el is lexical-binding and the User-Agent advice let-binds url.el's url-request-extra-headers, but the file never declared it special. The byte-compiler then bound it lexically, so the injected header never reached url-retrieve and the desktop User-Agent silently dropped in compiled production (eww kept working, just with the default UA). A top-level (defvar url-request-extra-headers) makes the compiler treat it as dynamic so the binding propagates. The advice tests, which exercise the compiled path, now pass.
| -rw-r--r-- | modules/eww-config.el | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/eww-config.el b/modules/eww-config.el index a5271f6bc..ff7ddc211 100644 --- a/modules/eww-config.el +++ b/modules/eww-config.el @@ -44,6 +44,13 @@ :type 'string :group 'my-eww-user-agent) +;; This file is lexical-binding, so `let'-binding url.el's special var below +;; needs it declared special at compile time. Without this the byte-compiled +;; advice binds `url-request-extra-headers' lexically and the injected +;; User-Agent never reaches `url-retrieve' (it reads the dynamic value) -- the +;; UA injection silently no-ops in compiled production, and the test sees nil. +(defvar url-request-extra-headers) + (defun my-eww--inject-user-agent (orig-fun &rest args) "Set a User-Agent only when making requests from an EWW buffer." (if (derived-mode-p 'eww-mode) |
