OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) | 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) |
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) | 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) |
5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
rights reserved. | 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
rights reserved. |
6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
7 | 7 |
8 This library is free software; you can redistribute it and/or | 8 This library is free software; you can redistribute it and/or |
9 modify it under the terms of the GNU Library General Public | 9 modify it under the terms of the GNU Library General Public |
10 License as published by the Free Software Foundation; either | 10 License as published by the Free Software Foundation; either |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 return Reload; | 702 return Reload; |
703 | 703 |
704 // If resource was populated from a SubstituteData load or data: url, use it
. | 704 // If resource was populated from a SubstituteData load or data: url, use it
. |
705 if (isStaticData) | 705 if (isStaticData) |
706 return Use; | 706 return Use; |
707 | 707 |
708 if (!existingResource->canReuse(request)) | 708 if (!existingResource->canReuse(request)) |
709 return Reload; | 709 return Reload; |
710 | 710 |
711 // Certain requests (e.g., XHRs) might have manually set headers that requir
e revalidation. | 711 // Certain requests (e.g., XHRs) might have manually set headers that requir
e revalidation. |
712 // FIXME: In theory, this should be a Revalidate case. In practice, the Memo
ryCache revalidation path assumes a whole bunch | 712 // In theory, this should be a Revalidate case. In practice, the MemoryCache
revalidation path assumes a whole bunch |
713 // of things about how revalidation works that manual headers violate, so pu
nt to Reload instead. | 713 // of things about how revalidation works that manual headers violate, so pu
nt to Reload instead. |
714 if (request.isConditional()) | 714 // |
| 715 // Similarly, a request with manually added revalidation headers can lead |
| 716 // to a 304 response for a request that wasn't flagged as a revalidation |
| 717 // attempt. Normally, successful revalidation will maintain the original |
| 718 // response's status code, but for a manual revalidation the response code |
| 719 // remains 304. In this case, the Resource likely has insufficient context |
| 720 // to provide a useful cache hit or revalidation. |
| 721 // See http://crbug.com/643659 |
| 722 if (request.isConditional() || existingResource->response().httpStatusCode()
== 304) |
715 return Reload; | 723 return Reload; |
716 | 724 |
717 // Don't try to reuse an in-progress async request for a new sync request. | 725 // Don't try to reuse an in-progress async request for a new sync request. |
718 if (fetchRequest.options().synchronousPolicy == RequestSynchronously && exis
tingResource->isLoading()) | 726 if (fetchRequest.options().synchronousPolicy == RequestSynchronously && exis
tingResource->isLoading()) |
719 return Reload; | 727 return Reload; |
720 | 728 |
721 // Don't reload resources while pasting. | 729 // Don't reload resources while pasting. |
722 if (m_allowStaleResources) | 730 if (m_allowStaleResources) |
723 return Use; | 731 return Use; |
724 | 732 |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1360 visitor->trace(m_context); | 1368 visitor->trace(m_context); |
1361 visitor->trace(m_archive); | 1369 visitor->trace(m_archive); |
1362 visitor->trace(m_loaders); | 1370 visitor->trace(m_loaders); |
1363 visitor->trace(m_nonBlockingLoaders); | 1371 visitor->trace(m_nonBlockingLoaders); |
1364 visitor->trace(m_documentResources); | 1372 visitor->trace(m_documentResources); |
1365 visitor->trace(m_preloads); | 1373 visitor->trace(m_preloads); |
1366 visitor->trace(m_resourceTimingInfoMap); | 1374 visitor->trace(m_resourceTimingInfoMap); |
1367 } | 1375 } |
1368 | 1376 |
1369 } // namespace blink | 1377 } // namespace blink |
OLD | NEW |