| Index: Source/core/page/CreateWindow.cpp
|
| diff --git a/Source/core/page/CreateWindow.cpp b/Source/core/page/CreateWindow.cpp
|
| index 2f42c61ed6ca20431834bfc5bfd919ee1ce69030..edcb9f5d6a35d2dc94d8f7e469d564104c732cca 100644
|
| --- a/Source/core/page/CreateWindow.cpp
|
| +++ b/Source/core/page/CreateWindow.cpp
|
| @@ -48,7 +48,7 @@
|
|
|
| namespace blink {
|
|
|
| -static Frame* createWindow(LocalFrame& openerFrame, LocalFrame& lookupFrame, const FrameLoadRequest& request, const WindowFeatures& features, NavigationPolicy policy, ShouldSendReferrer shouldSendReferrer)
|
| +static Frame* createWindow(LocalFrame& openerFrame, LocalFrame& lookupFrame, const FrameLoadRequest& request, const WindowFeatures& features, NavigationPolicy policy, ReferrerPolicy referrerPolicy)
|
| {
|
| ASSERT(!features.dialog || request.frameName().isEmpty());
|
| ASSERT(request.resourceRequest().requestorOrigin() || openerFrame.document()->url().isEmpty());
|
| @@ -82,7 +82,7 @@ static Frame* createWindow(LocalFrame& openerFrame, LocalFrame& lookupFrame, con
|
| if (!oldHost)
|
| return nullptr;
|
|
|
| - Page* page = oldHost->chrome().client().createWindow(&openerFrame, request, features, policy, shouldSendReferrer);
|
| + Page* page = oldHost->chrome().client().createWindow(&openerFrame, request, features, policy, referrerPolicy);
|
| if (!page)
|
| return nullptr;
|
| FrameHost* host = &page->frameHost();
|
| @@ -148,7 +148,7 @@ DOMWindow* createWindow(const String& urlString, const AtomicString& frameName,
|
|
|
| // We pass the opener frame for the lookupFrame in case the active frame is different from
|
| // the opener frame, and the name references a frame relative to the opener frame.
|
| - Frame* newFrame = createWindow(*activeFrame, openerFrame, frameRequest, windowFeatures, NavigationPolicyIgnore, MaybeSendReferrer);
|
| + Frame* newFrame = createWindow(*activeFrame, openerFrame, frameRequest, windowFeatures, NavigationPolicyIgnore, ReferrerPolicyDefault);
|
| if (!newFrame)
|
| return nullptr;
|
|
|
| @@ -159,7 +159,7 @@ DOMWindow* createWindow(const String& urlString, const AtomicString& frameName,
|
| return newFrame->domWindow();
|
| }
|
|
|
| -void createWindowForRequest(const FrameLoadRequest& request, LocalFrame& openerFrame, NavigationPolicy policy, ShouldSendReferrer shouldSendReferrer)
|
| +void createWindowForRequest(const FrameLoadRequest& request, LocalFrame& openerFrame, NavigationPolicy policy, ReferrerPolicy referrerPolicy)
|
| {
|
| ASSERT(request.resourceRequest().requestorOrigin() || (openerFrame.document() && openerFrame.document()->url().isEmpty()));
|
|
|
| @@ -176,12 +176,14 @@ void createWindowForRequest(const FrameLoadRequest& request, LocalFrame& openerF
|
| policy = NavigationPolicyNewForegroundTab;
|
|
|
| WindowFeatures features;
|
| - Frame* newFrame = createWindow(openerFrame, openerFrame, request, features, policy, shouldSendReferrer);
|
| + Frame* newFrame = createWindow(openerFrame, openerFrame, request, features, policy, referrerPolicy);
|
| if (!newFrame)
|
| return;
|
| - if (shouldSendReferrer == MaybeSendReferrer) {
|
| +
|
| + if (referrerPolicy != ReferrerPolicyNever) {
|
| newFrame->client()->setOpener(&openerFrame);
|
| // TODO(japhet): Does ReferrerPolicy need to be proagated for RemoteFrames?
|
| + // TODO(burnik): Should we inherit the document's referrer policy or the request's via implicit inheritance?
|
| if (newFrame->isLocalFrame())
|
| toLocalFrame(newFrame)->document()->setReferrerPolicy(openerFrame.document()->referrerPolicy());
|
| }
|
|
|