Switching to bzr for tight Launchpad integration

Judging by what the duck says Midori must be the only project in the world migrating from git to bzr. Or maybe, it was just so surprisingly quick and simple that there’s no need to brag about it. In fact Launchpad itself performed the import automagically and the switch is really about updating documentation and a cuple of hyperlinks. It might’ve been harder if I wasn’t familiar with bzr yet; pushing the new trunk and flipping an option to make it the focus branch was all that was needed.

The old world

Why did we actually make this step? To make project management more efficient. Midori as a project roughly might be split into

  • bug triaging
  • reviewing contributions
  • implementing code
  • design decisions
  • roadmap

It turns out a huge bottle neck was the manual effort standing between these separate aspects. For example anyone doing bug triaging wouldn’t have direct access to code. And code review was always separate from both code and bug management. To the point that people end up waiting on, looking for and blocking on each other. And losing contributors, which is the worst thing to happen to any free software project.

The new world

  • There’s an obvious, easy way for anyone to push branches
  • Code review is integrated with branches and bugs
  • Anyone can become a reviewer, merge and push code

bzr vs. git

I do enjoy a proper emotional project bashing as much as the next guy, especially with a beer in front of me. But really, these days bzr and git both have a comparable share, personally I work on either one on and off. And at the end of the day what counts is the health of Midori as a project. Bazaar may well have the weaker storage efficiency and performance compared to git in a benchmark, but in this case git had the higher human cost.

Go ahead and contribute now

And, with a miserable impersonation of River Song I’ll say “There is more exciting changes to come… spoilers”.

WebKit2, downloads, web apps and clang

With a slightly prolongued freeze period Midori 0.5.1 0.5.2 is out of the door. We made a big leap on the promised WebKit2 support – it’s not fully done yet but very, very usable despite not having context menus and some extensions are to be done. Definitely worth giving a go for anyone curious about multi-process goodness who can live without adblock if need be.

Downloads and web app support have both received major refactoring, making the code much more modular and approachable, and fixing buglets and adding polish along the way. Downloads work more reliably across windows and more quality control across panel and toolbar. The way is paved for even more goodness. For the first time you can manage web apps/ launchers created from within Midori graphically. This is also up for even more improvements.

To round it up a whole lot of code improvements have come from static analysis such as clang (LLVM) and other sources and a number of buglets were squashed. Despite all the bigger changes QA is looking very good. Note to self: having strict feature freeze periods before every release is paying off, even if it’s hard in a small team.

Update: I apparently goofed up the release process and 0.5.1 insists it is still 0.5.0. To reduce confusion this is 0.5.2 now, same thing, but with a proper version.

So download Midori v0.5.2 (1.1 MB) (MD5) (ChangeLog) already!

Also Midori v0.5.2 32-bit Portable for Windows (32 MB) or Midori v0.5.2 32-bit Installer for Windows (34 MB) now. You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. You can make the difference by helping out!

WebKit2, Cookie Policies and more

It’s this time of the month again. Midori 0.4.9 is there, 3 weeks of features and 1 week of bug fixes is the new mantra, giving everyone higher quality as a result.

Anyone experiencing crashes on closing Adlock preferences, using Backspace in the urlbar under the wrong circumstances or attaching the inspector will rejoice, those buglets were resolved. Along with a resizing issue in the news feed extension and possible loss of the saved tab session if the disk is full.

A new extension is being developed to manage cookie accept behavior per domain. Too late for feature freeze it’s excempt from stable installs, but interested folks can try it in a build from source, likely to be available in the next cycle.

Midori relies on GTK+ 3.4 touchscreen support now, including kinetic scrolling. This lets us drop extra support code and rely on the same code used by other applications.

As a small bonus, ‘Google Translate (gt)’ was added to the default search engines. Use “gt WORD” or “gt URL” to translate using Google’s translation service. You can also right-click a selected word and use ‘Search with’ to the same effect.

Evidently the coolest thing to announce is WebKit2 preparation – again, preparation not full support. Indeed –enable-webkit2 will build Midori with the multi-process API. Most non-trivial features are silently missing but it’s the first step into a shiny new world.

So download Midori v0.4.9 (1.1 MB) (MD5) (ChangeLog) already!

Also Midori v0.4.9 32-bit Portable for Windows (31.9 MB) or Midori v0.4.9 32-bit Installer for Windows (33.2 MB) now. You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. You can make the difference by helping out!

64-bit Windows and FlashGet

Here we go with the Windows build following Midori 0.4.8. For the first time, an experimental 64-bit version is available – no HTML5 video just yet. FlashGet is supported as an external download manager: just like on Linux and BSD, in the Preferences under the Extensions tab it can be activated.

Again, portable mode is officially supported. The 7z versions include a “portable.bat” which runs Midori out of the folder. It can be copied to a USB stick and will keep all data in the “profile” folder in the same folder instead of storing files in the system user folder.

