[Webkit-unassigned] [Bug 30989] Assert failure in http://wap.google.com/wml

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 17 04:14:26 PST 2009


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





--- Comment #2 from Nayan <nayankk at gmail.com>  2009-11-17 04:14:26 PST ---
This assert wasn't seen in builds older revision 46418. There was a redesign of
History handling / page cache / loading in WML pages, got fixed with bug
#27707. This fix uncovered an existing issue in Frameloader which was causing
this asset.

Root cause of the issue:
When page load completes, WML checks if there are any intrinsic event which
needs to be handled (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded). It
finds that WML pages contains Refresh tag and starts 'Reload' requests Loading
process repeats and handleIntrinsicEventIfNeeded again gets called to check if
there are any intrinsic event yet to be handled. Ideally, we should have
trigger one more 'Reload' request, as reload is already done. But, in this
case, handleIntrinsicEventIfNeeded used to trigger one more reload request.
(Hence creating one more DocumentLoader, as mentioned in point 3 in previous
post).

This is because, FrameLoader::continueLoadAfterNavigationPolicy function used
to set m_loadType to FrameLoadTypeReload after the call to stopAllLoaders().

....
....
FrameLoadType type = policyChecker()->loadType();
stopAllLoaders();
...
...
m_loadType = type;
...

Meanwhile, stopAllLoaders() will in-turn call 'handleIntrinsicEventIfNeeded'.
'handleInstrinsicEventIfNeeded' will trigger the reload request based on load
type, which is still FrameLoadTypeStandard. Ideally, we need to set m_loadType
variable of FrameLoader class before calling stopAllLoaders().

-- 
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