From unknown Tue Jun 17 01:47:58 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51674: 29.0.50; [PATCH] Fix hang when displaying xwidget script dialog Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Nov 2021 02:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 51674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 51674@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.163633746111840 (code B ref -1); Mon, 08 Nov 2021 02:11:02 +0000 Received: (at submit) by debbugs.gnu.org; 8 Nov 2021 02:11:01 +0000 Received: from localhost ([127.0.0.1]:55458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mju7g-00034u-RL for submit@debbugs.gnu.org; Sun, 07 Nov 2021 21:11:01 -0500 Received: from lists.gnu.org ([209.51.188.17]:38296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mju7e-00034m-Ua for submit@debbugs.gnu.org; Sun, 07 Nov 2021 21:10:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mju7e-0003WJ-QR for bug-gnu-emacs@gnu.org; Sun, 07 Nov 2021 21:10:58 -0500 Received: from sonic310-25.consmr.mail.ne1.yahoo.com ([66.163.186.206]:33219) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mju7c-0005lN-90 for bug-gnu-emacs@gnu.org; Sun, 07 Nov 2021 21:10:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636337454; bh=OAYTE30hdFmvhAsFmWdpGkhXWC/9A94VYRV0iQaWL+A=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=DY8mkT7iFhqIZfiYcPLAXLoFAdcCB/mFHbj03duKWgmezsh5mSZEXpy6O6MyPCaIIWZYj3bG2Bj8hBp4pWp7aZdZLhBT+D7aYFwuM3lWkPc+IR7iJ2t+IjPsIJMedmkzcia0jSl/SPxUwcik0ZKMecwNxc0NnRmDqXAVUxIcJNqbJSzXD8hw9JOxiOkfxNV364TtcIA64mBPYaFTAUa1l7wr9gVsqZE2z/qE7Fek1FzxVP+6qvB69zrM4SmxsWkjfA8HsSJQVLE8YcCf7EieWsfneHyW3aduN5+O1jDZro8mq+u8jnGfv48edT1mhvBZ1aFOMySKWAIbIEVNTsk77A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636337454; bh=HUpbLA62LhnXF1kByP2WGy1uxql+nPsidZpApwdQ3Xh=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=mxXumFOqEzkGlvUw4YsAFPgGWRsckAIItHT9EhaKSaX79ZTR9Vn4TbDS+AyDbKEBeOdHa+9A/d0Cfdw8pblScb80lAovkPOciaur7xQ8IZi2AkHciMlM7dy9c4xcejZUDZP0FJLZMzDs8PG2sDweiMfzO8x9FpCtjQNDn3nsfd4ZbLa19dav69W6F6ZqJ2Mt5/O2HOeEzFC4g9lZEujLpz/WKCBXI3Xh6QYWtOeWPNOVLWDaLKYriUu0xTIXYIpBVUkwHVIVRRZtobcPhT7kotbjeHUV58jI75XzrsYzl4Vf2QHiWd/i91jsec4eWYurogGjuF19F7Bn67n2l6Otjw== X-YMail-OSG: Ts.2ccIVM1k_Pw7efW3wEJnuVcS_wbK3W6IKTI_o0Ej6yqLMh3cAyNvLi2FJTwt JDu2bH19aETk_djizuAfiBnAsaMFUsBtZJ2wKp6jejLwGWtpe7g2wnJtbrnx7S_xGM1b9xKjQAy7 MgWs1Yx.Lap2s_7QTrGGuE0WNK2CaYE.iibKng38lQ2J6gzox91.3Wfyr.GyDafThrEjO8yopafk MCE36rAd5ukRMZ5xIY80adI2iqgyQknrEF2Tiq1TLIi1PxFKXHq5tOMJ8pMk2Py4nwyOajdvQsxj 5J92ITjdk57tOt5VS96El17Se7ksqvgmjtfbNFdGHtZ0IM9l2Ydcv6zBgHRwSD.J5x6kbb1KdKPP JvMjzMUob25RLkihO.9Qx.GLr5.hH6L3II58MRnRt4tkFl31ppNTzutCOlvWvPbLjJeN8E2FsL7d umCCSiD7hzu0EoO2bHCNRMlYsUTmUrSpgTdGzgzoLHpg11sumv9L.qwBmXbyZI84ucvPKAm2XxY_ 4vni0Osf1l919pC.tBu6r8lL2zU5Sg4kvuCnyrzfdQJEYTln3TGQdu4vkrCNfDLVVzsSALaC0170 r7MoelDXmWUFwghqKj_Id6xfC5T0qTCCO_fJhWJg0Ithg0A15k1lvaFKoLqbYnGDyQ8doUGH7rCQ Er6JeQuhmYqd6ZG3QQw079gV711cMKdyLih2cSr526as8PijAb.xkjcOC22rLItlc.tcfGYxBxpw gJXHE.fw3ANOqS1oxCRxi6Kh2h_IGxMHQxvlBwWr8W_OIBIpUQQan.QjnHl.sVQiKUQggVz8ij4p eJYoZrBA0V95pJIjIE5c7x6_Ct_Mk_2HCxLU9E9mSL_VRDVCJRqindwPIaBZybO1NJV8nPca.TT4 Bdh6.lD.aX8d8BZrZdS4sSHmOu.MeczLfEHITr4_dfZ_gi9yuEXz5kwFMLgU9d7S3MXuFNl0VjIf tHWpGshYCsXA8QsRFUG6x3tunEclm34Arpw76Lkv1Y9Ng5EJiRDo6xSbfSSaN6CfcUSrPWFg.VSf 89X2Yay4zCFWZxRUE6LY.8UCXxoUL5hP49fVdT1Q_eaiuTMDfOpegY9WwODNTeKllYNqMM60onbg J_UkMU6qScLeUB1HcqIULPhNKpCHlWu33vDAEHb0.2YDE48xIbRT0_QNRKHJ_ZKuHREGLiBtheb. NSLyHSXNaeP3ccjtuAhbXD_IUU1V1n1ajAC4YbS6nk5gu2v7IS6CIp6L0cScR30V_kVGkgR7Z3zf .A54FfJZP1PLJko51gyuzjB5gJz8E8Uygra1jyitqtZK6oPduNfYXif45Npv5h_B1gETdcZQJWaV UHuyuTmHC_Exp.G45MOrqJDNlCa59vSuN9bOFbj9kf53iC1p39wXrj.HUTVPSsdL0vOfvBxSzZ6V sVVILgBSrxK2d_5YYt7VPnVGD2gfwAooz9THD63oJ5YS5l8IpfLYl_t3VTOSgdyLNadu6yBUXE4b K1cQrGuPNPLUkmp_sEbGoRNhBhl.ITg1GByzDr8lsteT8b_7ElbwWJpD1BAeEx2s_.QMCKpBwipc 8nAsIcXMuE3c3QpDdvrXbR72omwR2AKg0vOXiCIlv4VCW.yszgD0LsIcGN.9QlQ3Tpga.p4ktLLC wVSxu0wgmYE7QXNVXgzS.Sia59mjeKNDixKvNHMF2lVooOKHEEEzrCmQsA3lhAN0yLMYbcVPvB3n KlGu1nAtksL8h9fh9D4NKtNhiZWel05gpXUj31sIdlBSmsA_Of8Eua19JFEKHSkez767f.04aOXk diEtqnwOnG0NwbFEuFPOntik1w152uOOvfBUE3m.PAdNxh.MZvOfNJnUInqx_PxW1HmqU39Cwu5z KSVlu1IUpJaQ19uJKW8r4Gyxz.lZNBbr_nW3SopuOd7l1eL2Igho_X1OHU.g.S_tJc9JZ549L2hW XDQkUyzLAHezwU32CVG_20qYZds0V0fFUDPIL51NkN4kH9hdNqHQftu.tct32.6fCAsQ.CYSjHsb Xd2FpAse475Icq9wIAe2LIk5gN55T423zbDWwx5UbQdteOHGzgxcohRl6A_kMdYIcjiIo7igNU2Y oBdXdbM9VYgn2Jlqw4Lmr3swWe7wurgeBjbjYHYrGjhhXQsYrGioVIfszbTJeUBH6_zw.j3rjlWV EsHgC8LBKVR8UAGwkHUszpPgx6vjRQXHcNp_WnZ.1p2UDVaXGov9PvlEvr81dx8qyi5PQbgQuXJB 6GjpDJduwFPXtBOi5yGEBy2VfycM1Tw-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ne1.yahoo.com with HTTP; Mon, 8 Nov 2021 02:10:54 +0000 Received: by kubenode512.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 1eb40aade18bf69dac97db3fc086ef28; Mon, 08 Nov 2021 02:10:48 +0000 (UTC) From: Po Lu Date: Mon, 08 Nov 2021 10:10:44 +0800 Message-ID: <87fss7s8gr.fsf@yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" References: <87fss7s8gr.fsf.ref@yahoo.com> X-Mailer: WebService/1.1.19266 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 3566 Received-SPF: pass client-ip=66.163.186.206; envelope-from=luangruo@yahoo.com; helo=sonic310-25.consmr.mail.ne1.yahoo.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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.6 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.6 (-) --=-=-= Content-Type: text/plain Thanks! --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Fix-hang-when-displaying-xwidget-script-dialog.patch >From 1ce79e6631678dd0c98718bbb0882cc6c169d2b0 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 8 Nov 2021 10:07:55 +0800 Subject: [PATCH] Fix hang when displaying xwidget script dialog * src/xwidget.c (webkit_script_dialog_cb): New function. (Fmake_xwidget): Attach script callback signal. --- src/xwidget.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/xwidget.c b/src/xwidget.c index f95f5f1d7f..ecb973f485 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -50,6 +50,8 @@ Copyright (C) 2011-2021 Free Software Foundation, Inc. static gboolean offscreen_damage_event (GtkWidget *, GdkEvent *, gpointer); static void synthesize_focus_in_event (GtkWidget *); static GdkDevice *find_suitable_keyboard (struct frame *); +static gboolean webkit_script_dialog_cb (WebKitWebView *, WebKitScriptDialog *, + gpointer); #endif static struct xwidget * @@ -240,6 +242,10 @@ DEFUN ("make-xwidget", "create", G_CALLBACK (webkit_create_cb), xw); + g_signal_connect (G_OBJECT (xw->widget_osr), + "script-dialog", + G_CALLBACK (webkit_script_dialog_cb), + NULL); } g_signal_connect (G_OBJECT (xw->widgetwindow_osr), "damage-event", @@ -1242,6 +1248,66 @@ webkit_decide_policy_cb (WebKitWebView *webView, return FALSE; } } + +static gboolean +webkit_script_dialog_cb (WebKitWebView *webview, + WebKitScriptDialog *script_dialog, + gpointer user) +{ + struct frame *f = SELECTED_FRAME (); + WebKitScriptDialogType type; + GtkWidget *widget; + GtkWidget *dialog; + GtkWidget *entry; + GtkWidget *content_area; + const gchar *content; + const gchar *message; + gint result; + + /* Return TRUE to prevent WebKit from showing the default script + dialog in the offscreen window, which runs a nested main loop + Emacs can't respond to, and as such can't pass X events to. */ + if (!FRAME_WINDOW_P (f)) + return TRUE; + + type = webkit_script_dialog_get_dialog_type (script_dialog);; + widget = FRAME_GTK_OUTER_WIDGET (f); + content = webkit_script_dialog_get_message (script_dialog); + + if (type == WEBKIT_SCRIPT_DIALOG_ALERT) + dialog = gtk_dialog_new_with_buttons (content, GTK_WINDOW (widget), + GTK_DIALOG_MODAL, + "Dismiss", 1, NULL); + else + dialog = gtk_dialog_new_with_buttons (content, GTK_WINDOW (widget), + GTK_DIALOG_MODAL, + "OK", 0, "Cancel", 1, NULL); + + if (type == WEBKIT_SCRIPT_DIALOG_PROMPT) + { + entry = gtk_entry_new (); + message = webkit_script_dialog_prompt_get_default_text (script_dialog); + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + + gtk_widget_show (entry); + gtk_entry_set_text (GTK_ENTRY (entry), message); + gtk_container_add (GTK_CONTAINER (content_area), entry); + } + + result = gtk_dialog_run (GTK_DIALOG (dialog)); + + if (type == WEBKIT_SCRIPT_DIALOG_CONFIRM + || type == WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM) + webkit_script_dialog_confirm_set_confirmed (script_dialog, result == 0); + + if (type == WEBKIT_SCRIPT_DIALOG_PROMPT) + webkit_script_dialog_prompt_set_text (script_dialog, + gtk_entry_get_text (GTK_ENTRY (entry))); + + gtk_widget_destroy (GTK_WIDGET (dialog)); + + return TRUE; +} #endif /* USE_GTK */ -- 2.31.1 --=-=-=-- From unknown Tue Jun 17 01:47:58 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51674: 29.0.50; [PATCH] Fix hang when displaying xwidget script dialog Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Nov 2021 05:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Po Lu Cc: 51674@debbugs.gnu.org Received: via spool by 51674-submit@debbugs.gnu.org id=B51674.16363490936327 (code B ref 51674); Mon, 08 Nov 2021 05:25:02 +0000 Received: (at 51674) by debbugs.gnu.org; 8 Nov 2021 05:24:53 +0000 Received: from localhost ([127.0.0.1]:55687 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjx9J-0001dz-1X for submit@debbugs.gnu.org; Mon, 08 Nov 2021 00:24:53 -0500 Received: from quimby.gnus.org ([95.216.78.240]:42708) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjx9H-0001dk-1W for 51674@debbugs.gnu.org; Mon, 08 Nov 2021 00:24:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=B5mIvx5MJ1+i+cIdHQiBUP1jGk23uwo5acQwhQQ5N+8=; b=IzDYLlDhdV4OnPpQjZBbXKZmmi OzQq/umKhc/ZPdfoQQcBhzkwsdw/DuWa8qSEUSDttpYs0Ywcqlqb8le67wTaUA90/CInACeOXD5ni VV1t417Wkc+U133mUfKqSELjicL6QaOQM3N2LOUpo5cqCdbo6cwUdVHVjwWvMLmGHn9o=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mjx97-0007UX-TH; Mon, 08 Nov 2021 06:24:44 +0100 From: Lars Ingebrigtsen References: <87fss7s8gr.fsf.ref@yahoo.com> <87fss7s8gr.fsf@yahoo.com> X-Now-Playing: Sly & The Family Stone's _There's a Riot Goin' On_: "Just Like A Baby" Date: Mon, 08 Nov 2021 06:24:41 +0100 In-Reply-To: <87fss7s8gr.fsf@yahoo.com> (Po Lu's message of "Mon, 08 Nov 2021 10:10:44 +0800") Message-ID: <87a6ifb4o6.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Po Lu writes: > Thanks! Thanks; pushed to Emacs 29. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Po Lu writes: > Thanks! Thanks; pushed to Emacs 29. This reminds me of a totally different thing that I was poking at briefly some years back -- is it possible to use xwidgets "freely" in a different buffer these days? Last time I looked at it, it was very much tied to a specific mode, and only one widget per buffer. My use case here is that I'd love to see eww being able to display video clips. xwidget can show