Quellcode durchsuchen

Check if canvas is supported before trying to render the user avatar.

JC Brand vor 11 Jahren
Ursprung
Commit
4a1eac06cb
2 geänderte Dateien mit 8 neuen und 3 gelöschten Zeilen
  1. 1 0
      CHANGES.rst
  2. 7 3
      converse.js

+ 1 - 0
CHANGES.rst

@@ -5,6 +5,7 @@ Changelog
 ------------------
 
 * Don't load OTR crypto if the browser doesn't have a CSRNG [jcbrand]
+* Check if canvas is supported before trying to render the user avatar [jcbrand]
 
 0.7.0 (2013-11-13)
 ------------------

+ 7 - 3
converse.js

@@ -1207,9 +1207,13 @@
                     return;
                 }
                 var img_src = 'data:'+this.model.get('image_type')+';base64,'+this.model.get('image'),
-                    canvas = $('<canvas height="33px" width="33px" class="avatar"></canvas>'),
-                    ctx = canvas.get(0).getContext('2d'),
-                    img = new Image();   // Create new Image object
+                    canvas = $('<canvas height="33px" width="33px" class="avatar"></canvas>').get(0);
+
+                if (!(canvas.getContext && canvas.getContext('2d'))) {
+                    return this;
+                }
+                var ctx = canvas.getContext('2d');
+                var img = new Image();   // Create new Image object
                 img.onload = function() {
                     var ratio = img.width/img.height;
                     ctx.drawImage(img, 0,0, 35*ratio, 35);