[Webkit-unassigned] [Bug 36208] New: dispatchDidFinishLoad() gets called before all resources finished loaded if another frame is loading the same resources
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Mar 16 22:11:44 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=36208
Summary: dispatchDidFinishLoad() gets called before all
resources finished loaded if another frame is loading
the same resources
Product: WebKit
Version: 528+ (Nightly build)
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P2
Component: Page Loading
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: mitz at webkit.org
Created an attachment (id=50874)
--> (https://bugs.webkit.org/attachment.cgi?id=50874)
Sample project
Under certain conditions, dispatchDidFinishLoad() may get called on a
FrameLoaderClient before all the frame’s resources have actually finished
loading. Specifically, the scenario is as follows:
1. Frame A’s main resource begins loading
2. Frame A kicks off loading of subresource R
3. Frame B’s main resource begins loading
4. Frame B requests the same subresource R
5. Frame B’s main resource finishes loading
At that point, frame B’s FrameLoadClient will get dispatchDidFinishLoad(), even
though resource R has not finished loading.
The reason for this is that Frame B’s DocumentLoader doesn’t track the loading
of R, since the Cache::requestResource() returns an already-loading resource
(whose ResourceLoader is tracked by Frame A’s DocumentLoader). Thus when Frame
B’s main resource finishes loading, its DocumentLoader sees no subresource
loaders in progress, and that allows the didFinishLoad to be dispatched.
The attached project demonstrates this on Mac OS X. Open the project and build
DidNotQuiteFinishLoading. Then copy file1.html, file2.html and common.css into
your working directory and run DidNotQuiteFinishLoading. A printed value of
rgb(0, 0, 0) indicates that Frame B’s didFinishLoading occurred before the
style sheet had actually finished loading. A result of rgb(255, 0, 0) would be
correct.
--
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