Saturday, May 30, 2009

Arora 0.7.1

There were two build errors in Arora 0.7.0.

- On Windows 0.7.0 didn't compile
- The build would sometimes fail when using make -jX where X is greater then 1.

0.7.1. Fixes both of these issues and you can download it from


Sunday, May 24, 2009

Arora 0.7.0!

Source packages are available on Binary package will be put up shortly as they are built.

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

Jakub Wieczorek Jakub Wieczorek

Benjamin C Meyer Benjamin C Meyer

Zsombor Gegesy Zsombor

Guillaume Martres Guillaume Martres

Benjamin K. Stuhl Benjamin K.Stuhl

Maia Kozheva Maia Kozheva

Kristof Bal Kristof Bal

Kenneth Rohde Christiansen Kenneth Rohde Christiansen

John Wimer John Wimer

Jakub Lužný Jakub Lužný

Christopher Eby Christopher Eby

axasia axasia

There are a handful of features that have been added in 0.7.0. The biggest is the Open Search support that was blogged about last week.

Also added is the ability to turn on ClickToFlash. When this is enabled flash plugins are not automatically loaded, but a button is shown that the user has to click first. As the Adobe flash plugin isn't exactly known as a quality piece of software that can crash and leak memory having the ability to prevent it from loading and a easy way to load it when really wanted is nice.

One of the big changes in 0.6.0 was that when the Oxygen style was detected it would automatically switch to Plastique. The main reason we did the Oxygen style check was to stop all the bug reports about painting bugs in Oxygen, but we still received a lot of bug reports, only this time it is that we were not picking up the KDE style. So this change was reverted and we will just continue to point our users to the Oxygen developers when they report a bug in Oxygen.

To go with the 0.6.1 release Arora's which had to work around the disk cache bug in Qt 4.5.1 the settings dialog now lets you configure the disk cache.

The full changelog:

- Add support for OpenSearch to the toolbar search
- Add the ability to search from the webpage context menu
- Remember the boxes checked in the Clear Private Data dialog
- Support Back, Forward, Reload and Stop keys on multimedia keyboards
- Add the ability to click a button before loading flash (clickToFlash)
- Allow to enable/disable the cache
- Allow to specify the maximum cache size
- Add a setting specifying if the application should quit when last tab is closed.
- Revert the check for the Oxygen style so when under KDE4 Oxygen will be
used even if it has issues.
- Fix mid click to paste urls into Arora to have them be loaded
- Fix crash in Clear Privacy Dialog when cache is disabled
- In the download manager change the "Ok" Button to "Close"
- Fix the positioning of new tab and close tab buttons. Comparing to 0.6 they are just swapped now.
- Only set a git version if the string is not empty
- Update the tab bar visibility action when retranslating.
- Make refresh be both F5 and Ctrl+R
- Update year in copyright
- Fixed some spelling mistakes
- Ctrl+L does not function when the toolbar is hidden.
- Fix a typo in Info_mac.plist.
- Enable multiple selection in the history tree view.
- Respect the setting to hide confirmation of closing multiple tabs when quitting too
- Fix a problem with cookie rule deletion
- Improve handling of unreachable sites.
- Create a new tab only when left button is double-clicked.
- Improve XBel importing
- Don't fill the history with error pages.
- Improve the site icon when dragging. When the mouse is over it show the arrow cursor, Set the drag icon to the site icon, and set the drag text to the page title and not the url. (Example drag to the toolbar you want to get the title not the url)
- Only save the cookie exception rules if the dialog is accepted.
- Set cookies to 'session only' if new rule introduced that would only allow them for the session.
- Add ability to filter out tracking cookies, eg Google Analytics.
- Add 'Add Rule' button to the cookie dialog to create an exception on the current cookie.
- When a cookie is a session cookie show the string 'Session Cookie'
- Improve the cooking blocking implementation
- Add subdomain checking, eg when the policy says 'block', then it will block cookies from '', '' but not from ''
- Handle cookie rules with starting dot correctly

