Friday, August 15, 2014

Re: Can I use to replace a Google class?

As usual, I found the solution within 15 minutes of posting the question.

The default replacement that GWT does is com.google.gwt.dom.client.StyleInjector.StyleInjectorImplIE for com.google.gwt.dom.client.StyleInjector.StyleInjectorImpl, so I need to replace my patched version of the IE injector for the class that GWT replaces, and I need to limit it to IE, because that's what the default does.  Also, the replacement class need to be in a client package.

    <replace-with class="com.db.dbpalace.client.patch.StyleInjectorImplIE">
        <when-type-is class="com.google.gwt.dom.client.StyleInjector.StyleInjectorImpl" />
        <any>
            <when-property-is name="user.agent" value="ie8" />
            <when-property-is name="user.agent" value="ie10" />
        </any>
    </replace-with>

Chris

On Friday, 15 August 2014 15:15:58 UTC+1, chris-x...@db.com wrote:
Hi,

I am having problems running in hosted mode (GWT 2.6.1) as a result of a possible bug in com.google.gwt.dom.client.StyleInjector.java (see Issue 8863).

The fix is simple, so I have created my own version of the problem class in my Eclipse project, and specified a <replace-with /> in the module file:

    <replace-with class="com.db.patch.StyleInjectorImplIE">
        <when-type-is class="com.google.gwt.dom.client.StyleInjector.StyleInjectorImplIE"/>
    </replace-with>

It doesn't seem to work.  Using the debugger, I still see the code in the original class being executed, and the resulting ArrayIndexOutOfBoundsException is thrown.  Is there a reason why I can't replace this class?  If so, can anyone suggest a way to get my patch into the project, preferably without replacing or modifying gwt-user-2.6.1.jar?

It looks like the original StyleInjector.StyleInjectorImplIE may be replacing StyleInjector.StyleInjectorImplIE.  Does <replace-with /> recurse through multiple levels of replacement?  Is there a way to see what browser-specific replacements happen by default?

Thanks,

Chris

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment