Chromium Code Reviews| Index: third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
| diff --git a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
| index 66d67d1e8f7c96e96ab7953972fe8f411fe648e7..b6121b6162348e1ac2bc6da9cb05d55cb841c866 100644 |
| --- a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
| +++ b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
| @@ -58,6 +58,7 @@ |
| #include "core/page/NetworkStateNotifier.h" |
| #include "core/page/Page.h" |
| #include "core/xmlhttprequest/XMLHttpRequest.h" |
| +#include "platform/RuntimeEnabledFeatures.h" |
| #include "platform/blob/BlobData.h" |
| #include "platform/network/HTTPHeaderMap.h" |
| #include "platform/network/ResourceError.h" |
| @@ -67,6 +68,7 @@ |
| #include "platform/network/WebSocketHandshakeRequest.h" |
| #include "platform/network/WebSocketHandshakeResponse.h" |
| #include "platform/weborigin/KURL.h" |
| +#include "platform/weborigin/ReferrerPolicy.h" |
| #include "platform/weborigin/SecurityOrigin.h" |
| #include "public/platform/WebCachePolicy.h" |
| #include "public/platform/WebMixedContent.h" |
| @@ -287,6 +289,42 @@ WebConnectionType toWebConnectionType(const String& connectionType) { |
| return WebConnectionTypeUnknown; |
| } |
| +String referrerPolicy(ReferrerPolicy policy) { |
| + if (policy == ReferrerPolicyDefault) { |
| + policy = RuntimeEnabledFeatures::reducedReferrerGranularityEnabled() |
| + ? ReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin |
| + : ReferrerPolicyNoReferrerWhenDowngrade; |
| + } |
| + switch (policy) { |
| + case ReferrerPolicyAlways: |
| + return protocol::Network::Request::ReferrerPolicyEnum::UnsafeUrl; |
| + case ReferrerPolicyDefault: |
|
dgozman
2016/12/27 19:45:36
This looks to be handled on line 293.
jochen (gone - plz use gerrit)
2017/01/02 07:38:05
removed the duplicate
|
| + if (RuntimeEnabledFeatures::reducedReferrerGranularityEnabled()) { |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + NoReferrerWhenDowngradeOriginWhenCrossOrigin; |
| + } else { |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + NoReferrerWhenDowngrade; |
| + } |
| + case ReferrerPolicyNoReferrerWhenDowngrade: |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + NoReferrerWhenDowngrade; |
| + case ReferrerPolicyNever: |
| + return protocol::Network::Request::ReferrerPolicyEnum::NoReferrer; |
| + case ReferrerPolicyOrigin: |
| + return protocol::Network::Request::ReferrerPolicyEnum::Origin; |
| + case ReferrerPolicyOriginWhenCrossOrigin: |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + OriginWhenCrossOrigin; |
| + case ReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + NoReferrerWhenDowngradeOriginWhenCrossOrigin; |
| + } |
| + |
| + return protocol::Network::Request::ReferrerPolicyEnum:: |
| + NoReferrerWhenDowngrade; |
| +} |
| + |
| } // namespace |
| void InspectorNetworkAgent::restore() { |
| @@ -329,6 +367,7 @@ buildObjectForResourceRequest(const ResourceRequest& request) { |
| .setMethod(request.httpMethod()) |
| .setHeaders(buildObjectForHeaders(request.httpHeaderFields())) |
| .setInitialPriority(resourcePriorityJSON(request.priority())) |
| + .setReferrerPolicy(referrerPolicy(request.getReferrerPolicy())) |
| .build(); |
| if (request.httpBody() && !request.httpBody()->isEmpty()) { |
| Vector<char> bytes; |
| @@ -601,6 +640,8 @@ void InspectorNetworkAgent::willSendRequestInternal( |
| requestInfo->setMixedContentType(mixedContentTypeForContextType( |
| MixedContentChecker::contextTypeForInspector(frame, request))); |
| + requestInfo->setReferrerPolicy(referrerPolicy(request.getReferrerPolicy())); |
| + |
| String resourceType = InspectorPageAgent::resourceTypeJson(type); |
| frontend()->requestWillBeSent( |
| requestId, frameId, loaderId, |