Reverting the binding sounds good to me. Please add a comment to the
binding; it might probably be bound to something else but not tested.

On Wed, Oct 1, 2014 at 9:39 PM, Colin Alworth <[email protected]> wrote:

> It looks like changes to a few rebind rules are generating some new
> logspam when any GWT app compiles. Specifically, I'm seeing FocusImpl and
> LayoutImpl, though its possible there are others I haven't seen yet. From
> the dynatable example we can see the FocusImpl spam:
> gwtc:
>      [java] Compiling module com.google.gwt.sample.dynatable.DynaTable
>      [java]    Computing all possible rebind results for
> 'com.google.gwt.user.client.ui.impl.FocusImpl'
>      [java]       Rebinding com.google.gwt.user.client.ui.impl.FocusImpl
> *     [java]          Could not find an exact match rule. Using 'closest'
> rule <replace-with
> class='com.google.gwt.user.client.ui.impl.FocusImplIE6'/> based on fall
> back values. You may need to implement a specific binding in case the fall
> back behavior does not replace the missing binding*
>      [java]    Compiling 5 permutations
>      [java]       Compiling permutation 0...
>      [java]       Process output
>      [java]          Compiling
>      [java]             Compiling permutation 1...
>      [java]       Compiling permutation 2...
>      [java]       Compiling permutation 3...
>
>
> First, the rules themselves:
>   <!-- Firefox uses a hidden input to set accesskeys -->
>   <replace-with
> class="com.google.gwt.user.client.ui.impl.FocusImplStandard">
>     <when-type-is class="com.google.gwt.user.client.ui.impl.FocusImpl"/>
>     <when-property-is name="user.agent" value="gecko1_8"/>
>   </replace-with>
>
>   <!-- Safari uses a hidden input to set accesskeys and -->
>   <!-- fires focus/blur after a timeout                 -->
>   <replace-with class="com.google.gwt.user.client.ui.impl.FocusImplSafari">
>     <when-type-is class="com.google.gwt.user.client.ui.impl.FocusImpl"/>
>     <when-property-is name="user.agent" value="safari"/>
>   </replace-with>
>
>   <!-- IE's implementation traps exceptions on invalid setFocus() -->
>   <replace-with class="com.google.gwt.user.client.ui.impl.FocusImplIE6">
>     <when-type-is class="com.google.gwt.user.client.ui.impl.FocusImpl"/>
>     <all>
>       <any>
>         <when-property-is name="user.agent" value="ie6"/>
>         <when-property-is name="user.agent" value="ie8"/>
>       </any>
>       <none>
>         <when-property-is name="user.agent" value="ie9"/>
>       </none>
>     </all>
>   </replace-with>
>
> No express binding of FocusImpl to itself, or to Standard (interestingly
> Standard really seems to mean Gecko, at least according to that comment,
> calling out a FF specific issue). I can't comment much on that just yet,
> though I might make a suggestion later.
>
> This code is as a result of https://gwt-review.googlesource.com/#/c/5055/
> (or
> https://gwt.googlesource.com/gwt/+/040b3e4392186e48689a6fc1f19cdf294f2b5651
> if you like), ostensibly to make IE9+ use FocusImpl instead of FocusImplIE6
> (or Standard, for example).
>
> [java]    Computing all possible rebind results for
> 'com.google.gwt.user.client.ui.impl.FocusImpl'
>
> ...
>
> [java]          Found better fallback match for <replace-with
> class='com.google.gwt.user.client.ui.impl.FormPanelImpl'/>
> [java]          Checking rule <replace-with
> class='com.google.gwt.user.client.ui.impl.FocusImplIE6'/>
> [java]             Checking if all subconditions are true (<all>)
> [java]                <when-type-is
> class='com.google.gwt.user.client.ui.impl.FocusImpl'/>
> [java]                   Yes, the requested type was an exact match
> [java]                Checking if all subconditions are true (<all>)
> [java]                   Checking if any subcondition is true (<any>)
> [java]                      <when-property-is name='user.agent'
> value='ie8'/>
> [java]                         Property value is '*ie9*'
> [java]                         Property value 'ie8' is the fallback of
> '[[ie9]]'
> [java]                         No, the value did not match
> [java]                      No: All subconditions were false
> [java]                   No: One or more subconditions was false
> [java]                No: One or more subconditions was false
> [java]          Rule did not match
> [java]          Found better fallback match for <replace-with
> class='com.google.gwt.user.client.ui.impl.FocusImplIE6'/>
> [java]          Checking rule <replace-with
> class='com.google.gwt.user.client.ui.impl.FocusImplSafari'/>
> [java]             Checking if all subconditions are true (<all>)
> [java]                <when-type-is
> class='com.google.gwt.user.client.ui.impl.FocusImpl'/>
> [java]                   Yes, the requested type was an exact match
> [java]                <when-property-is name='user.agent' value='safari'/>
> [java]                   Property value is 'ie9'
> [java]                   No, the value did not match
> [java]                No: One or more subconditions was false
> [java]          Rule did not match
> [java]          Checking rule <replace-with
> class='com.google.gwt.user.client.ui.impl.FocusImplStandard'/>
> [java]             Checking if all subconditions are true (<all>)
> [java]                <when-type-is
> class='com.google.gwt.user.client.ui.impl.FocusImpl'/>
> [java]                   Yes, the requested type was an exact match
> [java]                <when-property-is name='user.agent'
> value='gecko1_8'/>
> [java]                   Property value is 'ie9'
> [java]                   No, the value did not match
> [java]                No: One or more subconditions was false
> [java]          Rule did not match
>
> ...
>
> [java]          Could not find an exact match rule. Using 'closest' rule
> <replace-with class='com.google.gwt.user.client.ui.impl.FocusImplIE6'/>
> based on fall back values. You may need to implement a specific binding in
> case the fall back behavior does not replace the missing binding
> [java]          No exact match was found, using closest match rule
> <replace-with class='com.google.gwt.user.client.ui.impl.FocusImplIE6'/>
> [java]          Rebind result was
> com.google.gwt.user.client.ui.impl.FocusImplIE6
>
> From this abbreviated log, apparently IE9 is still using the IE6 impl,
> rather than ignoring any rebind rule and using the actual argument to
> GWT.create.
>
> My *guess* is that this has been the case since the patch linked was
> authored, and checking out 040b3e4392186e48689a6fc1f19cdf294f2b5651 seems
> to confirm this - building dynatable still has this log message, indicating
> that IE9 has been using IE6 all along, despite the commit message. The
> linked issue
> https://code.google.com/p/google-web-toolkit/issues/detail?id=8383 (which
> I didn't read until just now, and could have saved me a fair bit of
> time...) seems to confirm this.
>
> My goal in this quick bit of debugging is to get us to a stable GWT
> release that doesn't add useless logging. To that end, I think
> 040b3e4392186e48689a6fc1f19cdf294f2b5651 must be reverted, since it has no
> effect, and adds confusing log messages that might suggest to the user that
> they have made a mistake. The commit at
> https://gwt.googlesource.com/gwt/+/a0a0c20713cbc2d0fc8dd262f066da9f2412c93a
> should get the same treatment (LayoutImpl), and I'll be walking a few more
> commits to confirm that everything else looks safe.
>
> The other option is to declare explicitly to bind FocusImpl to FocusImpl
> (with or without a 'useragent=ie9' check) so that this is then the closest
> matching rule. Since we haven't actually been testing IE9 with the 'real'
> implementation all along, we have no real idea right now what would happen
> if we did this, so I'm inclined against it.
>
> Thoughts or concerns about this issue and any fix?
>
> --
> 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/e1628118-bb35-4d5a-aa31-b9ba1ce070ba%40googlegroups.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/e1628118-bb35-4d5a-aa31-b9ba1ce070ba%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%3DyUA26VSXTzM9MviU34o80e%3D-NCchT0qdkPu3MSeW04epceA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to