anchor.diff:                                  :website-data-manager
                                   (make-instance 'webkit-website-data-manager-ephemeral
                                                  :is-ephemeral t))
  -                 (let ((data-manager-data-path (make-instance 'data-manager-data-path :context-name name))
  -                       (data-manager-cache-path (make-instance 'data-manager-cache-path :context-name name)))
  +                 (let ((data-manager-data-directory (make-instance 'data-manager-data-directory :context-name name))
  +                       (data-manager-cache-directory (make-instance 'data-manager-cache-directory :context-name name)))
                      (make-instance 'webkit-web-context
                                     :website-data-manager
                                     (make-instance 'webkit-website-data-manager
  -                                                 :base-data-directory (expand-path data-manager-data-path)
  -                                                 :base-cache-directory (expand-path data-manager-cache-path))))))
  -           (gtk-extensions-path (expand-path (make-instance 'gtk-extensions-data-path :context-name name)))
  +                                                 :base-data-directory (nfiles:expand data-manager-data-directory)
  +                                                 :base-cache-directory (nfiles:expand data-manager-cache-directory))))))
  +           (gtk-extensions-path (nfiles:expand (make-instance 'gtk-extensions-directory :context-name name)))
              (cookie-manager (webkit:webkit-web-context-get-cookie-manager context)))
         (unless (or ephemeral-p
                     (internal-context-p name))
  
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:   (unless *run-from-repl-p*
      (gtk:leave-gtk-main)))
  
  (define-class data-manager-file (nyxt-file)
    ((context-name (error "Context name required."))
     (nfiles:name "web-context"))
    (:export-class-name-p t)
    (:accessor-name-transformer (class*:make-name-transformer name)))
  
  (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 data-manager-cache-directory (nfiles:cache-file data-manager-file)
    ()
    (:export-class-name-p t)
    (:accessor-name-transformer (class*:make-name-transformer name)))
  
  (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)
  
  (define-class gtk-download (download)
    ((gtk-object)
  