Sunday, August 30, 2009

Arora 0.9.0!

Source, Windows and OS X and binary packages are available on arora-browser.org.

First off a big thanks to everyone who contributed to this release:

Benjamin C Meyer Benjamin C Meyer ben@meyerhome.net

Jakub Wieczorek Jakub Wieczorek faw217@gmail.com

Christopher Eby Christopher Eby kreed@kreed.org

Zsombor Gegesy Zsombor Gegesy gzsombor@gmail.com

Alexandre Dupas Alexandre Dupas alexandre.dupas@gmail.com

Tom Gundersen Tom Gundersen teg@jklm.no

Slim Amamou Slim Amamou slim.amamou@gmail.com

Simon Hausmann Simon Hausmann simon@lst.de

Oscar Blumberg Oscar Blumberg o.blumberg@robertlan.eu.org

ondrejcernos ondrejcernos cernoso@gmail.com

Markus Goetz Markus Goetz markus.goetz@nokia.com

John Wimer John Wimer john@god.vtic.net

Dominik Riebeling Dominik Riebeling bluebrother@gmx.de

axasia axasia axasia@gmail.com


While 0.8.0 had many new features the majority of changes in 0.9.0 are bug fixes. There were several more features that were near completion, but the Arora policy is to only merge a branch when it is ready. Given that we the project has near monthly releases this isn't as harsh as other project such as KDE that have a six month release cycle. With a longer release cycles developers are likely to try to push in incomplete features near freeze deadlines just to have them in while with a short release cycle they are more willing to wait another month knowing that their branch will be more stable when the users get it. The hopeful result is a better application that is more stable and feature complete.

Apart from the dozens of bug fixes, there are a few significant improvements, one of which are long awaited search keywords which allow you to define a set of keywords for each search engine and then use them in the location bar, following them with the phrase that you want to search for. The screenshots should explain it better than any words:





Another notable change in this release was dropping support for Qt 4.4. Arora now requires Qt 4.5. The main reasons were:
- The QtWebKit version in 4.4 is significantly slower then the one today and does not include many features such as plugin (aka flash) support and many WebKit bug fixes.
- Supporting 4.4 was requiring more and more ifdef's as Arora has incorporated new features in Qt and QtWebKit.
- With KDE 4.3 requiring Qt 4.5 it is very likely that distributions will already have 4.5 (or will shortly).
- We really want to encourage QtWebKit application users to be using newer versions of QtWebKit (and thus Qt)

The full changelog:

0.9.0
Drop support for Qt 4.4.

Interface
FEATURES:
- Add support for search keywords in the location bar.
- POST support for OpenSearch suggestion requests.
- Add WebKit version to the About dialog [WebKit trunk only].
- Use HTTP pipelining for all network requests [Qt 4.6 only].

IMPROVEMENTS:
- Remember last used save directory.
- Added file dialog to download location settings.
- Restrict drag and drop to the same page unless a QWebView accepts it.
- Open an URL dropped on the tab bar as new tab or replace existing tab.
- Allow url to be dropped on the tab bar from other applications.
- Add a Select All action.
- Rather than not allowing setting or getting of any cookies in private mode create a blank cookie jar.
- Significantly speed up the cookie dialog by keeping a cached copy of all the cookies.
- Enhance the language manager to fallback to the country file if the country_language file doesn't exists.
- Add drag support for downloaded item in the download manager.
- Add Planet Qt to the default set of bookmarks.
- Remove the text wrapping option from the source viewer's menu and instead enable it by default.

BUGFIXES:
- Avoid duplicated and contradictory rules on the cookie rule list.
- Change the shortcut for showing the bookmark toolbar as it was conflicting with the show bookmark dialog shortcut.
- Encode the user input before inserting it into an URL template.
- Fix a crash when cloning a blank tab.
- When the widget losses focus hide the access keys.
- Fix detection of flash on various websites when ClickToFlash is used.
- Avoid an infinite recursion when asking the desktop to open an URL.
- When the download manager prevents the application from closing add a new tab when there are none.
- Only show the url completer if the user is typing a url.
- Always add the Inspect Element Action to the context menu when the developer extra tools are enabled.
- Bookmarklets were not working properly.
- Work around for a segfault in Qt 4.5.2 where you go into privacy mode while a QNetworkReply is still working.
- Clarify the networkdisk cache behavior in the messagebox.
- Start page: Reduce the top margin to 100px from so it fits on a netbook screen.
- Hide the bookmarks toolbar by default.
- Turn off cookie tracking filtering by default because it breaks sites like StackOverflow.com.
- Before clearing the cookie jar, load it so the exceptions and other settings are loaded.
- When removing cookies from the cookie jar via the cookie dialog notify the autosaver.
- When receiving a drop event on a bookmark folder, make sure that we don't drop a child bookmark.
- Avoid overwriting the user agent string in the WebPage autotest.
- Fix non-ASCII characters displayed garbled for Authors.

Behind the scenes
- Merge two blocks of code that deals with oneCloseButton policy.
- Make parentWindow() prettier.
- Simplify updates of actions in view menu.
- Save the window state when toggling the menu bar.
- Save UI changes in the active window before creating a new one.
- Move all network related files into one directory.

Build system
- When building on osx use qmake -r.
- Ignore generated files built on windows.

Sunday, August 9, 2009

WebKit Version

A missing feature of the QtWebKit API has been the ability to determine what version of WebKit you currently had. While you could parse it out of the user agent that was clumsy and in fact the version number in the user agent was hard coded into QtWebKit (and out of date!). Recently Robert Hogan wrote a patch for QtWebKit that not only properly determines the WebKit version, but also adds new API to QtWebKit to determine the values. This API will be part of Qt 4.6 and when building with WebKit trunk (and 4.6 once Qt master's copy of webkit is synced) Arora will show the current WebKit version in the about dialog.

Saturday, August 8, 2009

QNX, WebKit, and Arora

Recently on the Qt Labs blog Harald posted about a new port of Qt to QNX. On the blog there is a video where you can see QtWebKit rendering and today I got a email with a photo of Arora running on QNX. Because of Qt just like Arora builds on OS X, Windows, Linux and Embedded Linux Harald didn't have to make any changes to the code to build the binary. Although from the photo you can see that if for such a small device you would want to tweak the interface a bit or at least hide the toolbars and status bar from the view menu (which can also be hidden with ctrl-m).