WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
CLOSED FIXED
11554
REGRESSION (
r17682
): Assertion failure in IconLoader::didFinishLoading() when the icon request returns 404 or 403
https://bugs.webkit.org/show_bug.cgi?id=11554
Summary
REGRESSION (r17682): Assertion failure in IconLoader::didFinishLoading() when...
mitz
Reported
2006-11-09 08:56:14 PST
The assertion in IconLoader::didFinishLoading() is hit when the icon URL request returns a result code outside the 200-299 range. The assertion fails because in this case, finishLoading() is called first from didReceiveResponse().
Attachments
Proposed fix
(1.08 KB, patch)
2006-11-09 17:35 PST
,
Brady Eidson
beidson
: review-
Details
Formatted Diff
Diff
This is a more complete fix to this bug, and another bug too!
(1.88 KB, patch)
2006-11-10 00:37 PST
,
Brady Eidson
mitz: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Brady Eidson
Comment 1
2006-11-09 09:40:38 PST
I'll look into this soon... definitely a regression from before some work Darin and I did a couple of days ago
Brady Eidson
Comment 2
2006-11-09 16:12:51 PST
I thought the problem here was due to refactoring Darin and I did earlier causing a preexisting ASSERT to be hit - I see now what maciej changed in 17682. Looking at it now
Brady Eidson
Comment 3
2006-11-09 17:30:40 PST
Maciej's addition of didFailWithError changed what we should be checking in this method - very small change, at that. Patch is coming
Brady Eidson
Comment 4
2006-11-09 17:35:31 PST
Created
attachment 11449
[details]
Proposed fix Maciej's didFailWithError addition brought this one about - simple fix.
Brady Eidson
Comment 5
2006-11-09 20:27:51 PST
Discussed this with Maciej on IRC, I need to explore a little more - he claims didFailWithError should be terminal for a ResourceHandler, and didFinishLoading should not be called after.
mitz
Comment 6
2006-11-09 23:12:35 PST
(In reply to
comment #5
)
> Discussed this with Maciej on IRC, I need to explore a little more - he claims > didFailWithError should be terminal for a ResourceHandler, and didFinishLoading > should not be called after. >
To clarify my initial description, didFailWithError is never called in this case, only didReceiveResponse is. I think perhaps the way to deal with this situation is to change the behavior of didReceiveResponse for statuses outside the 200-299 range, so that it will only set an "invalid icon data" flag, and later in finishLoading to examine this flag, and if it is set, skip the icon processing and go straight to clearLoadingState. The flag could also be used to save the work of copying of data in didReceiveData.
Brady Eidson
Comment 7
2006-11-09 23:57:58 PST
Yah, I totally jumped to an assumption when I was debugging and saw m_handle == 0 - I assumed it could only happen in two places, but can really happen in 3. Addressing your suggestion - Darin and I actually went through great lengths to remove as moving flags and vars as possible - it would be a shame to put one back in. With this greater, complete understand of what's happening, I think my original patch becomes valid again, in a slightly expanded form. Stay tuned...
Brady Eidson
Comment 8
2006-11-10 00:37:53 PST
Created
attachment 11456
[details]
This is a more complete fix to this bug, and another bug too!
mitz
Comment 9
2006-11-10 00:47:07 PST
Comment on
attachment 11456
[details]
This is a more complete fix to this bug, and another bug too! r=me
Brady Eidson
Comment 10
2006-11-10 01:19:02 PST
Committed in
r17702
, please verify
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug