Bug 12093 - Assertion failure in +[WebDataProtocol _webIsDataProtocolURL:] when running layout tests
Summary: Assertion failure in +[WebDataProtocol _webIsDataProtocolURL:] when running l...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: History (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P1 Critical
Assignee: Nobody
URL:
Keywords: LayoutTestFailure, Regression
Depends on:
Blocks:
 
Reported: 2007-01-03 03:52 PST by Alexey Proskuryakov
Modified: 2007-01-03 17:23 PST (History)
2 users (show)

See Also:


Attachments
Proprosed fix (1.65 KB, patch)
2007-01-03 16:51 PST, Brady Eidson
andersca: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2007-01-03 03:52:21 PST
run-webkit-tests fast/images/svg-as-background.html

Testing 1 test cases.
fast/images .ASSERTION FAILED: URL
(/Users/ap/WebKit/WebCore/loader/mac/WebDataProtocol.mm:223 +[WebDataProtocol _webIsDataProtocolURL:])
Segmentation fault

Thread 0 Crashed:
0   com.apple.WebCore        	0x01482b84 +[WebDataProtocol _webIsDataProtocolURL:] + 92
1   com.apple.WebCore        	0x01483b14 WebCore::DocumentLoader::urlForHistory() const + 132 (DocumentLoaderMac.mm:533)
2   com.apple.WebCore        	0x014b94e8 WebCore::FrameLoader::updateHistoryForStandardLoad() + 208 (FrameLoader.cpp:2978)
3   com.apple.WebCore        	0x014bcdf0 WebCore::FrameLoader::transitionToCommitted(WTF::PassRefPtr<WebCore::PageCache>) + 848 (FrameLoader.cpp:2024)
4   com.apple.WebCore        	0x014bd420 WebCore::FrameLoader::commitProvisionalLoad(WTF::PassRefPtr<WebCore::PageCache>) + 224 (FrameLoader.cpp:1933)
5   com.apple.WebCore        	0x0151fc80 WebCore::SVGImage::setData(bool) + 1068 (SVGImage.cpp:139)
6   com.apple.WebCore        	0x01156c08 WebCore::CachedImage::data(WTF::Vector<char, (unsigned long)0>&, bool) + 116 (CachedImage.cpp:186)
7   com.apple.WebCore        	0x0115a8b4 WebCore::Loader::receivedAllData(WebCore::SubresourceLoader*, NSData*) + 344 (loader.cpp:109)
8   com.apple.WebCore        	0x014929c8 WebCore::SubresourceLoader::didFinishLoading() + 248 (SubresourceLoaderMac.mm:196)
9   com.apple.WebCore        	0x0148d76c WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*) + 60 (ResourceLoaderMac.mm:447)
10  com.apple.WebCore        	0x014a1d38 -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 144 (ResourceHandleMac.mm:309)
11  com.apple.Foundation     	0x9298f84c -[NSURLConnection(NSURLConnectionInternal) _sendDidFinishLoadingCallback] + 188
Comment 1 Eric Seidel (no email) 2007-01-03 10:10:53 PST
This smells like a problem with SVGImageEmptyClients, or rather the loader depending on a different answer than SVGImageEmptyClients give.
Comment 2 Nikolas Zimmermann 2007-01-03 10:11:57 PST
I can confirm the problems, must have happened last night.
Comment 3 Brady Eidson 2007-01-03 10:18:21 PST
I never ran into this yesterday before landing my patch but was hounded with reports of it this morning - I'm taking a look now to see if I can repro...
Comment 4 Brady Eidson 2007-01-03 16:51:24 PST
Created attachment 12203 [details]
Proprosed fix
Comment 5 Anders Carlsson 2007-01-03 17:07:56 PST
Comment on attachment 12203 [details]
Proprosed fix

r=me with the comments I discussed with Brady
Comment 6 Brady Eidson 2007-01-03 17:23:31 PST
Committed in r18561

The issue here - faking subresource loads with internal svgs - makes me want to reiterate how disconcerting it is to be faking subresource loads, though my understanding is that we might start doing this in more places than just svg-as-image.  Alexey mentioned on #webkit that the work being done in http://bugs.webkit.org/show_bug.cgi?id=10313 is another example of this.

If we start doing this more and more, I think we need a much better defined mechanism of how to represent "this is a fake subresource" when we "kick off" the fake load, so history, subresource progress, and other interesting parts of the infrastructure know how to deal with it.