Important bugfixes in the last week – Part 1 (backend and performance)

As mentioned in yesterday’s status report a lot of last week’s bugfixes fix important or longstanding issues and deserve special attention. This is the first part (of two) describing those important fixes in more details. So let’s get down to business:

  • Bug 323011: Unifinder default option should not be ‘all events’
    When working with larger calendars our startup time was pretty horrible. One major cause of this was “Event List” (aka unifinder), which by default would display all events of all activated calendars. This can of course take some time, especially if you have a lot of larger calendars.

    What we did to fix this is look at how people use the unifinder. We noticed that most people seem to use it to look at the events of today or maybe the next few days, but not the events of two years in the past. So from now on, the unifinder will only display today’s events by default. You can of course still configure it to display other timeranges. Thanks go to Philipp for implementing this and to Daniel for his review.

  • Bug 328996: guessSystemTimezone doesn’t take northern/southern hemisphere into account
    When you start Lightning or Sunbird for the first time, it tries to guess in which timezone you are working. In the past our algorithm for doing this did a poor job in some cases. While it would normally guess the time offset correctly (e.g. if you were living in central Europe, it would guess that you were in GMT+1), it did a poor job on guessing your real location. This sucks, because if you are living in Germany and Sunbird thinks that you are working in Algeria, then stuff like daylight savings time wouldn’t work correctly. In addition other places in our app sometimes got confused if your configured timezone in the application was different from your system timezone.

    This bugfix should fix 99% of all those issues. We believe that it will drastically improve the reliability of Sunbird’s or Lightning’s time reporting and will also reduce support questions. Thanks go to gekacheka for providing the patch and to Clint for reviewing it.

  • Bug 393395: Offline Support infrastructure: Synchronization interfaces
    In the past if you were working with remote calendars, you could only use Lightning or Sunbird when you were online. With this patch we’ve made the first step into the world of offline support. Please note that the current state of offline support is still considered experimental. But it should already work in most cases. Thanks go to Daniel and Philipp, who implemented and reviewed this.
  • Bug 402518: Enhance storage provider to store foreign timezones
    The issue that this bug fixes is probably the most reported bug for Lightning and Sunbird to date. Until now, our apps would not recognize the timezone definitions in an .ics file, that had been created by other apps (like Outlook, iCal, Evolution, etc.). The effect was, that our apps would go berserk and simply assume that the timezone would be GMT (Greenwich Mean Time) or that there was no timezone mentioned in the imported file at all. That lead to events being displayed at the wrong time. A pretty serious issue for a Calendar application to be honest.

    This bugfix should fix this issue once and for all. However timezones are a delicate thing and it’s easy to miss someting. Therefore we could need some help in testing current nightly builds, so that we’re not in for a big surprise once 0.8 is released. Nevertheless we believe that it will drastically improve the reliability of Sunbird’s or Lightning’s time reporting and will also reduce support questions. Thanks go to Daniel for fixing this beast, that has plagued for such a long time and to Clint for reviewing the patch.

  • Bug 408727: Monthview is slow in sorting events
    In the past we have heard some reports of Lightning or Sunbird being slow with larger calendar files. We are currently investigating the roots of the performance issues. One of the first results of this investigation is this patch. We noticed that we were doing unnecessary complex calculations when building up the month view to display a calendar. While this fix alone will not suddenly make the app Lightning-fast, the positive effect should still be noticeable. Thanks go to mvl for providing the patch and to Mickey for reviewing it.
  • Bug 411690: Avoid unifinder startup load
    This is another case of us doing unneccessary work. In the past we would always update and refresh the unifinder, regardless of whether it was displayed or hidden. From now on, we will only update and refresh the unifinder when it is active. So if you don’t use it at all or only sometimes, we will use the cycles of your computer more effectively. Thanks go again to Philipp for implementing this and to Mickey for reviewing the patch.

That’s it for today. Tomorrow I’ll present to you our recent improvements in the front-end and the UI. Stay tuned!


  1. I can’t wait for 0.8, it’s going to be fantastic! Thanks to everyone for their ongoing efforts.

  2. Thanks to all you guys .. you guys ROCK !!!!!!!!!!! .. keep up the good working .. waiting for official 0.8 version