emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 372824a: Check for WebKit xwidgets inside all xwidget-webkit func


From: Po Lu
Subject: master 372824a: Check for WebKit xwidgets inside all xwidget-webkit functions
Date: Thu, 11 Nov 2021 21:40:35 -0500 (EST)

branch: master
commit 372824a8bf303421eaeff5b1cb8c289a3efa86b3
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Check for WebKit xwidgets inside all xwidget-webkit functions
    
    This is done in preparation for the introduction of other
    xwidgets, such as media xwidgets, even though there are
    only WebKit widgets at present.
    
    * src/xwidget.c (CHECK_WEBKIT_XWIDGET): New macro.
    (WEBKIT_FN_INIT): Use CHECK_WEBKIT_XWIDGET.
    
    (Fxwidget_webkit_search, Fxwidget_webkit_next_result)
    (Fxwidget_webkit_previous_result)
    (Fxwidget_webkit_finish_search)
    (Fxwidget_webkit_load_html): Check that xwidget is a WebKit
    widget.
---
 src/xwidget.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/xwidget.c b/src/xwidget.c
index 70e5769..7d5c492 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -1706,26 +1706,15 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
 #endif
 }
 
-static bool
-xwidget_is_web_view (struct xwidget *xw)
-{
-#ifdef USE_GTK
-  return xw->widget_osr != NULL && WEBKIT_IS_WEB_VIEW (xw->widget_osr);
-#elif defined NS_IMPL_COCOA
-  return nsxwidget_is_web_view (xw);
-#endif
-}
+#define CHECK_WEBKIT_WIDGET(xw)                                \
+  if (NILP (xw->buffer) || !EQ (xw->type, Qwebkit))    \
+    error ("Not a WebKit widget")
 
 /* Macro that checks xwidget hold webkit web view first.  */
 #define WEBKIT_FN_INIT()                                               \
   CHECK_LIVE_XWIDGET (xwidget);                                                
\
   struct xwidget *xw = XXWIDGET (xwidget);                             \
-  if (!xwidget_is_web_view (xw))                                       \
-    {                                                                  \
-      fputs ("ERROR xw->widget_osr does not hold a webkit instance\n", \
-            stdout);                                                   \
-      return Qnil;                                                     \
-    }
+  CHECK_WEBKIT_WIDGET (xw)
 
 DEFUN ("xwidget-webkit-uri",
        Fxwidget_webkit_uri, Sxwidget_webkit_uri,
@@ -2195,6 +2184,8 @@ with QUERY.  */)
 
 #ifdef USE_GTK
   xw = XXWIDGET (xwidget);
+  CHECK_WEBKIT_WIDGET (xw);
+
   webview = WEBKIT_WEB_VIEW (xw->widget_osr);
   query = ENCODE_UTF_8 (query);
   opt = WEBKIT_FIND_OPTIONS_NONE;
@@ -2237,6 +2228,7 @@ using `xwidget-webkit-search'.  */)
 
   CHECK_LIVE_XWIDGET (xwidget);
   xw = XXWIDGET (xwidget);
+  CHECK_WEBKIT_WIDGET (xw);
 
   if (!xw->find_text)
     error ("Widget has no ongoing search operation");
@@ -2269,6 +2261,7 @@ using `xwidget-webkit-search'.  */)
 
   CHECK_LIVE_XWIDGET (xwidget);
   xw = XXWIDGET (xwidget);
+  CHECK_WEBKIT_WIDGET (xw);
 
   if (!xw->find_text)
     error ("Widget has no ongoing search operation");
@@ -2301,6 +2294,7 @@ using `xwidget-webkit-search'.  */)
 
   CHECK_LIVE_XWIDGET (xwidget);
   xw = XXWIDGET (xwidget);
+  CHECK_WEBKIT_WIDGET (xw);
 
   if (!xw->find_text)
     error ("Widget has no ongoing search operation");
@@ -2347,6 +2341,7 @@ to "about:blank".  */)
   base_uri = ENCODE_UTF_8 (base_uri);
   text = ENCODE_UTF_8 (text);
   xw = XXWIDGET (xwidget);
+  CHECK_WEBKIT_WIDGET (xw);
 
   data = SSDATA (text);
   uri = SSDATA (base_uri);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]