[Webkit-unassigned] [Bug 33533] window.onload never fires if page contains an <iframe> whose load is cancelled by returning null from resource load delegate's willSendRequest

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jan 12 07:57:57 PST 2010


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





--- Comment #5 from Adam Roben (aroben) <aroben at apple.com>  2010-01-12 07:57:56 PST ---
Working backwards:

* When the main document finishes parsing, we don't send onload because we
detect that some child frames are still loading (in FrameLoader::checkCompleted
[1]). The child that hasn't finished loading is the only subframe in the
document: the one whose load the resource load delegate blocked.
* The child frame thinks it's still loading because its m_isComplete member was
set to false in FrameLoader::loadSubframe [2].

But in fact the child frame has already finished loading. It finished before
the call to FrameLoaderClient::createFrame completed [3], and m_isComplete was
set to true. But then it was immediately set back to false in
FrameLoader::loadSubframe [2].

Setting m_isComplete to false in loadSubframe seems to date all the way back to
r7272 (!) [4]. At one point there was a comment questioning whether this was
really needed [5], but it got removed during some refactoring [6].

1.
http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp?rev=53140#L1098
2.
http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp?rev=53140#L406
3.
http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp?rev=53140#L399
4. http://trac.webkit.org/changeset/7272#file1
5. http://trac.webkit.org/changeset/12638#file12
6. http://trac.webkit.org/changeset/17652

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