[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
commit-queue at webkit.org
commit-queue at webkit.org
Wed Dec 22 16:10:44 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 70c29a0dc9c2c76eeb0b1036047496c6a1ff5376
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Nov 19 12:32:54 2010 +0000
2010-11-19 Sergio Villar Senin <svillar at igalia.com>
Reviewed by Xan Lopez.
[Gtk] "CRITICAL **: msg_got_headers_cb: assertion `entry' failed" when using HTTP cache
https://bugs.webkit.org/show_bug.cgi?id=49666
WebKit resource load cache does validate its own resources by
issuing conditional requests to the server. The HTTP cache was
making the assumption that any possible conditional request was
always generated by itself.
* platform/network/soup/cache/webkit/soup-cache.c:
(webkit_soup_cache_entry_remove): added an assertion
(msg_got_headers_cb):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index adba9cd..d3e5854 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-11-19 Sergio Villar Senin <svillar at igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] "CRITICAL **: msg_got_headers_cb: assertion `entry' failed" when using HTTP cache
+ https://bugs.webkit.org/show_bug.cgi?id=49666
+
+ WebKit resource load cache does validate its own resources by
+ issuing conditional requests to the server. The HTTP cache was
+ making the assumption that any possible conditional request was
+ always generated by itself.
+
+ * platform/network/soup/cache/webkit/soup-cache.c:
+ (webkit_soup_cache_entry_remove): added an assertion
+ (msg_got_headers_cb):
+
2010-11-19 Dai Mikurube <dmikurube at google.com>
Reviewed by Kent Tamura.
diff --git a/WebCore/platform/network/soup/cache/webkit/soup-cache.c b/WebCore/platform/network/soup/cache/webkit/soup-cache.c
index 73b15ba..faa6114 100644
--- a/WebCore/platform/network/soup/cache/webkit/soup-cache.c
+++ b/WebCore/platform/network/soup/cache/webkit/soup-cache.c
@@ -702,6 +702,7 @@ webkit_soup_cache_entry_remove (WebKitSoupCache *cache, WebKitSoupCacheEntry *en
return FALSE;
}
+ g_assert (!entry->dirty);
g_assert (g_list_length (cache->priv->lru_start) == g_hash_table_size (cache->priv->cache));
/* Remove from cache */
@@ -965,16 +966,21 @@ msg_got_headers_cb (SoupMessage *msg, gpointer user_data)
entry = g_hash_table_lookup (cache->priv->cache, key);
g_free (key);
- g_return_if_fail (entry);
-
- entry->being_validated = FALSE;
-
- /* We update the headers of the existing cache item,
- plus its age */
- soup_message_headers_foreach (msg->response_headers,
- (SoupMessageHeadersForeachFunc)update_headers,
- entry->headers);
- webkit_soup_cache_entry_set_freshness (entry, msg, cache);
+ /* It's possible to get a CACHE_VALIDATES with no
+ * entry in the hash table. This could happen if for
+ * example the soup client is the one creating the
+ * conditional request.
+ */
+ if (entry) {
+ entry->being_validated = FALSE;
+
+ /* We update the headers of the existing cache item,
+ plus its age */
+ soup_message_headers_foreach (msg->response_headers,
+ (SoupMessageHeadersForeachFunc)update_headers,
+ entry->headers);
+ webkit_soup_cache_entry_set_freshness (entry, msg, cache);
+ }
}
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list