Chromium Code Reviews| 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) |