On Wed, Aug 27, 2014 at 2:52 PM, Colin Alworth <[email protected]> wrote:
> As I'm sure everyone is aware, IE11 is making the navigator.useragent > property significantly more useless than it already was, by having IE11 > identify as 'Trident' rather than 'MSIE', and adding 'iPhone', 'Webkit', > 'Android' and a few other obviously garbage strings. > > Check out > http://msdn.microsoft.com/en-us/library/ie/hh869301%28v=vs.85%29.aspx - > its hard to believe, but its all spelled out easily, so that you can > identify which device you might be running on by deciphering this simple > table. /s. > > By following a link at the bottom of the page to a document entitled > "Detecting Internet Explorer More Effectively" at > http://msdn.microsoft.com/en-us/library/ie/ms537509%28v=vs.85%29.aspx, > anything newer IE8 considered 'recent'. This document is also marked as no > longer being maintained, so I'm curious as to why it was linked from the > above article. Other links are broken too (try clicking on > 'navigator.userAgent'), so I'm not sure if this is actually meant to be > satire, or some kind of meta-joke about how hard it is to correctly develop > for IE. In any case... > > IE 11 is worlds better than earlier browsers (8, 9 still is at 27% > worldwide, 34% in North America according to theie8countdown.com and > theie9countdown.com), but it is still all kinds of crazy. Examples we've > run into recently: > > Scrollwheel events in gecko are wired up to use event.detail to find out > how far the user scrolled. Since IE11 looks like Gecko (on the desktop...), > you incorrectly get that instead of the code in DOMImplTrident or > DOMImplStandardBase which uses (Math.round(-evt.wheelDelta / 40) || 0) > instead. This is filed in GWT as > https://code.google.com/p/google-web-toolkit/issues/detail?id=8476 > > I'm curious if we still need those customization DOMImplTrident for Firefox. Perhaps we just need to make it behave like the rest? > Focus. So many focus issues, but for the most part we limp along by making > everything else play IE's game. In one particular case, an element was > focused, hidden, and shown again, and for IE (which is to say user.agent = > ie8, ie9, ie10), we could make it work by rebinding to avoid letting > anything else be focused, since other browsers were behaving as expected. > Alas, IE11 thinks it's other browsers, so the only way to make it work is > to do a silly runtime check... > > ...Or, add a permutation for IE11. > > In the past we've explored extend-property'ing the user.agent values, but > this either makes it impossible to cleanup get along with newer GWT > versions, or breaks CssResource code that misses a rule or two here and > there, or causes excessive logspam from the fallback property. Instead, in > GXT we ended up adding our own user.agent-like property, and then using > conditional properties and soft permutations to map back to user.agent > without causing extra permutations unless the developer wants them (see > http://code.google.com/p/google-web-toolkit/wiki/ConditionalProperties > and http://code.google.com/p/google-web-toolkit/wiki/SoftPermutations if > you haven't already). In the past, this worked great for us to split out > ie6/7 for our own rules, and continues to work beautifully for telling the > difference between Safari and Chrome and Opera, which all show up as > 'safari' in GWT. > > This won't work for IE11, for a few reasons: > a) IE11 sometimes shows up as 'safari', and sometimes as 'gecko1_8', so > conditional properties will get a bit hairy(er) than usual. > b) At some point, we've been expecting that the level of frustration with > IE11 in the general community would be high enough to warrant a new value > or slapping it on to an existing one, adding either 'ie10' or 'ie11' to the > list above. > > So, while this has gotten much longer than I had planned, I hope I've made > a case for this. I'd like to propose in GWT 2.7 (and will write up the > patch) that we add a 'ie11' value to user.agent, and detect it by checking > for the presence of rv:11 and trident in the useragent string. I would be > okay with forcing this to map to gecko1_8 in any IE-specific rebind rule > and revisit at a later date (since that is what we are effectively doing > today). Except of course for DOMImplMozilla, which is clearly broken with > IE11. > > Thoughts? Additional snark? Other IE11 bugs that will magically be fixed > when this is complete? > I'm not totally against adding IE11; I think the way forward to deal with permutation mess is soft-permutations which means it is not so bad to have IE11. On the other hand keeping IE11 together with FF helps us to unify the implementation for modern browsers instead of diverging. So fixing these issues are actually a good step in that direction. > > -- > You received this message because you are subscribed to the Google Groups > "GWT Contributors" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/google-web-toolkit-contributors/232f5fbb-0134-4ea9-9844-13dad666f41e%40googlegroups.com > <https://groups.google.com/d/msgid/google-web-toolkit-contributors/232f5fbb-0134-4ea9-9844-13dad666f41e%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA0u1ZJfF4PgDshhw9u6YHHHMccf4av%3DKajUH3%2B3BXxJxw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
