<!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>[188468] 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/188468">188468</a></dd>
<dt>Author</dt> <dd>antti@apple.com</dd>
<dt>Date</dt> <dd>2015-08-14 07:08:59 -0700 (Fri, 14 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Cover memory cache subresource validation policy with cache tests
https://bugs.webkit.org/show_bug.cgi?id=147830

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Existing tests under http/tests/cache/disk-cache currently cover disk and XHR memory cache validation behaviors.
They can be extended to cover the regular subresource policy too.

Add window.internals API to disable CachedRawResource validation behavior. This makes XHR validate like
other resources and allows existing tests (that use XHR) to cover normal subresource policy .

Test results reveal some bugs. For example subresources in memory cache don't respect Vary header.

It is generally bad that we have a separate XHR-and-main-resource validation policy in memory cache. Network cache
doesn't have one.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clearTestingOverrides):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
* loader/FrameLoader.h:
(WebCore::FrameLoader::setOverrideCachePolicyForTesting):
(WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting):
(WebCore::FrameLoader::setStrictRawResourceValidationPolicyDisabledForTesting):
(WebCore::FrameLoader::isStrictRawResourceValidationPolicyDisabledForTesting):
(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL):
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::setLoadFinishTime):
(WebCore::CachedResource::loadFinishTime):
(WebCore::CachedResource::canReuse): Deleted.

    Made canReuse non-virtual and removed it from the base. Only CachedRawResource has implementation.

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
* testing/Internals.cpp:
(WebCore::Internals::setOverrideResourceLoadPriority):
(WebCore::Internals::setStrictRawResourceValidationPolicyDisabled):
(WebCore::Internals::clearMemoryCache):
* testing/Internals.h:

LayoutTests:

Add another test round using subresource validation policy.

