[Webkit-unassigned] [Bug 62808] [Qt] ASSERTION FAILED in ResourceHandle::setDefersLoading causes crash

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jun 20 09:15:10 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=62808


yi shen <yi.4.shen at nokia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #97809|                            |review?
               Flag|                            |




--- Comment #3 from yi shen <yi.4.shen at nokia.com>  2011-06-20 09:15:10 PST ---
Created an attachment (id=97809)
 --> (https://bugs.webkit.org/attachment.cgi?id=97809&action=review)
proposed fix

I saw there is one logical error for this assertion failure is that, for Qt's implementation of ResourceHandle::platformSetDefersLoading & NetworkReplyHandler::setLoadingDeferred, the deferred loading data get forwarded to document loader too early.

When resume a page loading, webkit calls DocumentLoader::setDefersLoading(false), which first calls setDefersLoading to false on the main resource loader, then on all the sub resource loaders. For Qt, once the main resource loader gets resumed, it forwards all the deferred loading data to the document loader & parser, which leads to create some new sub-resource loaders. Next, when document loader resumes the sub resource loaders, it calls setDefersLoading(false) on these new created sub-resource loaders, which is incorrect by assumption (that's why the assertion fails).

To fix this issue, one solution could be forwarding the deferred data after DocumentLoader::setDefersLoading(false) finished. So, I added a timer (the timeout is set to 0) in my patch. Please let me know if there is better solution. Thanks a lot.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list