On Wednesday, September 11, 2013 3:10:56 AM UTC+2, Goktug Gokdogan wrote:
>
> I recently noticed that developers are forking c.g.gwt.useragent in order 
> to be able to add new browser permutations to existing ones. This is 
> suboptimal and causes code duplication and possibly trying keep it in sync 
> with the original during updates.
> The root cause of this is the determination of user.agent during runtime 
> is statically defined in this package. I created a patch so that code 
> snippets to extract user agent can be defined and injected from outside so 
> that new permutations can be added externally without forking the original 
> package.
>
> If you hit this issue before, please take a look at 
> https://gwt-review.googlesource.com/4500 and see if would make your life 
> easier.
>

Not opposed to it in principle, but adding a new user.agent is not an easy 
task, and more often than not people actually want to add a new property to 
be used in conjunction to user.agent in deferred-binding rules (e.g. 
https://code.google.com/p/google-web-toolkit/wiki/ConditionalProperties#Example_2:_Avoiding_permutation_explosion);
 
so I'm not sure this is the right move, as it makes it easier to do things 
the wrong way.

As a side note, I think we should add a way to "alias" property values so 
we can progressively rename "gecko1_8" to "gecko" and possibly "safari" to 
"webkit" [1] without breaking anyone. I think this can be "faked" today 
using fallback-value and excluding the fallback value from the possible 
values (i.e. <extend-property name="user.agent" value="gecko" 
fallback-value="gecko1_8"/><set-property name="user.agent" 
value="ie6,ie8,ie9,gecko,safari,opera"/> notice the absence of "gecko1_8" 
here but thanks to the fallback-value, <if-property-is name="user.agent" 
value="gecko1_8"/> should continue to work and match the "gecko" 
permutation) but we cannot <set-property> the user.agent property in GWT 
proper as it would break those who new values and expect the set of 
"possible values" to automatically grow with their new value.

[1] Daniel thinks we should add a "chromium" permutation –he said "blink", 
but I believe "chromium" would be a better name: it's not only about the 
rendering engine, but also the JS engine–, I know "webkit" can be used with 
other JS engines than JavaScriptCore but I'm unsure anyone would do it 
nowadays, and "webkit" probably still better matches reality than "safari".

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
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 google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to