From: Eli Zaretskii <eliz@gnu.org>
To: Jim Porter <jporterbugs@gmail.com>
Cc: 69232@debbugs.gnu.org, jimjoe@gmx.net
Subject: bug#69232: 30.0.50; [PATCH] EWW history navigation gets caught in a loop
Date: Fri, 01 Mar 2024 09:26:41 +0200 [thread overview]
Message-ID: <86wmqmquoe.fsf@gnu.org> (raw)
In-Reply-To: <99e36690-ffbe-f373-50d2-32c92717a560@gmail.com> (message from Jim Porter on Thu, 29 Feb 2024 18:10:19 -0800)
> Date: Thu, 29 Feb 2024 18:10:19 -0800
> From: Jim Porter <jporterbugs@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 69232@debbugs.gnu.org
>
> On 2/29/2024 5:00 PM, Jim Porter wrote:
> > I already found one issue with reloading messing up history, but that
> > was an easy fix. Once I finish up the other parts of my v3 patch, I'll
> > post it here.
>
> I've only lightly tested this so far, but this version adds an
> 'eww-before-browse-function' option which lets you customize how EWW
> manipulates history before browsing to a new page. I've added functions
> for the default behavior ('eww-clear-future-history'), and for cloning
> all the "parent" entries ('eww-clone-previous-history')[1]. You can also
> set it to 'ignore', which will just preserve the old entries and add the
> new page to the end (which is the behavior v1 of my patch had).
>
> I've also added more regression tests to make sure this all works as
> expected.
>
> How does this look?
Thanks. I have a usability comment below.
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -1004,6 +1004,18 @@ When invoked with the prefix argument ('C-u'),
> This is useful for continuing reading the URL in the current buffer
> when the new URL is fetched.
>
> +---
> +*** History navigation in EWW now works like other browsers.
> +Previously, when navigating back and forward through page history, EWW
> +would add a duplicate entry to the end of the history list each time.
> +This made it impossible to navigate to the "end" of the history list.
> +Now, navigating through history in EWW simply changes your position in
> +the history list, allowing you to reach the end as expected. In
> +addition, when navigating to a new page from a historical one, EWW
"historical" here should be in quotes (and perhaps explained in
parentheses), otherwise people might misinterpret or fail to
understand what it alludes to.
> +(defcustom eww-before-browse-function #'eww-clear-future-history
> + "A function to call before browsing to a new page.
> +By default, this removes any entries in the history that come after the
> +current page (see `eww-clear-future-history')."
The doc string should describe the known possible values of the
option.
Now for the usability issue: It's okay to have this is a variable (to
allow future extensions, which might be unrelated to history), but
having a function for user option, and one that is more general than
being about history traversal, is not the best ides: it makes
customization harder for users who are not Lisp programmers.
Therefore, I suggest a history-specific defcustom, whose possible
values could be 'clear', 'clone', and 'add', and whose effect will be
to call the corresponding function via eww-before-browse-function.
The defcustom could also have a user-defined function value to allow
additional functions, of course.
next prev parent reply other threads:[~2024-03-01 7:26 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-18 4:59 bug#69232: 30.0.50; [PATCH] EWW history navigation gets caught in a loop Jim Porter
2024-02-19 12:12 ` Eli Zaretskii
2024-02-19 18:55 ` Jim Porter
2024-02-19 19:17 ` Eli Zaretskii
2024-02-22 13:22 ` Eli Zaretskii
2024-02-22 17:18 ` Jim Porter
2024-02-22 19:04 ` Eli Zaretskii
2024-02-22 20:10 ` Jim Porter
2024-02-22 20:13 ` Eli Zaretskii
2024-02-24 14:15 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-24 14:20 ` Eli Zaretskii
2024-02-24 22:29 ` Jim Porter
2024-02-25 0:50 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-24 22:34 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-25 5:57 ` Eli Zaretskii
2024-02-25 19:40 ` Jim Porter
2024-02-25 19:49 ` Eli Zaretskii
2024-02-25 22:41 ` Jim Porter
2024-02-28 23:39 ` Jim Porter
2024-02-29 7:03 ` Eli Zaretskii
2024-02-29 17:32 ` Jim Porter
2024-02-29 23:30 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-01 1:00 ` Jim Porter
2024-03-01 2:10 ` Jim Porter
2024-03-01 7:26 ` Eli Zaretskii [this message]
2024-03-01 20:13 ` Jim Porter
2024-03-02 7:38 ` Eli Zaretskii
2024-03-07 0:26 ` Jim Porter
2024-03-01 8:50 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-01 11:56 ` James Thomas via Bug reports for GNU Emacs, the Swiss army knife of text editors
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86wmqmquoe.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=69232@debbugs.gnu.org \
--cc=jimjoe@gmx.net \
--cc=jporterbugs@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).