Get Midori v0.4.8 32-bit Portable for Windows (31.9 MB) or Midori v0.4.8 64-bit Portable for Windows (22.8 MB) or Midori v0.4.8 32-bit Installer for Windows (33.2 MB) now. You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. You can make the difference by helping out!

Goulash needs to cook long to be tasty

As they say, the exception proves the rule. Consequently Midori 0.4.8 fermented a little longer than most releases. The number of bug fixes is too plenty to make for a good read: let it be said that bugs in 0.4.7 with opening Midori in different modes, GLib-related build errors and forever delayed pages are gone – now on to the new features.

Autocompletion includes open tabs now, is generally more responsive and open to more extensions in the near future. Speaking of extensions, Netscape plugins can be individually enabled and disabled seemlessly.

Icon loading received a major refactoring, bookmarks and search engines mostly wave goodbye to the well-known “default icon”.
Support for Granite 0.2 was improved big time. As a treat, autocompletion features a side-by-side layout.
To round things up, inline search highlights all matches by default to increase readability and the urlbar tries harder to keep selected text working as expected.

Spoiler alert: The Win32 version will support FlashGet. Updated builds are still in the making. Incidentally if you missed it, on Linux wget, SteadyFlow or any other command line-accessible external download manager can be used.

So download Midori v0.4.8 (1 MB) (MD5) (ChangeLog) already!

Bringing GTK+3, Faenza and Flash to Windows

Meet the former experimental Windows build going gold with Midori 0.4.7. This was the build that added HTML5 video codecs and proper Unicode support (read: Japanese/ Chinese font display). Add to that GTK+3 support, Faenza icons and Netscape plugins – yes, that means Adobe Flash works out of the box.
We started shipping CA certificates as Windows doesn’t have these system-wide by default.

angry birds html5 game on windows

Spell checking is also supported if you download the OpenOffice dictionaries and copy them into share/myspell/dicts/ in Midori’s installation folder. All of those dictionaries would roughly equal the size of Midori so we opted for not including them by default.

Known issues in this release

  • You cannot resize the Feed Reader extension properly
  • Cursor does not change appearance on links/ text areas
  • The History list extension is currently not usable

A portable mode is now officially supported. The 7z version includes a “portable.bat” which runs Midori out of the folder. It can be copied to a USB stick and will keep all data in the “profile” folder in the same folder instead of storing files in the system user folder.

Get Midori v0.4.7 Portable for Windows (33.4 MB) or Midori v0.4.7 Installer for Windows (34.6 MB) now. You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. You can make the difference by helping out!

Downloading, certificates and funny acronyms

Midori 0.4.7 has reached a new level of downloading experience. Panel and statusbar consistently verify file integrity, show size, remaining time and speed of a file. An icon and expected file size are displayed before saving a file. External download managers, namely SteadyFlow, Aria2 or command-line based such as wget are available in the preferences. To counter phishing sites which fake downloads as demonstrated by Michal Zalewski the origin of the file is clearly visible. Finally, you can now save whole websites including any images, scripts and other resources – optionally.

On the topic of security Midori has reached another milestone. Goodbye colorful urlbar, you were beautiful but let’s face it, once you get used to the colors nobody pays attention even when it’s read. What this means is that SSL errors are now fatal by default – conveniently we can use GCR, a library based on GNOME keyring, to show plenty of detail for a certificate. Once you “Trust” a website other GCR-using applications can also trust it.
The cherry on the secure cake is HSTS, not to be confused with whatever Wikipedia may suggest it stands for, HTTP Strict Transport Security, which Midori recognizes and caches behind the scenes – no UI by design, you get SSL without typing https.

For lots of other exciting goodies in this release, see the ridiculously long beast of a change log. And stay tuned on the Windows build – it’s going to follow soon.

So download Midori v0.4.7 (1 MB) (MD5) (ChangeLog) already!

Bag of buglets

Time for a bag full of bug fixes. Prominently 0.4.5 has a regression that causes security status to not work at all, so I urge all 0.4.5 users to update immediately.

We fixed potential crasher bugs in the geolocation infobar, about:version on some systems and opening bookmarks from Unity global menu in Ubuntu 12.04.

Problems with wrong page icons in multi-frame sites like Google Mail or Tumbler have been addressed. If WebKit 1.8.0 is available Midori will use its WebKitFaviconDatabase interface to improve page icon consistency.

Chinese users will like that Midori now offers both Simplified and Traditional Chinese charsets out of the box in case you need to override it.

Finally, say goodbye to empty tabs due to opening download links with a target. Kudos to Martin for looking into that!

So download Midori v0.4.6 (951 kB) (MD5) (ChangeLog) already!

Also Midori v0.4.6 Stable for Windows (18 MB) and Midori v0.4.6 Experimental for Windows (30 MB). You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. YOU can make the difference by helping out!

Love for Downloads, Windows and more

