On Wed, Nov 25, 2009 at 9:58 AM, Bruce Johnson <[email protected]> wrote:
> A) I want stack traces everywhere that it isn't costly.
<!-- This is a derived property that doesn't need a property provider
and indicates that getting a useful stack trace will be expensive -->
<define-property name="stackIsExpensive" values="true,false" />
<set-property name="stackIsExpensive" value="false" />
<set-property name="stackIsExpensive" value="true">
<any>
<when-property-is name="user.agent" value="ie6" />
<when-property-is name="user.agent" value="ie8" />
</any>
</set-property>
<!-- Assuming native is the default value. Since the native stack
isn't useful, optimize for code size -->
<set-property name="stack" value="strip">
<when-property-is name="stackIsExpensive" value="true" />
</set-property>
> B) I want stack traces on every browser possible, and for browsers in which
> it is costly, I want to only burden a random 2% of those users.
<define-property name="inStackExperiment" values="true,false" />
<property-provider name="inStackExperiment">
// Do something with cookies, recalculating value every week
</property-provider>
<set-property name="stack" value="emulated">
<when-property-is name="inStackExperiment" value="true" />
<when-property-is name="stackIsExpensive" value="true" />
</set-property>
<set-property name="stack" value="strip">
<when-property-is name="inStackExperiment" value="false" />
<when-property-is name="stackIsExpensive" value="true" />
</set-property>
> C) I want maximum fidelity stack traces everywhere, even paying for
> emulation on browsers that have native stack traces, if that's better.
<set-property name="stack" value="emulated" />
> D) I want the smallest possible script size by default, but I'm willing to
> burdon a random 2% of users to capture stack traces.
<set-property name="stack" value="strip" />
<!-- Assuming that native stack traces are good enough -->
<set-property name="stack" vaue="native" >
<when-property-is name="inStackExperiment" value="true" />
<when-property-is name="stackIsExpensive" value="false" />
</set-property>
<set-property name="stack" vaue="emulated" >
<when-property-is name="inStackExperiment" value="true" />
<when-property-is name="stackIsExpensive" value="true" />
</set-property>
--
Bob Vawter
Google Web Toolkit Team
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors