diff options
| author | NoƩ Lopez | 2024-01-19 23:40:53 +0100 |
|---|---|---|
| committer | Eli Zaretskii | 2024-03-14 11:17:24 +0200 |
| commit | f6a27bc32d19727dfcbee65fb9894b53aec46c65 (patch) | |
| tree | 63cfd181341aa4f9030d237b9bffff07b9970796 /src | |
| parent | 013114664ef4923872ffad26a97f4d314c9a84bf (diff) | |
| download | emacs-f6a27bc32d19727dfcbee65fb9894b53aec46c65.tar.gz emacs-f6a27bc32d19727dfcbee65fb9894b53aec46c65.zip | |
Add user option to disable JavaScript in xwidget webview
* src/xwidget.c: Add the 'xwidget-webkit-disable-javascript'
variable to disable JavaScript in WebKit sessions. (Bug#68604)
* etc/NEWS:
* doc/emacs/misc.texi (Embedded Webkit Widgets): Document
the change.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xwidget.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index 58910459142..5b82ef6e840 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -22,7 +22,6 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 22 | #include "buffer.h" | 22 | #include "buffer.h" |
| 23 | #include "coding.h" | 23 | #include "coding.h" |
| 24 | #include "xwidget.h" | 24 | #include "xwidget.h" |
| 25 | |||
| 26 | #include "lisp.h" | 25 | #include "lisp.h" |
| 27 | #include "blockinput.h" | 26 | #include "blockinput.h" |
| 28 | #include "dispextern.h" | 27 | #include "dispextern.h" |
| @@ -379,6 +378,7 @@ fails. */) | |||
| 379 | /* Enable the developer extras. */ | 378 | /* Enable the developer extras. */ |
| 380 | settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (xw->widget_osr)); | 379 | settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (xw->widget_osr)); |
| 381 | g_object_set (G_OBJECT (settings), "enable-developer-extras", TRUE, NULL); | 380 | g_object_set (G_OBJECT (settings), "enable-developer-extras", TRUE, NULL); |
| 381 | g_object_set (G_OBJECT (settings), "enable-javascript", !xwidget_webkit_disable_javascript, NULL); | ||
| 382 | } | 382 | } |
| 383 | 383 | ||
| 384 | gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width, | 384 | gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width, |
| @@ -3972,6 +3972,12 @@ syms_of_xwidget (void) | |||
| 3972 | doc: /* List of all xwidget views. */); | 3972 | doc: /* List of all xwidget views. */); |
| 3973 | Vxwidget_view_list = Qnil; | 3973 | Vxwidget_view_list = Qnil; |
| 3974 | 3974 | ||
| 3975 | DEFVAR_BOOL("xwidget-webkit-disable-javascript", xwidget_webkit_disable_javascript, | ||
| 3976 | doc: /* If non-nil, disables the execution of JavaScript in xwidget webkit sessions. | ||
| 3977 | You must kill all xwidget-webkit buffers for this setting to take | ||
| 3978 | effect after changing it. */); | ||
| 3979 | xwidget_webkit_disable_javascript = false; | ||
| 3980 | |||
| 3975 | Fprovide (intern ("xwidget-internal"), Qnil); | 3981 | Fprovide (intern ("xwidget-internal"), Qnil); |
| 3976 | 3982 | ||
| 3977 | id_to_xwidget_map = CALLN (Fmake_hash_table, QCtest, Qeq, | 3983 | id_to_xwidget_map = CALLN (Fmake_hash_table, QCtest, Qeq, |