A feature that excites me personally a lot is support for external download managers. You will find Aria2 and SteadyFlow support in the preferences under Extensions. Once activated, the Save button in download prompts offloads downloads instead of saving the file internally. This means you can stop worrying if Midori keeps run all the time, you may get faster downloads than WebKit can provide and in the case of SteadyFlow a GTK+ UI with support for Ayatana indicators. Do note currently only Aria2 recognizes Cookies from the browser, and if a particular download doesn’t work, use Save As instead.

There have been some erroneously blocked links with Adblock. This has been solved by introducing an automated whitelist for actively opened pages. The whitelist may be extended for other uses cases in the future. There’ve also been bug fixes around the Block Image feature which broke in certain cases.

Despite known problems with GTK+3 Midori supports overlays for the statusbar and inline find bar with GTK+ 3.2. Optionally there’s also support for Granite, an extension library written in Vala, which among other things provides pop-overs and a new notebook widget. At the moment it’s still under development and it’s not recommended for packaging just yet. But you can try it with –enable-granite –enable-gtk3.

The Windows build got some love, opening of downloads now falls back to an ‘Open With’ dialog automatically and opening of images works well. Application associations such as the text editor for viewing source code also give a more sensible choice. And the experimental Windows build is pretty solid at this point. You get full Asian font support (Unicode) and HTML5 video support.

The about:version page Midori has to provide information useful for debugging is now also listing other special pages, such as the newly added about:geolocation to test geo location support if it’s enabled in WebKit. In contrast to some websites out there, it will give accurate results not affected by browser discrimination.

Uses of sqlite, which is relevant for for history, bookmarks and cookies have been tweaked. WAL mode is now used if the system supports it. In short, it is faster.

Smaller issues also got attention, like internal javascript improvements which could break Google apps among others, there was a case where form history could break a website and invalid characters in filenames are handled better.

Last but not least, you can right-click Back and Forward buttons now, to get a menu with the 10 last or next pages. So if there’s a website re-directing you when you hit Back, you can now right-click Back and open it manually.

So download Midori v0.4.5 (951 kB) (MD5) (ChangeLog) already!

Also Midori v0.4.5 Stable for Windows (12 MB) and Midori v0.4.5 Experimental for Windows (30 MB). You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. YOU can make the difference by helping out!

Menubars, GTK+3 and site data rules

Once again we made improvements to the GTK+3 support which was part of the reason the release was delayed. Unfortunately several remaining behavioral issues which couldn’t be tracked down to Midori code indicate it’s still not on par with GTK+2. Build with –enable-gtk3 to enable GTK+3 support.

The work-around for the infamous clipboard bug was removed for >= WebKitGTK+ 1.4.3. It’s however recommended to upgrade WebKit if possible because it also affects applications like Empathy and Devhelp.

Unity menubar support was improved, including a work-around for the hardcoded blacklisting in menuproxy. In this instance I was a bit disappointed that there was no attempt from the maintainers to bring the problems to our attention rather than silently disabling it and waiting for users to give very puzzling problem reports.

DuckDuckGo has been the default search engine for a while. Meanwhile it received several improvements. Midori now co-operates with the search engine so that some revenue from the advertisements is donated to Midori by using a constant, non-unique tag. Incidentally, there will be Midori stickers on Chemnitz Linux days made possible by donations.

The experimental fullscreen API used by HTML5 video websites is now supported. Bookmark deletion and export were fixed. IPv6 addresses are handled better when typed in the urlbar. An ‘Open in Image Viewer’ feature was implemented. The = key in Ukrainian layout is handled better. Speed Dial features drag and drop re-ordering.

When starting Private Browsing mode a new informative page is shown lining out the key facts differently to normal web browsing sessions. Midori should be secure by default, but users also need to understand why that is the case, rather than trusting it blindly.

As a last-minute goodie, if Midori is run with less than 352 MB RAM, the page cache is automatically disabled which greatly improves memory usage in such setups.

The experimental site data policy finally allows basic whitelisting and blacklisting of web cookies, local databases and preserving of values when clearing private data. Do note however at this point this is not complete, and there is no UI yet. In this spirit, the Clear Private Data dialog also unifies the different types of site data.

So [http://archive.xfce.org/src/apps/midori/0.4/midori-0.4.4.tar.bz2#!sha1!ead09b6ceb9cadc4c22761490cbf9914346b7ee0 download Midori v0.4.4] (940 kB) ([http://archive.xfce.org/src/apps/midori/0.4/midori-0.4.4.tar.bz2.md5 MD5]) ([http://git.xfce.org/apps/midori/tree/ChangeLog ChangeLog]) already!

Also [http://www.twotoasts.de/media/midori-0.4.4.7z#!sha1!92f9187610346d5b25f21414c7fd29d84174bc4d Midori v0.4.4 for Windows] (13.1 MB). You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. YOU can make the difference by helping out!

As usual [http://www.twotoasts.de/media/midori-0.4.4-experimental.7z#!sha1!12d08d91166ae2817250b5d403ec1a5f4e460238 Midori v0.4.4 Experimental for Windows with Asian font support] (33.6 MB). GtkLauncher.exe and gdb.exe are included to make debugging easier.