Take the 2-minute tour ×

I am using Google Chrome, and I want to open .c and .cpp files as text in the browser itself. Is there any way to do that?

share|improve this question

4 Answers 4

up vote 0 down vote accepted

I'm afraid this isn't possible. As the fies are attachments in a Gmail message, there would have to a a viewer in the Gmail web application to view them. It doesn't have a viewer so the only way to see the file is to download it.


  • The files and the e-mail are on the Gmail servers. When you view the e-mail in the browser the server creates a web page with the content of the e-mail. Your browser displays the content of the web page for you. All that's been transferred to your PC is what you see on the screen.
  • The web page includes links to the attachments. These just point to the attachments so that clicking on them will start a download. The actual attachment file is stored on the Gmail server.
  • Gmail provides viewers for some types of files. When you click on the View link, the Gmail server builds a web page with the content of the attachment. For other types of files (most of the file types in the world) Gmail doesn't do this. It could, but the functionality isn't there right now. So, the only option left to you is to download the file from the Gmail server to your PC so that you can view it.
share|improve this answer

How are you getting the URL of the .c or .cpp file?

If it's via a link on another page the Chrome should just open them as plain text files. Well it did for me when I just tried it with a file from my hard drive.

If you want to use Chrome as the default viewer for .c or .cpp files on your hard drive, then we'll need to know which operating you are using.

share|improve this answer
I am using Windows Vista. urls - they are attachments to my mails... –  Lazer May 2 '10 at 21:31
Also, the default viewer is set to Notepad++, which is okay. What happens when I click on those files is that they get downloaded and then I have to open them. Actually I do not really need to download them. I just need to have a quick view, so it would be really helpful if chrome can open them as text files for me. –  Lazer May 2 '10 at 21:33
@eSKay - which e-mail client are you using? –  ChrisF May 2 '10 at 21:36
@ChrisF: you dont have to know gmail for this. Is there a way to open .c files in chrome? –  Lazer May 2 '10 at 21:49
> Well it did for me when I just tried it with a file from my hard drive. Yes, local source files open as text, but remote source files initiate a download. > It all depends on how they send the headers for the file. @MrStatic, that’s what I thought, but I just tested by putting a line in .htaccess to treat .cpp files as text/plain, and they still download instead of open as text. –  Synetech Mar 14 '12 at 4:10

This method is kind of long and tedious and it still involves downloading the source files, but I can't come up with better right now.

If you click on a link it will automatically download, then if you open the downloads tab (clicking on show all downloads or Ctrl + J) and click Copy link address in the right click menu of the file you downloaded and paste that link in the address bar it will display the file as plain text, but this only works for local files afaik.

Or you can set your file associations for c files to chrome and when you click on a downloaded file it will open up in the browser itself.

share|improve this answer

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

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


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.

share|improve this answer

Your Answer