Behind the scenes
- Add a subclass of QWebPluginFactory that can be used for managing QWebPlugin's
- Add a static BrowserMainWindow::parentWindow(QWidget *) method that returns a main window being one of the passed widget's parents.
- Move QTRY functions into their own header file as it has no dependency on Arora and can be used by tests that don't require BrowserApplication
- Mark strings as not translatable where it doesn't make sense
- Move location bar site icon class into its own file
- Move the privacy indicator out into its own class and file
- Move the location bar classes into a location bar folder
- Add api to get the clear button and search button in the SearchWidget
- Remove the word 'slot' from the functions that are slots to be consistent with the reset of the source code.
- Don't translate dummy strings in the ui file
- Move HistoryManager into its own file and move the history classes into their own folder.
- Conserve memory by atomizing history strings
- Code style: Add m_ prefix before private variables
- Improvements & cleanup to the about dialog
- Improve the three editviews
- Add manualtest for the three edit views and an autotest for the editlistview.
- Change placesimport to correctly use SingleApplication
- Add WebPage::linkedResources(const QString&) method that returns a list of resources attached to the main document
- BrowserApplication::mainWindow() returns the currently active window

Build system
- Remove one second punishment because it didn't work and I didn't make autotests when I was punished
- Add foreach() style error to look for and fix existing occurences.
- When building by default don't have lrelase be verbose as it du/mps a lot of junk on the console
- Add commit hook to do basic style checking on the files being commited
- unset GIT_DIR to fix warnings that are printed to the console
- When building Arora also don't allow casts to ascii to detect bugs.
- Share compiled object files with the main arora binary to reduce build times


Sunday, May 17, 2009

OpenSearch support

Arora has had a toolbar search since the beginnings. Its limitation is that you can only search on one particular search engine which is currently Google and you are not able to add new engines, while many browsers offer much more. And as changes in this area were repeatedly requested, we decided to take up this subject and yesterday fruits of our work were merged into the mainline, which will become 0.7 in a week. The most significant change is that now you can have as many search engines in the toolbar search as you want. You can switch between them using the toolbar search menu, which used to display recent searched phrases.

Following the topic of this blog - we decided to base our implementation on the support for OpenSearch format. It's a XML-based format describing search engines - see for more information. So what exactly does it mean for the end user?

First off, it allows you to easily add new engines to your collection. And as the format is very popular, you'll have no problem finding custom search engines. Many sites provide OpenSearch descriptions of their own search engines. They very often link descriptions with the sites - Arora will pick them up and list available engines in the toolbar search menu. When it founds any, you will be able to install those search engines just by one click.

There are also sites like out there which collect dozens of OpenSearch described search engines in one place. Those allow you to add new engines to your collection just by clicking on specific links. Of course you are always asked if you really want to have the requested engine installed.

A simple manager has been created to allow some basic management like adding/removing engines. You can also restore default engines that are shipped with Arora and add new engines from local files.

While support for Google suggestions in the toolbar search popup has been introduced in 0.6, the OpenSearch implementation includes support for suggestion services linked in OpenSearch descriptions. Now you'll be provided suggestions whenever an engine supports them.

The context menu in the web view got integrated with OpenSearch engines. Now you can easily search for selected text using installed engines.

Please note that from the technical point of view, Arora does not support the entire OpenSearch standard. We've added support for most of the main specification aspects. As the specification is under strong development, we also have to support stuff that isn't in the specification any more but is still widely used out there.

We will be looking into new ways to integrate the OpenSearch capabilities even more and make searching easier and faster.

Also today we had a string freeze and we are going to release 0.7 in a week. In the meantime, any help with updating translations would be appreciated. If you are interested, checkout the translations wiki page.

Thursday, May 7, 2009


When using Arora with Qt 4.5.1 after a little while pages will stop rendering. This is because of a bug in 4.5.1 where renaming a file will cause the file descriptor to not be closed. QNetworkDiskCache is a simple cache and uses QTemporaryFile's for each new cached file and eventually the kernel wont let QNetworkDiskCache open a cache file because all of the previous files were not closed by Qt. When running against Qt 4.5.1 Arora will now disable the disk cache. This is the only change in 0.6.1. In the current version from Git, what will become 0.7.0 you can also now disable the disk cache and configure the size in the settings.

You can get the source tarball for 0.6.1 from