| Index: third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp b/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp
|
| index ccecd6dc73cf8081ffc128e9477535e11ece8b3e..a143ed1c77d6edc4195a91534c01fb20285fb2ef 100644
|
| --- a/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp
|
| @@ -28,11 +28,13 @@
|
|
|
| #include "core/css/StyleSheetContents.h"
|
| #include "core/loader/resource/StyleSheetResourceClient.h"
|
| +#include "platform/HTTPNames.h"
|
| #include "platform/SharedBuffer.h"
|
| #include "platform/loader/fetch/FetchRequest.h"
|
| #include "platform/loader/fetch/MemoryCache.h"
|
| #include "platform/loader/fetch/ResourceClientWalker.h"
|
| #include "platform/loader/fetch/ResourceFetcher.h"
|
| +#include "platform/weborigin/SecurityPolicy.h"
|
| #include "wtf/CurrentTime.h"
|
|
|
| namespace blink {
|
| @@ -99,8 +101,17 @@ void CSSStyleSheetResource::didAddClient(ResourceClient* c) {
|
|
|
| // |c| might be removed in didAppendFirstData, so ensure it is still a client.
|
| if (hasClient(c) && !isLoading()) {
|
| + ReferrerPolicy referrerPolicy = ReferrerPolicyDefault;
|
| + String referrerPolicyHeader =
|
| + response().httpHeaderField(HTTPNames::Referrer_Policy);
|
| + if (!referrerPolicyHeader.isNull()) {
|
| + SecurityPolicy::referrerPolicyFromHeaderValue(
|
| + referrerPolicyHeader, DoNotSupportReferrerPolicyLegacyKeywords,
|
| + &referrerPolicy);
|
| + }
|
| static_cast<StyleSheetResourceClient*>(c)->setCSSStyleSheet(
|
| - resourceRequest().url(), response().url(), encoding(), this);
|
| + resourceRequest().url(), response().url(), referrerPolicy, encoding(),
|
| + this);
|
| }
|
| }
|
|
|
| @@ -139,11 +150,20 @@ void CSSStyleSheetResource::checkNotify() {
|
| if (data())
|
| setDecodedSheetText(decodedText());
|
|
|
| + ReferrerPolicy referrerPolicy = ReferrerPolicyDefault;
|
| + String referrerPolicyHeader =
|
| + response().httpHeaderField(HTTPNames::Referrer_Policy);
|
| + if (!referrerPolicyHeader.isNull()) {
|
| + SecurityPolicy::referrerPolicyFromHeaderValue(
|
| + referrerPolicyHeader, DoNotSupportReferrerPolicyLegacyKeywords,
|
| + &referrerPolicy);
|
| + }
|
| +
|
| ResourceClientWalker<StyleSheetResourceClient> w(clients());
|
| while (StyleSheetResourceClient* c = w.next()) {
|
| markClientFinished(c);
|
| - c->setCSSStyleSheet(resourceRequest().url(), response().url(), encoding(),
|
| - this);
|
| + c->setCSSStyleSheet(resourceRequest().url(), response().url(),
|
| + referrerPolicy, encoding(), this);
|
| }
|
|
|
| // Clear raw bytes as now we have the full decoded sheet text.
|
|
|