unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





  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).