Revision: 9333
Author: [email protected]
Date: Wed Dec  1 10:08:22 2010
Log: Disable tests using toDataURL() or getImageData() on Safari 3.

Review at http://gwt-code-reviews.appspot.com/1176801

Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=9333

Modified:
 /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
 /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java
 /trunk/user/test/com/google/gwt/canvas/client/CanvasTest.java
 /trunk/user/test/com/google/gwt/canvas/dom/client/Context2dTest.java

=======================================
--- /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java Tue Nov 30 06:11:17 2010 +++ /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java Wed Dec 1 10:08:22 2010
@@ -19,8 +19,6 @@
  * Mozilla implementation of StandardBrowser.
  */
 class DOMImplMozilla extends DOMImplStandard {
-  private static boolean isGecko190OrBefore;
-  private static boolean isGecko190OrBeforeDetected;

   /**
    * Return true if using Gecko 1.9.0 (Firefox 3) or earlier.
@@ -28,20 +26,7 @@
    * @return true if using Gecko 1.9.0 (Firefox 3) or earlier.
    */
   @SuppressWarnings("unused")
-  static boolean isGecko190OrBefore() {
-    if (!isGecko190OrBeforeDetected) {
-      isGecko190OrBefore = isGecko190OrBeforeImpl();
-      isGecko190OrBeforeDetected = true;
-    }
-    return isGecko190OrBefore;
-  }
-
-  /**
-   * Return true if using Gecko 1.9.0 (Firefox 3) or earlier.
-   *
-   * @return true if using Gecko 1.9.0 (Firefox 3) or earlier.
-   */
-  private static native boolean isGecko190OrBeforeImpl() /*-{
+  private static native boolean isGecko190OrBefore() /*-{
var result = /rv:([0-9]+)\.([0-9]+)\.([0-9]+)?/.exec(navigator.userAgent.toLowerCase());
     if (result && result.length >= 3) {
var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) +
=======================================
--- /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java Thu Sep 23 12:26:00 2010 +++ /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java Wed Dec 1 10:08:22 2010
@@ -22,6 +22,23 @@
  */
 class DOMImplSafari extends DOMImplStandard {

+  /**
+   * Return true if using Webkit 525.x (Safari 3) or earlier.
+   *
+   * @return true if using Webkit 525.x (Safari 3) or earlier.
+   */
+  @SuppressWarnings("unused")
+  private static native boolean isWebkit525OrBefore() /*-{
+ var result = /safari\/([\d.]+)/.exec(navigator.userAgent.toLowerCase());
+    if (result) {
+      var version = (parseFloat(result[1]));
+      if (version < 526) {
+        return true;
+      }
+    }
+    return false;
+  }-*/;
+
   private static class ClientRect extends JavaScriptObject {

     @SuppressWarnings("unused")
=======================================
--- /trunk/user/test/com/google/gwt/canvas/client/CanvasTest.java Tue Nov 30 06:11:17 2010 +++ /trunk/user/test/com/google/gwt/canvas/client/CanvasTest.java Wed Dec 1 10:08:22 2010
@@ -34,6 +34,10 @@
   protected Canvas canvas1;
   protected Canvas canvas2;

+  native boolean isWebkit525OrBefore() /*-{
+ return @com.google.gwt.dom.client.DOMImplSafari::isWebkit525OrBefore()();
+  }-*/;
+
   @Override
   public String getModuleName() {
     return "com.google.gwt.canvas.Canvas";
@@ -68,6 +72,12 @@
     if (!canvas1.isSupported()) {
       return; // disable tests if not supported
     }
+
+ // Safari 3.0 does not support toDataURL(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("0px");
     canvas1.setWidth("0px");
@@ -141,6 +151,12 @@
     if (!canvas1.isSupported()) {
       return; // disable tests if not supported
     }
+
+ // Safari 3.0 does not support toDataURL(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("10px");
     canvas1.setWidth("10px");
=======================================
--- /trunk/user/test/com/google/gwt/canvas/dom/client/Context2dTest.java Tue Nov 30 06:11:17 2010 +++ /trunk/user/test/com/google/gwt/canvas/dom/client/Context2dTest.java Wed Dec 1 10:08:22 2010
@@ -40,9 +40,13 @@
   protected Canvas canvas2;

   native boolean isGecko190OrBefore() /*-{
- return @com.google.gwt.dom.client.DOMImplMozilla::isGecko190OrBeforeImpl()(); + return @com.google.gwt.dom.client.DOMImplMozilla::isGecko190OrBefore()();
   }-*/;

+  native boolean isWebkit525OrBefore() /*-{
+ return @com.google.gwt.dom.client.DOMImplSafari::isWebkit525OrBefore()();
+  }-*/;
+
   @Override
   public String getModuleName() {
     return "com.google.gwt.canvas.Canvas";
@@ -70,6 +74,12 @@
     if (!canvas1.isSupported()) {
       return; // disable tests if not supported
     }
+
+ // Safari 3.0 does not support getImageData(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("40px");
     canvas1.setWidth("60px");
@@ -195,6 +205,12 @@
     if (!canvas1.isSupported()) {
       return; // disable tests if not supported
     }
+
+ // Safari 3.0 does not support getImageData(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("40px");
     canvas1.setWidth("60px");
@@ -241,6 +257,12 @@
     if (isGecko190OrBefore()) {
       return;
     }
+
+ // Safari 3.0 does not support getImageData(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("40px");
     canvas1.setWidth("60px");
@@ -357,6 +379,12 @@
     if (!canvas1.isSupported()) {
       return; // disable tests if not supported
     }
+
+ // Safari 3.0 does not support getImageData(), so the following tests are disabled for
+    // Safari 3.0 and before.
+    if (isWebkit525OrBefore()) {
+      return;
+    }

     canvas1.setHeight("40px");
     canvas1.setWidth("60px");

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to