[Resource Timing] 304 responses should show up in the timing buffer
https://bugs.webkit.org/show_bug.cgi?id=105490

Reviewed by Tony Gentilcore.

Source/WebCore:

Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):

LayoutTests:

* http/tests/w3c/webperf/resources/generate_resource.php:
* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached-expected.txt: Added.
* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html: Added.


git-svn-id: svn://svn.chromium.org/blink/trunk@138281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/third_party/WebKit/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/third_party/WebKit/Source/WebCore/loader/cache/CachedResourceLoader.cpp
index 051a700..7d294638 100644
--- a/third_party/WebKit/Source/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/third_party/WebKit/Source/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -704,7 +704,7 @@
 
 #if ENABLE(RESOURCE_TIMING)
     // FIXME: Add resource timing support for main resources.
-    if (resource && resource->type() != CachedResource::MainResource && !resource->errorOccurred() && !resource->wasCanceled() && resource->response().isHTTP()) {
+    if (resource && resource->type() != CachedResource::MainResource && resource->response().isHTTP() && ((!resource->errorOccurred() && !resource->wasCanceled()) || resource->response().httpStatusCode() == 304)) {
         HashMap<CachedResource*, InitiatorInfo>::iterator initiatorIt = m_initiatorMap.find(resource);
         if (initiatorIt != m_initiatorMap.end()) {
             ASSERT(document());