GNU bug report logs - #60703
Patches to xwidget code

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Andrew De Angelis <bobodeangelis@HIDDEN>; dated Tue, 10 Jan 2023 06:00:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 60703 <at> debbugs.gnu.org:


Received: (at 60703) by debbugs.gnu.org; 10 Jan 2023 09:59:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 10 04:59:24 2023
Received: from localhost ([127.0.0.1]:38839 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pFBPf-0003JN-Mh
	for submit <at> debbugs.gnu.org; Tue, 10 Jan 2023 04:59:24 -0500
Received: from sonic309-20.consmr.mail.ne1.yahoo.com ([66.163.184.146]:44256)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <luangruo@HIDDEN>) id 1pFBPd-0003J9-OO
 for 60703 <at> debbugs.gnu.org; Tue, 10 Jan 2023 04:59:22 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1673344755; bh=PRLftjj6F/84YZmTnfHrGyEtBP/NEf6vEovSy73rlxk=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To;
 b=a/69RhujdT7F+JGriXlfgZVmSkvwfS8DaP7srwkjVTxZe+Qu0XmuRjpF7NZLQWpj77s8wpDpSMCRrgytfc4RTGygr/d1HzuZL6vripnFWC+yvYPDe+6p1IHbi10888OBNVaHDwQaxOwYRkZnKJ/AKQka8fqbhFsu7wpDqw6cCpy0ruqoR4tjtOEvoPu/CQFV38C9irlVxxXOvWj1I+1f9uJ3P8Rbr9jl1HG4jd7/wn9ejZzzSse8ui8wM/EoF5MMWTUPbhLGuTYSSIw7nY7YaLPBhaSt08dd9mcDFSWJihK5gvvqt30Gkos2f9Vdmt93+H+wI3/p+J1lKLRuEx9e2g==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1673344755; bh=UfNt/VqT4DX/SkNi0p/Ix5KtPsdf9kvPT4Svfa22DqO=;
 h=X-Sonic-MF:From:To:Subject:Date:From:Subject;
 b=sc+T58JyDU0xHsVJRfVDmfim/b0LRpvDuUcIyjtNHP8YdqJ3cUJW2008XZ3EJWnkSCzASLQnXI7Rrel6GCTRyn7u0zN/g4LCRaGWlSavyPWJ805wIOlhrta8qljM8BLdr8CB8fhOwW7+DiXUbDrzeO7V/RMkOwMO+7X6indvKDyEFGf5MnYID13jHnkmwdkmr/V8Ksj3pib8NUdv+iGdbK4DMCdqzbdeG56M3MC6I/Ye0Y6jpJ6OnT6+Ah8VVWRz5BiDivBSCeW7FepoLUluR4X3Z4QHJkLgdR1IlOn+Rqw3rycKjq3rpIru62rgDJOkNuoIb31geASjxrsVWilWFA==
X-YMail-OSG: M.ZeYjUVM1nzNMkoVWcQaHp8UqoTydRI1WcLi8vETWATj7PkG8sbZsAI5YrjCi1
 087OAhx0tb31u3ky3RXNJtPiWahknCslZKqpj0SEhyMTLTduP11RLxkKZLsNdfOq5i.tslmTTn7F
 n3ya8vKvQfzdZoxmbPVC1eDcuOIlTudznqhOkyWvyHb65F0wsVsghfWvQZLmkknZXmDzpiCbsgs8
 e8zw.rJDA7DJ.1Ncs4qCDX03_.72tM9bNFg6Odf89DUa9N9fL0TwpD0.QRwEflrgORQeAL4zHNvH
 qqwV1tYbyess1MFGmhnX3FGic25CcGtLuxkNs81AFMTssPJSCp1ylinMgK4soW6hJdv3a8qx.07J
 h2Rg3uGLbc9clNeTxFusBeLLOAxEQM9h6pFAiJ1KYydrKv7r2vKUuySZrlJPEcvhyHoXza59vM_.
 2uzrxagx2tleJ22xg5dVSBh7aMgtRH.wqLdvn2Uo2oZuFG1AZ2IIsxc0AIjIBFlB4uAXBPL9t7Mp
 7bUM9F8UV_iVdaxxpZ5IqzS4OM05b.PHUJ8OXak5Y3QEnjmh9RV9xW1yaAdFXDV8.Oxgvp0snD9i
 n20hB5JrFyh.p9aNhhNTivTMchcEQvQwu8Zn7xGR8JpCOpm4eUEiyRSAepA6MOj.ybS2UOW_AnNx
 poPtFLhcBQHp4GoVqOEQxk0GJ0MFMatR7GQBGLtC2SDey_vw9JWYlDa84Lum_.7ovUtvP5774Wrz
 A1d3abF3Qn91Eh3c.M3A_speNq3YdKkx7l8h1Rm_nJL.KXH.b25Okl5h6FYCIQupcEij3RvB7Azp
 f6vnhb3Ylvn2RzGzR3ZIUBPftAoQckNQ1FoYYOUYOmb9jpmg94EtvMD2v9WZBtuaNM91brwe015l
 xPmfiV6qpPeO0OYuf_cHkucGcPybW.asDZOY_Rw1_TFAn.P8H_4Yg1_LHZ9cirxZkZdn811y_Erx
 eYsYiIwVAMu31F7GJ0pr2onV1FRzjxQWuXUiZVD_rgvIsPRCVLauF74fWZRvMDkuCMmj0NU9o6PV
 DLa7nU4GSIqMbDibHAVOTocXf5poZT1M09CsPu.v1K7Wsfoc_cN.AY7A15IMUUZu2FBYCMRkngDJ
 bHdBlgNTNcImYZzXUOiNdbqsHnNwl6PYNW2fEv6EgSFCm45Fye039O17usoPSx_c.op_CN0pDqbG
 iGomNIjXUdK0j_.QlL2XwAFCY.xfLmSrSZebEOZqtgTx6v_6crF56n7R_exqxE_HRpkPd_VQFU7e
 APLHxs4E_MgNYiLCp5TFRlcch5tRPBalagxNW1ADopw8NXUAXvG490Oea.0XzIdzGG7Mn2PBT8MD
 ZT4ACOagcUpAhBGaL_0_uAXR29lw4c5GZPldv4ENHB6SOnVSOIRE.nO8JeCCI1_CuqJoQSQISKY6
 4_7GMv72JLX0mvcGio.IVrsDiCKWFG0FcwDVRPfF59IR8oA.P9BFqMh2nSfvTttaluIlESRRR1hm
 VeQb05UEvH3cjduDcXuLG69piDFVlQ15CNHEA7t2.EJMFdMj.BbVSUbSniTKxgOnOiC0XHbH_Et2
 K1bUT3KxFmZ0ui080weQvLmqNtYKNS1LElUAHrpOWFUeZ8z_vdaTchDt8ATr1kyipbs1Vf8BWs5.
 SQbDIQtHuLMxYkWF9VSOp2oRiXqeA2Wvkxv65UKWvpUEhZWbsST9hcsyK2uCggB1.pyXJYzTIZZ3
 jXOQxYY7IidFaSF3C8UTN.LVu.PF4_UhGOmROdtgvO0gyiR1QEOwmchSHz2iTiOko4D.1Enb70ls
 dS1lUJ11ugvJXDoRKfkHf1JGf3X5I4zRugZvL6vpa9ncQqkPotQyZdkshrTGCk68pbUflB17QlAu
 opfqr2_7T3_TLh292bFCDtZLX_tlX5pwV.X6auauQJuOUYYYvXfq0ktXE1Zvmh9n62vQlR7V4HNU
 b0ATR2bO7XqcyYDhW94gZeieJeWqYj6APg0uqnpJD4r_qKn68IJFfrbwntXbvbIxrzp_.UGQV.bD
 pQXb.Nlp8ojQqYx83cxQYGXT7.KCCBnjOWKSn2jkBUexvDsu2zOz7Vrx3QNLhnt3qJlcoNLN.PoO
 g1Dg6iYeucVEWACug00t7AuuuF6iHlmjWbJEKNDkIEe7h4.77Ucp3seO23PndmI4pn34vyy5OAsx
 Pf8amMFfDSKBOQQrg.pzgRxXl3WamcKQlqBWAkBfXoQD0awmQpbQqT0AXAOruircMHZ.cRbURG3b
 Mztmst8laQwt5QlELbTVDFmTocyPQJMX5V.gpmtyrH4a42Tb6sUN6qqYg2EVjjebobQ--
