From 50ec1c3985bfc8e4d80a02810f71e1577d4890a0 Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Sat, 19 Jul 2025 20:24:32 -0700 Subject: [PATCH] Make sure we always set the ':readable' state when displaying EWW page * lisp/net/eww.el (eww-display-html): Always set ':readable'. * test/lisp/net/eww-tests.el (eww-test/readable/reload-resets-readable): New test. (cherry picked from commit 49696b5cd178431b1975a1adef955a348c8b25b0) --- lisp/net/eww.el | 10 ++++++---- test/lisp/net/eww-tests.el | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lisp/net/eww.el b/lisp/net/eww.el index f946b440641..5c1c803e6c9 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -835,12 +835,14 @@ This replaces the region with the preprocessed HTML." (with-current-buffer buffer (plist-put eww-data :source source))) (unless document - (let ((dom (eww--parse-html-region (point) (point-max) charset))) + (let ((dom (eww--parse-html-region (point) (point-max) charset)) + readable) (when-let* (((eww-default-readable-p url)) (readable-dom (eww-readable-dom dom))) - (setq dom readable-dom) - (with-current-buffer buffer - (plist-put eww-data :readable t))) + (setq dom readable-dom + readable t)) + (with-current-buffer buffer + (plist-put eww-data :readable readable)) (setq document (eww-document-base url dom)))) (eww-display-document document point buffer)) diff --git a/test/lisp/net/eww-tests.el b/test/lisp/net/eww-tests.el index fdb82ac628b..82682eae88c 100644 --- a/test/lisp/net/eww-tests.el +++ b/test/lisp/net/eww-tests.el @@ -273,5 +273,22 @@ This sets `eww-before-browse-history-function' to ;; Make sure EWW doesn't use "readable" mode here. (should-not (plist-get eww-data :readable))))) +(ert-deftest eww-test/readable/reload-resets-readable () + "Test that reloading a page resets the \"readable\" state." + (skip-unless (libxml-available-p)) + (eww-test--with-mock-retrieve + (let* ((shr-width most-positive-fixnum) + (shr-use-fonts nil) + (eww-test--response-function + (lambda (_url) + (concat "Content-Type: text/html\n\n" + eww-test--wordy-page)))) + (eww "example.invalid") + (eww-readable 'toggle) + (should (plist-get eww-data :readable)) + ;; Reload the page, and check if the result uses readable view. + (eww-reload) + (should-not (plist-get eww-data :readable))))) + (provide 'eww-tests) ;; eww-tests.el ends here -- 2.39.5