On Thu, Aug 6, 2009 at 10:02 AM, Joel Webber <[email protected]> wrote:
> I fully support the idea of fixing this issue one way or another, and I'm
> pretty strongly in favor of providing an efficient-if-not-pretty
> implementation on IE6 (which I believe is what you're proposing as well).
>
> There are two separate issues we need to consider here. The first is
> exactly *what* ImageResource should do on IE6. I see several options:
> - The status quo: Keep using the DirectX filter and let it blow lots of
> memory.
> - (At the very least, make this *not* happen on IE7; c.f. issue 3588)
> - Create opaque PNGs on IE6.
> - Is the background color controllable?
> - We could at least stick with GIF if all the input images are GIF.
> - Note that this isn't perfect: You'll still get color space
> quantization when you mix the GIF palettes.
>
Except in special cases where the combined pallette of all the GIFs still
fits in 8 bits, I think this is not acceptable -- personally, I would rather
have by transparent borders become non-transparent.
I think if you want to keep them as GIFs, you need to do it 1:1 -- ie, on
IE6 you simply don't get bundling. You could get fancy and combine them
where the GIFs don't use all their pallette, but I suspect the gain is not
worth the effort.
> The second question is whether we should implement this by separating IE6
> and IE7 into separate permutations, or whether we should do a runtime check.
> All else being equal, I would favor creating separate permutations, because
> it makes the code cleaner, and a little bit smaller/faster on IE7. All else
> is not quite equal, though: creating a new permutation has a non-trivial
> impact on compile times and output directory size, especially for apps with
> a large number of locale permutations (as many at Google are). I'm leaning
> towards runtime tests for this particular case, for the following reasons:
> - IE7 is not going to evolve any further, so we know that the set of
> differences between 6 and 7 are bounded.
> - The relevant differences that I'm aware of are only these:
> - PNG transparency bug.
> - "Peekaboo" bug in divs overlapping <select> elements.
> - CSS absolute-positioning fixes ({top:0; bottom:0;} works correctly on
> IE7, but not IE6)
> - The only other differences seem to be performance-related (such as
> bumping up the GC thresholds).
>
Data seems to indicate that IE7 is being replaced with IE8 faster than IE6
is, so I think it is acceptable that the IE6/IE7 permutation have additional
runtime overhead of detecting which version is running and altering behavior
accordingly.
--
John A. Tamplin
Software Engineer (GWT), Google
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---