X-Sonic-MF: <luangruo@HIDDEN>
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic309.consmr.mail.ne1.yahoo.com with HTTP; Tue, 10 Jan 2023 09:59:15 +0000
Received: by hermes--production-sg3-b666c6484-8hzhs (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID d7f89d54bca6c9864e8d5dbf1c477e56; 
 Tue, 10 Jan 2023 09:59:10 +0000 (UTC)
From: Po Lu <luangruo@HIDDEN>
To: Andrew De Angelis <bobodeangelis@HIDDEN>
Subject: Re: bug#60703: Patches to xwidget code
In-Reply-To: <CAP5CrM0F=21CRKV=GovsPd_y-o-j7KdchjPeeN_okqzUVz+PgA@HIDDEN>
 (Andrew De Angelis's message of "Tue, 10 Jan 2023 00:14:28 -0500")
References: <CAP5CrM0F=21CRKV=GovsPd_y-o-j7KdchjPeeN_okqzUVz+PgA@HIDDEN>
Date: Tue, 10 Jan 2023 17:59:04 +0800
Message-ID: <87cz7mhfrr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Mailer: WebService/1.1.20982
 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
Content-Length: 12153
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 60703
Cc: 60703 <at> debbugs.gnu.org, emacs-devel@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Andrew De Angelis <bobodeangelis@HIDDEN> writes:

> Hello everyone and thanks for all your work!
>
> I have some fixes to the xwidget code that I'd like to contribute.
>
> These should achieve three things 1) fix `xwidget-webkit-current-url'
> in xwidget.el so that it actually displays the current URL 2) fix the
> Objective-C code in nsxwidget.m to eliminate memory leaks 3) implement
> the function `xwidget-webkit-estimated-load-progress' in Objective-C,
> making this functionality available for macOS as well
>
> Regarding 2), I have tested my changes with the Instruments app within
> the XCode dev tools. I was able to test them on two different
> machines: a MacBook Air M2 running macOS Ventura 13, and an Intel
> processor running macOS Big Sur 11.6.7.  When testing with
> Instruments, it appears that Emacs isn't leaking memory anymore. I am
> still seeing some leaks, but according to Instruments, the responsible
> libraries are system libraries, and not Emacs itself.  If possible, I
> would appreciate it if other people can test/profile these changes as
> well, and share their feedback.
>
> Assuming the changes are correct and accepted, would it be possible to
> include them in the upcoming Emacs 29.1 release?  Technically, none of
> these are new features; it's just fixes to existing features.
>
> I intend to keep working on xwidget support for macOS (fixing
> remaining issues and implementing missing functionalities), but I'm
> not sure when I'll be able to get to it; for now I'd like to start by
> contributing these first major fixes.
>
> Thanks in advance for your feedback; let me know if you need anything
> else from me.

Andrew, thanks for working on Emacs.

>
> diff --git a/lisp/xwidget.el b/lisp/xwidget.el
> index abbda29081..8095fa9db5 100644
> --- a/lisp/xwidget.el
> +++ b/lisp/xwidget.el
> @@ -924,8 +924,9 @@ xwidget-webkit-reload
>  (defun xwidget-webkit-current-url ()
>    "Display the current xwidget webkit URL and place it on the `kill-ring'."
>    (interactive nil xwidget-webkit-mode)
> -  (let ((url (xwidget-webkit-uri (xwidget-webkit-current-session))))
> -    (message "URL: %s" (kill-new (or url "")))))
> +  (let ((url (or (xwidget-webkit-uri (xwidget-webkit-current-session)) "")))
> +    (kill-new url)
> +    (message "URL: %s" url)))
>  
>  (defun xwidget-webkit-browse-history ()
>    "Display a buffer containing the history of page loads."

This change is fine for Emacs 29.1.  Eli, WDYT?

>  @implementation XwWebView : WKWebView
>  
> +- (void)dealloc
> +{
> +  [super dealloc];
> +}

Thanks.  Please put a space between the part of the Objective-C method
that looks like a cast (I don't know what it's called, sorry) and the
name of the method.

But, is this really necessary?  Without this being defined, the runtime
will just call the super method, correct?

>  - (id)initWithFrame:(CGRect)frame
>        configuration:(WKWebViewConfiguration *)configuration
>              xwidget:(struct xwidget *)xw
>  {
>    /* Script controller to add script message handler and user script.  */
> -  WKUserContentController *scriptor = [[WKUserContentController alloc] init];
> +  WKUserContentController *scriptor = [[[WKUserContentController alloc] init]
> +                                        autorelease];
>    configuration.userContentController = scriptor;
>  
>    /* Enable inspect element context menu item for debugging.  */
> @@ -81,7 +87,8 @@ - (id)initWithFrame:(CGRect)frame
>    if (self)
>      {
>        self.xw = xw;
> -      self.urlScriptBlocked = [[NSMutableDictionary alloc] init];
> +      self.urlScriptBlocked = [[[NSMutableDictionary alloc] init]
> +                                autorelease];
>        self.navigationDelegate = self;
>        self.UIDelegate = self;
>        self.customUserAgent =
> @@ -89,11 +96,13 @@ - (id)initWithFrame:(CGRect)frame
>          @" AppleWebKit/603.3.8 (KHTML, like Gecko)"
>          @" Version/11.0.1 Safari/603.3.8";
>        [scriptor addScriptMessageHandler:self name:@"keyDown"];
> -      [scriptor addUserScript:[[WKUserScript alloc]
> -                                initWithSource:xwScript
> -                                 injectionTime:
> -                                  WKUserScriptInjectionTimeAtDocumentStart
> -                                forMainFrameOnly:NO]];
> +      WKUserScript *userScript = [[[WKUserScript alloc]
> +                                    initWithSource:xwScript
> +                                     injectionTime:
> +                                      WKUserScriptInjectionTimeAtDocumentStart
> +                                    forMainFrameOnly:NO]
> +                                   autorelease];
> +      [scriptor addUserScript:userScript];
>      }
>    return self;
>  }
> @@ -102,7 +111,27 @@ - (void)webView:(WKWebView *)webView
>  didFinishNavigation:(WKNavigation *)navigation
>  {
>    if (EQ (Fbuffer_live_p (self.xw->buffer), Qt))
> -    store_xwidget_event_string (self.xw, "load-changed", "");
> +    store_xwidget_event_string (self.xw, "load-changed", "load-finished");
> +}
> +
> +- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation
> +{
> +  if (EQ (Fbuffer_live_p (self.xw->buffer), Qt))
> +    store_xwidget_event_string (self.xw, "load-changed", "load-started");
> +}
> +
> +- (void)webView:(WKWebView *)webView
> +didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation
> +{
> +  if (EQ (Fbuffer_live_p (self.xw->buffer), Qt))
> +    store_xwidget_event_string (self.xw, "load-changed", "load-redirected");
> +}
> +
> +// Start loading WKWebView
> +- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
> +{
> +  if (EQ (Fbuffer_live_p (self.xw->buffer), Qt)) // what exactly is this test for
> +    store_xwidget_event_string (self.xw, "load-changed", "load-committed");
>  }

These are also fine for Emacs 29.  However, please replace the C++-style
comments with C style ones, add spaces after the cast-like parts in the
method definition, and fill everything to column 80.  I believe the test
is that the xwidget's buffer has not been killed, and could easily be
written:

  !NILP (Fbuffer_live_p (self.xw->buffer))

as well.

>  - (void)webView:(WKWebView *)webView
> @@ -343,6 +372,20 @@ - (void)userContentController:(WKUserContentController *)userContentController
>    }
>  }
>  
> +double
> +nsxwidget_webkit_estimated_load_progress(struct xwidget *xw)
> +{
> +  XwWebView *xwWebView = (XwWebView *) xw->xwWidget;
> +  return xwWebView.estimatedProgress;
> +}

