[Cosmo-dev] Bug 10304 and base64 encoding

Travis Vachon travis at osafoundation.org
Mon Sep 10 08:55:56 PDT 2007


Hi folks

A good amount of time was spent at the end of last week tracking down  
bug 10304:
https://bugzilla.osafoundation.org/show_bug.cgi?id=10304

It turns out this bug is due to one of the server layers using an  
unexpected default encoding when Cosmo is run on a Mac. As a result,  
this problem does not manifest itself on server instances hosted on a  
Linux machine. In particular, we're pretty sure this has never shown  
up on the Hub instance. As a result, Brian recommends in the bug that  
we punt until 0.8 or later, and I agree.

  At the moment we still have a number of changes from this bug  
checked in to the 0.7.2 branch. Probably the biggest change in terms  
of impacting user experience is the new base64 encoding of Atom entry  
content.

During the bug tracking process we checked in some code to base64  
encode the body of the <content> elements in the Atom feeds we get in  
the web ui. This was an attempt to find out whether base64 encoding  
would avoid the problem we seemed to be having with some of the more  
exotic unicode characters. Interestingly, it did, but this did not  
solve our problem completely, as the unicode characters were showing  
up in other places in the feed and the same bug (IE breakage and feed  
validation failure) was manifesting.

The results of this change include roughly a 20% increase in the size  
of feeds (8k->10k for the default "Home" collection and 138k -> 162k  
for the office calendar) and a considerable amount of extra client  
side processing (every character in the feed is run through the  
JavaScript UTF-8 and Base64 decoding code). In addition, this code  
really hasn't been tested thoroughly.

The one upside of this is that we're technically compliant with the  
Atom specification, though we could achieve this by changing the  
"type" attribute of our entries to "text/eim-json+xml" as well.

As a result, I'd like to back out the base64 encoding changes from  
the 0.7.2 branch. Any objections? If I don't hear anything I'm going  
to do this this afternoon (Monday the 10th).

-Travis



More information about the cosmo-dev mailing list