Function: xwidget-webkit--create-new-session-buffer
xwidget-webkit--create-new-session-buffer is a byte-compiled function
defined in xwidget.el.gz.
Signature
(xwidget-webkit--create-new-session-buffer URL &optional CALLBACK)
Documentation
Create a new webkit session buffer to display URL in an xwidget.
Optional function CALLBACK specifies the callback for webkit xwidgets;
see xwidget-webkit-callback.
Source Code
;; Defined in /usr/src/emacs/lisp/xwidget.el.gz
(defun xwidget-webkit--create-new-session-buffer (url &optional callback)
"Create a new webkit session buffer to display URL in an xwidget.
Optional function CALLBACK specifies the callback for webkit xwidgets;
see `xwidget-webkit-callback'."
(let* ((bufname
;; Generate a temp-name based on current buffer name. The
;; buffer will subsequently be renamed by
;; `xwidget-webkit-callback'. This approach can avoid
;; flicker of buffer-name in mode-line.
(generate-new-buffer-name (buffer-name)))
(callback (or callback #'xwidget-webkit-callback))
(current-session (xwidget-webkit-current-session))
xw)
(setq xwidget-webkit-last-session-buffer (get-buffer-create bufname))
;; The xwidget id is stored in a text property, so we need to have
;; at least character in this buffer.
;; Insert invisible url, good default for next `g' to browse url.
(with-current-buffer xwidget-webkit-last-session-buffer
(let ((start (point)))
(insert url)
(put-text-property start (+ start (length url)) 'invisible t)
(setq xw (xwidget-insert
start 'webkit bufname
(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-put xw 'display-callback #'xwidget-webkit-display-callback)
(xwidget-webkit-mode))
xwidget-webkit-last-session-buffer))