anchor.diff:                       :namespace (first (getprop "namespace"))
                        :all-frames-p (not (first (getprop "noframes")))
                        :code (format nil "~{~a;~&~}~a"
  -                                   (mapcar #'nyxt/web-mode::get-script-text (getprop "require"))
  +                                   (mapcar (lambda (require)
  +                                             (nyxt/web-mode::get-script-text
  +                                              require (nyxt/web-mode::get-script-url
  +                                                       greasemonkey-script nil)))
  +                                           (getprop "require"))
                                      code)
                        :include (append (getprop "include") (getprop "match"))
                        :exclude (getprop "exclude")
  
positive.code:   (:documentation "The Nyxt-internal representation of user scripts to bridge with the renderer."))
  (define-user-class user-script)
  
  (defun get-script-text (script)
    (etypecase script
      (pathname
       (alex:read-file-into-string script))
  
negative.code:          (alex:read-file-into-string (quri:uri-path script))
           (dex:get (quri:render-uri script))))
      (string
       (multiple-value-bind (url file-p)
           (get-script-url script original-url)
         (cond
           ((and url file-p)
            (alex:read-file-into-string (quri:uri-path url)))
           ((and url (not file-p))
            (dex:get (quri:render-uri url)))
           ;; No URL. No need to download anything.
           ;; It's just code (hopefully).
           (t script))))))
  
  (in-package :nyxt)
  
  