Please place a space between "nsxwidget_webkit_estimated_load_progress"
and the parameter list.

> +void
> +nsxwidget_webkit_stop_loading (struct xwidget *xw)
> +{
> +  XwWebView *xwWebView = (XwWebView *) xw->xwWidget;
> +  [xwWebView stopLoading];
> +}
> +
>  void
>  nsxwidget_webkit_zoom (struct xwidget *xw, double zoom_change)
>  {
> @@ -452,7 +495,8 @@ - (BOOL)isFlipped { return YES; }
>    NSRect rect = NSMakeRect (0, 0, xw->width, xw->height);
>    xw->xwWidget = [[XwWebView alloc]
>                     initWithFrame:rect
> -                   configuration:[[WKWebViewConfiguration alloc] init]
> +                   configuration:[[[WKWebViewConfiguration alloc] init]
> +                                   autorelease]
>                           xwidget:xw];
>    xw->xwWindow = [[XwWindow alloc]
>                     initWithFrame:rect];
> @@ -470,16 +514,18 @@ - (BOOL)isFlipped { return YES; }
>          ((XwWebView *) xw->xwWidget).configuration.userContentController;
>        [scriptor removeAllUserScripts];
>        [scriptor removeScriptMessageHandlerForName:@"keyDown"];
> -      [scriptor release];
> +
>        if (xw->xv)
>          xw->xv->model = Qnil; /* Make sure related view stale.  */
>  
>        /* This stops playing audio when a xwidget-webkit buffer is
> -         killed.  I could not find other solution.  */
> +         killed.  I could not find other solution.
> +         TODO: improve this */
>        nsxwidget_webkit_goto_uri (xw, "about:blank");
>  
>        [((XwWebView *) xw->xwWidget).urlScriptBlocked release];
>        [xw->xwWidget removeFromSuperviewWithoutNeedingDisplay];
> +
>        [xw->xwWidget release];
>        [xw->xwWindow removeFromSuperviewWithoutNeedingDisplay];
>        [xw->xwWindow release];

These changes are also fine for Emacs 29, but the TODO seems excessive.
Eli, any comments here?

> diff --git a/src/xwidget.c b/src/xwidget.c
> index efe2705562..b9550da460 100644
> --- a/src/xwidget.c
> +++ b/src/xwidget.c
> @@ -54,6 +54,7 @@ Copyright (C) 2011-2023 Free Software Foundation, Inc.
>  
>  #include <math.h>
>  
> +

Please undo this extraneous whitespace change.

>  
> +DEFUN ("xwidget-webkit-estimated-load-progress",
> +       Fxwidget_webkit_estimated_load_progress, Sxwidget_webkit_estimated_load_progress,
> +       1, 1, 0, doc: /* Get the estimated load progress of XWIDGET, a WebKit widget.
> +Return a value ranging from 0.0 to 1.0, based on how close XWIDGET
> +is to completely loading its page.  */)
> +  (Lisp_Object xwidget)
> +{
> +  struct xwidget *xw;
> +#ifdef USE_GTK
> +  WebKitWebView *webview;
> +#endif
> +  double value;
> +
> +  CHECK_LIVE_XWIDGET (xwidget);
> +  xw = XXWIDGET (xwidget);
> +  CHECK_WEBKIT_WIDGET (xw);
> +
> +  block_input ();
> +#ifdef USE_GTK
> +  webview = WEBKIT_WEB_VIEW (xw->widget_osr);
> +  value = webkit_web_view_get_estimated_load_progress (webview);
> +#elif defined NS_IMPL_COCOA
> +  value = nsxwidget_webkit_estimated_load_progress (xw);
> +#endif
> +
> +  unblock_input ();
> +
> +  return make_float (value);
> +}
> +
>  DEFUN ("xwidget-webkit-goto-uri",
>         Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri,
>         2, 2, 0,
> @@ -3810,28 +3841,6 @@ DEFUN ("xwidget-webkit-back-forward-list", Fxwidget_webkit_back_forward_list,
>    return list3 (back, here, forward);
>  }
>  
> -DEFUN ("xwidget-webkit-estimated-load-progress",
> -       Fxwidget_webkit_estimated_load_progress, Sxwidget_webkit_estimated_load_progress,
> -       1, 1, 0, doc: /* Get the estimated load progress of XWIDGET, a WebKit widget.
> -Return a value ranging from 0.0 to 1.0, based on how close XWIDGET
> -is to completely loading its page.  */)
> -  (Lisp_Object xwidget)
> -{
> -  struct xwidget *xw;
> -  WebKitWebView *webview;
> -  double value;
> -
> -  CHECK_LIVE_XWIDGET (xwidget);
> -  xw = XXWIDGET (xwidget);
> -  CHECK_WEBKIT_WIDGET (xw);
> -
> -  block_input ();
> -  webview = WEBKIT_WEB_VIEW (xw->widget_osr);
> -  value = webkit_web_view_get_estimated_load_progress (webview);
> -  unblock_input ();
> -
> -  return make_float (value);
> -}
>  #endif
>  
>  DEFUN ("xwidget-webkit-set-cookie-storage-file",
> @@ -3874,19 +3883,23 @@ DEFUN ("xwidget-webkit-stop-loading", Fxwidget_webkit_stop_loading,
>  XWIDGET as part of loading a page.  */)
>    (Lisp_Object xwidget)
>  {
> -#ifdef USE_GTK
>    struct xwidget *xw;
> +#ifdef USE_GTK
>    WebKitWebView *webview;
> +#endif
>  
>    CHECK_LIVE_XWIDGET (xwidget);
>    xw = XXWIDGET (xwidget);
>    CHECK_WEBKIT_WIDGET (xw);
>  
>    block_input ();
> +#ifdef USE_GTK
>    webview = WEBKIT_WEB_VIEW (xw->widget_osr);
>    webkit_web_view_stop_loading (webview);
> -  unblock_input ();
> +#elif defined NS_IMPL_COCOA
> +  nsxwidget_webkit_stop_loading (xw);
>  #endif
> +  unblock_input ();
>  
>    return Qnil;
>  }
> @@ -3936,8 +3949,9 @@ syms_of_xwidget (void)
>  #ifdef USE_GTK
>    defsubr (&Sxwidget_webkit_load_html);
>    defsubr (&Sxwidget_webkit_back_forward_list);
> -  defsubr (&Sxwidget_webkit_estimated_load_progress);
>  #endif
> +
> +  defsubr (&Sxwidget_webkit_estimated_load_progress);
>    defsubr (&Skill_xwidget);
>  
>    DEFSYM (QCxwidget, ":xwidget");

None of this seems to affect anything other than the NS build, so it's
fine by me.

All in all, all your changes are fine for Emacs 29 by me.  What they
need is a proper commit message.  See the node "Style of Change Logs" in
the GNU Coding Standards for examples of how to do this:

  https://www.gnu.org/prep/standards/standards.html#Style-of-Change-Logs

Thanks again for working on Emacs.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#60703; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 10 Jan 2023 05:59:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 10 00:59:22 2023
Received: from localhost ([127.0.0.1]:38525 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pF7fN-0000gj-H1
	for submit <at> debbugs.gnu.org; Tue, 10 Jan 2023 00:59:22 -0500
Received: from lists.gnu.org ([209.51.188.17]:55530)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bobodeangelis@HIDDEN>) id 1pF6yB-000816-II
 for submit <at> debbugs.gnu.org; Tue, 10 Jan 2023 00:14:45 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bobodeangelis@HIDDEN>)
 id 1pF6yA-0000h9-VB; Tue, 10 Jan 2023 00:14:42 -0500
Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <bobodeangelis@HIDDEN>)
 id 1pF6y9-0001TN-ED; Tue, 10 Jan 2023 00:14:42 -0500
Received: by mail-vs1-xe34.google.com with SMTP id i188so11095115vsi.8;
 Mon, 09 Jan 2023 21:14:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=IsCFUsFhZ+LXwZIQMv1Qi3VT9+qP8SUf3Cm30uKUlpI=;
 b=hALx5oympoxzDfNwN10GqhmhUGJVusUwXbD7L6099xKfamOuWOoek5wV43my+qEbEo
 PQYY2sGAxXpfCnTxRt/05dOS/CwnDNz/q+BNEW+O/cGmegxMz1CUjmL7NLJNAFsCeQu6
 ahi2/nIWu7fqz0PxQcx+EnCfLSbZhUhzxJKptDhovBI0pzZMPuZqHtQ91mhYuzrqv5Wv
 7jCtkAfDeaUFoXbzX/B/DdO5WERqR/mhU4bKzo4ZIhvRQRK71vcvlFA4WpN7Rk+ygR0F
 IZcSqF4Ifs6OdIqQPlVCfu9ntncFwsWmy4zxqU9ef95hJ/EUhbkH6NnbrihHNeOoSaBI
 HytQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=IsCFUsFhZ+LXwZIQMv1Qi3VT9+qP8SUf3Cm30uKUlpI=;
 b=fsa+6AAGclL1WsqaB69MWtAeUkyD3iTFxrBXj1fG54lfuKdcDkPhFUrfauIB1ITWf9
 v+4AJOQ0PeK3gHy7wGOwaQEsZwqyoeEG1DU67pqPHeMgQCRhBXsy17AEESWfn7H3hF7f
 ptAwBed61vUdPtdLHa+vKS9l93B7EgOvZ3175tc3joM3XOgrSLkcQYVLoDn3qLBiQBEt
 Sjhwitqp/SNP+3J7pKWGFCmlBIqr6b0BSihF5JNAsLDkLBh1OPZEgnRdB0JwcECc88pz
 Dtx8k5v0Aix5FSgYFr3PpSJc94NYOP/j+iJtskH43/9OS5CN/WsAwHYNd687uSV7TPxH
 Z1rA==
X-Gm-Message-State: AFqh2kq2mjCR0cM4Chx+t8zhB6GNnJZ212YD/CPPArtdCMXVn8miXlm8
 owhZA19OOY3gF1Xv+++tYoyv0gwe4I1gKQUuR+hoKjIQu88=
X-Google-Smtp-Source: AMrXdXtcybgdzD6cgBlpi68C0eUDbl2bE3YS0zlsD/u2PPO99WsgWiezNs9TTuDlhYqfmumenXTBxCXTYRdcnI0/FDc=
X-Received: by 2002:a05:6102:374d:b0:3d0:af13:3b6 with SMTP id
 u13-20020a056102374d00b003d0af1303b6mr639055vst.65.1673327679366; Mon, 09 Jan
 2023 21:14:39 -0800 (PST)
MIME-Version: 1.0
From: Andrew De Angelis <bobodeangelis@HIDDEN>
Date: Tue, 10 Jan 2023 00:14:28 -0500
Message-ID: <CAP5CrM0F=21CRKV=GovsPd_y-o-j7KdchjPeeN_okqzUVz+PgA@HIDDEN>
Subject: Patches to xwidget code
To: emacs-devel@HIDDEN, bug-gnu-emacs@HIDDEN
Content-Type: multipart/mixed; boundary="000000000000ec3e0a05f1e1f516"
Received-SPF: pass client-ip=2607:f8b0:4864:20::e34;
 envelope-from=bobodeangelis@HIDDEN; helo=mail-vs1-xe34.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Tue, 10 Jan 2023 00:59:17 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--000000000000ec3e0a05f1e1f516
Content-Type: multipart/alternative; boundary="000000000000ec3e0705f1e1f514"

--000000000000ec3e0705f1e1f514
Content-Type: text/plain; charset="UTF-8"

Hello everyone and thanks for all your work!

I have some fixes to the xwidget code that I'd like to contribute.

These should achieve three things
1) fix `xwidget-webkit-current-url' in xwidget.el so that it actually
displays the current URL
2) fix the Objective-C code in nsxwidget.m to eliminate memory leaks
3) implement the function `xwidget-webkit-estimated-load-progress' in
Objective-C, making this functionality available for macOS as well

