Title: [132950] trunk/Source/WebKit2
- Revision
- 132950
- Author
- [email protected]
- Date
- 2012-10-30 15:44:43 -0700 (Tue, 30 Oct 2012)
Log Message
Crash in WebProcess at com.apple.WebCore: WebCore::ResourceLoader::start
<rdar://problem/12596761> and https://webkit.org/b/100792
Reviewed by Tim Hatcher.
In release builds we can sometimes end up with a null ResourceLoader due to a race condition
with the WebProcess telling the NetworkProcess to remove a resource load at the very same time
the NetworkProcess is about to start that load.
Until we can resolve that race condition an early return will be necessary.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::startResourceLoad):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (132949 => 132950)
--- trunk/Source/WebKit2/ChangeLog 2012-10-30 22:37:58 UTC (rev 132949)
+++ trunk/Source/WebKit2/ChangeLog 2012-10-30 22:44:43 UTC (rev 132950)
@@ -1,3 +1,19 @@
+2012-10-30 Brady Eidson <[email protected]>
+
+ Crash in WebProcess at com.apple.WebCore: WebCore::ResourceLoader::start
+ <rdar://problem/12596761> and https://webkit.org/b/100792
+
+ Reviewed by Tim Hatcher.
+
+ In release builds we can sometimes end up with a null ResourceLoader due to a race condition
+ with the WebProcess telling the NetworkProcess to remove a resource load at the very same time
+ the NetworkProcess is about to start that load.
+
+ Until we can resolve that race condition an early return will be necessary.
+
+ * WebProcess/Network/WebResourceLoadScheduler.cpp:
+ (WebKit::WebResourceLoadScheduler::startResourceLoad):
+
2012-10-30 Jesse van den Kieboom <[email protected]>
Fixed transfer annotation for default web context
Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp (132949 => 132950)
--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp 2012-10-30 22:37:58 UTC (rev 132949)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp 2012-10-30 22:44:43 UTC (rev 132950)
@@ -192,7 +192,14 @@
void WebResourceLoadScheduler::startResourceLoad(ResourceLoadIdentifier identifier)
{
RefPtr<ResourceLoader> loader = m_pendingResourceLoaders.take(identifier);
+
+ // <rdar://problem/12596761> and http://webkit.org/b/100792
+ // There is a race condition where the WebProcess might tell the NetworkProcess to remove a resource load identifier
+ // at the very time the NetworkProcess is telling the WebProcess to start that particular load.
+ // We'd like to remove that race condition but it makes sense for release builds to do an early return.
ASSERT(loader);
+ if (!loader)
+ return;
LOG(Network, "(WebProcess) WebResourceLoadScheduler::startResourceLoad starting load for '%s'", loader->url().string().utf8().data());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes