]> git.eshelyaron.com Git - emacs.git/commitdiff
Add `xwidget-webkit-estimated-load-progress'
authorPo Lu <luangruo@yahoo.com>
Fri, 19 Nov 2021 09:45:03 +0000 (17:45 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 19 Nov 2021 09:48:57 +0000 (17:48 +0800)
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce new function.

* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): New
function.
(syms_of_xwidget): Define new subr.

doc/lispref/display.texi
etc/NEWS
src/xwidget.c

index 8decff6fa8fc370a6bb1fb891331a9d8f27a1b69..e9b50707dedb979b8f79f11e45c792b6bf02ec35 100644 (file)
@@ -7004,6 +7004,14 @@ manually to reach a specific history item.  Instead, @var{idx} should
 be passed as an index to @code{xwidget-webkit-goto-history}.
 @end defun
 
+@defun xwidget-webkit-estimated-load-progress xwidget
+Return an estimate of how much data is remaining to be transferred
+before the page displayed by the WebKit widget @var{xwidget} is fully
+loaded.
+
+The value returned is a float ranging between 0.0 and 1.0.
+@end defun
+
 @node Buttons
 @section Buttons
 @cindex buttons in buffers
index cee2844be3a5bf101f93669520ad425518ce6923..ad31b2327141fbc88e341d73a545053747118b11 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -863,6 +863,11 @@ for performing searches on WebKit xwidgets.
 This function is used to obtain the history of page-loads in a given
 WebKit xwidget.
 
++++
+*** New function 'xwidget-webkit-estimated-load-progress'.
+This function is used to obtain the estimated progress of page loading
+in a given WebKit xwidget.
+
 +++
 *** 'load-changed' xwidget events are now more detailed.
 In particular, they can now have different arguments based on the
index e1bf40ea437ed971fc4de9df94959c82eccc1f6f..62b01b741cd741ff961da4621aad58096be6856b 100644 (file)
@@ -2555,6 +2555,29 @@ LIMIT is not specified or nil, it is treated as `50'.  */)
 
   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_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
 
 void
@@ -2600,6 +2623,7 @@ 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 (&Skill_xwidget);