| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 frame()->loader().applyUserAgent(request); | 125 frame()->loader().applyUserAgent(request); |
| 126 } | 126 } |
| 127 | 127 |
| 128 void FrameFetchContext::setFirstPartyForCookies(ResourceRequest& request) | 128 void FrameFetchContext::setFirstPartyForCookies(ResourceRequest& request) |
| 129 { | 129 { |
| 130 if (frame()->tree().top()->isLocalFrame()) | 130 if (frame()->tree().top()->isLocalFrame()) |
| 131 request.setFirstPartyForCookies(toLocalFrame(frame()->tree().top())->doc
ument()->firstPartyForCookies()); | 131 request.setFirstPartyForCookies(toLocalFrame(frame()->tree().top())->doc
ument()->firstPartyForCookies()); |
| 132 } | 132 } |
| 133 | 133 |
| 134 CachePolicy FrameFetchContext::cachePolicy() const | 134 CachePolicy FrameFetchContext::getCachePolicy() const |
| 135 { | 135 { |
| 136 if (m_document && m_document->loadEventFinished()) | 136 if (m_document && m_document->loadEventFinished()) |
| 137 return CachePolicyVerify; | 137 return CachePolicyVerify; |
| 138 | 138 |
| 139 FrameLoadType loadType = frame()->loader().loadType(); | 139 FrameLoadType loadType = frame()->loader().loadType(); |
| 140 if (loadType == FrameLoadTypeReloadFromOrigin) | 140 if (loadType == FrameLoadTypeReloadFromOrigin) |
| 141 return CachePolicyReload; | 141 return CachePolicyReload; |
| 142 | 142 |
| 143 Frame* parentFrame = frame()->tree().parent(); | 143 Frame* parentFrame = frame()->tree().parent(); |
| 144 if (parentFrame && parentFrame->isLocalFrame()) { | 144 if (parentFrame && parentFrame->isLocalFrame()) { |
| 145 CachePolicy parentCachePolicy = toLocalFrame(parentFrame)->document()->f
etcher()->context().cachePolicy(); | 145 CachePolicy parentCachePolicy = toLocalFrame(parentFrame)->document()->f
etcher()->context().getCachePolicy(); |
| 146 if (parentCachePolicy != CachePolicyVerify) | 146 if (parentCachePolicy != CachePolicyVerify) |
| 147 return parentCachePolicy; | 147 return parentCachePolicy; |
| 148 } | 148 } |
| 149 | 149 |
| 150 if (loadType == FrameLoadTypeReload) | 150 if (loadType == FrameLoadTypeReload) |
| 151 return CachePolicyRevalidate; | 151 return CachePolicyRevalidate; |
| 152 | 152 |
| 153 if (m_documentLoader && m_documentLoader->request().cachePolicy() == ReturnC
acheDataElseLoad) | 153 if (m_documentLoader && m_documentLoader->request().getCachePolicy() == Retu
rnCacheDataElseLoad) |
| 154 return CachePolicyHistoryBuffer; | 154 return CachePolicyHistoryBuffer; |
| 155 return CachePolicyVerify; | 155 return CachePolicyVerify; |
| 156 | 156 |
| 157 } | 157 } |
| 158 | 158 |
| 159 static ResourceRequestCachePolicy memoryCachePolicyToResourceRequestCachePolicy( | 159 static ResourceRequestCachePolicy memoryCachePolicyToResourceRequestCachePolicy( |
| 160 const CachePolicy policy) { | 160 const CachePolicy policy) { |
| 161 if (policy == CachePolicyVerify) | 161 if (policy == CachePolicyVerify) |
| 162 return UseProtocolCachePolicy; | 162 return UseProtocolCachePolicy; |
| 163 if (policy == CachePolicyRevalidate) | 163 if (policy == CachePolicyRevalidate) |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 if (isInDocumentWrite && disallowFetchForDocWriteScripts) | 209 if (isInDocumentWrite && disallowFetchForDocWriteScripts) |
| 210 return ReturnCacheDataDontLoad; | 210 return ReturnCacheDataDontLoad; |
| 211 } | 211 } |
| 212 | 212 |
| 213 if (request.isConditional()) | 213 if (request.isConditional()) |
| 214 return ReloadIgnoringCacheData; | 214 return ReloadIgnoringCacheData; |
| 215 | 215 |
| 216 if (m_documentLoader && m_document && !m_document->loadEventFinished()) { | 216 if (m_documentLoader && m_document && !m_document->loadEventFinished()) { |
| 217 // For POST requests, we mutate the main resource's cache policy to avoi
d form resubmission. | 217 // For POST requests, we mutate the main resource's cache policy to avoi
d form resubmission. |
| 218 // This policy should not be inherited by subresources. | 218 // This policy should not be inherited by subresources. |
| 219 ResourceRequestCachePolicy mainResourceCachePolicy = m_documentLoader->r
equest().cachePolicy(); | 219 ResourceRequestCachePolicy mainResourceCachePolicy = m_documentLoader->r
equest().getCachePolicy(); |
| 220 if (m_documentLoader->request().httpMethod() == "POST") { | 220 if (m_documentLoader->request().httpMethod() == "POST") { |
| 221 if (mainResourceCachePolicy == ReturnCacheDataDontLoad) | 221 if (mainResourceCachePolicy == ReturnCacheDataDontLoad) |
| 222 return ReturnCacheDataElseLoad; | 222 return ReturnCacheDataElseLoad; |
| 223 return UseProtocolCachePolicy; | 223 return UseProtocolCachePolicy; |
| 224 } | 224 } |
| 225 return memoryCachePolicyToResourceRequestCachePolicy(cachePolicy()); | 225 return memoryCachePolicyToResourceRequestCachePolicy(getCachePolicy()); |
| 226 } | 226 } |
| 227 return UseProtocolCachePolicy; | 227 return UseProtocolCachePolicy; |
| 228 } | 228 } |
| 229 | 229 |
| 230 // FIXME(http://crbug.com/274173): | 230 // FIXME(http://crbug.com/274173): |
| 231 // |loader| can be null if the resource is loaded from imported document. | 231 // |loader| can be null if the resource is loaded from imported document. |
| 232 // This means inspector, which uses DocumentLoader as an grouping entity, | 232 // This means inspector, which uses DocumentLoader as an grouping entity, |
| 233 // cannot see imported documents. | 233 // cannot see imported documents. |
| 234 inline DocumentLoader* FrameFetchContext::ensureLoaderForNotifications() const | 234 inline DocumentLoader* FrameFetchContext::ensureLoaderForNotifications() const |
| 235 { | 235 { |
| (...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 return; | 683 return; |
| 684 | 684 |
| 685 bool shouldSendDPR = m_document->clientHintsPreferences().shouldSendDPR() ||
fetchRequest.clientHintsPreferences().shouldSendDPR(); | 685 bool shouldSendDPR = m_document->clientHintsPreferences().shouldSendDPR() ||
fetchRequest.clientHintsPreferences().shouldSendDPR(); |
| 686 bool shouldSendResourceWidth = m_document->clientHintsPreferences().shouldSe
ndResourceWidth() || fetchRequest.clientHintsPreferences().shouldSendResourceWid
th(); | 686 bool shouldSendResourceWidth = m_document->clientHintsPreferences().shouldSe
ndResourceWidth() || fetchRequest.clientHintsPreferences().shouldSendResourceWid
th(); |
| 687 bool shouldSendViewportWidth = m_document->clientHintsPreferences().shouldSe
ndViewportWidth() || fetchRequest.clientHintsPreferences().shouldSendViewportWid
th(); | 687 bool shouldSendViewportWidth = m_document->clientHintsPreferences().shouldSe
ndViewportWidth() || fetchRequest.clientHintsPreferences().shouldSendViewportWid
th(); |
| 688 | 688 |
| 689 if (shouldSendDPR) | 689 if (shouldSendDPR) |
| 690 fetchRequest.mutableResourceRequest().addHTTPHeaderField("DPR", AtomicSt
ring(String::number(m_document->devicePixelRatio()))); | 690 fetchRequest.mutableResourceRequest().addHTTPHeaderField("DPR", AtomicSt
ring(String::number(m_document->devicePixelRatio()))); |
| 691 | 691 |
| 692 if (shouldSendResourceWidth) { | 692 if (shouldSendResourceWidth) { |
| 693 FetchRequest::ResourceWidth resourceWidth = fetchRequest.resourceWidth()
; | 693 FetchRequest::ResourceWidth resourceWidth = fetchRequest.getResourceWidt
h(); |
| 694 if (resourceWidth.isSet) { | 694 if (resourceWidth.isSet) { |
| 695 float physicalWidth = resourceWidth.width * m_document->devicePixelR
atio(); | 695 float physicalWidth = resourceWidth.width * m_document->devicePixelR
atio(); |
| 696 fetchRequest.mutableResourceRequest().addHTTPHeaderField("Width", At
omicString(String::number(ceil(physicalWidth)))); | 696 fetchRequest.mutableResourceRequest().addHTTPHeaderField("Width", At
omicString(String::number(ceil(physicalWidth)))); |
| 697 } | 697 } |
| 698 } | 698 } |
| 699 | 699 |
| 700 if (shouldSendViewportWidth && frame()->view()) | 700 if (shouldSendViewportWidth && frame()->view()) |
| 701 fetchRequest.mutableResourceRequest().addHTTPHeaderField("Viewport-Width
", AtomicString(String::number(frame()->view()->viewportWidth()))); | 701 fetchRequest.mutableResourceRequest().addHTTPHeaderField("Viewport-Width
", AtomicString(String::number(frame()->view()->viewportWidth()))); |
| 702 } | 702 } |
| 703 | 703 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 } | 802 } |
| 803 | 803 |
| 804 DEFINE_TRACE(FrameFetchContext) | 804 DEFINE_TRACE(FrameFetchContext) |
| 805 { | 805 { |
| 806 visitor->trace(m_document); | 806 visitor->trace(m_document); |
| 807 visitor->trace(m_documentLoader); | 807 visitor->trace(m_documentLoader); |
| 808 FetchContext::trace(visitor); | 808 FetchContext::trace(visitor); |
| 809 } | 809 } |
| 810 | 810 |
| 811 } // namespace blink | 811 } // namespace blink |
| OLD | NEW |