[WebKit-devel] GSoC proposals

Dawit A adawit at kde.org
Fri Feb 26 00:54:55 CET 2010


Hi Allan,

First thanks for asking for ideas from us, which actually is mostly me and 
occasionally Urs... 

On Thursday 25 February 2010 07:50:01 Allan Sandfeld Jensen wrote:
> Hello WebKitPart'ers
> 
> There's  a few konqueror proposals on the GSoC page, can you please
> brainstorm and see if there is something you would like to add?

Perhaps the TODO file in extragear/base/kwebkitpart/ 

http://websvn.kde.org/trunk/extragear/base/kwebkitpart/TODO?revision=1095914&view=markup

might serve as a starting point... Some of the items listed in that file might 
be a great fit for a possible GSoC project. Specifically modifying all the 
"essential" konq-plugins, such as ad-block, searchbar and kget to support 
kwebkitpart would be of great help. There is already support for these 
plugins, but it is not completely 100%.

> The project about easier engine-switching is very small and I imagine it
> will combine well with some more porting or integration work in
> webkitpart, but I am unsure what people here are working on currently, so
> I want to pass the suggestions by you.

The "easier" engine switcher work is actually huge and a lot more work than 
people think. For example, the issue with the user agent string. Every time a 
user enters a request in its location bar, Konqueror directly uses KIO to 
determine the resource type (mime-type) so that is can embed the proper part 
to handle the request. Unfortunately, when the request is a web page, the user 
agent string that will be sent by default is the one returned by 
KProtocolManager::userAgentForUrl(...) which defaults to... KHTML's string. As 
such, implementing this feature correctly will require more work than just a 
few lines of code to switch rendering engines easily.


> So correct me if I am wrong, but are you still missing a few features from
> KHTML:
>  * Incremental search dialog
>  * Form completion dialog
>  * Smooth scrolling
>  * Java
>  * AdBlocK

Let me address each one of these...

** Java support : must be addressed at QtWebKit level. There is no way to 
address that anywhere else without a huge and rather ugly hack! And that is 
even if it is possible in the first place...

** Form completion: this too must be addressed at the QtWebKit level. 
Otherwise, this is going to be yet another ugly hack that will have to use 
javascript much like some websites do, e.g. google.com, in order to provide 
this functionality. 

Please note that the form completion support I am speaking of here is 
completely different from KWallet support, i.e. saving login information and 
automatically filling it when you visit that page. That feature is already 
available for any application that uses kdewebkit. Hence, currently the recent 
version of reKonq, khtml and kwebkitpart all share the information saved from 
one application in another one.

** Smooth scrolling: not exactly sure what you mean by this... Is the fancy 
automated scrolling one gets through by pressing Shift+Up/Down arrows ? If so, 
that too should be very easy to implement and something that should be 
classified as junior job instead of 

** Incremental search: If this is the CTRL+F stuff, then it has been 
completely implemented already. There are minor bugs, but they all have to be 
addressed upstream as well.

** Ad Block: There is already a simple support for blocking urls that uses 
exactly the same thing KHTMLPart uses. But as usual since most of the konq-
plugins were designed before the existence of KWebKitPart, this plugin like a 
few others, requires modification to work as well in KWebKitPart as it does in 
KHTMLPart. 

However, it should be much simpler to implement this for kwebkitpart since it 
automatically exposes its internal rendering engine through the view() 
function which returns a QWebView object. In fact, the custom implementation 
of KIO::Intergation::AccessManager class should be moved out from kwebkitpart 
to where ever the adblock plug-in is. 

Anyhow, for anyone interested in knowing the current state of kdewebkit, the 
KDE integration wrapper for QtWebKit used by all webkit based browsers or 
kparts, then they can look at the ISSUES file that was added few days ago:

http://websvn.kde.org/trunk/KDE/kdelibs/kdewebkit/ISSUES?revision=1095052&view=markup


More information about the WebKit-devel mailing list