Skip to content

Instantly share code, notes, and snippets.

@jmercouris
Created January 4, 2018 20:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmercouris/875972985687a4d9d0f4afb80cb77975 to your computer and use it in GitHub Desktop.
Save jmercouris/875972985687a4d9d0f4afb80cb77975 to your computer and use it in GitHub Desktop.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Original API
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-run-javascript
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defcfun "webkit_web_view_run_javascript" :void
(web-view (g-object webkit-web-view))
(script :string)
(cancellable :pointer)
(callback g-async-ready-callback)
(user-data :pointer))
(export 'webkit-web-view-run-javascript)
(defcfun ("webkit_web_view_run_javascript_finish" %webkit-web-view-run-javascript-finish) webkit-javascript-result
(web-view (g-object webkit-web-view))
(result g-async-result)
(gerror :pointer))
(defun webkit-web-view-run-javascript-finish (web-view result)
(glib:with-g-error (err)
(%webkit-web-view-run-javascript-finish web-view result err)))
(export 'webkit-web-view-run-javascript-finish)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; My Code: Attempt
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(cffi:defcallback callybacky :void ((source-object :pointer)
(result g-async-result)
(user-data :pointer))
(let ((value (webkit2:webkit-javascript-result-get-value
(webkit2:webkit-web-view-run-javascript-finish
(current-view *next-interface*)
result))))
(print value))
nil)
(defun web-view-execute (view script)
(let ((np (cffi:null-pointer)))
(webkit2:webkit-web-view-run-javascript view script np (cffi:callback callybacky) np)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Result
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#.(SB-SYS:INT-SAP #X7FFFF002C830)
I also tried cffi:convert-from-foreign with :string type, but it doesn't like that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment