 (add-hook 'find-file-hook 'cr-flymake-find-file 'append)
 (add-hook 'after-save-hook 'cr-flymake-kick-off-check-after-save)
 
-;; Show flymake infrastructure ERRORs in hopes of fixing them.
+;; Show flymake infrastructure ERRORs in hopes of fixing them.  Set to 3 for
+;; DEBUG-level output from flymake.el.
 (setq flymake-log-level 0)
 
 (provide 'flymake-chromium)

           (line-err-info-list
            (nth 0 (flymake-find-err-info flymake-err-info line-no)))
           (menu-data (flymake-make-err-menu-data line-no line-err-info-list)))
      (prin1 (caaadr menu-data) t))))

(defun cr-flymake-find-file ()
  "Enable flymake, but only if it makes sense, and immediately

  "Return chromium's src/ directory, or nil on failure."
  (locate-dominating-file buffer-file-truename cr-flymake-ninja-build-file))

(defun cr-flymake-string-prefix-p (prefix str)
  "Return non-nil if PREFIX is a prefix of STR (23.2 has string-prefix-p but
  that's case insensitive and also 23.1 doesn't have it)."
  (string= prefix (substring str 0 (length prefix))))

(defun cr-flymake-current-file-name ()
  "Return the relative path from chromium's src/ directory to the
  file backing the current buffer or nil if it doesn't look like
  we're under chromium/src/."
  (when (and (cr-flymake-chromium-src)
             (cr-flymake-string-prefix-p
              (cr-flymake-chromium-src) buffer-file-truename))
    (substring buffer-file-truename (length (cr-flymake-chromium-src)))))

(defun cr-flymake-from-build-to-src-root ()
