From d7d2a5dd2b9539a3f6281611358b24e620aa0f7a Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Fri, 27 Feb 2015 08:25:44 -0600
Subject: [PATCH] filedrop: Support Firefox down to v6

Also, give a "Browser not supported" error for browsers which do not support
the Blob constructor.
---
 js/filedrop.field.js | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/js/filedrop.field.js b/js/filedrop.field.js
index 63b4b456a..d25c0d461 100644
--- a/js/filedrop.field.js
+++ b/js/filedrop.field.js
@@ -330,7 +330,8 @@
       globalProgressUpdated: empty,
       speedUpdated: empty
       },
-      errors = ["BrowserNotSupported", "TooManyFiles", "FileTooLarge", "FileTypeNotAllowed", "NotFound", "NotReadable", "AbortError", "ReadError", "FileExtensionNotAllowed"];
+      errors = ["BrowserNotSupported", "TooManyFiles", "FileTooLarge", "FileTypeNotAllowed", "NotFound", "NotReadable", "AbortError", "ReadError", "FileExtensionNotAllowed"],
+      Blob = window.WebKitBlob || window.MozBlob || window.Blob;
 
   $.fn.filedrop = function(options) {
     var opts = $.extend({}, default_opts, options),
@@ -380,8 +381,7 @@
       var dashdash = '--',
           crlf = '\r\n',
           builder = [],
-          paramname = opts.paramname,
-          Blob = window.WebKitBlob || window.Blob;
+          paramname = opts.paramname;
 
       if (opts.data) {
         var params = $.param(opts.data).replace(/\+/g, '%20').split(/&/);
@@ -477,6 +477,10 @@
         opts.error(errors[0]);
         return false;
       }
+      if (typeof Blob === "undefined") {
+        opts.error(errors[0]);
+        return false;
+      }
 
       if (opts.allowedfiletypes.push && opts.allowedfiletypes.length) {
         for(var fileIndex = files.length;fileIndex--;) {
-- 
GitLab