Showing posts with label webbrowser. Show all posts
Showing posts with label webbrowser. Show all posts

Saturday, December 4, 2010

WebKitGtk vs QtWebKit

Comparing functionality and features of Qt (QtWebKit) and GTK+ (WebKitGtk) ports of WebKit.

Scrolling Performance

It seems that as of 1.2.5, WebKitGtk has one fairly big usability issue comparing to QtWebKit: it has very slow (and high CPU usage) scrolling on some pages/sites. All browsers based on WebKitGit are slow on those pages, while all browsers based on QtWebKit are OK there, so that's indeed a framework issue.

Midori FAQ has an entry on this ("Scrolling on website xyz is very slow").

It turns out that this can be result of multiple bugs:
WebKitGtk 1.3.7 status: Seems to be mostly fixed, all pages from below show good scrolling performance, though ones with image backgrounds show not as smooth scrolling (but that's yet another issue).

Examples:

Related:
  • http://blogs.igalia.com/alex/2010/09/17/rendering-shadows-and-tiles/
  • https://bbs.archlinux.org/viewtopic.php?pid=860692 

Image Scaling Quality

On the other hand, when scaling images, QtWebKit 4.6.3 appears to (by default?) use nearest neighbour filter, while WebKitGtk uses smooth bilinear filter. In Qt 4.7.1 it's the same.

But it seems to be fixed in the latest QtWebKit, this post tells:
[01 Sep 2010] Re: no interpolation after scale image to a larger size?

This was fixed here:
[Qt] Enable smooth pixmap transforms by default

The change was too late for Qt 4.7 but will be part of the upcoming
QtWebKit 2.1 release.

As of now, QtWebKit 2.1 is still not released.

Btw, according to the patch, nearest-neigh filter is used exactly by default, it can be changed by client. Need to try that in Arora. - Well, not in Qt 4.6.3, there GraphicsContext::setImageInterpolationQuality() is empty.

Thursday, November 18, 2010

Quest for Ultimate Browser

Web browsing in one or another form is probably the largest share of activity performed on computers today. And yet it's far from being perfect or even largely comfortable. Actually, it wasn't like that all the time. Back in old good days, you can browse web equally comfortable with both Netscape Navigator 2 and Lynx. But the more advanced web standards become, the more dynamic and media-rich web sites become, the more overall browsing performance and comfort deteriorate. Note that I don't talk here about how sites look or how well they represent information - there's big progress in that no doubt. The talk is about how well browsing of hundreds and thousands of such cool sites is managed. There're two biggest problems with modern browsing: performance and stability.
[...]

Midori (0.2.9):
  • All windows block if there's a JS modal dialog
  • Has a setting to not load/render pages from restored session on restart, just show placeholders. - I miss this much in Arora.
  • Session recorded just for one (main) window. Tabs opened in other windows are lost over restart/crash. This is show-stopper bug, made me use Arora as a promary browser instead. 

Arora (0.11):
  • Always puts a new tab as the last, no setting for that.
  • Show KBs downloaded for the page.
  • After some usage it turned out that session management is not robust: after the crash, I regularly get situation that windows and tabs are "restored" in the same numbers they were before, but each tab opens file://$HOME (yes, the local home dir). Or, Arora just forgets that it should restore session and shows its home page.
VI-like galore: dwbjumanjisurfuzbl (still review more), luakit