* http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-disable-expected.txt:
* http/tests/cache/disk-cache/disk-cache-media-expected.txt:
* http/tests/cache/disk-cache/disk-cache-range-expected.txt:
* http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt:
* http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt:
* http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
* http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
* http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt:
* http/tests/cache/disk-cache/resources/cache-test.js:
(loadResourcesWithOptions):
(.):
(runTests):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcache204statuscodeexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcache302statuscodeexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcache307statuscodeexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcache404statuscodeexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachedisableexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-disable-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachemediaexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-media-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcacherangeexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-range-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcacherequestheadersexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcacherequestmaxstaleexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcacherevalidationnewexpireheaderexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevalidationattachmentexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevalidationbacknavigationpolicyexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevalidationexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevalidationnobodyexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevaryexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcachediskcachevarynobodyexpectedtxt">trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachediskcacheresourcescachetestjs">trunk/LayoutTests/http/tests/cache/disk-cache/resources/cache-test.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderh">trunk/Source/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedRawResourceh">trunk/Source/WebCore/loader/cache/CachedRawResource.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceh">trunk/Source/WebCore/loader/cache/CachedResource.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceLoadercpp">trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/ChangeLog        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -1,3 +1,33 @@
</span><ins>+2015-08-13  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Cover memory cache subresource validation policy with cache tests
+        https://bugs.webkit.org/show_bug.cgi?id=147830
+
+        Reviewed by Alexey Proskuryakov.
+
+        Add another test round using subresource validation policy.
+
+        * http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-disable-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-media-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-range-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
+        * http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt:
+        * http/tests/cache/disk-cache/resources/cache-test.js:
+        (loadResourcesWithOptions):
+        (.):
+        (runTests):
+
</ins><span class="cx"> 2015-08-13  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Reduce flakiness of inspector/indexeddb/requestDatabaseNames
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcache204statuscodeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -25,6 +25,16 @@
</span><span class="cx"> response headers: {&quot;Status&quot;:&quot;204&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Status&quot;:&quot;204&quot;,&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;204&quot;,&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Status&quot;:&quot;204&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcache302statuscodeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -19,6 +19,13 @@
</span><span class="cx"> response headers: {&quot;Status&quot;:&quot;302&quot;,&quot;Location&quot;:&quot;/&quot;,&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Status&quot;:&quot;302&quot;,&quot;Location&quot;:&quot;/&quot;,&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;302&quot;,&quot;Location&quot;:&quot;/&quot;,&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcache307statuscodeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -43,6 +43,25 @@
</span><span class="cx"> response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Status&quot;:&quot;307&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Status&quot;:&quot;307&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcache404statuscodeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -25,6 +25,16 @@
</span><span class="cx"> response headers: {&quot;Status&quot;:&quot;404&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Status&quot;:&quot;404&quot;,&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Status&quot;:&quot;404&quot;,&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Status&quot;:&quot;404&quot;,&quot;Last-Modified&quot;:&quot;now(-1000)&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachedisableexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-disable-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-disable-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-disable-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -12,6 +12,10 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
</ins><span class="cx"> Disabling cache
</span><span class="cx"> --------Testing loads from disk cache--------
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="lines">@@ -21,6 +25,10 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
</ins><span class="cx"> Re-enabling cache
</span><span class="cx"> --------Testing loads from disk cache--------
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="lines">@@ -30,6 +38,10 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachemediaexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-media-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-media-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-media-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -43,6 +43,25 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Type&quot;:&quot;audio/mp4&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Content-Type&quot;:&quot;text/plain&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Type&quot;:&quot;text/plain&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Content-Type&quot;:&quot;video/mp4&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Type&quot;:&quot;video/mp4&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Content-Type&quot;:&quot;audio/mp4&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Type&quot;:&quot;audio/mp4&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcacherangeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-range-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-range-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-range-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -53,6 +53,31 @@
</span><span class="cx"> response source: Network
</span><span class="cx"> response status: 416
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+response status: 200
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+response status: 200
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Range&quot;:&quot;bytes=2-4&quot;}
+response source: Memory cache
+response status: 206
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Range&quot;:&quot;bytes=2-4&quot;}
+response source: Network
+response status: 206
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Range&quot;:&quot;bytes=5-7&quot;}
+response source: Memory cache
+response status: 416
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Range&quot;:&quot;bytes=5-7&quot;}
+response source: Network
+response status: 416
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcacherequestheadersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -195,6 +195,101 @@
</span><span class="cx"> request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store, max-age=100&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, max-age=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store, max-age=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-store, max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store, max-age=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;no-cache, no-store, max-age=100&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcacherequestmaxstaleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -295,6 +295,151 @@
</span><span class="cx"> request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=100&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=0&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=0&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=0, max-age=100&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale, max-age=100&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=100&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Age&quot;:&quot;200&quot;}
+request headers: {&quot;Cache-control&quot;:&quot;max-stale=100, max-age=100&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcacherevalidationnewexpireheaderexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -14,6 +14,11 @@
</span><span class="cx"> response's 'Expires' header is overriden by future date in 304 response
</span><span class="cx"> response source: Memory cache after validation
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response's 'Expires' header is overriden by future date in 304 response
+response source: Memory cache after validation
+
</ins><span class="cx"> 304 response included an 'Expires' header in the future, so we should not need to revalidate this time.
</span><span class="cx"> --------Testing loads from disk cache--------
</span><span class="cx"> response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
</span><span class="lines">@@ -25,6 +30,11 @@
</span><span class="cx"> response's 'Expires' header is overriden by future date in 304 response
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response's 'Expires' header is overriden by future date in 304 response
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevalidationattachmentexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -43,6 +43,25 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Disposition&quot;:&quot;attachment; filename=\&quot;f.txt\&quot;&quot;}
</span><span class="cx"> response source: Memory cache
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: undefined
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Content-Disposition&quot;:&quot;attachment; filename=\&quot;f.txt\&quot;&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Content-Disposition&quot;:&quot;attachment; filename=\&quot;f.txt\&quot;&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Content-Disposition&quot;:&quot;attachment; filename=\&quot;f.txt\&quot;&quot;}
+response source: Memory cache
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevalidationbacknavigationpolicyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -331,6 +331,169 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: undefined
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
</ins><span class="cx"> Testing high priority resources
</span><span class="cx"> 
</span><span class="cx"> --------Testing loads from disk cache--------
</span><span class="lines">@@ -659,6 +822,169 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: undefined
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;}
+response source: Disk cache
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;}
+response source: Disk cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;}
+response source: Disk cache
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Cache-control&quot;:&quot;must-revalidate&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache, must-revalidate&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevalidationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -493,6 +493,250 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: undefined
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevalidationnobodyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -493,6 +493,250 @@
</span><span class="cx"> response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: undefined
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;match&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(0)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(0)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Expires&quot;:&quot;now(100)&quot;,&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Expires&quot;:&quot;now(100)&quot;,&quot;ETag&quot;:&quot;nomatch&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevaryexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -439,6 +439,223 @@
</span><span class="cx"> request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcachediskcachevarynobodyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -439,6 +439,223 @@
</span><span class="cx"> request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
</span><span class="cx"> response source: Network
</span><span class="cx"> 
</span><ins>+--------Testing loads through memory cache (subresource behavior)--------
+response headers: {&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;en&quot;}
+response source: Network
+
+response headers: {&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;match&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache after validation
+
+response headers: {&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Memory cache
+
+response headers: {&quot;Cache-control&quot;:&quot;no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-store&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=0, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
+response headers: {&quot;Cache-control&quot;:&quot;max-age=100, no-cache&quot;,&quot;ETag&quot;:&quot;nomatch&quot;,&quot;Vary&quot;:&quot;Accept-Language&quot;}
+request headers: {&quot;Accept-Language&quot;:&quot;unique()&quot;}
+response source: Network
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachediskcacheresourcescachetestjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/cache/disk-cache/resources/cache-test.js (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/disk-cache/resources/cache-test.js        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/LayoutTests/http/tests/cache/disk-cache/resources/cache-test.js        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (options[&quot;ClearMemoryCache&quot;])
</span><span class="cx">         internals.clearMemoryCache();
</span><ins>+    internals.setStrictRawResourceValidationPolicyDisabled(options[&quot;SubresourceValidationPolicy&quot;]);
</ins><span class="cx"> 
</span><span class="cx">     var pendingCount = tests.length;
</span><span class="cx">     for (var i = 0; i &lt; tests.length; ++i) {
</span><span class="lines">@@ -115,10 +116,14 @@
</span><span class="cx">                 debug(&quot;--------Testing loads through memory cache (XHR behavior)--------&quot;);
</span><span class="cx">                 loadResourcesWithOptions(tests, { }, function () {
</span><span class="cx">                     printResults(tests);
</span><del>-                    if (completionHandler)
-                        completionHandler();
-                    else
-                        finishJSTest();
</del><ins>+                    debug(&quot;--------Testing loads through memory cache (subresource behavior)--------&quot;);
+                    loadResourcesWithOptions(tests, { &quot;SubresourceValidationPolicy&quot;: true }, function () {
+                        printResults(tests);
+                        if (completionHandler)
+                            completionHandler();
+                        else
+                            finishJSTest();
+                    });
</ins><span class="cx">                 });
</span><span class="cx">             });
</span><span class="cx">         }, 100);
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/ChangeLog        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -1,3 +1,46 @@
</span><ins>+2015-08-13  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Cover memory cache subresource validation policy with cache tests
+        https://bugs.webkit.org/show_bug.cgi?id=147830
+
+        Reviewed by Alexey Proskuryakov.
+
+        Existing tests under http/tests/cache/disk-cache currently cover disk and XHR memory cache validation behaviors.
+        They can be extended to cover the regular subresource policy too.
+
+        Add window.internals API to disable CachedRawResource validation behavior. This makes XHR validate like
+        other resources and allows existing tests (that use XHR) to cover normal subresource policy .
+
+        Test results reveal some bugs. For example subresources in memory cache don't respect Vary header.
+
+        It is generally bad that we have a separate XHR-and-main-resource validation policy in memory cache. Network cache
+        doesn't have one.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::clearTestingOverrides):
+        (WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
+        * loader/FrameLoader.h:
+        (WebCore::FrameLoader::setOverrideCachePolicyForTesting):
+        (WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting):
+        (WebCore::FrameLoader::setStrictRawResourceValidationPolicyDisabledForTesting):
+        (WebCore::FrameLoader::isStrictRawResourceValidationPolicyDisabledForTesting):
+        (WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL):
+        * loader/cache/CachedRawResource.h:
+        * loader/cache/CachedResource.h:
+        (WebCore::CachedResource::setLoadFinishTime):
+        (WebCore::CachedResource::loadFinishTime):
+        (WebCore::CachedResource::canReuse): Deleted.
+
+            Made canReuse non-virtual and removed it from the base. Only CachedRawResource has implementation.
+
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
+        * testing/Internals.cpp:
+        (WebCore::Internals::setOverrideResourceLoadPriority):
+        (WebCore::Internals::setStrictRawResourceValidationPolicyDisabled):
+        (WebCore::Internals::clearMemoryCache):
+        * testing/Internals.h:
+
</ins><span class="cx"> 2015-08-13  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Performing a Lookup on wrapped text puts the popover arrow in the wrong place (off to the right)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -3467,6 +3467,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_overrideCachePolicyForTesting = Nullopt;
</span><span class="cx">     m_overrideResourceLoadPriorityForTesting = Nullopt;
</span><ins>+    m_isStrictRawResourceValidationPolicyDisabledForTesting = false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader(DocumentLoader&amp; documentLoader, ShouldOpenExternalURLsPolicy propagatedPolicy)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.h (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.h        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/loader/FrameLoader.h        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -285,6 +285,9 @@
</span><span class="cx"> 
</span><span class="cx">     void setOverrideCachePolicyForTesting(ResourceRequestCachePolicy policy) { m_overrideCachePolicyForTesting = policy; }
</span><span class="cx">     void setOverrideResourceLoadPriorityForTesting(ResourceLoadPriority priority) { m_overrideResourceLoadPriorityForTesting = priority; }
</span><ins>+    void setStrictRawResourceValidationPolicyDisabledForTesting(bool disabled) { m_isStrictRawResourceValidationPolicyDisabledForTesting = disabled; }
+    bool isStrictRawResourceValidationPolicyDisabledForTesting() { return m_isStrictRawResourceValidationPolicyDisabledForTesting; }
+
</ins><span class="cx">     WEBCORE_EXPORT void clearTestingOverrides();
</span><span class="cx"> 
</span><span class="cx">     const URL&amp; provisionalLoadErrorBeingHandledURL() const { return m_provisionalLoadErrorBeingHandledURL; }
</span><span class="lines">@@ -442,6 +445,7 @@
</span><span class="cx"> 
</span><span class="cx">     Optional&lt;ResourceRequestCachePolicy&gt; m_overrideCachePolicyForTesting;
</span><span class="cx">     Optional&lt;ResourceLoadPriority&gt; m_overrideResourceLoadPriorityForTesting;
</span><ins>+    bool m_isStrictRawResourceValidationPolicyDisabledForTesting { false };
</ins><span class="cx"> 
</span><span class="cx">     URL m_previousURL;
</span><span class="cx">     RefPtr&lt;HistoryItem&gt; m_requestedHistoryItem;
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedRawResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedRawResource.h (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedRawResource.h        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/loader/cache/CachedRawResource.h        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -46,6 +46,8 @@
</span><span class="cx"> 
</span><span class="cx">     void clear();
</span><span class="cx"> 
</span><ins>+    bool canReuse(const ResourceRequest&amp;) const;
+
</ins><span class="cx"> private:
</span><span class="cx">     virtual void didAddClient(CachedResourceClient*) override;
</span><span class="cx">     virtual void addDataBuffer(SharedBuffer&amp;) override;
</span><span class="lines">@@ -62,8 +64,6 @@
</span><span class="cx">     virtual void switchClientsToRevalidatedResource() override;
</span><span class="cx">     virtual bool mayTryReplaceEncodedData() const override { return m_allowEncodedDataReplacement; }
</span><span class="cx"> 
</span><del>-    virtual bool canReuse(const ResourceRequest&amp;) const override;
-
</del><span class="cx">     const char* calculateIncrementalDataChunk(SharedBuffer*, unsigned&amp; incrementalDataLength);
</span><span class="cx">     void notifyClientsDataWasReceived(const char* data, unsigned length);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResource.h        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -252,8 +252,6 @@
</span><span class="cx">     void setLoadFinishTime(double finishTime) { m_loadFinishTime = finishTime; }
</span><span class="cx">     double loadFinishTime() const { return m_loadFinishTime; }
</span><span class="cx"> 
</span><del>-    virtual bool canReuse(const ResourceRequest&amp;) const { return true; }
-
</del><span class="cx"> #if USE(FOUNDATION) || USE(SOUP)
</span><span class="cx">     WEBCORE_EXPORT void tryReplaceEncodedData(SharedBuffer&amp;);
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -696,8 +696,14 @@
</span><span class="cx">         return Reload;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!existingResource-&gt;canReuse(request))
-        return Reload;
</del><ins>+    // FIXME: We should use the same cache policy for all resource types. The raw resource policy is overly strict
+    //        while the normal subresource policy is too loose.
+    if (existingResource-&gt;isMainOrRawResource()) {
+        bool strictPolicyDisabled = frame()-&gt;loader().isStrictRawResourceValidationPolicyDisabledForTesting();
+        bool canReuseRawResource = strictPolicyDisabled || downcast&lt;CachedRawResource&gt;(*existingResource).canReuse(request);
+        if (!canReuseRawResource)
+            return Reload;
+    }
</ins><span class="cx"> 
</span><span class="cx">     // Conditional requests should have failed canReuse check.
</span><span class="cx">     ASSERT(!request.isConditional());
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/testing/Internals.cpp        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -514,6 +514,11 @@
</span><span class="cx">     frame()-&gt;loader().setOverrideResourceLoadPriorityForTesting(stringToResourceLoadPriority(priority));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void Internals::setStrictRawResourceValidationPolicyDisabled(bool disabled)
+{
+    frame()-&gt;loader().setStrictRawResourceValidationPolicyDisabledForTesting(disabled);
+}
+
</ins><span class="cx"> void Internals::clearMemoryCache()
</span><span class="cx"> {
</span><span class="cx">     MemoryCache::singleton().evictResources();
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/testing/Internals.h        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -97,6 +97,7 @@
</span><span class="cx">     bool isStyleSheetLoadingSubresources(Element* link);
</span><span class="cx">     void setOverrideCachePolicy(const String&amp;);
</span><span class="cx">     void setOverrideResourceLoadPriority(const String&amp;);
</span><ins>+    void setStrictRawResourceValidationPolicyDisabled(bool);
</ins><span class="cx"> 
</span><span class="cx">     void clearMemoryCache();
</span><span class="cx">     void pruneMemoryCacheToSize(unsigned size);
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (188467 => 188468)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl        2015-08-14 12:34:55 UTC (rev 188467)
+++ trunk/Source/WebCore/testing/Internals.idl        2015-08-14 14:08:59 UTC (rev 188468)
</span><span class="lines">@@ -78,6 +78,7 @@
</span><span class="cx">     long memoryCacheSize();
</span><span class="cx">     void setOverrideCachePolicy(CachePolicy policy);
</span><span class="cx">     void setOverrideResourceLoadPriority(ResourceLoadPriority priority);
</span><ins>+    void setStrictRawResourceValidationPolicyDisabled(boolean disabled);
</ins><span class="cx"> 
</span><span class="cx">     void clearPageCache();
</span><span class="cx">     unsigned int pageCacheSize();
</span></span></pre>
</div>
</div>

</body>
</html>