Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Apr 2012 16:47:45 +0200
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        chromium@freebsd.org
Cc:        hackers@freebsd.org
Subject:   how to display C sources in Chromium (file:/// only)
Message-ID:  <20120428144745.GA40844@onelab2.iet.unipi.it>

next in thread | raw e-mail | index | archive | help
(hoping this is of interest for hackers- too)

One of the most annoying features of chromium is that it downloads
instead of displaying various types of files (.c, .h and so on).

After a bit of investigation i found that at least for local files
you can override this by defining your preferred mime types in
~/.local/share/mime/globs2    as follows:

	> cat ~/.local/share/mime/globs2
	10:text/plain:*.c
	10:text/plain:*.cc
	10:text/plain:*.c++
	10:text/plain:*.cpp
	10:text/plain:*.h

The first field is the priority (smaller number means more important),
then follows the mime type, then the pattern that you are matching.
The default rules (/usr/local/share/ ...) have a priority of 50
for .c, .h and so on.

For remotely-served files, the browser relies on the MIME Type
supplied by the server and the trick above does not work.

Looking at the Chromium sources

    chromium-courgette-redacted-18.0.1025.162/net/base/mime_util.cc

it seems that a partial fix can be achieved by arring the list of
types we want to display to the array

    static const char* const supported_non_image_types[] = {
 	...
+	"text/x-csrc",
+	"text/x-chdr",
	...
    }

Maybe we can have some optional patch to the FreeBSD port,
although i'd rather find a way to override the server-supplied
mime type in a way that does not require rebuilding Chrome.

Anyways, at least for local browsing, this seems a significant
improvement.

	cheers
	luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120428144745.GA40844>