anchor.diff:    (unless *run-from-repl-p*
       (gtk:leave-gtk-main)))
   
  -(define-class data-manager-data-path (data-path)
  +(define-class data-manager-file (nyxt-file)
     ((context-name (error "Context name required."))
  -   (dirname (uiop:native-namestring (uiop:xdg-data-home +data-root+)))
  -   (ref "web-context"))
  +   (nfiles:name "web-context"))
     (:export-class-name-p t)
     (:accessor-name-transformer (class*:make-name-transformer name)))
   
  -(defmethod expand-data-path ((profile nosave-data-profile) (path data-manager-data-path))
  -  "We shouldn't store any `data-manager' data for `nosave-data-profile'."
  -  nil)
  -
  -(defmethod expand-data-path ((profile data-profile) (path data-manager-data-path))
  -  (expand-default-path
  -   path
  -   :root (uiop:strcat (uiop:native-namestring (dirname path))
  -                      (uiop:directory-separator-for-host)
  -                      (str:concat (context-name path) "-web-context"))))
  -
  -(define-class data-manager-cache-path (data-manager-data-path)
  -  ((dirname (uiop:xdg-cache-home +data-root+)))
  +(defmethod initialize-instance :after ((file data-manager-file) &key)
  +  (setf (nfiles:base-path file)
  +        (pathname (str:concat (context-name file) "-web-context"))))
  +
  +(defmethod nfiles:resolve ((profile nosave-profile) (file data-manager-file))
  +  "We shouldn't store any `data-manager' data for `nosave-profile'."
  +  #p"")
  +
  +(define-class data-manager-data-file (nfiles:data-file data-manager-file)
  +  ()
     (:export-class-name-p t)
     (:accessor-name-transformer (class*:make-name-transformer name)))
   
  -(define-class gtk-extensions-data-path (data-manager-data-path)
  -  ((dirname (uiop:native-namestring (uiop:xdg-data-home +data-root+)))
  -   (ref :initform "gtk-extensions"))
  +(define-class data-manager-cache-directory (nfiles:cache-file data-manager-file)
  +  ()
     (:export-class-name-p t)
     (:accessor-name-transformer (class*:make-name-transformer name)))
   
  -(defmethod expand-data-path ((profile nosave-data-profile) (path gtk-extensions-data-path))
  -  "We shouldn't enable (possibly) user-identifying extensions for `nosave-data-profile'."
  +(define-class gtk-extensions-directory (nfiles:data-file data-manager-file)
  +  ((name "gtk-extensions"))
  +  (:export-class-name-p t)
  +  (:accessor-name-transformer (class*:make-name-transformer name)))
  +
  +(defmethod initialize-instance :after ((file gtk-extensions-directory) &key)
  +  (setf (nfiles:base-path file)
  +        (pathname (str:concat (context-name file) "-gtk-extensions"))))
  +
  +(define-class cookies-file (nfiles:data-file data-manager-file)
  +  ((nfiles:name "cookies"))
  +  (:export-class-name-p t)
  +  (:accessor-name-transformer (class*:make-name-transformer name)))
  +
  +(defmethod initialize-instance :after ((file cookies-file) &key)
  +  (setf (nfiles:base-path file)
  +        (pathname (str:concat (context-name file) "-cookies"))))
  +
  +(defmethod nfiles:resolve ((profile nosave-profile) (path gtk-extensions-directory))
  +  "We shouldn't enable (possibly) user-identifying extensions for `nosave-profile'."
     nil)
  -
  -(defmethod expand-data-path ((profile data-profile) (path gtk-extensions-data-path))
  -  "Return finalized path for gtk-extension directory."
  -  (expand-default-path
  -   path
  -   :root (uiop:strcat (uiop:native-namestring (dirname path))
  -                      (uiop:directory-separator-for-host)
  -                      (str:concat (context-name path) "-gtk-extensions"))))
   
   (define-class gtk-download (download)
     ((gtk-object)
  
positive.code: webkit-web-context is used.
  
  If ephemeral-p is set, the buffer is a nosave-buffer, or the current
  data-protife is a nosave-data-profile, then an ephemeral context is used, with
  the same naming rules as above."
    (let ((internal-p (or (not buffer)
                          (internal-buffer-p buffer)))
          (ephemeral-p (or ephemeral-p
                           (typep (current-data-profile) 'nosave-data-profile)
                           (typep buffer 'nosave-buffer))))
      (make-instance (if ephemeral-p
                         'webkit-web-view-ephemeral
  
negative.code:   (:accessor-name-transformer (class*:make-name-transformer name)))
  (define-user-class download (gtk-download))
  
  (defclass webkit-web-view-ephemeral (webkit:webkit-web-view) ()
    (:metaclass gobject:gobject-class))
  
  