I've just opened
https://gwt-review.googlesource.com/7780 to make it possible to specify a fallback for any/all useragents that don't match one of the built-in rules, via a rule like:
<set-property-fallback name="user.agent" value="webkit"/>
This example rule treats any unknown useragent as if it were webkit, rather than the non-existent 'unknown' useragent, which subsequently tries to load undefined.cache.html, etc. This could also be used in conjunction with defining a user.agent value for unknown browsers and falling back to an existing one (like Thomas suggested), along with a possible error message, but that runs the risk of failing to match any CssResource @if rules, for example. This will of course create a huge amount of warnings in your application "Could not find an exact match rule. Using 'closest' rule..." when attempt to rebind things that cannot be matched to unknown and fall back to gecko1_8, etc.
<!-- Create new value, try and use ff details for it (most of the time) -->
<extend-property name="user.agent" values="unknown" fallback-value="gecko1_8" />
<!-- this line is not actually necessary unless you want to use a string other than 'unknown', and won't work before the above patch -->
<set-property-fallback name="user.agent" value="unknown"/>
<!-- 'most of the time' we want ff, except for a warning when the page boots. -->
<!-- To achieve that, we create a second entrypoint that extends the real one, but also displays a warning about this browser being unsupported -->
<replace-with class="pack.age.to.client.UnknownBrowserEntryPoint">
<when-type-is class="pack.age.to.client.RealAppEntryPoint" />
</replace-with>
Thomas, were you suggesting a filter in GWT itself to let the server do this, or to have an 'UnknownUserAgentEntryPoint' built into GWT itself?