EXIF Viewer Extension for Chromium Based Browsers

As an old (and long time too 😀 ) Opera user I really miss the handy images properties display in the new Chromium based browsers, especially the EXIF info, so in pure self defense I decided to modify some code taken from http://www.nihilogic.dk/labs/exif/  and added some context menu magic to it to get a similar function in Opera 15++ and Chromium 9++

.

Additionally I added a small parsing routine for raw GIF file data that shows the number of frames in animated GIFs (Thanks to Brian for the head up which bytes probably start a new frame – you were right). Sadly It doesn’t seem to run on a Mac (as one user reported) and I can’t do anything against it because I don’t own a Mac (Windoz rulez! 😀 ) and I didn’t do any tests on Linux so far – anyone? Works in Mint.

Here the links to the extensions on my private web-space:

Opera: http://quhno.internetstrahlen.de/myopera/extensions/EXIF-viewer.nex

Chromium: http://quhno.internetstrahlen.de/Vivaldi/EXIF-viewer.crx

 

 Test image. Right click on the spider

edit 2014-05-17

If you want something fancier, you can try this extension from the Chrome store (Thanks to Alexs for the hint) I didn’t test it yet, so I don’t know if it shows e.g. the number of animation frames in a GIF too – if yes I will at least have learned a little bit by cobbling it together by myself.

edit 2014-05-20

A really nice implementation with the benefit of adding some of the old Opera right-click on an image behavior too can be found in the Opera add-ons catalog (Thanks to claudio791 for the hint). It displays the EXIF metadata too and the source code is available at GitHub. (Nicer code too because Joel is a real programmer)

 


Why another EXIF viewer?

Simply because I wanted to have one that ends its process and unloads itself from the memory when it is not needed and that does not inject anything to the page with the image …

(If that is of no concern for you, you might give one of the many other image and EXIF related extensions a spin, especially this one is very nice.)

 

… and of course because I wanted to see if I can do it.

 


Changes:

edit 2014-05-18

Updated the Extensions from background page usage to event page usage and reduced the permission set. Urgh – geek language alert!

OK, in plain text: It now unloads itself if it is not in use, meaning, it will free your RAM etc. and I set only the permissions for the extension that it really needs for work. Now it can’t access all of your history, all of your tabs etc. any more – only the tab in which you right click on an image. IMHO more extension authors should do that, but most of them do not give a s**t about that and grab everything they can. I am not so sure if that doesn’t have security and privacy implications …

 

edit 2014-05-19

Version 1.0.7

  • Removed IE compatibility stuff from the binary AJAX module.
  • Corrected the MIME-type display to the value the server presents.
  • Removed needless use of canvas for the “thumbnail”.
  • Added some more EXIF values.

 

edit 2014-05-20

Version 1.0.8

GPS, yay! You can test it with this image on flicker

Warning – 6 MBytes image, the extension might take some time to download the raw binary data (e.g. 10s with a 6 Mbit/s connection)

 

edit 2014-05-21

Version 1.0.9

Rudimentary IPTC support added. You can test it with this image.

 

edit 2014-05-21 / 02

Version 1.1.0

IPTC mapping complete as far as it made sense for images.

 

edit 2014-05-23

Version 1.2.0

Added display of XMP metadata.

 

edit 2014-05-23 / 02

Version 1.2.1

Syntax highlighting of XMP data added, should make reading a bit easier.

 

edit 2014-05-23 / 03

Version 1.2.2

Link to the place in Google and Bing maps if GPS coordinates are present (opens in a new tab).

Hint: if you use this image, make sure you switch to street view too 😀

 

edit 2014-05-24

Version 1.2.3 (for internal tests with search engines onyl)

Version 1.2.4

Added tabbed interface

Added Yandex.ru Maps and OpenStreetMap

 

 

edit 2015-04-22

Version 1.2.5 (for internal tests with onyl)

Version 1.2.6

Works in Vivaldi

To install:

  • download the file and unzip it with 7zip or a similar unzipper
  • open the page vivaldi://extensions
  • switch to developer mode
  • open unpacked extension and navigate to the folder where unpacked the extension (the folder that contains the manifest.json file)
  • drag and drop the CRX file on the extensions page
  • confirm the installation and activate it

Open a webpage with an image or one of the above linked test images, rightcklick on it and select the Extensions entry in the context menu

 


 

Please keep in mind that I am not a good Javascripter, more of an advanced copy&paster, and I am quite proud that I was able to parse the binary data at all, so please don’t shoot me if something goes horribly wrong. Feel free to post improvements or wishes in the comments below 🙂

 

16 comments Write a comment

  1. The extension is capable of reading the GPS data from the EXIF information and I’d like to display those too, but I need help with a design decision because I don’t know how to best present the data: As raw values or fancy with e.g. google maps.

    I personally don’t like to feed google with even more information than they already have, but I can imagine building a link to google or other maps with the coordinates instead. That link would open in a new tab, thus avoiding an additional request from inside of the extension if you don’t need the information.

    What do you think?

  2. Probably yes, but I will have to dig through the API which might take a while (I am not good with such things) …

    Oh, btw.: I have updated the Extension to V 1.0.8 – GPS Infos are in now, scroll to the bottom, the light green stuff is it (if there are GPS infos in the image)
    You can test it with this image:
    https://www.flickr.com/photos/cameralabs/12382975864/sizes/o/in/photostream/

    Warning – the image file size is about 6MByte, the extension might take several seconds to load the binary image data (e.g. 10s with a 6Mbit/s connection) and then a second to process the data.

  3. Update to V 1.1.1
    Panel support for all browsers that support the full chrome.windows API (Opera doesn’t, despite the API is stable since Chrome v5)
    You need to enable panels it in chrome://flags

  4. Update to V 1.2.1
    Syntax highlighting of XMP data added, should make reading a bit easier.

    The next version will probably have a link to Google maps inside if the image contains GPS data. I will use Google maps because in some cases it should be possible to switch to street view, so you can look a little bit around 😉

  5. Update to V 1.2.2
    Link to the place in Google and Bing maps if GPS coordinates are present.
    (hint: switch to street view if you use the test image 2 comments above)

  6. Update to V 1.2.2 (1.2.3 skipped)
    Yandex maps and OpenStreetMap added
    Tabbed interface implemented

  7. Can anyone do a security audit?
    I don’t know if parsing the data, especially the ASCII or other textual data inside of the image code can’t be abused for cross site attacks etc. by special binary binary manipulations in the images …

  8. I mentioned your call for help in Otter browser forums. Didn’t go down well. I am not much of a member in other techie forums.

  9. Updated the Chromium extension to 1.2.5:
    Switched to panel instead of popups. Causes less problems with chromium derivative browsers that block popups.

  10. Update to V1.2.6 (1.2.5 skipped)
    Works now with the latest Vivaldi if installed in developer mode (How to install that way see end of the blog post)
    Sadly the real popup and the taskbar panel APIs are still missing, so a normal window has to do for now, but at least it works.

    If anyone finds a way how to install extensions that are not from the Google store in a normal way in Vivaldi:
    Please feel free to comment below. Thank you 🙂

  11. Update to V1.2.7
    Minor fix. Should now a nice clean popup image without panels in Vivaldi

    Just download the crx from the above blog post (always points to the latest version on my private webspace) and then drag and drop it from your file-manager to vivaldi://extensions

Leave a Reply