anchor.diff:            (homepage-url ,(gethash "homepage_url" json))
             (browser-action ,(make-browser-action json))
             (permissions (quote ,(gethash "permissions" json)))
  -          (content-scripts (list ,@(mapcar (lambda (content-script-hash)
  -                                             (apply #'make-content-script
  -                                                    (alex:hash-table-plist content-script-hash)))
  +          (content-scripts (list ,@(mapcar #'make-content-script
                                              (gethash "content_scripts" json))))))
          (defmethod initialize-instance :after ((extension ,lispy-name) &key)
            ;; This is to simulate the browser action on-click-popup behavior.
  
positive.code:   "Find the best browser action icon using OPTIMAL-HEIGHT of `status-buffer'.
  
  JSON is the parsed extension manifest."
    (sera:and-let* ((browser-action (gethash "browser_action" json))
                    (default-icon (gethash "default_icon" browser-action)))
      (if (stringp default-icon)
          default-icon
          (rest (first (sort (append (and (gethash "default_icon" browser-action)
                                          (alex:hash-table-alist (gethash "default_icon" browser-action)))
                                     (and (gethash "icons" json)
                                          (alex:hash-table-alist (gethash "icons" json))))
                             (lambda (a b)
                               (> (abs (- optimal-height a))
                                  (abs (- optimal-height b))))
                             :key (alex:compose #'parse-integer #'symbol-name #'first)))))))
  
  (defun encode-browser-action-icon (json extension-directory)
    "Return the proper <img> HTML with the embedded browser action icon.
  
negative.code:                                                                   "<all_urls>" "*://*/*"))))
      (make-instance
       'content-script
       :match-patterns (mapcar sanitize-mozilla-regex (uiop:ensure-list (gethash "matches" json)))
       :files (append (uiop:ensure-list (gethash "js" json)) (uiop:ensure-list (gethash "css" json))))))
  
  
  (defun make-data-url (file &optional mime-type)
  