Display C sources in chrome

1 points by lrizzo ↗ HN
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 adding 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", ... }

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

2 comments

[ 5.9 ms ] story [ 23.8 ms ] thread
I use slackware on a laptop with 512mb RAM. Last time i build chromium package with slackbuilds, it takes a night long..