<!--
  Copyright 2010 Google Inc.

  Licensed under the Apache License, Version 2.0 (the "License"); you may not
  use this file except in compliance with the License. You may obtain a copy of
  the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  License for the specific language governing permissions and limitations under
  the License.
-->
<module type="fileset">
  <inherits name='com.google.gwt.useragent.UserAgent'/>

  <!-- Define the support property -->
  <define-property name="canvasElementSupport" values="maybe,no" />

  <!-- Give default support value of maybe -->
  <set-property name="canvasElementSupport" value="maybe" />

  <!-- Give default support value of no to unsupported browsers -->
  <set-property name="canvasElementSupport" value="no">
    <all>
      <when-property-is name="user.agent" value="ie8"/>
      <!-- removes IE9 fallback to IE8 -->
      <none>
        <when-property-is name="user.agent" value="ie9"/>
      </none>
    </all>
  </set-property>

  <replace-with class="com.google.gwt.canvas.client.Canvas.CanvasElementSupportDetectedMaybe">
    <when-type-is class="com.google.gwt.canvas.client.Canvas.CanvasElementSupportDetector" />
    <when-property-is name="canvasElementSupport" value="maybe" />
  </replace-with>

  <replace-with class="com.google.gwt.canvas.client.Canvas.CanvasElementSupportDetectedNo">
    <when-type-is class="com.google.gwt.canvas.client.Canvas.CanvasElementSupportDetector" />
    <when-property-is name="canvasElementSupport" value="no" />
  </replace-with>

  <source path="client"/>
  <public path="public" />
</module>