Regarding 2), I have tested my changes with the Instruments app within the
XCode dev tools. I was able to test them on two different machines: a
MacBook Air M2 running macOS Ventura 13, and an Intel processor running
macOS Big Sur 11.6.7.
When testing with Instruments, it appears that Emacs isn't leaking memory
anymore. I am still seeing some leaks, but according to Instruments, the
responsible libraries are system libraries, and not Emacs itself.
If possible, I would appreciate it if other people can test/profile these
changes as well, and share their feedback.

Assuming the changes are correct and accepted, would it be possible to
include them in the upcoming Emacs 29.1 release?
Technically, none of these are new features; it's just fixes to existing
features.

I intend to keep working on xwidget support for macOS (fixing remaining
issues and implementing missing functionalities), but I'm not sure when
I'll be able to get to it; for now I'd like to start by contributing these
first major fixes.

Thanks in advance for your feedback; let me know if you need anything else
from me.

Best,
Andrew

--000000000000ec3e0705f1e1f514
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello everyone and thanks for all your work!</div><di=
v><br></div><div>I have some fixes to the xwidget code that I&#39;d like to=
 contribute.</div><div><br></div><div>These should achieve three things<br>=
</div><div>1) fix `xwidget-webkit-current-url&#39; in xwidget.el so that it=
 actually displays the current URL</div><div>2) fix the Objective-C code in=
 nsxwidget.m to eliminate memory leaks</div><div>3) implement the function =
`xwidget-webkit-estimated-load-progress&#39; in Objective-C, making this fu=
nctionality available for macOS as well<br></div><div><br></div><div>Regard=
ing 2), I have tested my changes with the Instruments app within the XCode =
dev tools. I was able to test them on two different machines: a MacBook Air=
 M2 running macOS Ventura 13, and an Intel processor running macOS Big Sur =
11.6.7.</div><div>When testing with Instruments, it appears that Emacs isn&=
#39;t leaking memory anymore. I am still seeing some leaks, but according t=
o Instruments, the responsible libraries are system libraries, and not Emac=
s itself.</div><div>If possible, I would appreciate it if other people can =
test/profile these changes as well, and share their feedback.</div><div><br=
></div><div>Assuming the changes are correct and accepted, would it be poss=
ible to include them in the upcoming Emacs 29.1 release?</div><div>Technica=
lly, none of these are new features; it&#39;s just fixes to existing featur=
es.</div><div><br></div><div>I intend to keep working on xwidget support fo=
r macOS (fixing remaining issues and implementing missing functionalities),=
 but I&#39;m not sure when I&#39;ll be able to get to it; for now I&#39;d l=
ike to start by contributing these first major fixes.</div><div><br></div><=
div>Thanks in advance for your feedback; let me know if you need anything e=
lse from me.</div><div><br></div><div>Best,</div><div>Andrew<br></div></div=
>

--000000000000ec3e0705f1e1f514--

--000000000000ec3e0a05f1e1f516
Content-Type: application/octet-stream; name="xwidget-patches.patch"
Content-Disposition: attachment; filename="xwidget-patches.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lcpr78lc0>
X-Attachment-Id: f_lcpr78lc0

