| Index: third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
|
| diff --git a/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp b/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
|
| index 201eea4dabab5c0e01483665b4f0ba0be6380f0b..a73a54abfcf683ad07d0e91f89b82a9a65c16c42 100644
|
| --- a/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
|
| +++ b/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
|
| @@ -983,8 +983,24 @@ bool Resource::hasCacheControlNoStoreHeader() const {
|
| resourceRequest().cacheControlContainsNoStore();
|
| }
|
|
|
| -bool Resource::hasVaryHeader() const {
|
| - return !response().httpHeaderField(HTTPNames::Vary).isNull();
|
| +bool Resource::mustReloadDueToVaryHeader(
|
| + const ResourceRequest& newRequest) const {
|
| + const AtomicString& vary = response().httpHeaderField(HTTPNames::Vary);
|
| + if (vary.isNull())
|
| + return false;
|
| + if (vary == "*")
|
| + return true;
|
| +
|
| + CommaDelimitedHeaderSet varyHeaders;
|
| + parseCommaDelimitedHeader(vary, varyHeaders);
|
| + for (const String& header : varyHeaders) {
|
| + AtomicString atomicHeader(header);
|
| + if (resourceRequest().httpHeaderField(atomicHeader) !=
|
| + newRequest.httpHeaderField(atomicHeader)) {
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| }
|
|
|
| bool Resource::mustRevalidateDueToCacheHeaders() const {
|
|
|