Index: third_party/WebKit/Source/core/frame/RemoteFrame.cpp |
diff --git a/third_party/WebKit/Source/core/frame/RemoteFrame.cpp b/third_party/WebKit/Source/core/frame/RemoteFrame.cpp |
index ad017062095a9ff0fbbaa8112b4aeccd764d44ef..3f3c7cf10688c4aef63b4516222ef79473289c82 100644 |
--- a/third_party/WebKit/Source/core/frame/RemoteFrame.cpp |
+++ b/third_party/WebKit/Source/core/frame/RemoteFrame.cpp |
@@ -13,10 +13,12 @@ |
#include "core/frame/RemoteFrameView.h" |
#include "core/html/HTMLFrameOwnerElement.h" |
#include "core/loader/FrameLoadRequest.h" |
+#include "core/loader/FrameLoader.h" |
#include "core/paint/PaintLayer.h" |
#include "platform/PluginScriptForbiddenScope.h" |
#include "platform/UserGestureIndicator.h" |
#include "platform/graphics/GraphicsLayer.h" |
+#include "platform/network/ResourceRequest.h" |
#include "platform/weborigin/SecurityPolicy.h" |
#include "public/platform/WebLayer.h" |
@@ -66,18 +68,23 @@ WindowProxy* RemoteFrame::windowProxy(DOMWrapperWorld& world) |
void RemoteFrame::navigate(Document& originDocument, const KURL& url, bool replaceCurrentItem, UserGestureStatus userGestureStatus) |
{ |
- // The process where this frame actually lives won't have sufficient information to determine |
- // correct referrer, since it won't have access to the originDocument. Set it now. |
- ResourceRequest request(url); |
- request.setHTTPReferrer(SecurityPolicy::generateReferrer(originDocument.getReferrerPolicy(), url, originDocument.outgoingReferrer())); |
Łukasz Anforowicz
2016/06/08 20:32:43
In theory, I could have just moved this setHTTPRef
|
- request.setHasUserGesture(userGestureStatus == UserGestureStatus::Active); |
- client()->navigate(request, replaceCurrentItem); |
+ FrameLoadRequest frameRequest(&originDocument); |
Nate Chapin
2016/06/09 23:40:43
frameRequest(&originDocument, url) is fine here in
Łukasz Anforowicz
2016/06/10 16:17:25
Done.
|
+ frameRequest.setReplacesCurrentItem(replaceCurrentItem); |
+ frameRequest.resourceRequest().setURL(url); |
+ frameRequest.resourceRequest().setHasUserGesture(userGestureStatus == UserGestureStatus::Active); |
Łukasz Anforowicz
2016/06/08 20:32:43
Calling setHasUserGesture twice (in both overloads
|
+ navigate(frameRequest); |
} |
void RemoteFrame::navigate(const FrameLoadRequest& passedRequest) |
{ |
- UserGestureStatus gesture = UserGestureIndicator::processingUserGesture() ? UserGestureStatus::Active : UserGestureStatus::None; |
- navigate(*passedRequest.originDocument(), passedRequest.resourceRequest().url(), passedRequest.replacesCurrentItem(), gesture); |
+ FrameLoadRequest frameRequest(passedRequest); |
+ |
+ // The process where this frame actually lives won't have sufficient information to determine |
+ // correct referrer, since it won't have access to the originDocument. Set it now. |
+ FrameLoader::setReferrerForFrameRequest(frameRequest); |
+ |
+ frameRequest.resourceRequest().setHasUserGesture(UserGestureIndicator::processingUserGesture()); |
+ client()->navigate(frameRequest.resourceRequest(), frameRequest.replacesCurrentItem()); |
} |
Łukasz Anforowicz
2016/06/08 20:32:43
The changes here make navigate(const FrameLoadRequ
|
void RemoteFrame::reload(FrameLoadType frameLoadType, ClientRedirectPolicy clientRedirectPolicy) |