ZGlmZiAtLWdpdCBhL2xpc3AveHdpZGdldC5lbCBiL2xpc3AveHdpZGdldC5lbAppbmRleCBhYmJk
YTI5MDgxLi44MDk1ZmE5ZGI1IDEwMDY0NAotLS0gYS9saXNwL3h3aWRnZXQuZWwKKysrIGIvbGlz
cC94d2lkZ2V0LmVsCkBAIC05MjQsOCArOTI0LDkgQEAgeHdpZGdldC13ZWJraXQtcmVsb2FkCiAo
ZGVmdW4geHdpZGdldC13ZWJraXQtY3VycmVudC11cmwgKCkKICAgIkRpc3BsYXkgdGhlIGN1cnJl
bnQgeHdpZGdldCB3ZWJraXQgVVJMIGFuZCBwbGFjZSBpdCBvbiB0aGUgYGtpbGwtcmluZycuIgog
ICAoaW50ZXJhY3RpdmUgbmlsIHh3aWRnZXQtd2Via2l0LW1vZGUpCi0gIChsZXQgKCh1cmwgKHh3
aWRnZXQtd2Via2l0LXVyaSAoeHdpZGdldC13ZWJraXQtY3VycmVudC1zZXNzaW9uKSkpKQotICAg
IChtZXNzYWdlICJVUkw6ICVzIiAoa2lsbC1uZXcgKG9yIHVybCAiIikpKSkpCisgIChsZXQgKCh1
cmwgKG9yICh4d2lkZ2V0LXdlYmtpdC11cmkgKHh3aWRnZXQtd2Via2l0LWN1cnJlbnQtc2Vzc2lv
bikpICIiKSkpCisgICAgKGtpbGwtbmV3IHVybCkKKyAgICAobWVzc2FnZSAiVVJMOiAlcyIgdXJs
KSkpCiAKIChkZWZ1biB4d2lkZ2V0LXdlYmtpdC1icm93c2UtaGlzdG9yeSAoKQogICAiRGlzcGxh
eSBhIGJ1ZmZlciBjb250YWluaW5nIHRoZSBoaXN0b3J5IG9mIHBhZ2UgbG9hZHMuIgpkaWZmIC0t
Z2l0IGEvc3JjL25zeHdpZGdldC5oIGIvc3JjL25zeHdpZGdldC5oCmluZGV4IDhkNTVmYWM1MzIu
LjJiNTU5NmY5MDUgMTAwNjQ0Ci0tLSBhL3NyYy9uc3h3aWRnZXQuaAorKysgYi9zcmMvbnN4d2lk
Z2V0LmgKQEAgLTM2LDYgKzM2LDggQEAgI2RlZmluZSBOU1hXSURHRVRfSF9JTkNMVURFRAogTGlz
cF9PYmplY3QgbnN4d2lkZ2V0X3dlYmtpdF90aXRsZSAoc3RydWN0IHh3aWRnZXQgKnh3KTsKIHZv
aWQgbnN4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSAoc3RydWN0IHh3aWRnZXQgKnh3LCBjb25zdCBj
aGFyICp1cmkpOwogdm9pZCBuc3h3aWRnZXRfd2Via2l0X2dvdG9faGlzdG9yeSAoc3RydWN0IHh3
aWRnZXQgKnh3LCBpbnQgcmVsX3Bvcyk7Citkb3VibGUgbnN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0
ZWRfbG9hZF9wcm9ncmVzcyhzdHJ1Y3QgeHdpZGdldCAqeHcpOwordm9pZCBuc3h3aWRnZXRfd2Vi
a2l0X3N0b3BfbG9hZGluZyAoc3RydWN0IHh3aWRnZXQgKnh3KTsKIHZvaWQgbnN4d2lkZ2V0X3dl
YmtpdF96b29tIChzdHJ1Y3QgeHdpZGdldCAqeHcsIGRvdWJsZSB6b29tX2NoYW5nZSk7CiB2b2lk
IG5zeHdpZGdldF93ZWJraXRfZXhlY3V0ZV9zY3JpcHQgKHN0cnVjdCB4d2lkZ2V0ICp4dywgY29u
c3QgY2hhciAqc2NyaXB0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
aXNwX09iamVjdCBmdW4pOwpkaWZmIC0tZ2l0IGEvc3JjL25zeHdpZGdldC5tIGIvc3JjL25zeHdp
ZGdldC5tCmluZGV4IGUxZmJkNzQ5YjYuLmFhZjg2N2JjZGQgMTAwNjQ0Ci0tLSBhL3NyYy9uc3h3
aWRnZXQubQorKysgYi9zcmMvbnN4d2lkZ2V0Lm0KQEAgLTU3LDEyICs1NywxOCBAQCBAaW50ZXJm
YWNlIFh3V2ViVmlldyA6IFdLV2ViVmlldwogQGVuZAogQGltcGxlbWVudGF0aW9uIFh3V2ViVmll
dyA6IFdLV2ViVmlldwogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgW3N1cGVyIGRlYWxsb2NdOwor
fQorCiAtIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKICAgICAgIGNvbmZpZ3VyYXRp
b246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgICAgICB4
d2lkZ2V0OihzdHJ1Y3QgeHdpZGdldCAqKXh3CiB7CiAgIC8qIFNjcmlwdCBjb250cm9sbGVyIHRv
IGFkZCBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyIGFuZCB1c2VyIHNjcmlwdC4gICovCi0gIFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyICpzY3JpcHRvciA9IFtbV0tVc2VyQ29udGVudENvbnRyb2xsZXIg
YWxsb2NdIGluaXRdOworICBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqc2NyaXB0b3IgPSBbW1tX
S1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvcmVsZWFzZV07CiAgIGNvbmZpZ3VyYXRpb24udXNlckNv
bnRlbnRDb250cm9sbGVyID0gc2NyaXB0b3I7CiAKICAgLyogRW5hYmxlIGluc3BlY3QgZWxlbWVu
dCBjb250ZXh0IG1lbnUgaXRlbSBmb3IgZGVidWdnaW5nLiAgKi8KQEAgLTgxLDcgKzg3LDggQEAg
LSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCiAgIGlmIChzZWxmKQogICAgIHsKICAg
ICAgIHNlbGYueHcgPSB4dzsKLSAgICAgIHNlbGYudXJsU2NyaXB0QmxvY2tlZCA9IFtbTlNNdXRh
YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07CisgICAgICBzZWxmLnVybFNjcmlwdEJsb2NrZWQg
PSBbW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvcmVsZWFzZV07CiAgICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0
ZSA9IHNlbGY7CiAgICAgICBzZWxmLlVJRGVsZWdhdGUgPSBzZWxmOwogICAgICAgc2VsZi5jdXN0
b21Vc2VyQWdlbnQgPQpAQCAtODksMTEgKzk2LDEzIEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KENH
UmVjdClmcmFtZQogICAgICAgICBAIiBBcHBsZVdlYktpdC82MDMuMy44IChLSFRNTCwgbGlrZSBH
ZWNrbykiCiAgICAgICAgIEAiIFZlcnNpb24vMTEuMC4xIFNhZmFyaS82MDMuMy44IjsKICAgICAg
IFtzY3JpcHRvciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpzZWxmIG5hbWU6QCJrZXlEb3duIl07
Ci0gICAgICBbc2NyaXB0b3IgYWRkVXNlclNjcmlwdDpbW1dLVXNlclNjcmlwdCBhbGxvY10KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFdpdGhTb3VyY2U6eHdTY3JpcHQKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWU6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRTdGFydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JNYWluRnJhbWVPbmx5
Ok5PXV07CisgICAgICBXS1VzZXJTY3JpcHQgKnVzZXJTY3JpcHQgPSBbW1tXS1VzZXJTY3JpcHQg
YWxsb2NdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0V2l0aFNvdXJj
ZTp4d1NjcmlwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlv
blRpbWU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdLVXNlclNjcmlw
dEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvck1haW5GcmFtZU9ubHk6Tk9dCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG9yZWxlYXNlXTsKKyAgICAgIFtzY3JpcHRvciBhZGRVc2VyU2NyaXB0OnVz
ZXJTY3JpcHRdOwogICAgIH0KICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMDIsNyArMTExLDI3IEBA
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldwogZGlkRmluaXNoTmF2aWdhdGlv
bjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgogewogICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9w
IChzZWxmLnh3LT5idWZmZXIpLCBRdCkpCi0gICAgc3RvcmVfeHdpZGdldF9ldmVudF9zdHJpbmcg
KHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAiIik7CisgICAgc3RvcmVfeHdpZGdldF9ldmVudF9z
dHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9hZC1maW5pc2hlZCIpOworfQorCist
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KK3sKKyAgaWYgKEVRIChGYnVmZmVy
X2xpdmVfcCAoc2VsZi54dy0+YnVmZmVyKSwgUXQpKQorICAgIHN0b3JlX3h3aWRnZXRfZXZlbnRf
c3RyaW5nIChzZWxmLnh3LCAibG9hZC1jaGFuZ2VkIiwgImxvYWQtc3RhcnRlZCIpOworfQorCist
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKK2RpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgor
eworICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9wIChzZWxmLnh3LT5idWZmZXIpLCBRdCkpCisgICAg
c3RvcmVfeHdpZGdldF9ldmVudF9zdHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9h
ZC1yZWRpcmVjdGVkIik7Cit9CisKKy8vIFN0YXJ0IGxvYWRpbmcgV0tXZWJWaWV3CistICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tOYXZp
Z2F0aW9uICopbmF2aWdhdGlvbgoreworICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9wIChzZWxmLnh3
LT5idWZmZXIpLCBRdCkpIC8vIHdoYXQgZXhhY3RseSBpcyB0aGlzIHRlc3QgZm9yCisgICAgc3Rv
cmVfeHdpZGdldF9ldmVudF9zdHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9hZC1j
b21taXR0ZWQiKTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CkBA
IC0zNDMsNiArMzcyLDIwIEBAIC0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJD
b250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlcgogICB9CiB9CiAKK2RvdWJs
ZQorbnN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyhzdHJ1Y3QgeHdpZGdl
dCAqeHcpCit7CisgIFh3V2ViVmlldyAqeHdXZWJWaWV3ID0gKFh3V2ViVmlldyAqKSB4dy0+eHdX
aWRnZXQ7CisgIHJldHVybiB4d1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3M7Cit9CisKK3ZvaWQK
K25zeHdpZGdldF93ZWJraXRfc3RvcF9sb2FkaW5nIChzdHJ1Y3QgeHdpZGdldCAqeHcpCit7Cisg
IFh3V2ViVmlldyAqeHdXZWJWaWV3ID0gKFh3V2ViVmlldyAqKSB4dy0+eHdXaWRnZXQ7CisgIFt4
d1dlYlZpZXcgc3RvcExvYWRpbmddOworfQorCiB2b2lkCiBuc3h3aWRnZXRfd2Via2l0X3pvb20g
KHN0cnVjdCB4d2lkZ2V0ICp4dywgZG91YmxlIHpvb21fY2hhbmdlKQogewpAQCAtNDUyLDcgKzQ5
NSw4IEBAIC0gKEJPT0wpaXNGbGlwcGVkIHsgcmV0dXJuIFlFUzsgfQogICBOU1JlY3QgcmVjdCA9
IE5TTWFrZVJlY3QgKDAsIDAsIHh3LT53aWR0aCwgeHctPmhlaWdodCk7CiAgIHh3LT54d1dpZGdl
dCA9IFtbWHdXZWJWaWV3IGFsbG9jXQogICAgICAgICAgICAgICAgICAgIGluaXRXaXRoRnJhbWU6
cmVjdAotICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246W1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XQorICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246W1tb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0b3JlbGVhc2VdCiAgICAgICAgICAgICAgICAgICAgICAgICAgeHdp
ZGdldDp4d107CiAgIHh3LT54d1dpbmRvdyA9IFtbWHdXaW5kb3cgYWxsb2NdCiAgICAgICAgICAg
ICAgICAgICAgaW5pdFdpdGhGcmFtZTpyZWN0XTsKQEAgLTQ3MCwxNiArNTE0LDE4IEBAIC0gKEJP
T0wpaXNGbGlwcGVkIHsgcmV0dXJuIFlFUzsgfQogICAgICAgICAoKFh3V2ViVmlldyAqKSB4dy0+
eHdXaWRnZXQpLmNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgICAgW3Nj
cmlwdG9yIHJlbW92ZUFsbFVzZXJTY3JpcHRzXTsKICAgICAgIFtzY3JpcHRvciByZW1vdmVTY3Jp
cHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJrZXlEb3duIl07Ci0gICAgICBbc2NyaXB0b3IgcmVs
ZWFzZV07CisKICAgICAgIGlmICh4dy0+eHYpCiAgICAgICAgIHh3LT54di0+bW9kZWwgPSBRbmls
OyAvKiBNYWtlIHN1cmUgcmVsYXRlZCB2aWV3IHN0YWxlLiAgKi8KIAogICAgICAgLyogVGhpcyBz
dG9wcyBwbGF5aW5nIGF1ZGlvIHdoZW4gYSB4d2lkZ2V0LXdlYmtpdCBidWZmZXIgaXMKLSAgICAg
ICAgIGtpbGxlZC4gIEkgY291bGQgbm90IGZpbmQgb3RoZXIgc29sdXRpb24uICAqLworICAgICAg
ICAga2lsbGVkLiAgSSBjb3VsZCBub3QgZmluZCBvdGhlciBzb2x1dGlvbi4KKyAgICAgICAgIFRP
RE86IGltcHJvdmUgdGhpcyAqLwogICAgICAgbnN4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSAoeHcs
ICJhYm91dDpibGFuayIpOwogCiAgICAgICBbKChYd1dlYlZpZXcgKikgeHctPnh3V2lkZ2V0KS51
cmxTY3JpcHRCbG9ja2VkIHJlbGVhc2VdOwogICAgICAgW3h3LT54d1dpZGdldCByZW1vdmVGcm9t
U3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKKwogICAgICAgW3h3LT54d1dpZGdldCBy
ZWxlYXNlXTsKICAgICAgIFt4dy0+eHdXaW5kb3cgcmVtb3ZlRnJvbVN1cGVydmlld1dpdGhvdXRO
ZWVkaW5nRGlzcGxheV07CiAgICAgICBbeHctPnh3V2luZG93IHJlbGVhc2VdOwpkaWZmIC0tZ2l0
IGEvc3JjL3h3aWRnZXQuYyBiL3NyYy94d2lkZ2V0LmMKaW5kZXggZWZlMjcwNTU2Mi4uYjk1NTBk
YTQ2MCAxMDA2NDQKLS0tIGEvc3JjL3h3aWRnZXQuYworKysgYi9zcmMveHdpZGdldC5jCkBAIC01
NCw2ICs1NCw3IEBAIENvcHlyaWdodCAoQykgMjAxMS0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLgogCiAjaW5jbHVkZSA8bWF0aC5oPgogCisKIHN0YXRpYyBMaXNwX09iamVjdCBp
ZF90b194d2lkZ2V0X21hcDsKIHN0YXRpYyBMaXNwX09iamVjdCBpbnRlcm5hbF94d2lkZ2V0X3Zp
ZXdfbGlzdDsKIHN0YXRpYyBMaXNwX09iamVjdCBpbnRlcm5hbF94d2lkZ2V0X2xpc3Q7CkBAIC00
OTAsMTAgKzQ5MSwxMCBAQCBERUZVTiAoInh3aWRnZXQtcGVyZm9ybS1saXNweS1ldmVudCIsCiB7
CiAgIHN0cnVjdCB4d2lkZ2V0ICp4dzsKICAgc3RydWN0IGZyYW1lICpmID0gTlVMTDsKLSAgaW50
IGNoYXJhY3RlciA9IC0xLCBrZXljb2RlID0gLTE7Ci0gIGludCBtb2RpZmllcnMgPSAwOwogCiAj
aWZkZWYgVVNFX0dUSworICBpbnQgY2hhcmFjdGVyID0gLTEsIGtleWNvZGUgPSAtMTsKKyAgaW50
IG1vZGlmaWVycyA9IDA7CiAgIEdka0V2ZW50ICp4Z19ldmVudDsKICAgR3RrQ29udGFpbmVyQ2xh
c3MgKmtsYXNzOwogICBHdGtXaWRnZXQgKndpZGdldDsKQEAgLTMwNjMsNiArMzA2NCwzNiBAQCBE
RUZVTiAoInh3aWRnZXQtd2Via2l0LXRpdGxlIiwKICNlbmRpZgogfQogCitERUZVTiAoInh3aWRn
ZXQtd2Via2l0LWVzdGltYXRlZC1sb2FkLXByb2dyZXNzIiwKKyAgICAgICBGeHdpZGdldF93ZWJr
aXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MsIFN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9h
ZF9wcm9ncmVzcywKKyAgICAgICAxLCAxLCAwLCBkb2M6IC8qIEdldCB0aGUgZXN0aW1hdGVkIGxv
YWQgcHJvZ3Jlc3Mgb2YgWFdJREdFVCwgYSBXZWJLaXQgd2lkZ2V0LgorUmV0dXJuIGEgdmFsdWUg
cmFuZ2luZyBmcm9tIDAuMCB0byAxLjAsIGJhc2VkIG9uIGhvdyBjbG9zZSBYV0lER0VUCitpcyB0
byBjb21wbGV0ZWx5IGxvYWRpbmcgaXRzIHBhZ2UuICAqLykKKyAgKExpc3BfT2JqZWN0IHh3aWRn
ZXQpCit7CisgIHN0cnVjdCB4d2lkZ2V0ICp4dzsKKyNpZmRlZiBVU0VfR1RLCisgIFdlYktpdFdl
YlZpZXcgKndlYnZpZXc7CisjZW5kaWYKKyAgZG91YmxlIHZhbHVlOworCisgIENIRUNLX0xJVkVf
WFdJREdFVCAoeHdpZGdldCk7CisgIHh3ID0gWFhXSURHRVQgKHh3aWRnZXQpOworICBDSEVDS19X
RUJLSVRfV0lER0VUICh4dyk7CisKKyAgYmxvY2tfaW5wdXQgKCk7CisjaWZkZWYgVVNFX0dUSwor
ICB3ZWJ2aWV3ID0gV0VCS0lUX1dFQl9WSUVXICh4dy0+d2lkZ2V0X29zcik7CisgIHZhbHVlID0g
d2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyAod2Vidmlldyk7Cisj
ZWxpZiBkZWZpbmVkIE5TX0lNUExfQ09DT0EKKyAgdmFsdWUgPSBuc3h3aWRnZXRfd2Via2l0X2Vz
dGltYXRlZF9sb2FkX3Byb2dyZXNzICh4dyk7CisjZW5kaWYKKworICB1bmJsb2NrX2lucHV0ICgp
OworCisgIHJldHVybiBtYWtlX2Zsb2F0ICh2YWx1ZSk7Cit9CisKIERFRlVOICgieHdpZGdldC13
ZWJraXQtZ290by11cmkiLAogICAgICAgIEZ4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSwgU3h3aWRn
ZXRfd2Via2l0X2dvdG9fdXJpLAogICAgICAgIDIsIDIsIDAsCkBAIC0zODEwLDI4ICszODQxLDYg
QEAgREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1iYWNrLWZvcndhcmQtbGlzdCIsIEZ4d2lkZ2V0X3dl
YmtpdF9iYWNrX2ZvcndhcmRfbGlzdCwKICAgcmV0dXJuIGxpc3QzIChiYWNrLCBoZXJlLCBmb3J3
YXJkKTsKIH0KIAotREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1lc3RpbWF0ZWQtbG9hZC1wcm9ncmVz
cyIsCi0gICAgICAgRnh3aWRnZXRfd2Via2l0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNzLCBTeHdp
ZGdldF93ZWJraXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MsCi0gICAgICAgMSwgMSwgMCwgZG9j
OiAvKiBHZXQgdGhlIGVzdGltYXRlZCBsb2FkIHByb2dyZXNzIG9mIFhXSURHRVQsIGEgV2ViS2l0
IHdpZGdldC4KLVJldHVybiBhIHZhbHVlIHJhbmdpbmcgZnJvbSAwLjAgdG8gMS4wLCBiYXNlZCBv
biBob3cgY2xvc2UgWFdJREdFVAotaXMgdG8gY29tcGxldGVseSBsb2FkaW5nIGl0cyBwYWdlLiAg
Ki8pCi0gIChMaXNwX09iamVjdCB4d2lkZ2V0KQotewotICBzdHJ1Y3QgeHdpZGdldCAqeHc7Ci0g
IFdlYktpdFdlYlZpZXcgKndlYnZpZXc7Ci0gIGRvdWJsZSB2YWx1ZTsKLQotICBDSEVDS19MSVZF
X1hXSURHRVQgKHh3aWRnZXQpOwotICB4dyA9IFhYV0lER0VUICh4d2lkZ2V0KTsKLSAgQ0hFQ0tf
V0VCS0lUX1dJREdFVCAoeHcpOwotCi0gIGJsb2NrX2lucHV0ICgpOwotICB3ZWJ2aWV3ID0gV0VC
S0lUX1dFQl9WSUVXICh4dy0+d2lkZ2V0X29zcik7Ci0gIHZhbHVlID0gd2Via2l0X3dlYl92aWV3
X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyAod2Vidmlldyk7Ci0gIHVuYmxvY2tfaW5wdXQg
KCk7Ci0KLSAgcmV0dXJuIG1ha2VfZmxvYXQgKHZhbHVlKTsKLX0KICNlbmRpZgogCiBERUZVTiAo
Inh3aWRnZXQtd2Via2l0LXNldC1jb29raWUtc3RvcmFnZS1maWxlIiwKQEAgLTM4NzQsMTkgKzM4
ODMsMjMgQEAgREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1zdG9wLWxvYWRpbmciLCBGeHdpZGdldF93
ZWJraXRfc3RvcF9sb2FkaW5nLAogWFdJREdFVCBhcyBwYXJ0IG9mIGxvYWRpbmcgYSBwYWdlLiAg
Ki8pCiAgIChMaXNwX09iamVjdCB4d2lkZ2V0KQogewotI2lmZGVmIFVTRV9HVEsKICAgc3RydWN0
IHh3aWRnZXQgKnh3OworI2lmZGVmIFVTRV9HVEsKICAgV2ViS2l0V2ViVmlldyAqd2VidmlldzsK
KyNlbmRpZgogCiAgIENIRUNLX0xJVkVfWFdJREdFVCAoeHdpZGdldCk7CiAgIHh3ID0gWFhXSURH
RVQgKHh3aWRnZXQpOwogICBDSEVDS19XRUJLSVRfV0lER0VUICh4dyk7CiAKICAgYmxvY2tfaW5w
dXQgKCk7CisjaWZkZWYgVVNFX0dUSwogICB3ZWJ2aWV3ID0gV0VCS0lUX1dFQl9WSUVXICh4dy0+
d2lkZ2V0X29zcik7CiAgIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcgKHdlYnZpZXcpOwot
ICB1bmJsb2NrX2lucHV0ICgpOworI2VsaWYgZGVmaW5lZCBOU19JTVBMX0NPQ09BCisgIG5zeHdp
ZGdldF93ZWJraXRfc3RvcF9sb2FkaW5nICh4dyk7CiAjZW5kaWYKKyAgdW5ibG9ja19pbnB1dCAo
KTsKIAogICByZXR1cm4gUW5pbDsKIH0KQEAgLTM5MzYsOCArMzk0OSw5IEBAIHN5bXNfb2ZfeHdp
ZGdldCAodm9pZCkKICNpZmRlZiBVU0VfR1RLCiAgIGRlZnN1YnIgKCZTeHdpZGdldF93ZWJraXRf
bG9hZF9odG1sKTsKICAgZGVmc3ViciAoJlN4d2lkZ2V0X3dlYmtpdF9iYWNrX2ZvcndhcmRfbGlz
dCk7Ci0gIGRlZnN1YnIgKCZTeHdpZGdldF93ZWJraXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3Mp
OwogI2VuZGlmCisKKyAgZGVmc3ViciAoJlN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9hZF9w
cm9ncmVzcyk7CiAgIGRlZnN1YnIgKCZTa2lsbF94d2lkZ2V0KTsKIAogICBERUZTWU0gKFFDeHdp
ZGdldCwgIjp4d2lkZ2V0Iik7Cg==
--000000000000ec3e0a05f1e1f516--




Acknowledgement sent to Andrew De Angelis <bobodeangelis@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#60703; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Tue, 10 Jan 2023 10:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.