Status FileSender 1.5, 5 May 2011

FileSender 1.5 is our next major release.  It uses the same back end as 1.0, but a new front-end: without Gears, using the HTML5 FileAPI for uploading files larger then 2GB (already supported by FireFox4 and Chrome).  Uploads with browsers without (enough) support for the HTML5 FileAPI (Safari5, IE8, IE9) will be limited to 2GB and a very small Flash component will do the actual upload, providing us with a reliable progress bar.  The functionality is the same as with FileSender 1.0, but we will have gotten rid of Gears for uploads larger then 2GB, and of most of the Flash code.

FileSender 1.5 has now progressed far enough to be essentially working, but for small details.  You should be able to get a test install up and running using the 1.5 branche in our SVN repository.  If you do, please let us know at the filesender-dev list.  Now that we are at the stage where “it should work”, we can start with packaging, testing and debugging.  So all in all things are looking good.

What has happened the past weeks with FileSender 1.5?

The FileAPI code suddenly stopped working, after browser upgrades of FF and Chrome.  The HTML5 FileAPI spec writers discovered they had done something wrong, they changed the “slice method” definition in the spec and the early implementations (FF and Chrome) had to change their code which broke our code.  All is working again.  See at the bottom of the post for a more detailed explanation of what happened.

Remaining work: Upload

  • Implement Upload cancel functionality
  • Implement locking all fields while uploading a file
  • Check for undesired file extensions
  • Pull out a little bit of test code

Remaining work: Voucher

  • Implement the “Are you sure” question when a user cancels a voucher.

Remaining work: MyFiles

  • Implement the “are you sure” question when a user deletes a file
  • Implement the functionality to add a new recipient to an existing download

Remaining work: Stylesheet

  • simplify/tidy stylesheet and document it

Remaining work: Administration interface

  •  displaying query results over multiple pages

SVN repository, 1.5 branch

In the 1.5 branch the redundant flex frontend code, gears javascript code and file used for flex-php communication have now been removed.  All existing backend code is where it was.  The new Flex code for the little Flash upload component (that will do <2GB uploads in non-HML5 browsers) is in SVN

What happened with the HTML5 FileAPI slice code?

From 5.2.1. The slice method of the HTML5 FileAPI spec:

“Note: The slice method previously had different semantics, which differed from both Array.prototype.slice and String.prototype.slice [ECMA-262]. This difference was an oversight which has been corrected in this edition of the specification. Some user agents implemented the previous semantics, notably Firefox 4, Chrome 10, and Opera 11. These user agents have agreed to vendor-prefix their slice implementations in subsequent releases.”

Note the nice little bit about the vendor-prefix.  This results in our code now having this little addition:

if(file && file.webkitSlice )
var blob = file.webkitSlice(bytesUploaded, txferSize+bytesUploaded);
if(file && file.mozSlice )
var blob = file.mozSlice(bytesUploaded, txferSize+bytesUploaded);
if(file && file.slice )
var blob = file.slice(bytesUploaded, txferSize);

Great.  Brand new technology and already legacy issues 😉

Relevant links:

One response to “Status FileSender 1.5, 5 May 2011

  1. Pingback: Korkeakoulujen oma ratkaisu isojen tiedostojen jakoon – Signaali

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s