From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Eli Zaretskii <eliz@gnu.org>, 51712@debbugs.gnu.org
Subject: bug#51712: 29.0.50; [PATCH] New function `xwidget-webkit-load-html'
Date: Wed, 10 Nov 2021 10:44:52 +0800 [thread overview]
Message-ID: <87fss4ohjv.fsf@yahoo.com> (raw)
In-Reply-To: <877ddgluzr.fsf@gnus.org> (Lars Ingebrigtsen's message of "Wed, 10 Nov 2021 01:22:48 +0100")
[-- Attachment #1: Type: text/plain, Size: 991 bytes --]
Lars Ingebrigtsen <larsi@gnus.org> writes:
> Po Lu <luangruo@yahoo.com> writes:
>
>> Thanks, does this look OK to you? And I'm afraid I'm not terribly good
>> at phrasing this into words, so I would really appreciate it if you
>> could help write that section of the manual.
>
> [...]
>
>> +Optional argument @var{base-uri}, which should be a string, specifies
>> +the location of web resources specified through relative links, such
>> +as the resource @samp{foo.png} in the HTML tag @samp{<img
>> +src="foo.png">}. It defaults to @samp{about:blank}.
>
> Looks good to me.
>
>> +XWIDGET should be a WebKit xwidget, that will receive TEXT. TEXT
>> +should be a string that will be displayed by XWIDGET as HTML markup.
>> +BASE_URI should be a string containing a URI that is used to fetch
>> +resources, and if not specified, defaults to `about:blank'. */)
>
> Should probably be "relative resources (i.e., URLs that aren't
> absolute)" or something of the kind.
Hmm, OK, how's this?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-xwidget-webkit-load-html.patch --]
[-- Type: text/x-patch, Size: 3591 bytes --]
From 1d701339df5ed91ed730fb134976137bcf1e0ce6 Mon Sep 17 00:00:00 2001
From: Po Lu <luangruo@yahoo.com>
Date: Tue, 9 Nov 2021 21:36:40 +0800
Subject: [PATCH] Add `xwidget-webkit-load-html'
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce new function.
* src/xwidget.c (Fxwidget_webkit_load_html): New function.
(syms_of_xwidget): Define new subr.
---
doc/lispref/display.texi | 11 +++++++++++
etc/NEWS | 5 +++++
src/xwidget.c | 40 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 56 insertions(+)
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index b6bd14f887..aa7d64493c 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -6943,6 +6943,17 @@ Xwidgets
signals an error.
@end defun
+@defun xwidget-webkit-load-html xwidget text &optional base-uri
+Load @var{text}, a string, into @var{xwidget}, which should be a
+WebKit xwidget. It treats @var{text} as HTML markup, which will be
+rendered by @var{xwidget}.
+
+Optional argument @var{base-uri}, which should be a string, specifies
+the location of web resources specified through relative links, such
+as the resource @samp{foo.png} in the HTML tag @samp{<img
+src="foo.png">}. It defaults to @samp{about:blank}.
+@end defun
+
@node Buttons
@section Buttons
@cindex buttons in buffers
diff --git a/etc/NEWS b/etc/NEWS
index 3cad0995ac..ae318be1c0 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -796,6 +796,11 @@ what the widget will actually receive.
On GTK+, only key and function key events are implemented.
++++
+*** New function 'xwidget-webkit-load-html'.
+This function is used to load HTML text into WebKit xwidgets, without
+having to create a temporary file to store the markup.
+
+++
*** New functions for performing searches on WebKit xwidgets.
Some new functions, such as 'xwidget-webkit-search', have been added
diff --git a/src/xwidget.c b/src/xwidget.c
index fc76ce307e..2587b658e7 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -2139,6 +2139,44 @@ DEFUN ("xwidget-webkit-finish-search", Fxwidget_webkit_finish_search,
return Qnil;
}
+#ifdef USE_GTK
+DEFUN ("xwidget-webkit-load-html", Fxwidget_webkit_load_html,
+ Sxwidget_webkit_load_html, 2, 3, 0,
+ doc: /* Make XWIDGET's WebKit widget render TEXT.
+XWIDGET should be a WebKit xwidget, that will receive TEXT. TEXT
+should be a string that will be displayed by XWIDGET as HTML markup.
+BASE_URI should be a string containing a URI that is used to locate
+resources described by relative URLs, and if not specified, defaults
+to `about:blank'. */)
+ (Lisp_Object xwidget, Lisp_Object text, Lisp_Object base_uri)
+{
+ struct xwidget *xw;
+ WebKitWebView *webview;
+ char *data, *uri;
+
+ CHECK_XWIDGET (xwidget);
+ CHECK_STRING (text);
+ if (NILP (base_uri))
+ base_uri = build_string ("about:blank");
+ else
+ CHECK_STRING (base_uri);
+
+ base_uri = ENCODE_UTF_8 (base_uri);
+ text = ENCODE_UTF_8 (text);
+ xw = XXWIDGET (xwidget);
+
+ data = SSDATA (text);
+ uri = SSDATA (base_uri);
+ webview = WEBKIT_WEB_VIEW (xw->widget_osr);
+
+ block_input ();
+ webkit_web_view_load_html (webview, data, uri);
+ unblock_input ();
+
+ return Qnil;
+}
+#endif
+
void
syms_of_xwidget (void)
{
@@ -2177,6 +2214,9 @@ syms_of_xwidget (void)
defsubr (&Sxwidget_webkit_next_result);
defsubr (&Sxwidget_webkit_previous_result);
defsubr (&Sset_xwidget_buffer);
+#ifdef USE_GTK
+ defsubr (&Sxwidget_webkit_load_html);
+#endif
DEFSYM (QCxwidget, ":xwidget");
DEFSYM (QCtitle, ":title");
--
2.31.1
[-- Attachment #3: Type: text/plain, Size: 9 bytes --]
Thanks.
next prev parent reply other threads:[~2021-11-10 2:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <878rxx8w1i.fsf.ref@yahoo.com>
2021-11-09 10:26 ` bug#51712: 29.0.50; [PATCH] New function `xwidget-webkit-load-html' Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-09 13:21 ` Eli Zaretskii
2021-11-09 13:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-09 14:07 ` Eli Zaretskii
2021-11-09 23:56 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-10 0:02 ` Lars Ingebrigtsen
2021-11-10 0:14 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-10 0:22 ` Lars Ingebrigtsen
2021-11-10 2:44 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2021-11-10 5:59 ` Lars Ingebrigtsen
2021-11-10 6:08 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-10 12:50 ` Eli Zaretskii
2021-11-10 13:03 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-10 14:25 ` Eli Zaretskii
2021-11-11 0:31 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-10 4:34 ` Richard Stallman
2021-11-10 4:37 ` Lars Ingebrigtsen
2021-11-11 3:37 ` Richard Stallman
2021-11-10 4:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-09 18:26 ` Lars Ingebrigtsen
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fss4ohjv.fsf@yahoo.com \
--to=bug-gnu-emacs@gnu.org \
--cc=51712@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=larsi@gnus.org \
--cc=luangruo@yahoo.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.