[webkit-gtk] WebkitGtk+ does not stop loading immediately

JeanLuc jangernert at gmail.com
Mon Jan 4 11:10:55 PST 2016


Hi Guys and Girls,

Not sure if this is the right place to ask, but here it goes:
I am using Webkit2Gtk+ in my RSS-Reader to display the articles.
But I have issues when the user is switching very fast between articles 
or the articles are very big/with lots of images or videos.
Once a new article is selected I immediately cancel the loading of the 
current one with "stop_loading()".
Then I wait until the "load_failed"-signal is triggered with the 
"webkit_network_error_cancelled" error. Only after that I start loading 
the new article.
But still, sometimes after stopping the loading I receive 
"load_changed"-events after the successful cancel.
Here is a small part of a log that displays the problem:


> [ DEBUG ] ArticleView: load article 91799
> [ DEBUG ] ArticleView: load STARTED
> [ DEBUG ] ArticleView: load COMMITTED
> [ DEBUG ] ArticleView: load FINISHED
> [ DEBUG ] contentPage: set headerbar
> [ DEBUG ] ArticleView: load article 92595
> [ DEBUG ] ArticleView: load STARTED
> [ DEBUG ] ArticleView: load COMMITTED
> [ DEBUG ] contentPage: set headerbar
> [ DEBUG ] ArticleView: load article 92675
> [ DEBUG ] ArticleView: load FINISHED
> [ DEBUG ] contentPage: set headerbar
> [ DEBUG ] ArticleView: load article 93127
> [ DEBUG ] ArticleView: load STARTED
> [ DEBUG ] ArticleView: load COMMITTED
> [ DEBUG ] contentPage: set headerbar
> [ DEBUG ] ArticleView: load article 91940
> [ DEBUG ] ArticleView: load FINISHED

As you can see the first article (91799) is loading fine. The second 
one is (92595) is canceled before it is finished loading by the next 
request (92675)
but the "WebKit.LoadEvent.FINISHED" is still reached afterwards. The 
same problem with article 93127 that should be canceled by 91940.
Only difference is, article 93127 finishes loading after it should be 
already canceled and article 91940 never starts loading.
So the wrong article is now shown in the article-view of my application.
Sometimes not only the wrong article is shown but only a white blank 
page (but I could not reproduce this right now).

What I want the code to do is, load the requested article immediately 
and cancel the old load request.
When a URL in the loaded article is clicked it should open in the 
default browser.

This is the WebkitGtk+ relevant part of my code: 
http://pastebin.com/v9QdE1FN
Or if someone wants to have a look at all of it:  
http://bazaar.launchpad.net/~eviltwin1/feedreader/master/view/head:/src/Widgets/ArticleView.vala
Here is also a bug report of someone else having the same issues with 
the application: https://bugs.launchpad.net/feedreader/+bug/1529872

Can anyone help me with this? :)

Thx in advance

Jan Lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20160104/44841d8a/attachment.html>


More information about the webkit-gtk mailing list