anchor.diff:            (version ,(alex:assoc-value json :version))
             (description ,(alex:assoc-value json :description))
             (extension-directory ,directory)
  -          (nyxt:glyph ,(make-extension-icon (alex:assoc-value json :icons) directory (alex:assoc-value json :name)))
             (homepage-url ,(alex:assoc-value json :homepage--url))
  +          (browser-action ,(make-browser-action json))
             (content-scripts (list ,@(mapcar (lambda (content-script-alist)
                                                (apply #'make-content-script
                                                       (alex:alist-plist content-script-alist)))
  -                                           (alex:assoc-value json :content--scripts)))))))))
  +                                           (alex:assoc-value json :content--scripts))))))
  +       (defmethod initialize-instance :after ((extension ,lispy-name) &key)
  +         (setf (nyxt:glyph extension)
  +               (setf (default-icon (browser-action extension))
  +                     (encode-browser-action-icon (quote ,json) ,directory)))))))
  
positive.code:    (content-scripts nil
                      :type list
                      :documentation "A list of `content-script's used by this extension.")
     (handler-names nil
                    :type list)
     (destructor (lambda (mode)
  
negative.code:                     (hooks:add-hook (buffer-loaded-hook (buffer mode))
                                      (make-activate-content-scripts-handler mode content-script-name))
                      (push content-script-name (handler-names mode)))))))
  
  (export-always 'load-web-extension)
  (defmacro load-web-extension (lispy-name directory)
  