Another busy bug fixing week is over. We are currently focusing on getting even the most obscure bugs out of the 0.8 line. Beyond just fixing bugs we are permanently increasing the coverage of our unit tests and adding more checks to our nightly build.

Framework

BaseString

Since our concentration was on the BaseString class due fixing bug #2045 we increased the coverage of our unit tests to detect any related errors quicker in the future.

Type checks

Type checks in JavaScript are surprisingly hard to get right. To solve this issue on a framework level we have introduced the qx.lang.Type utility class, which contains type checks for all native JavaScript types. The implementation is based on the technique described in the article "`instanceof` considered harmful (or how to write a robust `isArray`)" by Kangax. We plan to gradually update the framework code to use these type checks.

New low-level Lifecyle class

This week we introduced a new class qx.bom.Lifecycle to add support for BOM applications to get informed when the classes/application is ready.
This new class is now also used by the BOM skeleton.

Applications

API Viewer

The API Viewer got some polishing last week. To focus on the relevant parts of a class one can choose to hide protected or private methods or any property-related method. Bug #2019 described that if one would try to access a hidden method, an error message would state that this method does not exist. This was both confusing and annoying so we are glad that we resolved this issue.

Test Runner

The Test Runner's tree view now features visual feedback on the tests' status: Failed tests are marked with a red icon, while packages and classes containing failed tests sport a little exclamation mark. Also, clicking a test in the tree will scroll the Results pane to the corresponding result.

Bugfixes

IE: Using images with absolute URLs under HTTPS

External images which were referenced with an absolute URL didn't work with IE under HTTPS. The reason why this only affected IE is that this browser needs some extra handling for resources when HTTPS is used. Every resource has to provide an absolute URL otherwise an "Unsecure Warning" is shown. Nevertheless, everything is working now.

IE: Opacity issue

We're using an alpha filter to visualize opacity under IE browsers. However, at least IE 7 had a major issue with setting the opacity alpha filter at DOM elements with several child elements. The opacity value was inherited incorrectly to the children DOM elements leading to wrong opacity values overall. See Bug #1894 for more details.

Inline Application

Fixed a strange bug (report #1132) where the browser would freeze when moving a window widget outside the view, scrolling to the window and then trying to move the window back. The problem was that the browser tries to update the scroll bars when the window is moving. To fix the issue we have added a blocker behind the window for when the window is moving. This avoids a scroll bar update, since the size of the view doesn't change at the time of moving. While fixing the issue, we found out that the MBlocker sometimes doesn't behave as expected in an inline application, this is fixed too.