summaryrefslogtreecommitdiff
path: root/lisp/xwidget.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-11-19 20:04:08 +0800
committerPo Lu <luangruo@yahoo.com>2021-11-19 20:04:08 +0800
commitb4f0c4c694e1c00b4025fe16039b8940d97c66aa (patch)
tree460a3a5b266a2e0a8cd3c58ecf4bd9b333858514 /lisp/xwidget.el
parent24c67435ea5f15aa858f4a12b00055ed92baa1d9 (diff)
downloademacs-b4f0c4c694e1c00b4025fe16039b8940d97c66aa.tar.gz
Allow controlling where xwidget-webkit stores cookies
* doc/lispref/display.texi (Xwidgets): Document new function. * etc/NEWS: Announce `xwidget-webkit-cookie-file' and `xwidget-webkit-set-cookie-storage-file'. * lisp/xwidget.el (xwidget-webkit-cookie-file): New user option. (xwidget-webkit-new-session): Set cookie storage file. * src/xwidget.c (Fmake_xwidget): Create new context for each unrelated widget. (Fxwidget_webkit_set_cookie_storage_file): New function. (syms_of_xwidget): Define new subr.
Diffstat (limited to 'lisp/xwidget.el')
-rw-r--r--lisp/xwidget.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index b74e332edf8..056315a4db9 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -57,6 +57,7 @@
(declare-function xwidget-query-on-exit-flag "xwidget.c" (xwidget))
(declare-function xwidget-webkit-back-forward-list "xwidget.c" (xwidget &optional limit))
(declare-function xwidget-webkit-estimated-load-progress "xwidget.c" (xwidget))
+(declare-function xwidget-webkit-set-cookie-storage-file "xwidget.c" (xwidget file))
(defgroup xwidget nil
"Displaying native widgets in Emacs buffers."
@@ -107,6 +108,15 @@ It can use the following special constructs:
:type 'string
:version "29.1")
+(defcustom xwidget-webkit-cookie-file
+ (file-name-concat user-emacs-directory
+ "xwidget-webkit-cookies.txt")
+ "A path to the file where xwidget-webkit-browse-url will store cookies.
+They will be stored as plain text in Mozilla `cookies.txt'
+format. If nil, cookies will not be stored."
+ :type 'string
+ :version "29.1")
+
;;;###autoload
(defun xwidget-webkit-browse-url (url &optional new-session)
"Ask xwidget-webkit to browse URL.
@@ -794,6 +804,9 @@ For example, use this to display an anchor."
(xwidget-window-inside-pixel-width (selected-window))
(xwidget-window-inside-pixel-height (selected-window))
nil current-session)))
+ (when xwidget-webkit-cookie-file
+ (xwidget-webkit-set-cookie-storage-file
+ xw (expand-file-name xwidget-webkit-cookie-file)))
(xwidget-put xw 'callback callback)
(xwidget-webkit-mode)
(xwidget-webkit-goto-uri (xwidget-webkit-last-session) url)))