<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[176698] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/176698">176698</a></dd>
<dt>Author</dt> <dd>ap@apple.com</dd>
<dt>Date</dt> <dd>2014-12-02 16:33:29 -0800 (Tue, 02 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
https://bugs.webkit.org/show_bug.cgi?id=139149

Reviewed by Anders Carlsson.

Source/WebCore:

* WebCore.exp.in: Added ApplicationCache::deleteAllCaches.

* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::deleteAllCaches): Added.

* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
have this function called when there is no database file.

* loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
because WebKit style.

Source/WebKit/mac:

This changes API behavior. I think that it's OK, because existing behavior made no sense.
We used to delete caches from disk, but they were still active in memory. Now we also
obsolete them in memory, so documents that use a cache still work, but new ones don't
pick one up.

* WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache setMaximumSize:]): Changing maximum on-disk size doesn't
need to delete in-momry caches too. Keep existing behavior.
(+[WebApplicationCache deleteAllApplicationCaches]): Use the new WebCore function
that properly deletes caches.

Source/WebKit2:

This changes API behavior. I think that it's OK, because existing behavior made no sense.
We used to delete caches from disk, but they were still active in memory. Now we also
obsolete them in memory, so documents that use a cache still work, but new ones don't
pick one up.

* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteAllEntries): Use the new WebCore function
that properly deletes caches.

Tools:

WebKit2 already cleared application caches between runs (although it wasn't entirely
effective without WebCore changes in this patch).

* DumpRenderTree/mac/DumpRenderTree.mm: (runTest): Clear applicaiton caches between runs.

* DumpRenderTree/win/DumpRenderTree.cpp: (runTest): Ditto (unfortunately, this
function is not implemented on Windows, see below).

* DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::clearAllApplicationCaches):
Ameded a FIXME.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCachecpp">trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheh">trunk/Source/WebCore/loader/appcache/ApplicationCache.h</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheStoragecpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheStorageh">trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebApplicationCachemm">trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessApplicationCacheWebApplicationCacheManagercpp">trunk/Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsDumpRenderTreewinDumpRenderTreecpp">trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreewinTestRunnerWincpp">trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/ChangeLog        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2014-12-02  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
+        https://bugs.webkit.org/show_bug.cgi?id=139149
+
+        Reviewed by Anders Carlsson.
+
+        * WebCore.exp.in: Added ApplicationCache::deleteAllCaches.
+
+        * loader/appcache/ApplicationCache.h:
+        * loader/appcache/ApplicationCache.cpp:
+        (WebCore::ApplicationCache::deleteAllCaches): Added.
+
+        * loader/appcache/ApplicationCacheStorage.cpp:
+        (WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
+        have this function called when there is no database file.
+
+        * loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
+        because WebKit style.
+
</ins><span class="cx"> 2014-12-02  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove a SnowLeopard-era quirk for QuickLook
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -680,6 +680,7 @@
</span><span class="cx"> __ZN7WebCore15setDOMExceptionEPN3JSC9ExecStateEi
</span><span class="cx"> __ZN7WebCore15visitedLinkHashEPKtj
</span><span class="cx"> __ZN7WebCore15visitedLinkHashERKN3WTF6StringE
</span><ins>+__ZN7WebCore16ApplicationCache15deleteAllCachesEv
</ins><span class="cx"> __ZN7WebCore16ApplicationCache18diskUsageForOriginEPNS_14SecurityOriginE
</span><span class="cx"> __ZN7WebCore16ApplicationCache20deleteCacheForOriginEPNS_14SecurityOriginE
</span><span class="cx"> __ZN7WebCore16CSSParserContextC1ERNS_8DocumentERKNS_3URLERKN3WTF6StringE
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> void ApplicationCache::deleteCacheForOrigin(SecurityOrigin* origin)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;URL&gt; urls;
</span><del>-    if (!cacheStorage().manifestURLs(&amp;urls)) {
</del><ins>+    if (!cacheStorage().getManifestURLs(&amp;urls)) {
</ins><span class="cx">         LOG_ERROR(&quot;Failed to retrieve ApplicationCache manifest URLs&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -212,6 +212,17 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void ApplicationCache::deleteAllCaches()
+{
+    HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt; origins;
+
+    cacheStorage().getOriginsWithCache(origins);
+    for (auto&amp; origin : origins)
+        deleteCacheForOrigin(origin.get());
+
+    cacheStorage().vacuumDatabaseFile();
+}
+
</ins><span class="cx"> int64_t ApplicationCache::diskUsageForOrigin(SecurityOrigin* origin)
</span><span class="cx"> {
</span><span class="cx">     int64_t usage = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCache.h (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCache.h        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCache.h        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -49,7 +49,8 @@
</span><span class="cx">     static PassRefPtr&lt;ApplicationCache&gt; create() { return adoptRef(new ApplicationCache); }
</span><span class="cx">     
</span><span class="cx">     WEBCORE_EXPORT static void deleteCacheForOrigin(SecurityOrigin*);
</span><del>-    
</del><ins>+    WEBCORE_EXPORT static void deleteAllCaches();
+
</ins><span class="cx">     ~ApplicationCache();
</span><span class="cx"> 
</span><span class="cx">     void addResource(PassRefPtr&lt;ApplicationCacheResource&gt; resource);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1372,7 +1372,7 @@
</span><span class="cx">     return copyStorage.storeNewestCache(groupCopy.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ApplicationCacheStorage::manifestURLs(Vector&lt;URL&gt;* urls)
</del><ins>+bool ApplicationCacheStorage::getManifestURLs(Vector&lt;URL&gt;* urls)
</ins><span class="cx"> {
</span><span class="cx">     SQLiteTransactionInProgressAutoCounter transactionCounter;
</span><span class="cx"> 
</span><span class="lines">@@ -1562,10 +1562,7 @@
</span><span class="cx"> void ApplicationCacheStorage::getOriginsWithCache(HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt;&amp; origins)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;URL&gt; urls;
</span><del>-    if (!manifestURLs(&amp;urls)) {
-        LOG_ERROR(&quot;Failed to retrieve ApplicationCache manifest URLs&quot;);
-        return;
-    }
</del><ins>+    getManifestURLs(&amp;urls);
</ins><span class="cx"> 
</span><span class="cx">     // Multiple manifest URLs might share the same SecurityOrigin, so we might be creating extra, wasted origins here.
</span><span class="cx">     // The current schema doesn't allow for a more efficient way of building this list.
</span><span class="lines">@@ -1582,7 +1579,7 @@
</span><span class="cx">     vacuumDatabaseFile();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ApplicationCacheStorage::ApplicationCacheStorage() 
</del><ins>+ApplicationCacheStorage::ApplicationCacheStorage()
</ins><span class="cx">     : m_maximumSize(ApplicationCacheStorage::noQuota())
</span><span class="cx">     , m_isMaximumSizeReached(false)
</span><span class="cx">     , m_defaultOriginQuota(ApplicationCacheStorage::noQuota())
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheStorageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     
</span><span class="cx">     static bool WEBCORE_EXPORT storeCopyOfCache(const String&amp; cacheDirectory, ApplicationCacheHost*);
</span><span class="cx"> 
</span><del>-    bool manifestURLs(Vector&lt;URL&gt;* urls);
</del><ins>+    bool getManifestURLs(Vector&lt;URL&gt;* urls);
</ins><span class="cx">     bool cacheGroupSize(const String&amp; manifestURL, int64_t* size);
</span><span class="cx">     bool deleteCacheGroup(const String&amp; manifestURL);
</span><span class="cx">     WEBCORE_EXPORT void vacuumDatabaseFile();
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2014-12-02  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
+        https://bugs.webkit.org/show_bug.cgi?id=139149
+
+        Reviewed by Anders Carlsson.
+
+        This changes API behavior. I think that it's OK, because existing behavior made no sense.
+        We used to delete caches from disk, but they were still active in memory. Now we also
+        obsolete them in memory, so documents that use a cache still work, but new ones don't
+        pick one up.
+
+        * WebCoreSupport/WebApplicationCache.mm:
+        (+[WebApplicationCache setMaximumSize:]): Changing maximum on-disk size doesn't
+        need to delete in-momry caches too. Keep existing behavior.
+        (+[WebApplicationCache deleteAllApplicationCaches]): Use the new WebCore function
+        that properly deletes caches.
+
</ins><span class="cx"> 2014-12-02  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove a SnowLeopard-era quirk for QuickLook
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebApplicationCachemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx"> + (void)setMaximumSize:(long long)size
</span><span class="cx"> {
</span><del>-    [WebApplicationCache deleteAllApplicationCaches];
</del><ins>+    cacheStorage().deleteAllEntries();
</ins><span class="cx">     cacheStorage().setMaximumSize(size);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> 
</span><span class="cx"> + (void)deleteAllApplicationCaches
</span><span class="cx"> {
</span><del>-    cacheStorage().deleteAllEntries();
</del><ins>+    ApplicationCache::deleteAllCaches();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebKit2/ChangeLog        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-12-02  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
+        https://bugs.webkit.org/show_bug.cgi?id=139149
+
+        Reviewed by Anders Carlsson.
+
+        This changes API behavior. I think that it's OK, because existing behavior made no sense.
+        We used to delete caches from disk, but they were still active in memory. Now we also
+        obsolete them in memory, so documents that use a cache still work, but new ones don't
+        pick one up.
+
+        * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
+        (WebKit::WebApplicationCacheManager::deleteAllEntries): Use the new WebCore function
+        that properly deletes caches.
+
</ins><span class="cx"> 2014-12-02  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove a SnowLeopard-era quirk for QuickLook
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessApplicationCacheWebApplicationCacheManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebApplicationCacheManager::deleteAllEntries()
</span><span class="cx"> {
</span><del>-    cacheStorage().deleteAllEntries();
</del><ins>+    ApplicationCache::deleteAllCaches();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebApplicationCacheManager::setAppCacheMaximumSize(uint64_t size)
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Tools/ChangeLog        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2014-12-02  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
+        https://bugs.webkit.org/show_bug.cgi?id=139149
+
+        Reviewed by Anders Carlsson.
+
+        WebKit2 already cleared application caches between runs (although it wasn't entirely
+        effective without WebCore changes in this patch).
+
+        * DumpRenderTree/mac/DumpRenderTree.mm: (runTest): Clear applicaiton caches between runs.
+
+        * DumpRenderTree/win/DumpRenderTree.cpp: (runTest): Ditto (unfortunately, this
+        function is not implemented on Windows, see below).
+
+        * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::clearAllApplicationCaches):
+        Ameded a FIXME.
+
</ins><span class="cx"> 2014-12-02  Gavin Barraclough  &lt;barraclough@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Generalize PageActivityAssertionToken
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1870,6 +1870,7 @@
</span><span class="cx"> 
</span><span class="cx">     sizeWebViewForCurrentTest();
</span><span class="cx">     gTestRunner-&gt;setIconDatabaseEnabled(false);
</span><ins>+    gTestRunner-&gt;clearAllApplicationCaches();
</ins><span class="cx"> 
</span><span class="cx">     if (disallowedURLs)
</span><span class="cx">         CFSetRemoveAllValues(disallowedURLs);
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreewinDumpRenderTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -1019,6 +1019,7 @@
</span><span class="cx"> 
</span><span class="cx">     sizeWebViewForCurrentTest();
</span><span class="cx">     gTestRunner-&gt;setIconDatabaseEnabled(false);
</span><ins>+    gTestRunner-&gt;clearAllApplicationCaches();
</ins><span class="cx"> 
</span><span class="cx">     if (shouldLogFrameLoadDelegates(pathOrURL.c_str()))
</span><span class="cx">         gTestRunner-&gt;setDumpFrameLoadCallbacks(true);
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreewinTestRunnerWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp (176697 => 176698)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp        2014-12-03 00:32:33 UTC (rev 176697)
+++ trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp        2014-12-03 00:33:29 UTC (rev 176698)
</span><span class="lines">@@ -750,7 +750,7 @@
</span><span class="cx"> 
</span><span class="cx"> void TestRunner::clearAllApplicationCaches()
</span><span class="cx"> {
</span><del>-    // FIXME: Implement to support application cache quotas.
</del><ins>+    // FIXME: Implement to support application cache quotas, and to make testing more reliable (see &lt;https://bugs.webkit.org/show_bug.cgi?id=139149&gt;).
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TestRunner::clearApplicationCacheForOrigin(JSStringRef origin)
</span></span></pre>
</div>
</div>

</body>
</html>