Diego,

I agree with you that we will need an exifParser.js file that returns raw EXIF data. 

jpeg_metadata_parser.js includes EXIF parsing code (which should perhaps be factored out) but was never intended to return raw values. It returns interpreted data that Gallery and other apps need, so I like the way Tom's patch is structured.

About your readFile()/writeFile() proposal: I don't want to ever have to be in the business of parsing a JPEG file to return pixel data in any format.  We use the <img> and <canvas> elements to do that.  We do need a way to read metadata, but I hope we never have to read the pixels.

Similarly, the only way we write image files currently is with Canvas.toBlob(), so again, we're not passing pixel data, but just using a <canvas> that contains the pixels.  We do need a way to insert metadata into a file, and I would like to explore the possiblity of extening the platform so that Canvas.toBlob() allows the specification of EXIF metadata.