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

Reply via email to