Re: [whatwg] canvas drawImage and EXIF orientation metadata

2014-04-17 Thread Jonas Sicking
On Wed, Apr 16, 2014 at 8:09 AM, Anne van Kesteren ann...@annevk.nl wrote:
 On Wed, Apr 16, 2014 at 3:45 PM, Justin Novosad ju...@google.com wrote:
 I was wondering the same thing. From the image-orientation spec: It applies
 only to content images (e.g. replaced elements and generated content), not
 decorative images (such as background-image).
 So this property apparently has a considerably larger scope than just
 correcting the orientation of images from files, which I guess explains why
 it is in CSS.

 I don't really follow the reasoning. But I guess if this has been
 shipping in Firefox for a while we might be out of luck changing this.

The problem here stemms from that orientation data lives as metadata
in the EXIF data of image formats. This means that many tools has
simply ignored that metadata.

The result seems to have been that people open their images in tools
that ignore the EXIF metadata. Then rotates the pixel data using that
tool. Then saves the image again while keeping the EXIF metadata
unchanged.

This now means the pixels have been rotated (say) 90 degrees, but the
EXIF metadata still says rotate image 90 degrees. So any tool that
now honors the EXIF renders the picture *wrong*.

So effectively the EXIF metadata has to be ignored in order to keep
webcompat. That was the case even before image-orientation was
implemented.

FWIW I believe that WebP is remaking this same mistake. Would be cool
if someone tried to prevent this from happening.

/ Jonas


Re: [whatwg] canvas drawImage and EXIF orientation metadata

2014-04-17 Thread Glenn Maynard
On Thu, Apr 17, 2014 at 2:46 AM, Jonas Sicking jo...@sicking.cc wrote:

 The problem here stemms from that orientation data lives as metadata
 in the EXIF data of image formats. This means that many tools has
 simply ignored that metadata.

 The result seems to have been that people open their images in tools
 that ignore the EXIF metadata. Then rotates the pixel data using that
 tool. Then saves the image again while keeping the EXIF metadata
 unchanged.

 This now means the pixels have been rotated (say) 90 degrees, but the
 EXIF metadata still says rotate image 90 degrees. So any tool that
 now honors the EXIF renders the picture *wrong*.

 So effectively the EXIF metadata has to be ignored in order to keep
 webcompat. That was the case even before image-orientation was
 implemented.

 FWIW I believe that WebP is remaking this same mistake. Would be cool
 if someone tried to prevent this from happening.


The question was why is this a CSS style instead of a property on img,
not why isn't this just the default.

-- 
Glenn Maynard


[whatwg] BroadcastChannel should support structured clones

2014-04-17 Thread Jonas Sicking
It would be very useful to be able to send structured data, including
Blobs, through the BroadcastChannel API.

This is something we've seen any time we've done storage or message
passing, that one of the first thing authors ask for is to not have to
do JSON serialization/parsing manually. The ability to pass
ArrayBuffers and Blobs is somewhat less commonly asked for, likely
because binary data is less often used, but seems important
nonetheless.

We can't allow transferring of objects, since you can't transfer
something to all listeners of a broadcasting API. But plain structured
clones should be no problem to support conceptually (though more work
to implement of course).

We've started looking at doing structured clone support for Firefox
and likely won't ship until we have that implemented.

/ Jonas


Re: [whatwg] BroadcastChannel should support structured clones

2014-04-17 Thread Jonas Sicking
Another thing that seems like an oversight in the spec is that the
spec currently says that BroadcastChannel should be exposed in Window
context. We should also expose it in Worker contexts.

/ Jonas

On Thu, Apr 17, 2014 at 2:32 PM, Jonas Sicking jo...@sicking.cc wrote:
 It would be very useful to be able to send structured data, including
 Blobs, through the BroadcastChannel API.

 This is something we've seen any time we've done storage or message
 passing, that one of the first thing authors ask for is to not have to
 do JSON serialization/parsing manually. The ability to pass
 ArrayBuffers and Blobs is somewhat less commonly asked for, likely
 because binary data is less often used, but seems important
 nonetheless.

 We can't allow transferring of objects, since you can't transfer
 something to all listeners of a broadcasting API. But plain structured
 clones should be no problem to support conceptually (though more work
 to implement of course).

 We've started looking at doing structured clone support for Firefox
 and likely won't ship until we have that implemented.

 / Jonas